Inhaltsverzeichnis:

Verwenden des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express - Gunook
Verwenden des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express - Gunook

Video: Verwenden des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express - Gunook

Video: Verwenden des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express - Gunook
Video: Welches Display sollte ich wählen für die Raspberry Pico? Pimoroni, Waveshare, SSD1306, LCD1602 (DE) 2024, November
Anonim
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express
Verwendung des Pimoroni Enviro+ FeatherWing mit dem Adafruit Feather NRF52840 Express

Das Pimoroni Enviro+ FeatherWing ist ein Board voller Sensoren, das für die Adafruit Feather-Serie von Boards entwickelt wurde. Es ist ein nützlicher Ausgangspunkt für alle, die sich für Umweltüberwachung, Luftverschmutzung und Datenmüll interessieren. Es verfügt über:

  • Bosch BME280 - Temperatur-, Druck-, Feuchtigkeitssensor;
  • Lite-On LTR-559 - Licht- und Näherungssensor;
  • SensorTech MiCS-6814 - Oxidierende Gase, reduzierende Gase und Ammoniaksensor;
  • Analoges Mikrofon - Messung der Lärmbelästigung;
  • Anschluss für Plantower PMS5003 Feinstaubsensor (nicht im Lieferumfang enthalten).

Das Trio der Metalloxidsensoren des MiCS-6814 umfasst einen weniger verbreiteten Sensor für oxidierende Gase. Dies ist nützlich wegen seiner Empfindlichkeit gegenüber Stickstoffdioxid (NO2), einem Schadstoff, der in Städten und in der Nähe von Hauptverkehrsstraßen häufig vorkommt.

Pimoroni empfehlen entweder die Adafrucht

  • Feather M4 Express (120MHz, 192kB RAM) oder
  • Feder nRF52840 Express (64MHz, 256kB RAM).

Das nRF52840 wurde für diese Anleitung ausgewählt, da es Bluetooth Low Energy (BLE) unterstützt, was dem Board die Möglichkeit gibt, Daten an ein anderes Gerät zu senden.

Der Feather und der FeatherWing werden beide mit nicht befestigten männlichen Headern geliefert. Zum Stapeln der Platinen sind Buchsenleisten erforderlich. Diese Anleitung zeigt die Verwendung von "Stacking Headers", mit denen das Feather-Board auch in ein Steckbrett eingesetzt werden kann, was das Experimentieren mit zusätzlichen Sensoren erleichtert. Die Header müssen an die Platinen gelötet werden, aber dies ist relativ einfach.

Der Enviro+ FeatherWing hat einen feinen Unterschied zu seinem Cousin, der Enviro+ Air Quality für Raspberry Pi. Die FeatherWing-Version scheint für Spannungen unter 5 V ausgelegt zu sein, sodass eine einzelne Lithium-Polymer-Batterie (LiPo) mit 3,7 V bis 4,3 V verwendet werden kann. Es verfügt über einen DC-DC-Wandler, um 5 V für das optionale PMS5003 bereitzustellen, und kann die internen Heizungen des MiCS-6814 einzeln mit Strom versorgen, um diese niedrigeren Spannungen zu bewältigen.

Das Hauptbild zeigt den Enviro+ FeatherWing, der die PM2.5- und PM10-Daten des PMS5003 anzeigt. Ein Streichholz von Swan Vestas wurde auf halbem Weg durch die Handlung gezündet, um die Kerze anzuzünden.

Ein zweiter Artikel behandelt die Darstellung des Kohlendioxidgehalts mit dem Pimoroni Enviro+ FeatherWing und Adafruit SCD-30.

Lieferungen:

  • Pimoroni Enviro+ FeatherWing - Pimoroni | Adafruit - (ein anderes ähnliches Board existiert für den Raspberry Pi)
  • Adafruit nRF52840 Feder Express - Pimoroni | Adafrucht
  • Federstapelleisten - Pimoroni | Adafruit - normale weibliche Header oder FeatherWing Doubler/Tripler könnten auch verwendet werden
  • Lot
  • Optional: Plantower PMS5003 Feinstaubsensor - Pimoroni | Adafrucht

Schritt 1: Aktualisieren des Bootloaders

Die Federplatine kann vor dem Löten überprüft werden, indem sie über USB an einen Computer angeschlossen wird. Dies ist ein nützlicher Zeitpunkt, um den Bootloader zu überprüfen - alte Versionen können unter Windows verwirrende, aber harmlose Fehler erzeugen.

