instructables-LogoESP-01S Veröffentlichung Feinstaubsensor
Benutzerhandbuch
instructables ESP-01S Publishing Feinstaubsensor - Abb. 1

ESP-01S Veröffentlichung Feinstaubsensor

Veröffentlichen von Feinstaubsensordaten an Adafruit IO mit Maker Pi Pico und ESP-01S
von kevinjwalters
Dieser Artikel zeigt, wie Daten von drei kostengünstigen Feinstaubsensoren an den Adafruit IO IoT-Dienst veröffentlicht werden, indem man den Cytron Maker Pi Pico verwendet, auf dem ein CircuitPython-Programm läuft, das die Ausgaben der Sensoren über WLAN mit einem ESP-01S-Modul mit AT-Firmware überträgt.
Die WHO sieht in PM2.5-Partikeln eines der größten Umweltrisiken für die Gesundheit. 99 % der Weltbevölkerung lebten an Orten, an denen im Jahr 2019 die Luftqualitätsrichtlinien der WHO nicht eingehalten wurden. Schätzungen der WHO zufolge waren dies im Jahr 4.2 die Ursache für 2016 Millionen vorzeitige Todesfälle.
Die drei in diesem Artikel gezeigten Feinstaubsensoren sind:

  • der Plantower PMS5003 über eine serielle Verbindung;
  • der Sensirion SPS30 mit i2c;
  • der Omron B5W LD0101 mit Impulsausgängen.

Diese optischen Sensoren ähneln denen in bestimmten Rauchmeldern für den Hausgebrauch, unterscheiden sich jedoch darin, dass sie versuchen, Partikel unterschiedlicher Größe zu zählen, anstatt einfach bei einer Schwellenkonzentration Alarm zu schlagen.
Der auf einem roten Laser basierende PMS5003 ist ein häufig verwendeter Hobbysensor und findet sich im PurpleAir PA-II-Luftqualitätssensor. Der SPS30 ist ein neuerer Sensor, der dasselbe Prinzip verwendet und im Clarity Node-S-Luftqualitätssensor zu finden ist. Der auf Infrarot-LEDs basierende B5W LD0101-Sensor hat eine primitivere Schnittstelle, ist aber nützlich, da er Partikel erkennen kann, die größer als 2.5 Mikrometer sind – die anderen beiden Sensoren können diese nicht zuverlässig messen.
Adafruit IO bietet eine kostenlose Stufe mit einer begrenzten Anzahl von Feeds und Dashboards an – diese reichen für dieses Projekt aus. Die Daten der kostenlosen Stufe bleiben 30 Tage lang erhalten, können aber problemlos heruntergeladen werden.
Das Maker Pi Pico Board in diesem Artikel ist wieample Cytron hat es mir freundlicherweise zur Bewertung zugeschickt. Der einzige Unterschied zur Produktionsversion besteht in der Hinzufügung passiver Komponenten zum Entprellen der drei Tasten.
Das ESP-01S-Modul benötigt wahrscheinlich ein AT-Firmware-Upgrade. Dies ist ein relativ komplexer, zeitaufwändiger Prozess und kann zeitaufwändig sein. Cytron verkauft das Modul mit der entsprechenden AT-Firmware.
Der Omron B5W LD0101-Sensor wird vom Hersteller leider abgekündigt, letzte Bestellungen sind im März 2022 möglich.
Lieferungen:

  • Cytron Maker Pi Pico – Digi-key | PiHut
  • ESP-01S – Die Platine von Cytron wird mit entsprechender ATrmware geliefert.
  • ESP-01 USB-Adapter/Programmierer mit Reset-Taste – Cytron.
  • Steckbrett.
  • Überbrückungskabel von Buchse auf Stecker, Mindestlänge ca. 20 cm (8 Zoll).
  • Plantower PMS5003 mit Kabel und Steckplatinenadapter – Adafruit
  • oder Plantower PMS5003 + Pimoroni Steckplatinenadapter – Pimoroni + Pimoroni
  • Sensirion SPS30 – Digi-key
    • Sparkfun SPS30 JST-ZHR-Kabel auf 5 Stecker – Digi-key
    • 2x 2.2k Widerstände.
  • Omron B5W LD0101 – Mouser
    • Omron-Kabel als Kabelbaum beschrieben (2JCIE-HARNESS-05) – Mouser
    • 5-poliger Stecker (zur Anpassung des Kabels an die Steckplatine).
    • Löten – Krokodilklemmen können als Alternative zum Löten funktionieren.
    • 2x 4.7k Widerstände.
    • 3x 10k Widerstände.
    • 0.1 uF Kondensator.
    • Batterieleistung für Omron B5W LD0101:
      • 4AA-Batteriehalter für wiederaufladbare NiMH-Batterien (bessere Wahl).
      • oder 3AA Batteriehalter für Alkalibatterien.
  • Ein USB-Netzteil kann nützlich sein, wenn Sie draußen laufen möchten und keine USB-Stromquelle in der Nähe ist.

instructables ESP-01S Publishing Feinstaubsensor - Abb. 1

Schritt 1: USB-Programmierer zum Aktualisieren des Flash auf dem ESP-01S

Das ESP-01S-Modul wird wahrscheinlich nicht mit der entsprechenden AT-Firmware geliefert, es sei denn, es stammt von Cytron. Die einfachste Möglichkeit zum Aktualisieren ist die Verwendung eines Windows-Desktops oder -Laptops mit einem USB-Adapter, der Schreibzugriff auf die Flash-Speicherkarte bietet und über eine Reset-Taste verfügt.
Leider verfügt ein sehr verbreiteter No-Name-Adapter, der oft als „ESP-01 Programmer Adapter UART“ beschrieben wird, nicht über Tasten oder Schalter zur Steuerung dieser. Das obige Video zeigt, wie man dies schnell nachrüsten kann.
mit einigen improvisierten Schaltern aus zwei in zwei Hälften geschnittenen und an die Pins auf der Unterseite der Programmierplatine gelöteten Stecker-Buchsen-Überbrückungsdrähten. Ein alternativer Ansatz hierzu mit einem Steckbrett ist in Hackaday zu sehen:
ESPHome auf ESP-01 Windows-Workflow.
https://www.youtube.com/watch?v=wXXXgaePZX8

