Aktionen

Workshop Luftdaten

Aus exmediawiki

  • Feinstaub-Messtation selber bauen
  • Luftqualität messen und visualisieren
  • Aus den übermittelten Daten generiert luftdaten.info eine sich ständig aktualisierende Feinstaub-Karte.


https://luftdaten.info/feinstaubsensor-bauen/
https://www.hackair.eu/

Einkaufsliste

https://luftdaten.info/feinstaubsensor-bauen/

  • NodeMCU ESP8266, CPU/WLAN, Reichelt, 8,50€
  • SDS011 Feinstaubsensor (früher PPD42NS), Reichelt, ca. 30€
  • DHT22, Temperatur & Luftfeuchtigkeit (optional), Reichelt, ca. 5€
  • (kurzes) Micro-USB-Kabel Reichelt
  • Wetterschutz, z.B. Bauhaus
  • Steckbrückenkabel f/f
  • Plastikschlauch für Anschluss an Sensor (Durchmesser?)
  • USB-Ladegerät 5V, Reichelt



Vorab kann man sich hier die Videoanleitungen für einen groben Überblick anschauen
https://luftdaten.info/faq/


Vorgehensweise

https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen


USB2serial Treiber installieren


Identifizieren der Version des NodeMCU - wir haben den älteren CP2102 (V2)

Achtung, der Link zum Treiber von Lilicon Labs ist veraltet, hier ein aktueller:
https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

Wenn man das runtergeladete .dmg file entpackt, findet man darin einen Folder "Legacy MacVCP Driver"

About the Legacy Driver
This is the 4.x Mac VCP Driver for CP210x parts. This supports MacOS X version 10.9 and up. This is provided in case you need support for the older versions of MacOS X because version 5.0 supports 10.11 and up. The legacy driver does not have GPIO support.


hilfreicher Blogpost_:
https://www.silabs.com/community/interface/forum.topic.html/cp210x_usb_to_uartb-LJMf

If it's installed, there should be a "SiLabsUSBDriver.kext" file in /Library/Extensions with a date created of June 16, 2017.
Irgendwo stand man muss es zwei mal installieren...

Jetzt müsste der Treiber mal instlliert sein. Und jetzt?


Firmware einspielen mit der Arduini IDE

Arduino öffnen (ich benutze mal Arduino 1.8.5)

siehe https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen#firmware-einspielen
Erweiterung für ESP8266 gemäß Anleitung zur Installation mit Boards Manager installieren.

Unter Werkzeuge > Port erscheint jetzt /dev/cu.SLAB_USBtoUART
Das heißt der Treiber für das Board wurde wohl erkannt bzw. funktioniert
Bei Werkzeuge > Board das entsprechende Board auswählen (bei mir: generic ESp8266 modue)
Arduino IDE beenden

Port identifizieren
Unter Werkzeuge > Port den richtigen Port auswählen

   MAC: Beim CP2102 wäre das auf der /dev/cu.SLAB_USBtoUART, für den CH340G ist es der Port /dev/cu.wchusbserialXXXXXXXX.
   Windows: Windows COM3. Wenn dies nicht der richtige ist, dann einfach den nächsten in der Liste auswählen.
   Linux: /dev/ttyUSB0

Dann Werkzeuge > Boardinformation

Bei mir erscheint:
BN: Unbekanntes Board
VID: 10C4
PID: EA60
SN: Laden Sie irgendeinen Sketch hoch, um sie abzurufen
Arduino IDE wieder schließen.


Firmware kompilieren und übertragen



Ging irgendwie alles nicht, letztendlich habe ich esptool mit pip installiert wie hier beschrieben:

https://alexbloggt.com/nodemcu-einfuehrung/

Successfully built esptool pyaes Installing collected packages: pyserial, pyaes, ecdsa, esptool Successfully installed ecdsa-0.15 esptool-2.8 pyaes-1.6.1 pyserial-3.4


pffffffff ahhhhh
letztendlich hab ich jetzt dies hier befolgt und über Kommandozeile esptool installiert, das jetzt in Dokumente liegt
https://diyprojects.io/esptool-update-of-firmware-nodemcu-esp8266-on-macos/#.Xo3pXm7grMU

per kommandozwile nochmal gucken wo es drainhängt
ls /dev/tty.*
Antwort: /dev/tty.SLAB_USBtoUART