Ein Doppelklick auf die Reset-Taste des Feather bewirkt, dass dem Host-Computer ein Laufwerk namens FTHR840BOOT angezeigt wird. Eine Datei namens INFO_UF2. TXT kann geöffnet werden, um die Version zu überprüfen, das folgende Beispiel zeigt den Inhalt der Version 0.2.6:

F2 Bootloader 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-525-ga1c59649) s140 6.1.1

Modell: Adafruit Feather nRF52840 Express Board-ID: NRF52-Bluefruit-v0 Bootloader: s140 6.1.1 Datum: 21. Dezember 2018

Versionen vor 0.2.9 leiden unter dem oben genannten Fehler. Der etwas fummelige Upgrade-Prozess wird in Adafruit Learn: Introducing the Adafruit nRF52840 Feather: Update Bootloader beschrieben und in den Adafruit-Foren diskutiert: Windows-Fehler beim Kopieren von CircuitPython UF2 nach FTHR840BOOT.

Schritt 2: Löten der Header

Löten der Header
Löten der Header
Löten der Header
Löten der Header
Löten der Header
Löten der Header

Beim Enviro+ FeatherWing müssen die Stiftleisten angebracht sein und beim Feather müssen die Stacking-Buchsenleisten angebracht werden.

Eine übliche Technik, um die Stifte beim Löten in die richtige Position zu bringen, besteht darin, sie in ein Steckbrett einzuführen. Bei diesem FeatherWing ist etwas Vorsicht geboten, da der Picoblade-Anschluss an der Unterseite höher ist als die Kunststoff-Abstandshalter am Header. Dies könnte dazu führen, dass die Platine unbeabsichtigt schräg verlötet wird. Das Bild oben zeigt den Winkel. Dies lässt sich leicht lösen, indem Sie die Header gleichmäßig um 2-3 mm (0,1 Zoll) vom Steckbrett anheben.

Die stapelbaren Buchsenleisten müssen senkrecht zur Platine stehen. Dies kann erreicht werden, indem man sie auf eine ebene Fläche legt und sicherstellt, dass das Federbrett fest gegen sie gedrückt wird. Das Bild oben zeigt, wie mit einem Bleistift Druck ausgeübt wird, wobei ein Hilfsgerät außerhalb des Schusses den Bleistift belastet. Einige Ersatz-Header bieten zusätzliche Hilfe bei der Einhaltung des Abstands.

Im MiCS-6814-Datenblatt steht:

Der Sensor muss in neutraler Atmosphäre reflowgelötet werden, ohne Lötflussmitteldämpfe. Der Sensor darf keinen hohen Konzentrationen von organischen Lösungsmitteln, Silikondämpfen oder Zigarettenrauch ausgesetzt werden, um eine Vergiftung der empfindlichen Schicht zu vermeiden.

Ein kleines Stück Abdeckband, das den Gassensor bedeckt, ist eine kluge Vorsichtsmaßnahme während des Lötens und der Flussmittelreinigung. Die Displayschutzfolie kann zu diesem Zeitpunkt auch angelassen werden, um die unvermeidlichen winzigen Flussmittelspritzer beim Löten mit einem Bügeleisen zu bewältigen. Das Mikrofon würde auch von einem Schutz durch Abdeckband während jeder Flussmittelreinigung profitieren.

Die langen Stiftreihen können beim Entfernen aus einem Steckbrett oder einer anderen Steckdose leicht gebogen werden. Achten Sie darauf, dass Sie das Brett nicht an einem Ende hochhebeln.

Adafruit hat eine Anleitung zum Löten von Stacking-Headern, Pimoroni hat eine allgemeine Lötanleitung, die Header enthält, und es gibt ein schönes Video auf YouTube, das zeigt, wie man Header auf eine ähnliche Platine lötet, GurgleApps: Raspberry Pi Pico Upgrade Number1 - Snazzy Header Pins!

Schritt 3: Beispiel für CircuitPython und kombinierten Plotter installieren

Beispiel für die Installation von CircuitPython und einem kombinierten Plotter
Beispiel für die Installation von CircuitPython und einem kombinierten Plotter

Wenn Sie mit CircuitPython nicht vertraut sind, sollten Sie zuerst den Leitfaden Willkommen bei CircuitPython lesen.

