Workshop Luftdaten
Aus exmediawiki
Version vom 8. April 2020, 17:04 Uhr von Verena (Diskussion | Beiträge)
- Feinstaubsensor 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
- Variante 1 mit der Arduino IDE: https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen#variante-1-arduino-ide
- Variante 2 mit Kommandozeile: https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen#variante-2-kommandozeile
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)