Kampis Elektroecke

Wetterdaten mit dem Raspberry Pi aufzeichnen – Teil 1

Vor ein paar Wochen habe ich bei mir in der Schublade ein Particle Argon gefunden, welches ich vor längerer Zeit einmal bestellt und seitdem nicht genutzt habe. Es wäre natürlich schade und etwas unnötig, wenn dieses Board in der Schublade verschwindet, also habe ich mich entschlossen einen solarbetriebenen Sensorknoten für die Aufzeichnung von Wetterdaten zu entwickeln. Den kompletten Entwicklungsprozess möchte ich in einer Serie aus Blogbeiträgen festhalten.

Das fertige Gerät soll die folgenden Umweltparameter aufzeichnen:

  • Umgebungstemperatur
  • Luftfeuchtigkeit
  • Luftdruck
  • Luftqualität
  • Windgeschwindigkeit
  • Windrichtung
  • Umgebungslicht
  • UV-Anteil des Umgebungslichtes

Wobei die einzelnen Parameter über verschiedene Sensoren erfasst werden:

Parameter Sensor
Umgebungstemperatur MCP9808
Luftfeuchtigkeit BME680
Luftdruck BME680
Luftqualität BME680
Umgebungslicht BH1726
UV-Anteil VEML6070
Windgeschwindigkeit Davis Anemometer
Windrichtung Davis Anemometer

Einen Regensensor habe ich bisher außen vor gelassen, da die optischen Sensoren eine zu hohe Betriebsspannung benötigen und ich bei den analogen Sensoren nicht weiß wie gut diese funktionieren. Ggf. wird ein Regensensor in für die nächste Version eingeplant.

Der Sensorknoten soll eine Solarzelle als Spannungsversorgung besitzen. Für Tage mit wenig Sonnenlicht, bzw. für die Nächte muss die Spannungsversorgung über einen Akku erfolgen. Praktischerweise besitzt das Particle Argon bereits einen Anschluss für einen Li-Po Akku inkl. kompletter Ladeschaltung. Die Versorgung des Particle Argon kann wahlweise mit 5 V über den USB-Anschluss, bzw. über den entsprechenden VBUS-Pin oder über den 3,3 V Li-Po-Anschluss erfolgen. Wenn zur Versorgung eine Solarzelle eingesetzt werden soll, muss beachtet werden, dass die Ausgangsleistung der Solarzelle komplett vom Sonnenlicht abhängt und eine stabile Versorgung über einen möglichst großen Bereich gewährleistet sein muss.

Dem entsprechend ist es nicht sinnvoll, wenn die Ausgangsspannung der Solarzelle direkt der Versorgungsspannung entspricht, da die Ausgangsspannung der Solarzelle bei Abnahme des Lichtes sinkt und die Schaltung somit nicht mehr versorgt werden kann. Es ist daher sinnvoll eine Solarzelle mit einer höheren Ausgangsspannung zu verwenden und diese Spannung dann mit Hilfe eines DC/DC-Wandlers umzuwandeln.

Es besteht somit die Möglichkeit eine 5 V Versorgungsspannung zu erzeugen, diese auf das Board zu geben und auf dem Board wird die Versorgungspannung dann durch einen zweiten Wandler auf 3,3 V reduziert und für das Laden des Li-Po-Akkus benutzt. Eine zweite Möglichkeit wäre eine 3,7 V Spannung zu erzeugen und diese dann über den VBAT-Pin einzuspeisen. Ich habe mich für die zweite Variante entschieden, da ich damit einen DC/DC-Wandler weniger benutzen muss (die Wandlung auf 5 V entfällt).

Für die Auswahl eines geeigneten DC/DC-Wandlers ist die Stromaufnahme der gesamten Schaltung relevant:

Komponente Maximale Stromaufnahme [mA]
Mikrocontrollermodul bis zu 240 mA (Mikrocontroller und WLAN an)
MCP9808 400 µA
BME680 12 mA
BH1726 75 µA
VEML6070 250 µA
Anemometer ?

Insgesamt kommt die Schaltung also auf einen Stromverbrauch von max. 252,725 mA (ohne Anemometer). Das Anemometer wird über Pull-Up Widerstände mit dem Mikrocontroller verbunden und die Windrichtungserkennung läuft über den ADC des Mikrocontrollers. Der Stromverbrauch des Anemometers fällt somit nicht stark ins Gewicht. Für meine Betrachtungen habe ich einen Strom von 400 mA als Basis angenommen. Somit habe ich eine Sicherheit von fast Faktor 2.

Mit diesem Wissen habe ich mich für einen LT3652 DC/DC-Wandler entschieden. Dieser Chip ist für den Einsatz als Solarladechip optimiert, kann zusammen mit Li-Po-Akkus verwendet werden und erwartet eine Eingangsspannung von 4,95 – 32 V bei einem Strom von bis zu 2 A. Durch die flexible Eingangsspannung können Solarzellen mit unterschiedlichen Ausgangsspannungen genutzt werden.

Der letzte offene Punkt meiner Vorüberlegungen ist das Thema “Datenübertragung”. Die erfassten Sensordaten müssen vom Mikrocontroller aus an mindestens ein Endgerät versendet werden. Da das Mikrocontrollermodul über integriertes WLAN, Bluetooth LE und NFC verfügt, kann an diesem Punkt angesetzt werden. NFC fällt bei näherer Betrachtung raus, da die Reichweite von NFC für diesen Anwendungsfall eher suboptimal ist. Bluetooth wäre dem entsprechend eine Option, ist aber leider nur eine Punkt zu Punkt Verbindung, sprich es funktioniert nicht die Daten an zwei Geräte gleichzeitig zu senden. Als Schnittstelle für die Datenübertragung ist die Wahl somit auf WLAN gefallen. Als Protokoll soll auf MQTT aufgebaut werden, da für dieses Protokoll zahllose Implementierungen vorhanden sind und ich somit die Möglichkeit geschaffen habe, dass die Daten vom Sensorknoten an mehrere Geräte verteilt werden können. Ein Raspberry Pi kann zudem gleichzeitig als Broker und als Anzeigegerät für die Daten dienen.

Damit sind die theoretischen Vorabüberlegungen abgeschlossen. Im zweiten Teil geht es dann mit der Hardware weiter.

Alle Unterlagen zu dem Projekt findet ihr in meinem GitLab-Repository.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.