sudo python esptool.py --baud 921600 --port /dev/tty.SLAB_USBtoUART write_flash -fm dio 0x00000 ~/Downloads/latest_de-1.bin
hat irgendwas gemacht, scheint funktioniert zu haben !?

  • esptool.py v3.0-dev
  • Serial port /dev/tty.SLAB_USBtoUART
  • Connecting........_
  • Detecting chip type... ESP8266
  • Chip is ESP8266EX
  • Features: WiFi
  • Crystal is 26MHz
  • MAC: 84:0d:8e:92:ed:29
  • Uploading stub...
  • Running stub...
  • Stub running...
  • Changing baud rate to 921600
  • Changed.
  • Configuring flash size...
  • Auto-detected Flash size: 4MB
  • Compressed 522736 bytes to 365461...
  • Wrote 522736 bytes (365461 compressed) at 0x00000000 in 5.5 seconds (effective 755.7 kbit/s)...
  • Hash of data verified.
  • Leaving...
  • Hard resetting via RTS pin...
  • (base) VerenaFichsMBP2:esptool heavythinking$


Wie hier beschrieben https://github.com/opendata-stuttgart/sensors-software/tree/master/airrohr-firmware hat das teil jetzt ein eigenes WiFi network erzeugt und ich kann es in der Liste sehen....

im Arduino Serial Monitor erscheint:

  • 0⸮~?⸮4⸮Ҷ�⸮⸮�OCA⸮⸮⸮airRohr: NRZ-2020-129/DE
  • mounting FS...
  • failed to open config file.
  • output debug text to displays...
  • Connecting to Freifunk-disabled
  • ........................................
  • output debug text to displays...
  • Starting WiFiManager
  • AP ID: airRohr-9628969
  • Password:
  • scan for wifi networks...
  • AP Password is:
  • Starting Webserver... (IP unset)

Hardware zusammenbauen

Liste Bauteile

  • 1 x NodeMCU (V2) mit fertig aufgespielter Firware
  • 1 x Feinstaubsensor SDS011
  • 1 x Sensor Temperatur & Luftfeuchtigkeit DHT22
  • Verbindungskabel, Länge 20cm (sog. Dupont-Kabel, Buchse auf Buchse)
  • Kabelbinder
  • Steckernetzteil USB, USB-Verlängerungskabek
  • Schlauch...
  • 2 X Marley-Bogen


Siehe zum Einstieg https://luftdaten.info/feinstaubsensor-bauen/#komponenten-schaltung
Diese Anleitung bezieht sich jedoch auf Version 3 der NodeMCU (V3), wir haben jedoch V2 – daher ist die Pinbelegung geringfügig anders als hier abgebildet...

Zu den unterschiedlichen Pin-Layouts siehe auch:
https://github.com/opendata-stuttgart/meta/wiki/Pinouts-NodeMCU-v2,-v3
oder besser gleich hier:
https://github.com/opendata-stuttgart/meta/wiki/Zusammenbau-der-Komponenten-(Schaltung)

Anleitung Elektronische Schaltung


Der Temperatur- und Luftfeuchtigkeitssensor DHT22 sowie der Feinstaubsensor SDS011 werden mit Dupont-Kabeln an den Chip (NodeMCU) angeschlossen.

Anschluss des DHT22 Sensors an den NodeMCU


Esp8266-nodemcu-pins-DHT22.jpg


Der DHT22 hat 4 Pins, davon werden jedoch nur 3 genutzt und mit dem NodeMCU verbunden.
Pins sind von LINKS nach RECHTS nummeriert, Vorderseite ist das "Gitter".

In diesem Fall ist die Pinbelegung für V2 und V3 gleich.

  • DHT22 Pin 1 -> Pin 3V3 (3.3V)
  • DHT22 Pin 2 -> Pin D7 (GPIO13)
  • DHT22 Pin 3 -> unused
  • DHT22 Pin 4 -> Pin GND

Anschluss des SDS011 an den NodeMCU (V2)

Anders als auf der Website von Luftdaten.info abgebildet, sind für die Version 2 als VU und G die Anschlüsse VIN und GND neben dem MicroUSB-Anschluß zu nutzen.


Mechanischer Aufbau