Die folgenden Installationsschritte basieren auf der Pimoroni / EnviroPlus-FeatherWing README und dem Getting Started Guide mit einer späteren Bibliothek für CircuitPython 6.x.

  1. Installieren Sie die neueste Version von CircuitPython (6.0.0 im Dezember 2020) von https://circuitpython.org/ - dieser Vorgang wird in CircuitPython for Feather nRF52840 beschrieben.
  2. Überprüfen Sie die Installation, indem Sie über USB eine Verbindung zur seriellen Konsole herstellen. Die REPL-Eingabeaufforderung zeigt die Version an. Die Version kann auch überprüft werden, indem boot_out.txt auf dem CIRCUITPY-Laufwerk überprüft wird.
  3. Installieren Sie diese Bibliotheken aus einem Bundle von https://circuitpython.org/libraries in das lib-Verzeichnis auf CIRCUITPY:

    1. adafruit_bus_device
    2. adafruit_bme280 (nicht adafruit_bmp280)
    3. adafruit_st7735r (nicht adafruit_st7735)
    4. adafruit_display_text
  4. Installieren Sie diese Bibliotheken aus der Datei EnviroPlus-FeatherWing-1.0.zip von GiHub: pimoroni/EnviroPlus-FeatherWing: Version 1.0 in das lib-Verzeichnis auf CIRCUITPY:

    1. i2cdevice (nicht zu verwechseln mit der i2c_device-Bibliothek von Adafruit)
    2. pimoroni_envirowing
    3. pimoroni_ltr559
    4. pimoroni_physical_feather_pins
    5. pimoroni_pms5003
    6. Installieren Sie pimoroni_circuitpython_adapter nicht von hier aus
  5. Installieren Sie die neueste Pimoroni CircuitPython-Adapterbibliothek, indem Sie die Datei _init_.py in ein neu erstelltes Verzeichnis lib/pimoroni_circuitpython_adapter auf CIRCUITPY herunterladen.
  6. Laden Sie das kombinierte Plotter-Beispielprogramm auf CIRCUITPY herunter, indem Sie auf den Link Speichern unter… auf plotters_combined.py klicken
  7. Benennen Sie eine vorhandene code.py-Datei auf CIRCUITPY um oder löschen Sie sie und benennen Sie dann plotters_combined.py in code.py um. Diese Datei wird ausgeführt, wenn der CircuitPython-Interpreter gestartet oder neu geladen wird.

Die für dieses Handbuch verwendeten Versionen waren:

  • CircuitPython 6.0.0
  • CircuitPython-Bibliothekspaket adafruit-circuitpython-bundle-6.x-mpy-20201208.zip
  • EnviroPlus-FeatherWing-Bibliothek Version 1.0
  • pimoroni_circuitpython_adapter Bibliothek 9-Dez-2020 f062036

Schritt 4: Der kombinierte Plotter

Der kombinierte Plotter
Der kombinierte Plotter

Der Kombiplotter hat vier Bildschirme:

  1. Ton und Licht.
  2. PM2,5 und PM10.
  3. Temperatur, Druck und Luftfeuchtigkeit.
  4. OX, ROT und NH3.

Der Bildschirm Feinstaub (PM) erscheint nur, wenn der Plantower PMS5003 angeschlossen ist. Das Programm prüft beim Start, ob es vorhanden ist und gibt diese Informationsmeldung aus, wenn es nicht verbunden ist:

PMS5003 Read Timeout: Fehler beim Lesen des Anfangs des Frame-Bytes

Sie haben wahrscheinlich kein pms5003 angeschlossen und können ohne Partikelprotokollierung fortfahren

Das Plotintervall wird oben im Programm auf 540 Sekunden eingestellt. Dies kann angepasst werden, um die Plotrate zu steuern.

Schritt 5: Enviro + FeatherWing Pins

Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins
Enviro+ FeatherWing Pins