Schritt 2: Aktualisieren der Firmware auf ESP-01S unter Windows

Ein Terminalprogramm wie PuTTY kann mit dem ESP-01-Programmierer verwendet werden, um die Firmware-Version zu überprüfen. Die Firmware lässt den ESP8266 mit Befehlen, die vom Hayes-Befehlssatz inspiriert sind, ein bisschen wie ein Modem agieren. Der Befehl AT+GMR AT+GMR zeigt die Firmware-Version an.
AT+GMR
AT-Version: 1.1.0.0 (11. Mai 2016, 18:09:56)
SDK-Version: 1.5.4 (baaeaebb)
Kompilierungszeit: 20. Mai 2016 15:08:19
Cytron bietet eine Anleitung zur Anwendung des Firmware-Updates mit dem Espressif Flash Download Tool (nur Windows) auf GitHub: CytronTechnologies/esp-at-binaries. Cytron stellt außerdem eine Kopie der Firmware-Binärdatei Cytron_ESP-01S_AT_Firmware_V2.2.0.bin zur Verfügung.
Nach einem erfolgreichen Upgrade wird die neue Firmware als Version 2.2.0.0 gemeldet
AT+GMR
AT-Version: 2.2.0.0 (b097cdf – ESP8266 – 17. Juni 2021 12:57:45)
SDK-Version: v3.4-22-g967752e2
Kompilierungszeit (6800286): 4. August 2021 17:20:05
Bin-Version: 2.2.0 (Cytron_ESP-01S)
Als Alternative zur Programmierung des ESP8266-basierten ESP-01S steht ein Kommandozeilenprogramm namens esptool zur Verfügung, das unter Linux oder macOS verwendet werden kann.
Die Firmware auf dem ESP-01S kann auf dem Maker Pi Pico mit Cytrons simpletest.py getestet werden. Dies sendet alle 10 Sekunden einen ICMP-Ping an einen bekannten Dienst im Internet und zeigt die Round-Trip-Zeit (RTT) in Millisekunden an. Dies erfordert eine secrets.py file mit der WLAN-SSID (Name) und dem Passwort – dies wird später in diesem Artikel beschrieben.
DAS GUTEinstructables ESP-01S Publishing Feinstaubsensor - Abb. 2DAS SCHLECHTEinstructables ESP-01S Publishing Feinstaubsensor - Abb. 3instructables ESP-01S Publishing Feinstaubsensor - Abb. 4

Schritt 3: Anschließen der Sensoren

Ein Steckbrett halber Größe wurde verwendet, um die drei Sensoren anzuschließen und die Lautstärke zu überwachen.tage von den vier wiederaufladbaren NiMH-Batterien. Ein hochauflösendes Foto des gesamten Aufbaus ist beigefügt und die nächsten Schritte beschreiben, wie jeder Sensor angeschlossen werden kann.
Die Stromschienen auf dem Steckbrett werden vom Pi Pico mit Strom versorgt.

  • VBUS (5V) und GND an die Stromschienen auf der linken Seite und
  • 3V3 und GND auf der rechten Seite.

Die Stromschienen sind mit einer roten Linie für die Plusschiene und einer blauen für die Minusschiene (oder Erdungsschiene) gekennzeichnet. Auf einem Steckbrett in voller Größe (830 Löcher) können diese einen oberen Schienensatz haben, der nicht mit dem unteren Schienensatz verbunden ist.
Die Batterien werden nur zur Stromversorgung des Omron B5W LD0101 verwendet, der eine konstante Spannung benötigt.tage. Die USB-Stromversorgung eines Computers verursacht häufig Geräusche und ist daher ungeeignet.
instructables ESP-01S Publishing Feinstaubsensor - Abb. 5

Schritt 4: Anschließen des Plantower PMS5003

Der Plantower PMS5003 benötigt 5V Strom, aber seine serielle Schnittstelle im „TTL-Stil“ ist 3.3V sicher. Die Verbindungen vom
PMS5003 über Breakout-Board zum Pi Pico sind:

  • VCC auf 5 V (rot) über Reihe 6 zur 5-V-Schiene;
  • GND zu GND (schwarz) über Reihe 5 zu GND;
  • SET auf EN (blau) über Reihe 1 zu GP2;
  • RX zu RX (weiß) über Reihe 3 zu GP5;
  • TX zu TX (grau) über Reihe 4 zu GP4;
  • RESET zu RESET (lila) über Reihe 2 zu GP3;
  • NC (nicht verbunden);
  • CN.

Das Datenblatt enthält einen Warnhinweis zum Metallgehäuse.
Das Metallgehäuse ist mit dem GND verbunden. Achten Sie daher darauf, dass es nicht zu Kurzschlüssen mit anderen Teilen der Schaltung außer dem GND kommt.
Das Bauteil wird in der Regel mit einer blauen Kunststofffolie auf dem Gehäuse geliefert, um die Oberfläche vor Kratzern zu schützen. Als elektrische Isolierung sollte man sich hierauf jedoch nicht verlassen.
instructables ESP-01S Publishing Feinstaubsensor - Abb. 6

Schritt 5: Anschließen des Sensirion SPS30

Der Sensirion SPS30 benötigt 5 V Strom, aber seine I2C-Schnittstelle ist 3.3 V-sicher. Die einzigen zusätzlichen Komponenten sind zwei 2.2 kΩ-Widerstände, die als Pull-Ups für den I2C-Bus fungieren. Die Verbindungen vom SPS30 zum Pi Pico sind:

  • VDD (rot) zur 5V5V-Schiene;
  • SDA (weiß) zu GP0 (grau) über Reihe 11 mit 2.2k Widerstand zur 3.3V-Schiene;
  • SCL (lila) zu GP1 (lila) über Reihe 10 mit 2.2k Widerstand zur 3.3V-Schiene;
  • SEL (grün) zu GND;
  • GND (schwarz) an GND.

