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
- Spannungen, mittels ADS1115
- 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
- Solarzelle 12V 20Watt Polikristallin (23€ - 28€, monokristallin & etwas leichter)
- Solarregler LiFePO4wered/Solar1 (18$)
- 2x LiFePo4-Akku A123 ANR26650M1B 2500mAh 3,3V (20€)
- 2x Batteriehalter für 26650 (5€)
- 2x Electric Heating Pad EXP-R15-1268, 10cm x 5cm, 5V/1A (14€)
- Temp./Feuchte/Druck-Sensor BME280 (6€)
- vierfach-Voltmeter ADS1115 16Bit I2C (5€)
- Spannungswandler 3.3 > 5V
- Leergehäuse Spelsberg TG ABS 2015-9-to (21€)
- Druckausgleichselement (5€)
- Kabelverschraubung
- XLR-Buchse
- 2x XLR-Stecker
- diverse Widerstände & Stückchen Lochrasterplatine (Vorwiderstände zum ADS1115)
- $Schottky-Diode
- dicke Litze, Acrylplatten-Reste, Netzwerkkabel, Heißkleber
Wetterhütte
- allseits luftdurchlässiges Gehäuse TFA Schutzhülle für Außensensor (10€)
- Temp./Feuchte/Druck-Sensor BME280 (6€) - mit alternativer I2C-Adresse
- Temp./Feuchte-Sensor DHT22/AM2302 (2€)
Feinstaub-AirRohr
- gemäß luftdaten.info-Einkaufsliste (ca. 30€)
- BME280 (6€)
Software
source-code
Repository: https://git.cicer.de/autonome-zelle/autonome-zelle-sfwv/
- v0.0.92, 19.1.2019: https://git.cicer.de/autonome-zelle/autonome-zelle-sfwv/blob/master/autonome-zelle-sfwv.ino
pseudo-code
- Messung: endet zum Messzeitpunkt
1.1 Feinstaub (5s)
1.2 3x BME280
1.3 2x DHT22
1.3 1x ADS1115 - 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 - 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
- Forumsbeitrag von @weef zum Solarladeregler LiFePO4wered/Solar1:
Modified 3A 1S LiFePO4 solar MPPT loader based on CN3801