Versuchsaufbau "Autonome Zelle": Solar-Feinstaub-Wetter-Vergleichsding

solar
mppt
lifepo4

#1

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
  • Experiment #2: Vergleich der Temperatur- & Feuchte-Sensoren DHT22 & BME280
  • Experiment #3: Vergleich der Sensor-Gehäuse AirRohr und Wetterhütte
  • Forschung: #1: Kompensation SDS011-Feinstaubwerte mit Feuchtigkeit
  • Forschung: #2: Kompensation SDS011-Feinstaubwerte mit Luftdruck

Grundsätzlich: Möglichst identischer Aufbau zu üblichem AirRohr (der ESP8266 bleibt etwa aus thermischen Gründen weiterhin im AirRohr):

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 Schlafzeit bestimmen
    2.5 Meldungen senden (mqtt)
  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 3.3>5V-Konverters zwischen Messungen möglich?
  • 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


Realtime Chat
Getting delayed readings from ESP8266/MQTT
#3

Schöne Idee, hatte gestern mit @Thias auch über verschiedene Feuchte-Sensoren gesprochen. Vor ein paar Jahren hatte ich die DHT33 im Einsatz, die sind aber in den letzten Jahren sehr teuer geworden und schwer zu bekommen, daher dann die DHT22. Von denen sind mittlerweile einige ausgefallen, und ich habe den Eindruck, dass sie im oberen Feuchtebereich nicht so differenziert. Daher möchte ich auch auf den BME280 umschwenken.

Mit meinem ersten Wetterschutz hatte ich thermische Probleme mit gestauter Hitze besonders wenn die Sonne direkt draufschein. Bei der Montage meines luftdaten.info “Air Rohrs” hatte ich auch Bedenken was das Ding bei direkter Sonne macht. Da fände ich Temperaturwerte von einem “Air Rohr” vs. eine Wetterhütte, wenn auch klein, sehr spannend!


listed #4

#5

Chapeau mit Hut Wetterhütte ab.

Saubere Arbeit, Gratulation zu dieser wunderbaren Wettergerätschaft und vielen Dank fürs Teilen!


#6

Du kannst auch vom Meßknoten aus direkt Ereignisse über MQTT signalisieren, die dann als Annotationen im Grafana angezeigt werden. Nur, falls da Bedarf bestünde…


#9

Habe mich gerade über die Heizelemente gewundert, sind aber nur zum Heizen, wenn Sonne scheint und die Akkus bei Minustemperatur geladen werden, wenn ich das bei LiFePO4wered/Solar1 from Silicognition LLC on Tindie richtig verstanden habe:

  • Over temperature (58°C to 64°C) and under temperature (-3.2°C to 0.2°C) protection to prevent charging outside of recommended battery temperature range.
  • Heater control that turns on battery heating from the solar panel’s power during under temperature conditions.