Versuchsaufbau "Autonome Zelle" #1 & #2: Solar-Feinstaub-Wetter-Vergleichsding

Idee

Selbst-überwachter Solarbetrieb eines Feinstaub-AirRohrs mit unterschiedlichen Temperatur/Feuchte-Sensoren jeweils im AirRohr und in einer Wetterhütte.

  • Experiment #1: Eigenüberwachung eines Solarsystems
    • Spannungen, mittels ADS1115
      • Akku,
      • Solarpanel
      • 3.3V/I²C-Rail
      • 5V-Verbraucher-Rail
      • Akku-Heizung
    • Stromstärke, mittels INA219 (noch nicht in aller Doku enthalten)
      • Akku (Lade- und Entladerichtung)
    • Temperatur, mittels BME280
      • am Akku
  • Experiment #2: Vergleich der Temperatur- & Feuchte-Sensoren DHT22 & BME280
    • je 1x in AirRohr
    • je 1x in Wetterhütte
  • Forschung #1: Auswertung der Temperaturen in Gehäuse AirRohr und Wetterhütte
  • Forschung #2: Kompensation SDS011-Feinstaubwerte mit Feuchtigkeit, evtl Luftdruck?

Die Überlegung “Möglichst identischer Aufbau zu üblichem AirRohr (der ESP8266 bleibt etwa aus thermischen Gründen weiterhin im AirRohr)” wurde zu Autonome Zelle #2 hinsichtlich der ESP-Position verworfen: ESP im festen Gehäuse ist vmtl. deutlich solider und der deep-sleep sollte Eigenerwärmung ohnehin weitgehend vermeiden.

Status

2019-01-18: Release v0.92
2019-01-09: Gesamtaufbau in einfacher Ausführung für Laborbetrieb fertig.
2018-12: Forschung Einzelkomponenten.

Hinweise

  • Positionierung/Abstand der Akku-Thermometer zum Akku: Sind wa gespannt!
  • Separates XLR-Kabel zum Nachladen = sehr praktisch.
  • USB-Serielle funktioniert auch bei Akkubetrieb (ESP8266 hat wohl Schutzdiode).
  • BME280 im AirRohr benötigt die alternative I2C-Adresse (selber Bus wie Akku-BME).
  • Laderegler mittels Widerstand auf maximalen Ladestrom von 2.7/3A eingestellt.
  • Aufpassen: Die “Heizdecken” in Serie ergeben 2x5=10V, Vmax könnte aber bei bis zu 18V liegen! Zweck-optimistische Annahme: Wenn Solarstrom >10V wird sollte Heizphase schon abgeschlossen sein.

Schaltplan

Komponenten

Stromkiste

Wetterhütte

Feinstaub-AirRohr

Software

source-code

Repository: https://git.cicer.de/autonome-zelle/autonome-zelle-sfwv/

pseudo-code

  1. Messung: endet zum Messzeitpunkt
    1.1 Feinstaub (5s)
    1.2 3x BME280
    1.3 2x DHT22
    1.3 1x ADS1115
  2. Sendung: beginnt ab Messzeitpunkt
    2.1 WLAN-Verbindung herstellen
    2.2 Zeit holen (ntp)
    2.3 Messzeitpunkt bestimmen
    2.4 Meldungen senden (mqtt)
    2.5 Schlafzeit bestimmen
  3. Schlafen

Aufbereitung in Grafana

Übersicht im Dashboard: “Autonome Zelle: Vgl. DHT/BME & AirRohr/Wetterhütte”

Ausgewählte Panels:

Serielle Ausgabe

115200 bits/s

[sfwv] Hello & welcome, let's wait 3 seconds ... done.
[SDS011] Firmware version [year.month.day]: 16.11.21
[SDS011] Mode: query, State: sleeping
[BME1/Rohr] testing 0x76 on D3 & D4
[BME1/Rohr] setting forced mode, 1xtemp/1xhum/1xpress oversampling,filter off
[BME2/Hütte] testing 0x77 on D5 & D6
[BME2/Hütte] setting forced mode, 1xtemp/1xhum/1xpress oversampling,filter off
[BME3/Akku] testing 0x76 on D5 & D6
[BME3/Akku] setting forced mode, 1xtemp/1xhum/1xpress oversampling,filter off
-------------------------------------------------------------------------------
[SDS011] starting particle measurement for 5s ... done.
[SDS011] PM10 = 857.0, PM2.5 = 730.2, State: sleeping
[BME1/Rohr] measurement done.
[BME2/Hütte] measurement done.
[BME3/Akku] measurement done.
[BME1/Rohr] t= 19.5°C, h= 41.1RH, p=1019.7hPa
[BME2/Hütte] t= 19.0°C, h= 40.4RH, p=1019.9hPa
[BME3/Akku] t= 19.4°C, h= 52.7RH, p=1019.0hPa
[DHT1/Rohr] t= 18.7°C, h= 42.2RH
[DHT2/Hütte] t= 18.3°C, h= 43.8RH
[ADS1115] Solar: 0.13V, Heizung: -0.01V, Akku: 3.26V, Verbraucher:5.03V
[WLAN] Connect to MyHomeWLAN .... got IP-address 192.168.1.100, RSSI: -73
[ntp] Starting UDP on 2390
[ntp] Sending NTP packet ... packet received, length=48
[ntp] epoch time is 1547170170, UTC time is 1:29:30
[ntp] timestamp of measurement (last hh:m1) in epoch: 1547170140
[mqtt0] sending {"h_bme_t":19.04,"h_bme_h":40.3623,"h_bme_p":1019.881,"h_dht_t":18.3,"h_dht_h":43.8,"bme_t":19.49,"bme_h":41.06641,"bme_p":1019.721,"dht_t":18.7,"dht_h":42.2,"p10":"857.0","p25":"730.2","time":1547170140} ... success.
[mqtt1] sending {"adc0":0.13275,"adc1":-0.00525,"adc2":3.257625,"adc3":5.025375,"s_bme_t":19.35,"s_bme_h":52.74902,"s_bme_p":1019.017,"wifi_rssi":-73,"time":1547170140} ... success.
[WLAN] milliseconds I'll now go to sleep: 20000.00
-------------------------------------------------------------------------------
[SDS011] starting particle measurement for 5s ... done.
...

Aussichten/Ideen

  • Forschung: Messmethode luftdaten.info (15s Leerlauf vor 5s Messung?)
  • Kalibrierung von BME/DHT-Sensoren
  • Clock etablieren, um Schlafzeit nach Sendung zu bestimmen & weniger ntp-Abfragen.
  • RTC für deep-sleep?
  • Buffer-Konzept für gescheiterte Übermittlungen
  • Absenkung der Messfrequenz bei niedriger Akkuladung
  • ESP: deep-sleep zwischen Messungen (ohne dass VCC für SDS011 derweil auf ON geht)
  • Abschaltung des Stroms vorm 3.3>5V-Konverters zwischen Messungen möglich -> TPS2552DBV[T,R] (nicht DRV[T,R]) oder NCP380 o.ä.
  • Messung der Stromstärke (ACS712, INA219)
  • ESP: Eigene Messung der Versorgungsspannung möglich?

Dank

An @roh und @weef für die Beratung in zahlreichen elektrischen und elektronischen Fragen sowie an die oben im Sourcecode genannten Personen und Projekte für die jeweiligen Programm-Komponenten.

siehe auch

3 Likes