Um den Stecker am Kabel richtig in das SPS30 einzustecken, ist möglicherweise ein kräftiger Druck erforderlich.
Der SPS30 unterstützt auch eine serielle Schnittstelle, die Sensirion im Datenblatt empfiehlt.
Bei der Verwendung der I2C-Schnittstelle sind einige Überlegungen anzustellen. I2C wurde ursprünglich entwickelt, um zwei Chips auf einer Leiterplatte zu verbinden. Wenn der Sensor über ein Kabel mit der Hauptleiterplatte verbunden wird, muss besonders auf elektromagnetische Störungen und Übersprechen geachtet werden. Verwenden Sie möglichst kurze (< 10 cm) und/oder gut geschirmte Verbindungskabel.
Wir empfehlen stattdessen, wann immer möglich, die UART-Schnittstelle zu verwenden: Sie ist robuster gegen elektromagnetische Störungen, insbesondere bei langen Verbindungskabeln.
Zudem gibt es einen Warnhinweis zu den Metallteilen des Gehäuses.
Beachten Sie, dass zwischen dem GND-Pin (5) und der Metallabschirmung eine interne elektrische Verbindung besteht. Halten Sie diese Metallabschirmung elektrisch potenzialfrei, um unbeabsichtigte Ströme über diese interne Verbindung zu vermeiden. Wenn dies nicht möglich ist, ist ein geeigneter externer Potenzialausgleich zwischen dem GND-Pin und jedem mit der Abschirmung verbundenen Potenzial zwingend erforderlich. Jeder Strom durch die Verbindung zwischen GND und Metallabschirmung kann das Produkt beschädigen und stellt durch Überhitzung ein Sicherheitsrisiko dar.instructables ESP-01S Publishing Feinstaubsensor - Abb. 7

Schritt 6: Anschließen des Omron B5W LD0101

Das Omron-Kabel ist nicht für die Verwendung mit Steckplatinen vorgesehen. Eine schnelle Möglichkeit, es für die Verwendung mit Steckplatinen umzurüsten, besteht darin, die Buchse abzuschneiden, die Drähte abzuisolieren und sie an fünf Stiftleistenstifte anzulöten. Alternativ können Krokodilklemmen verwendet werden, um das Löten zu vermeiden.
Der Omron B5W LD0101 benötigt eine konstante 5-V-Stromversorgung. Seine beiden Ausgänge liegen ebenfalls auf einem 5-V-Pegel, der mit den 3.3-V-Eingängen des Pi Pico nicht kompatibel ist. Die vorhandenen Widerstände auf der Sensorplatine machen es einfach, diesen Wert auf einen sicheren Wert abzusenken, indem pro Ausgang ein 4.7-kΩ-Widerstand zur Masse hinzugefügt wird. Die integrierten Widerstände sind im Datenblatt dokumentiert, was diesen Ansatz sinnvoll macht.
Die Verbindungen vom B5W LD0101 zum Pi Pico sind:

  • Vcc (rot) zur 5V (rot)-Schiene über Reihe 25;
  • OUT1 (gelb) zu GP10GP10 (gelb) über Reihe 24 mit 4.7k Widerstand zu GND;
  • GND (schwarz) zu GND (schwarz) über Reihe 23;
  • Vth (grün) zu GP26GP26 (grün) über Reihe 22 mit 0.1 uF Kondensator zu GND;
  • OUT2 (orange) zu GP11 (orange) über Reihe 21 mit 4.7k Widerstand zu GND.

Der GP12 (grün) vom Pi Pico verbindet sich mit Reihe 17 und ein 10k-Widerstand verbindet Reihe 17 mit Reihe 22.
Im Datenblatt werden die Anforderungen an die Stromversorgung wie folgt beschrieben:
Minimal 4.5 V, typisch 5.0 V, maximal 5.5 V, WelligkeitsvolumentagDer Bereich von 30 mV oder weniger wird empfohlen. Stellen Sie sicher, dass kein Rauschen unter 300 Hz auftritt.
rm die zulässige WelligkeitsvoltagDer Wert wird mithilfe einer echten Maschine ermittelt.
Drei Alkalibatterien oder vier wiederaufladbare Batterien (NiMH) sind die einfachste Möglichkeit, eine gleichmäßige, stabile Lautstärke zu gewährleisten.tage von etwa 5V zum Sensor. Ein USB-Netzteil ist wahrscheinlich eine schlechte Wahl, da die SpannungtagEs stammt normalerweise von einer Lithiumbatterie mit einem Abwärts-/Aufwärtswandler, der laut ist.
Der B5W LD0101 nutzt Konvektion für seinen Luftstrom und muss aufrecht aufgestellt werden, um richtig zu funktionieren. Eine Änderung der ZufuhrmengetagDies wirkt sich wahrscheinlich auf die Temperatur des Heizgeräts und den damit verbundenen Luftstrom aus. Auch die Umgebungstemperatur muss einen Einfluss haben.instructables ESP-01S Publishing Feinstaubsensor - Abb. 8

Schritt 7: Batterieüberwachung mit Potentialteiler

Die Batterieladungtage übersteigt den 3.3-V-Pegel der Eingänge des RP2040-Prozessors des Pi Pico. Ein einfacher Spannungsteiler kann diese Spannung reduzierentage muss innerhalb dieses Bereichs liegen. Dadurch kann der RP2040 den Batteriestand an einem analogen Eingang (GP26 bis GP28) messen.
Ein Paar 10k Widerstände wurde oben verwendet, um die Lautstärke zu halbierentage. Es ist üblich, höhere Werte wie 100k zu verwenden, um den verschwendeten Strom zu minimieren. Die Verbindungen sind:

  • B5W LD0101 Vcc (rot) Überbrückungskabel zur linken Seite der Reihe 29;
  • 10k Widerstand in Reihe 29 zwischen linker und rechter Seite in Reihe 29;
  • Braunes Überbrückungskabel zu Pi Pico GP27;
  • 10k-Widerstand von der rechten Seite der Reihe 29 zur nahegelegenen GND-Schiene.