Der Enviro+ FeatherWing verwendet eine große Anzahl der Federstifte. Die folgenden werden verwendet, die Namen in Klammern stammen aus dem Namensschema von Pimoroni:

  • A0 (pin5) - MiCS6814 Ammoniakgassensor
  • A1 (pin6) - MiCS8614 reduzierender Gassensor
  • A2 (pin7) - MiCS6814 Sensor für oxidierende Gase
  • A3 (pin8) - analoges Mikrofon
  • A4 (pin9) - MiCS6814 aktivieren
  • D5 (pin19) - SPI-Bus-Bildschirmbefehl
  • D6 (pin20) - SPI-Bus-Bildschirm-Chipauswahl
  • D9 (Pin21) - Hintergrundbeleuchtung (PWM)
  • D10 (pin22) - PMS5003 aktivieren
  • D11 (pin23) - PMS5003 zurücksetzen
  • D12 (pin24) - LTR-559-Interrupt (in der CircuitPython-Bibliothek nicht unterstützt)
  • SCK (pin11) - SPI-Bustakt
  • MO (pin12) - SPI-Bus Master out Slave in
  • MI (pin13) - SPI-Bus-Master in Slave-Ausgang
  • RX (Pin14) - PMS5003 senden (von Feather empfangen)
  • TX (pin15) - PMS5003 empfangen (übertragen von Feather)
  • SCL (pin18) - I2C-Takt
  • SDA (Pin 17) - I2C-Daten

Damit bleiben A5, D2/DFU und D13 frei zur Nutzung.

Schritt 6: Stromverbrauch

Energieverbrauch
Energieverbrauch

Der Stromverbrauch liegt gut innerhalb der USB-Spezifikation, auch wenn ein LiPo-Akku angeschlossen ist und aufgeladen wird. Die Nutzung ist relevanter für die Planung einer Umstellung auf Batteriestrom. Einige sehr ungefähre Messungen des Stroms sind:

  • 100mA im Leerlauf, Hintergrundbeleuchtung aus;
  • 100mA Plotter läuft, Hintergrundbeleuchtung schwach;
  • 120mA Plotter läuft, Hintergrundbeleuchtung hoch.

Das Datenblatt des Plantower PMS5003 gibt an, dass der Strom weniger als 100 mA beträgt, dies wäre zusätzlich zu den oben genannten Zahlen. Die Verwendung eines DC-DC-Wandlers beim Enviro+ FeatherWing kann diese Zahl leicht erhöhen.

Das Feather nRF52840 Express Board verfügt über ein NeoPixel (RGB LED), aber die Helligkeitsstufen für die Standardverwendung als Indikator für den Programmstatus tragen nur geringfügig zum Verbrauch bei. Das Feather Board selbst liegt unter 10mA, das FeatherWing ist das stromhungrige Board.

Schritt 7: Hinzufügen des Plantower PMS5003 Partikelsensors

Hinzufügen des Plantower PMS5003 Partikelsensors
Hinzufügen des Plantower PMS5003 Partikelsensors
Hinzufügen des Plantower PMS5003 Partikelsensors
Hinzufügen des Plantower PMS5003 Partikelsensors
Hinzufügen des Plantower PMS5003 Partikelsensors
Hinzufügen des Plantower PMS5003 Partikelsensors

Das Met One Instruments BAM 1020 ist ein weltweit verbreitetes Gerät zur Messung von Feinstaub in Städten. Es gibt eine Reihe günstigerer Geräte und der Enviro+ FeatherWing wird mit einem Anschluss für den Plantower PMS5003 Feinstaubsensor geliefert.

Der Pimoroni-Bibliothekscode für diesen Sensor erscheint derzeit fragil. Eine einfache und schnelle Verbesserung besteht darin, Ausnahmen im Programm abzufangen. Das Programm plotters_combined.py kann verbessert werden, indem dies oben hinzugefügt wird:

pimoroni_pms5003 importieren

Und diese Zeile in der while-Schleife ersetzen

# Messwerte nehmen

pms_reading = pms5003.read()

mit:

# Messwerte nehmen

try: pms_reading = pms5003.read() außer pimoroni_pms5003. ChecksumMismatchError: print("Prüfsummenfehler")

Schritt 8: Weiter gehen

Weitergehen
Weitergehen