GP28 auf dem Maker Pi Pico kann als analoger Eingang verwendet werden, da es aber auch mit dem RGB-Pixel verbunden ist, kann dies geringfügige Auswirkungen auf den Wert haben und sogar aufleuchten oder sich ändern, wenn der Eingang wie das WS2812-Protokoll aussieht!instructables ESP-01S Publishing Feinstaubsensor - Abb. 9

Schritt 8: CircuitPython und Sensor Data Publishing Program installieren

Wenn Sie mit CircuitPython nicht vertraut sind, lohnt es sich, zuerst den Leitfaden „Willkommen bei CircuitPython“ zu lesen.

  1. Installieren Sie die folgenden sieben Bibliotheken aus dem Version 7.x-Bundle von https://circuitpython.org/libraries in das lib-Verzeichnis auf dem CIRCUITPY-Laufwerk:
    1. adafruit_bus_device
    2. adafruit_minimqtt
    3. adafruit_io
    4. adafruit_espatcontrol
    5. adafruit_pm25
    6. adafruit_requests.mpy
    7. neopixel.mpy
  2. Laden Sie diese beiden zusätzlichen Bibliotheken in das Verzeichnis lib herunter, indem Sie auf der files im Verzeichnis oder auf der file:
    1. adafruit_sps30 von https://github.com/kevinjwalters/Adafruit_CircuitPython_SPS30
    2. b5wld0101.py von https://github.com/kevinjwalters/CircuitPython_B5WLD0101
  3. Erstellen Sie secrets.py file (siehe Bspampsiehe unten) und geben Sie die Werte ein.
  4. Laden Sie das Programm auf CIRCUITPY herunter, indem Sie auf pmsensors_adafruitio.py auf Link speichern unter… klicken.
  5. Benennen Sie vorhandene code.py um oder löschen Sie sie file auf CIRCUITPY dann benennen Sie pmsensors_adafruitio.py in code.py Dies file wird ausgeführt, wenn der CircuitPython-Interpreter gestartet oder neu geladen wird.

# In dieser Datei bewahren Sie geheime Einstellungen, Passwörter und Token auf!
# Wenn Sie sie in den Code einfügen, besteht das Risiko, dass diese Informationen weitergegeben werden
Geheimnisse = {
„ssid“ : „HIER-WLAN-NAMEN-EINFÜGEN“,
„Passwort“ : „HIER-WIFI-PASSWORT-EINFÜGEN“,
„aio_username“ : „ADAFRUIT-IO-BENUTZERNAME-HIER-EINFÜGEN“,
„aio_key“: „ADAFRUIT-IO-ANWENDUNGSSCHLÜSSEL-HIER-EINFÜGEN“
# http://worldtimeapi.org/timezones
„Zeitzone“: „Amerika/New_York“,
}
Die für dieses Projekt verwendeten Versionen waren:
CircuitPython 7.0.0
CircuitPython-Bibliothekspaket adafruit-circuitpython-bundle-7.x-mpy-20211029.zip - frühere Versionen vom September/Oktober dürfen nicht als adafruit_espatcontrol verwendet werden
Die Bibliothek war fehlerhaft und die Hälfte funktionierte auf verwirrende Weise.instructables ESP-01S Publishing Feinstaubsensor - Abb. 10

Schritt 9: Adafruit IO-Setup

Adafruit bietet zahlreiche Anleitungen zu seinem Adafruit IO-Dienst. Die wichtigsten sind:
Willkommen bei Adafruit IO
Adafruit IO-Grundlagen: Feeds
Adafruit IO-Grundlagen: Dashboards
Wenn Sie mit Feeds und Dashboards vertraut sind, befolgen Sie diese Schritte.

  1. Erstellen Sie ein Adafruit-Konto, falls Sie noch keins haben.
  2. Erstellen Sie unter Feeds eine neue Gruppe mit dem Namen mpp-pm
  3. Erstellen Sie neun Feeds in dieser neuen Gruppe, indem Sie auf die Schaltfläche „+ Neuer Feed“ klicken. Die Namen lauten:
    1. b5wld0101-roh-out1
    2. b5wld0101-roh-out2
    3. b5wld0101-vcc
    4. b5wld0101-vth
    5. CPU-Temperatur
    6. pms5003-pm10-standard
    7. pms5003-pm25-standard
    8. SPS30-PM10-Standard
    9. SPS30-PM25-Standard
  4. Erstellen Sie ein Dashboard für diese Werte. Empfohlene Blöcke sind:
    1. Drei Liniendiagrammblöcke, einer für jeden Sensor mit zwei Linien pro Diagramm.
    2. Drei Endmaße für die beiden Bändetags und Temperatur.
      instructables ESP-01S Publishing Feinstaubsensor - Abb. 11

Schritt 10: Überprüfen der Datenveröffentlichung

Die Monitor-Seite unter Pro file ist nützlich, um zu überprüfen, ob Daten in Echtzeit eintreffen, indem man sich die Live-Daten ansieht file Abschnitt. Das Programm färbt das RGB-Pixel 2–3 Sekunden lang blau, wenn es die Daten an Adafruit IO sendet, und kehrt dann zu grün zurück.
Die Temperatur des RP2040 scheint zwischen verschiedenen CPUs stark zu variieren und stimmt wahrscheinlich nicht mit der Umgebungstemperatur überein.
Wenn dies nicht funktioniert, sollten Sie Folgendes überprüfen.

  • Wenn das RGB-Pixel bestehen bleibt oder keine Daten von Adafruit IO empfangen werden, überprüfen Sie die USB-Seriell-Konsole auf Ausgaben/Fehler. Die numerische Ausgabe für Mu auf der seriellen Konsole zeigt an, ob die Sensoren funktionieren, indem alle 2-3 Sekunden neue Zeilen gedruckt werden – siehe unten für ein Beispielample Ausgabe.
  • Im Abschnitt „Live-Fehler“ auf der Monitorseite lohnt es sich, zu überprüfen, ob Daten gesendet, aber nicht angezeigt werden.
  • Die Debug-Variable im Programm kann von 0 bis 5 gesetzt werden, um die Menge der Debug-Informationen zu steuern. Höhere Werte deaktivieren den Tupel-Druck für Mu.
  • Mit dem Programm simpletest.py können Sie nachweisen, dass die Wi-Fi-Verbindung hergestellt ist und die Konnektivität zum Internet für ICMP-Verkehr funktioniert.
  • Stellen Sie sicher, dass Sie eine aktuelle Version der Bibliothek adafruit_espatcontrol verwenden.
  • Die blauen LEDs des Maker Pi Pico auf jedem GPIO sind sehr nützlich, um sofort einen visuellen Eindruck zu bekommenview des GPIO-Zustands. Alle angeschlossenen GPIOs sind eingeschaltet, mit Ausnahme von:
    • GP26 wird ausgeschaltet, da die geglättete Lautstärketage (ca. 500mV) ist zu niedrig;
    • GP12 wird schwach leuchten, da es sich um ein PWM-Signal mit einem Arbeitszyklus von ca. 15 % handelt.
    • GP5 ist eingeschaltet, flackert aber, wenn Daten vom PMS5003 gesendet werden;
    • GP10 ist ausgeschaltet, flackert aber, wenn kleine Partikel vom B5W LD0101 erkannt werden;
    • GP11 ist ausgeschaltet, flackert aber sehr gelegentlich, es sei denn, Sie befinden sich an einem außergewöhnlich verrauchten Ort.

Die für den Plotter in Mu vorgesehene Ausgabe sieht in einem Raum etwa so aus:
(5,8,4.59262,4.87098,3.85349,0.0)
(6,8,4.94409,5.24264,1.86861,0.0)
(6,9,5.1649,5.47553,1.74829,0.0)
(5,9,5.26246,5.57675,3.05601,0.0)
(6,9,5.29442,5.60881,0.940312,0.0)
(6,11,5.37061,5.68804,1.0508,0.0)
Oder ein Raum mit sauberer Luft:
(0,1,1.00923,1.06722,0.0,0.0)
(1,2,0.968609,1.02427,0.726928,0.0)
(1,2,0.965873,1.02137,1.17203,0.0)
(0,1,0.943569,0.997789,1.47817,0.0)
(0,1,0.929474,0.982884,0.0,0.0)
(0,1,0.939308,0.993282,0.0,0.0)
Die sechs Werte pro Zeile in der Reihenfolge sind:

  1. PMS5003 PM1.0 und PM2.5 (Ganzzahlwerte);
  2. SPS30 PM1.0 und PM2.5;
  3. B5W LD0101 Rohwerte für OUT1 und OUT2.
    instructables ESP-01S Publishing Feinstaubsensor - Abb. 12

Schritt 11: Testen der Sensoren im Inneren mit Mu und Adafruit IO

Das obige Video zeigt, wie die Sensoren auf das Anzünden eines Streichholzes reagieren, um das Räucherstäbchen anzuzünden. Die PM2.5-Spitzenwerte von PMS5003 und SPS30 betragen 51 bzw. 21.5605. Der B5W LD0101 hat eine unbedeckte Optik und wird leider durch die für dieses Video verwendete Wolfram-Halogenbeleuchtung beeinträchtigt. In der Luft ist aufgrund eines früheren Testlaufs ein erhöhter Partikelgehalt zu verzeichnen.
Denken Sie daran, den Akku abzuklemmen, wenn er nicht verwendet wird. Andernfalls entlädt die Heizung des B5W LD0101 die Batterien.
https://www.youtube.com/watch?v=lg5e6KOiMnA

Schritt 12: Feinstaub im Freien in der Guy-Fawkes-Nacht

Die Guy-Fawkes-Nacht ist mit Lagerfeuern und Feuerwerken verbunden, die für ein oder zwei Abende zu einer erhöhten Luftverschmutzung beitragen können. Die obigen Diagramme zeigen die drei Sensoren, die am Freitag, den 7. November 5, kurz nach 2021 Uhr im Freien platziert wurden. In unmittelbarer Nähe gab es keine Feuerwerke, aber man konnte sie in der Ferne hören. Hinweis: Die Fliegenskala variiert zwischen den drei Diagrammen.
Die in Adafruit IO gespeicherten Feed-Daten zeigen, dass die Sensoren, die die Luft erfassen, basierend auf den SPS2.5-Zahlen bereits einen leicht erhöhten PM30-Wert aufwiesen:
2021/11/05 7:08:24PM 13.0941
2021/11/05 7:07:56PM 13.5417
2021/11/05 7:07:28PM 3.28779
2021/11/05 7:06:40PM 1.85779
Der Höchstwert lag kurz vor 46 Uhr bei etwa 11 µg pro Kubikmeter:
2021/11/05 10:55:49PM 46.1837
2021/11/05 10:55:21PM 45.8853
2021/11/05 10:54:53PM 46.0842
2021/11/05 10:54:26PM 44.8476
An anderen Stellen in den Daten gibt es kurze Spitzen, wenn die Sensoren draußen waren. Diese könnten auf Luftschwaden zurückzuführen sein von:

  • Abgase aus Gaszentralheizungen,
  • Personen, die in der Nähe rauchen und/oder
  • Gerüche/Dämpfe vom Kochen.

Prüfen Sie das Wetter, bevor Sie freiliegende Elektronik im Freien platzieren!instructables ESP-01S Publishing Feinstaubsensor - Abb. 13

Schritt 13: Partikel im Inneren beim Kochen