Sobald Sie den Enviro+ FeatherWing in Betrieb genommen haben, gibt es eine Reihe von Bereichen zu erkunden.

  • Hinzufügen eines externen Temperatursensors. Der Temperatursensor im BME280 unterliegt sowohl der internen Erwärmung als auch der Erwärmung durch benachbarte Komponenten und soll die anderen BME280-Sensoren kalibrieren. Der Wert kann verarbeitet werden, um ein ungefähres Maß für die Umgebungslufttemperatur zu liefern, aber es gibt viele erschwingliche, überlegene externe Optionen.
  • Kalibrieren der Sensoren. Der Druck ist einfach mit Wetterbeobachtungen oder kurzfristigen Vorhersagen (diese werden auf 0 ft über NN sein), der Rest ist schwierig.
  • Korrigieren des PMS5003-Ausgangs für die relative Luftfeuchtigkeit. Eine Formel finden Sie auf Seite 8 des PDF-Dokuments EPA: PurpleAir PM2.5 U. S. Correction and Performance While Smoke Events 4/2020
  • Hinzufügen von Code zum Senden der Sensordaten über Bluetooth Low Energy an andere Geräte.
  • Untersuchen, wie der Stromverbrauch minimiert werden kann. Einige der Sensoren haben Freigabeleitungen, diese können die Sensoren von der Stromversorgung trennen oder sie in einen Energiesparmodus versetzen. Bei Sensoren mit einer Aufwärmzeit ist eine periodische Abtastung möglicherweise nicht praktikabel.
  • Kauf, Anpassung oder Herstellung eines Gehäuses, das für die Montage im Freien geeignet ist, mit sorgfältig entworfenem Innenluftstrom und geeigneten Vorkehrungen für direkte Sonneneinstrahlung. Der Gassensor MiCS-6814 von SensorTech funktioniert am besten mit einem konstanten Luftstrom mit geringer Geschwindigkeit.
  • Untersuchung des Einflusses von Wetterbedingungen auf die Verschmutzung am Boden. Hinweis: Inversionen sind signifikant.
  • Umstellung auf Batteriestrom oder Solar mit Batteriestrom. Solarenergie ist eine größere Herausforderung als das einfache Hinzufügen eines Photovoltaik-Solarmoduls, siehe den Abschnitt Design Notes in Adafruit Learn: USB, DC & Solar Lipoly Charger.
  • Hinzufügen weiterer Sensoren zur Messung üblicher Schadstoffe wie Ozon (O3) und Schwefeldioxid (SO2) oder Treibhausgase wie Kohlendioxid (CO2). Einige wenige Sensoren messen „eCO2“und sind nicht für die Messung von atmosphärischem CO2 geeignet. Adafruit verkauft jetzt den preiswerten Sensirion SCD-30 NDIR CO2-Sensor auf einer Platine mit STEMMA QT i2c-Anschlüssen.
  • Wenn Sie das Senden der Daten über das Internet mithilfe von Wi-Fi untersuchen möchten, scheint das FeatherS2-Board mit dem ESP32-S2-Mikrocontroller mit dem Enviro+ FeatherWing kompatibel zu sein. Bei den Analog-Digital-Wandlern (ADC) ESP32-S2 gibt es eine problematische Einschränkung, die eine ordnungsgemäße Messung der Gassensoren verhindert. Weitere Informationen finden Sie in den Adafruit-Foren: Feder-ADC-Vergleich einschließlich 2,6 V begrenztem ESP32-S2.

Ähnliche Projekte:

  • Adafruit Learn: Vergleich und Experimente mit Sensoren für brennbare Gase
  • Adafruit Learn: TMP36 Temperatursensor

Weiterlesen:

  • Richtlinien zur Luftverschmutzung der Weltgesundheitsorganisation (WHO)
  • British Lung Foundation - Luftqualität (PM2,5 und NO2)
  • Breathe London - ein Netzwerk zur Ergänzung des London Air Quality Network mit "erschwinglichen, einfach zu installierenden und zu wartenden Luftqualitätssensoren für jedermann", die derzeit den Clarity Node-S verwenden.
  • World Air Quality Index - sammelt Daten aus vielen verschiedenen Quellen mit Kartenansichten und historischen Daten.
  • Atmosphere Journal: Indoor Air Pollution from Residential Stoves: Untersuchen des Überschwemmens von Feinstaub in Häuser während des realen Gebrauchs - dies verwendet die Raspberry Pi-Version des Enviro+-Boards.
  • Gesetzgebung: Die Luftqualitätsnormen 2010 (UK)
  • Pimoroni-Blog: Die am stärksten verschmutzte Nacht des Jahres (in Großbritannien)
  • The Economist: Mitternachtshimmel – Polens kohlebefeuerte Hausheizung verursacht weit verbreitete Umweltverschmutzung (Januar 2021)
  • BBC News: Verkehrslärm beeinträchtigt die Fähigkeiten von Singvögeln (Lärmbelastung)
  • Softwarefehler in einer Partikelsensorbibliothek - ein Blick auf die Sorgfalt, die erforderlich ist, um das serielle Protokoll PMS5003 robust zu analysieren.