Die obigen Diagramme zeigen, wie die Sensoren auf das Braten von Speck und Pilzen in einer nahe gelegenen Küche mit mittelmäßiger Dunstabzugshaube reagieren. Die Sensoren befanden sich etwa 5 m vom Kochfeld entfernt. Notiz: die Y-Skala variiert zwischen den drei Diagrammen.
Die in Adafruit IO gespeicherten Feeddaten zeigen den Sensoren einen kurzzeitigen Spitzenwert des PM2.5-Werts von etwa 93 µg pro Kubikmeter basierend auf den SPS30-Zahlen:
2021/11/07 8:33:52PM 79.6601
2021/11/07 8:33:24PM 87.386
2021/11/07 8:32:58PM 93.3676
2021/11/07 8:32:31PM 86.294
Die Schadstoffe werden sich sehr von denen aus Nacharbeiten unterscheiden. Dies ist ein interessantes Beispielample der vielfältigen Quellen von Partikeln in der Luft, die wir atmen.instructables ESP-01S Publishing Feinstaubsensor - Abb. 14

Schritt 14: Öffentliche Feinstaubsensoren

Die oben grafisch dargestellten Daten stammen von öffentlichen Sensoren in der Nähe.

  • Atmen Sie London
    • Klarheitsbewegungsknoten-S
      • Tbps
      • oss
      • rl
  • OpenAQ
    • PurpleAir PA-II
      • sr
  • Londoner Netzwerk für Luftqualität
    • Referenzqualität (Met One BAM 1020 und andere)
      • FS
      • AS
      • TBR

Die TBP- und TBR-Sensoren sind fast am selben Ort und werden zusammen grafisch dargestellt, um die Korrelation zwischen dem SPS30-basierten Gerät und dem nahegelegenen Referenzgerät zu zeigen. Der SPS30 scheint an den Abenden des 5. und 6. November deutlich zu niedrige Messwerte zu liefern, obwohl davon auszugehen ist, dass der abendliche Anstieg auf Nacharbeiten zurückzuführen ist. Dies könnte an den unterschiedlichen Massen der Partikel liegen, da die für diesen Artikel verwendeten Sensoren nur das Volumen erfassen können und die Dichte der Partikel schätzen müssen, um Werte in Mikrogramm pro Kubikmeter zu erzeugen.
Der PMS5003 im PurpleAir PA-II scheint in diesem kurzen Zeitraum deutlich zu hohe PM2.5-Werte anzuzeigen. Dies könnte mit den auf den vorherigen Seiten angezeigten Ergebnissen übereinstimmen, oder es könnten andere Faktoren in der Nähe die Ursache sein.
SPS30 und PMS5003 erzeugen Daten für Partikel größer als 2.5 Mikrometer, aber auf den folgenden Seiten wird gezeigt, warum diese mit Vorsicht behandelt werden sollten.instructables ESP-01S Publishing Feinstaubsensor - Abb. 15instructables ESP-01S Publishing Feinstaubsensor - Abb. 16

Schritt 15: Vergleich der Sensoren – Partikelgröße

Die obigen Grafiken stammen aus der Laborbewertung der Partikelgrößenselektivität optischer kostengünstiger Partikelsensoren durch das finnische Meteorologische Institut. Drei Sensoren jeder Art wurden mit unterschiedlichen Partikelgrößen getestet, die auf der logarithmischen x-Achse dargestellt sind. Die farbigen Linien zeigen die berechneten Werte spezifischer Partikelgrößenbänder basierend auf den Sensorausgaben an, die Bänder zeigen die Verteilung. Die drei SPS30-Werte über 1 Mikron überlappen sich stark, was es sehr schwierig macht, sie zu unterscheiden.
Die gängigen Messwerte für Partikel sind PM2.5 und PM10. Während sich die Zahl im Namen auf die maximale Größe des Partikels bezieht, wird die Einheit in Mikrogramm pro Kubikmeter angegeben. Die kostengünstigen Sensoren können nur den Partikeldurchmesser (das Volumen) messen und müssen einige Schätzungen über die Dichte vornehmen, um die wahrscheinlichen PM2.5- und PM10-Werte zu berechnen.
Der PMS5003 verwendet einen konstanten Dichtewert, Sensirion beschreibt seinen Dichteansatz für den SPS30 wie folgt:
Die meisten kostengünstigen PM-Sensoren auf dem Markt gehen bei der Kalibrierung von einer konstanten Massendichte aus und berechnen die Massenkonzentration, indem sie die erfasste Partikelanzahl mit dieser Massendichte multiplizieren. Diese Annahme funktioniert nur, wenn der Sensor einen einzigen Partikeltyp misst (z. B. Tabakrauch), aber in Wirklichkeit finden wir im Alltag viele verschiedene Partikeltypen mit vielen unterschiedlichen optischen Eigenschaften, von „schwerem“ Hausstaub bis hin zu „leichten“ Verbrennungspartikeln. Die proprietären Algorithmen von Sensirion verwenden einen fortschrittlichen Ansatz, der eine korrekte Schätzung der Massenkonzentration ermöglicht, unabhängig vom gemessenen Partikeltyp. Darüber hinaus ermöglicht ein solcher Ansatz eine korrekte Schätzung der Größenklassen.
Die PM-Metriken umfassen alle Partikel unterhalb des Größenparameters, d. h.
PM1 + Masse aller Partikel zwischen 1.0 und 2.5 Mikrometer = PM2.5,
PM2.5 + Masse aller Partikel zwischen 2.5 und 10 Mikrometer = PM10.
PMS5003 und SPS30 können in diesem Labortest keine Partikel über 2-3 Mikrometer erkennen. Möglicherweise erkennen sie jedoch andere Partikelarten über dieser Größe.
Der B5W LD0101 erscheint nach diesem Labortest zur Messung von PM10 glaubwürdig.
instructables ESP-01S Publishing Feinstaubsensor - Abb. 17instructables ESP-01S Publishing Feinstaubsensor - Abb. 18instructables ESP-01S Publishing Feinstaubsensor - Abb. 19

Schritt 16: Vergleich der Sensoren – Design

Die Omron-Heizung (ein 100-Ohm-Widerstand +/- 2 %!) ist sichtbar, wenn der Sensor umgedreht wird. Das Design wird ausführlich in Omron: Entwicklung eines Luftqualitätssensors für Luftreiniger erläutert. Die Verwendung von Konvektion scheint grob, kann aber eine zuverlässigere Lösung sein als eine mechanische Komponente wie ein Lüfter, der eine begrenzte Lebensdauer hat und dessen Lebensdauer durch den Betrieb in einer staubigen Umgebung verkürzt werden kann. Der SPS30-Lüfter scheint so konzipiert zu sein, dass er leicht ausgetauscht werden kann, ohne das Gehäuse zu öffnen. Andere Plantower-Modelle haben dasselbe Designmerkmal.
Alle drei Sensoren sind anfällig für die Auswirkungen einer hohen relativen Luftfeuchtigkeit, die leider fälschlicherweise die PM-Werte erhöht.
Die zertifizierten Sensoren in Referenzqualität (DEFRA-Liste des Vereinigten Königreichs), die Feinstaub überwachen, verwenden keinen optischen Messansatz. Der Met One BAM 1020 arbeitet mit

  1. Abtrennung und Entsorgung von Partikeln, die größer als die zulässige Größe sind, aus der Luftampich,
  2. Erwärmung der Luft zur Kontrolle/Verringerung der relativen Luftfeuchtigkeit,
  3. Ablegen der Partikel auf einem neuen Abschnitt eines kontinuierlichen Faserbandes und
  4. Anschließend wird die Dämpfung einer Betastrahlungsquelle durch die auf dem Band angesammelten Partikel gemessen, um eine gute Schätzung der Gesamtmasse der Partikel zu erhalten.

Eine weitere gängige Technik ist die Tapered Element Oscillating Microbalance (TEOM), bei der Partikel auf einem austauschbaren Filter am freien Ende eines konischen Rohrs abgelegt werden, das am anderen Ende befestigt ist. Durch die genaue Messung der Schwingungsfrequenz des natürlich resonanten Rohrs kann die zusätzliche winzige Masse der Partikel aus der winzigen Frequenzabweichung berechnet werden. Dieser Ansatz eignet sich zur Erzeugung höherer PM-Werte.instructables ESP-01S Publishing Feinstaubsensor - Abb. 20instructables ESP-01S Publishing Feinstaubsensor - Abb. 21instructables ESP-01S Publishing Feinstaubsensor - Abb. 22instructables ESP-01S Publishing Feinstaubsensor - Abb. 23 instructables ESP-01S Publishing Feinstaubsensor - Abb. 24

Schritt 17: Weiter gehen

Nachdem Sie Ihre Sensoren eingerichtet haben und Daten an Adafruit IO veröffentlichen, können Sie die folgenden weiteren Ideen erkunden:

  • Testen Sie über einen gewissen Zeitraum jeden Raum in Ihrem Zuhause und achten Sie auf Aktivität und Belüftung. Testen Sie Ihr Zuhause beim Kochen. Testen Sie einen Grill.
  • Verwenden Sie die drei Tasten am Maker Pi Pico. Diese sind mit GP20, GP21 und GP22 verbunden, die absichtlich ungenutzt gelassen wurden, um die Verwendung von Tasten zu ermöglichen.
  • Wenn Sie in der Nähe einer öffentlichen Luftqualitätsüberwachungsstation wohnen, vergleichen Sie Ihre Daten damit.
  • Fügen Sie ein Display für die beaufsichtigte Nutzung hinzu, das Sensorwerte anzeigt. Der SSD1306 ist klein, erschwinglich und in CircuitPython einfach hinzuzufügen/zu verwenden. Siehe Instructables: Bodenfeuchtigkeitssensor
  • Mit dem Maker Pi Pico zum Example seiner Verwendung.
  • Untersuchen Sie die MQTT-Bibliothek, um zu sehen, ob alle Sensordaten in einem Stapel gesendet werden können. Dies sollte effizienter sein.
  • Integrieren Sie es auf irgendeine Weise mit dem eigenständigen IKEA Vindriktning-Luftqualitätssensor.
    • Die MQTT-Konnektivität von Soren Beye für das Ikea VINDRIKTNING zeigt, wie man dem Sensor einen ESP8266 hinzufügt, und identifiziert den Feinstaubsensor (Staubsensor) als „Cubic PM1006-ähnlich“.
    • Ein fortgeschrittenes Projekt wäre, die Hauptplatine durch eine ESP32-S2-basierte Platine mit zusätzlichen digitalen Umgebungssensoren zu ersetzen, um ein Wi-Fi-fähiges, CircuitPython-basiertes Gerät zu erstellen.
    • Dieses Gerät wird im Home Assistant-Forum besprochen: IKEA Vindriktning Luftqualitätssensor.
    • LaskaKit stellt eine ESP32-basierte Ersatzplatine für den Sensor her, damit dieser problemlos mit ESPHome verwendet werden kann.
  • Untersuchen Sie die Auswirkungen unterschiedlicher Angebotsmengentage innerhalb der zulässigen Bereiche für die Sensoren. Dies kann die Lüftergeschwindigkeit oder die Temperatur der Heizung ändern und die Ergebnisse beeinflussen.
  • Bauen Sie ein wetter- und tiersicheres Gehäuse mit sorgfältiger Konstruktion für Lufteinlass, -auslass und Luftstrom an den Sensoren vorbei. Ein an einem Geländer befestigter Schirm wurde verwendet, um die offene, freiliegende Elektronik für die Datenerfassung am Wochenende für diesen Artikel zu schützen.

Ähnliche Projekte:

  • Costas Vav: Tragbarer Luftqualitätssensor
  • Pimoroni: Eine Luftqualitätsstation im Freien mit Enviro+ und Luftdaten
  • Instructables: Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express – der
  • Enviro+ FeatherWing enthält einen Anschluss für den PMS5003. Der SPS30 kann mit I2C-Pins verwendet werden und es sind gerade genug Pins vorhanden, um auch den B5W LD0101 zu verwenden.
  • Der nRF52840 unterstützt kein WLAN und kann daher nicht allein zum Veröffentlichen von Daten über das Internet verwendet werden.
  • Adafruit Learn: 3D-gedrucktes Gehäuse für Luftqualitätssensor. – verwendet das Adafruit Feather M4 mit ESP32-basiertem Airlift FeatherWing und PMS5003.
  • Adafruit Learn: Quickstart IoT – Raspberry Pi Pico RP2040 mit WLAN – verwendet ein ESP32-basiertes Adafruit AirLift Breakout-Board.
  • GitHub: CytronTechnologies/MAKER-PI-PICO Example Code/CircuitPython/IoT – BeispielampLe-Code für Adafruit IO, Blynk und Thinkspeak.
  • Cytron: Luftüberwachung per Handy – verwendet ein ESP8266-basiertes Arduino Shield zum Senden von Daten von einem
  • Honeywell HPM32322550 Feinstaubsensor für Blynk, kein (Smartphone) erforderlich.

Mittlere Sensoren, teurer, aber mit besserer Fähigkeit, größere Partikelgrößen zu erkennen:

  • Piera Systems IPS-7100
  • Alphasense OPC-N3 und OPC-R2

Weitere Informationen:

  • Sensoren
    • Finnisches Meteorologisches Institut: Laborbewertung der Partikelgrößenselektivität optischer kostengünstiger Feinstaubsensoren (Mai 2020)
    • Gough Lui: Review, Teardown: Der Plantower PMS5003 Laser-Partikelmonitorsensor enthält einen Vergleich mit Sensirion SPS30.
    • Karl Koerner: So öffnen und reinigen Sie einen PMS 5003-Luftsensor
    • Met One Instruments, Inc., BAM-1020 EPA TSA-Schulungsvideo (YouTube) – zeigt, was drin ist und wie es funktioniert.
    • CITRIS Research Exchange: Vortrag von Sean Wihera (Clarity Movement) (YouTube) – Vortrag mit Einzelheiten zum Node-S-Sensor, der den Sensirion SPS30 verwendet.
  • Gesetzgebung und Organisationen, die sich mit der Luftqualität befassen
    • Die Luftqualitätsnormenverordnung 2010 (Großbritannien)
    • Leitlinien der Weltgesundheitsorganisation (WHO) zur Luftverschmutzung
    • British Lung Foundation – Luftqualität (PM2.5 und NO2)
  • Forschung
    • Imperial College London: Das Kontinuum der Luftverschmutzung im Innen- und Außenbereich (YouTube)
    • Grundschulkinder sammeln 2019 in London mit Rucksäcken Daten zur Luftqualität:
      • Dyson: Verschmutzung auf dem Schulweg verfolgen. Breathe London (YouTube)
      • King's College London: Umweltforschungsgruppe: Die Breathe London Wearables-Studie
    • Atmosphere Journal: Luftverschmutzung in Innenräumen durch Öfen in Wohngebäuden: Untersuchung der Einflutung von Wohnhäusern mit Feinstaub bei realer Nutzung
  • Nachrichten und Blogs
    • The Economist: Mitternachtshimmel – Polens kohlerote Hausheizung verursacht weitverbreitete Umweltverschmutzung (Januar 2021)
    • US NPR: Sich in geschlossenen Räumen aufzuhalten, schützt Sie möglicherweise nicht vor den Gefahren von Waldbrandrauch?
    • Reuters: Die Party ist vorbei: Diwali lässt Delhi in gefährlich ungesunder Luft keuchen
    • Pimoroni Blog: Die verschmutzteste Nacht des Jahres (in Großbritannien)
    • Clarity Movement: Waldbrandrauch, öffentliche Gesundheit und Umweltgerechtigkeit: Besser
    • Entscheidungsfindung durch Luftüberwachung (YouTube) – Präsentation und Diskussion zur Luftqualität im Westen der USA, insbesondere im Zusammenhang mit dem Waldbrandrauch im Jahr 2020.
    • Guardian: Daten zeigen, dass 97 % der britischen Haushalte von verschmutzter Luft betroffen sind
  • Partikelüberwachung und Data Warehousing
    • Niederlande Rijksinstituut voor Volksgezondheid en Milieu (Nationales Institut für öffentliche Gesundheit und Umwelt): Vuurwerkexperiment (Feuerwerksexperiment) 2018-2019
    • Google: Straße für Straße: So kartieren wir die Luftqualität in Europa – Straße view Autos sammeln Daten über Feinstaub und Schadstoffe. London Air Quality Network
    • Breathe London – ein Netzwerk zur Ergänzung des London Air Quality Network um „kostengünstige, einfach zu installierende und zu wartende Luftqualitätssensoren für jedermann“, das derzeit den Clarity Movement Node-S verwendet.
    • Feinstaubüberwachung der US-Botschaft in Peking (Twitter)
    • Welt-Luftqualitätsindex – sammelt Daten aus vielen verschiedenen Quellen mit Karte views und historische Daten.
    • Sensor.Community (früher bekannt als Luftdaten) – „Die Welt durch Community-gesteuerte, offene Umweltdaten zu einem besseren Ort machen.“
  • Softwarebibliotheken
    • Softwarefehler in einer Bibliothek für Partikelsensoren – der adafruit_pm25 leidet unter mindestens einem der beschriebenen Probleme, was eine Ausnahmebehandlung für read() für serielle (UART) erforderlich macht.
  • Kurse
    • HarvardX: Luftverschmutzung durch Feinstaub (YouTube) – fünfminütiges Video aus dem Kurzkurs EdX: Energie im Rahmen ökologischer Beschränkungen

Sicherheitskritische Erkennungs- und Alarmfunktionen sollten am besten kommerziellen Geräten renommierter Anbieter überlassen werden.
https://www.youtube.com/watch?v=A5R8osNXGyo
Veröffentlichen von Feinstaubsensordaten an Adafruit IO mit Maker Pi Pico und ESP-01S:
instructables-Logo

Dokumente / Ressourcen

instructables ESP-01S Veröffentlichung Feinstaubsensor [pdf] Benutzerhandbuch
ESP-01S Veröffentlichung Feinstaubsensor, ESP-01S, Veröffentlichung Feinstaubsensor, Feinstaubsensor, Materiesensor

Verweise

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind markiert *