Unsere Wetterstation auf der Terrasse misst die aktuellen Werte für Temperatur, Luftfeuchte und Luftdruck und erfüllt damit einen Auftrag der besten aller Ehefrauen.

Dieser Artikel ist Teil einer vierteiligen Serie:

  1. Wetterstation — der Prototyp
  2. Wetterstation
  3. Wetterstation — die Auswertung
  4. Wetterstation — das erste Jahr

Die Wetterstation besteht aus vier Elementen:

  1. Dem Controller zuständig für die Erfassung der Sensordaten und die Übertragung der Messwerte zum Server in einem unauffälligem wasserdichten Gehäuse.
  2. Den Sensoren zur Erfassung der Temperatur, der Luftfeuchte und des Luftdrucks in einem offenem lichtgeschütztem Gehäuse.
  3. Einer Sonde zur Temperaturmessung außerhalb der Gehäuse im Schatten.
  4. Einer Photovoltaikanlage zur Stromversorgung (nicht im Bild).

 

Schematischer Aufbau der Wetterstation

 

Controller (im geöffneten Gehäuse) und Sensoren (ohne Gehäuse)

 

Die tatsächliche Umsetzung der Wetterstation unterscheidet sich in einigen Punkten vom Prototyp. Wer die Unterschiede und die Gründe für die Änderungen nachvollziehen möchte, kann dies im letzten Abschnitt tun.

Module

Die Elektronik für die Wetterstation habe ich modular umgesetzt. Das hat den Vorteil, dass ich schrittweise vorgehen und jedes Modul einzeln testen konnte. Ausserdem erleichtert die Aufteilung in verschiedene Module den Einbau in verschiedene Gehäuse (wasserdicht, lichtgeschützt usw.).

Anschluss der Versorgungsspannung und die Signal-LED

Die Versorgungsspannung für die Wetterstation liefert der USB-Anschluss einer Photovoltaikanlage. Diese beträgt geregelte 5 V und wird direkt mit dem Mikrocontroller verbunden. Der Controller erzeugt mit seinem effizienten Spannungsregler die 3,3 V-Versorgungsspannung für die weiteren Komponenten.

Wenn eine weniger geregelte Spannungsquelle oder ein Mikrocontroller mit einem ineffizienten Spannungsregeler zum Einsatz kommen sollen, ist es ratsam, auf diesem Modul den optionalen externen Spannungsregeler aus dem Schaltplan zu realisieren.

Die Signal-LED ist mit einem Vorwiderstand versehen und kann vom Mikrokontroller direkt über GPIO2 angesteuert werden.

Dieses Modul ist mit der sechspoligen Anschlussleiste mit dem Modul des Mikrocontrollers verbunden. Die Belegung ist von oben nach unten:

① +5 V   ② GND   ③ nc   ④ nc   ⑤ GPIO2   ⑥ +3,3 V

Modul 1:
Anschluss der Versorgungsspannung und die Signal-LED

Mikrocontroller mit Anschlüssen für die anderen Module und Sensoren

Der Mikrocontroller hat eine Verbindung zwischen dem Reset-Pin und GPIO16 über einen Widerstand. Diese ist notwendig, damit der Mikrocontroller in den Tiefschlaf gehen und wieder daraus erwachen kann. Wird der Mikrocontroller nicht in den Tiefschlaf geschickt, kann diese Verbindung über den Schalter getrennt werden.

Die I²C-Busleitungen werden über je einen Pull-up-Widerstand mit Vcc verbunden. Diese Verbindung kann über den Jumper getrennt werden, falls an den I²C-Bus Module mit eigenen Pull-up-Widerständen angeschlossen werden sollen.

Über Klemmbuchsen sind die Anschlussleitungen Vcc, GND und 1-Wire für den externen Temperatursensor DS18B20 (GPIO12) herausgeführt. Ebenfalls über eine Klemmbuchse kann der Anschluss des optionalen Sensors DHT22 (GPIO0) erfolgen. Die Belegung der Klemmbuchsen ist von oben nach unten:

① GPIO12   ② GND   ③ +3,3 V   ④ nc   ⑤ nc   ⑥ GPIO0

Dieses Modul ist mit den jeweils sechspoligen Anschlüssen mit dem Modul für die Versorgungsspannung und die Signal-LED und dem Modul für den schaltbaren I²C-Bus-Extender verbunden. Die Belegung ist oben und unten von links nach rechts:

oben:  ① +5 V   ② GND   ③ nc   ④ nc   ⑤ GPIO2   ⑥ +3,3 V

unten:  ① GND   ② GPIO13   ③ SDA   ④ SCL   ⑤ nc   ⑥ + 3,3 V

Modul 2:
Mikrocontroller mit Anschlüssen für die anderen Module und Sensoren

Schaltbarer I²C-Bus-Extender

Der I²C-Bus-Extender ermöglicht deutlich längere Kabelverbindungen am I²C-Bus. Jeder Extender benötigt im Betrieb etwa 15 Milliampere Strom, die dauerhaft verbraucht werden, auch wenn keine Kommunikation auf dem Bus stattfindet. Daher ist auf diesem Modul mit einem Logic-Level-MOSFET ein Schalter realisiert mit dessen Hilfe der Mikrocontroller den erweiterten I²C-Bus über GPIO13 schalten kann.

Über Klemmbuchsen werden die Endpunkte für den erweiterten I²C-Bus angeschlossen. Dafür wird ein CAT5-Twisted-Pair-Kabel verwendet wobei die Signalleitung SDA mit Vcc und die Signalleitung SCL mit GND verdrillt werden. Die Belegung der Klemmbuchsen ist von oben nach unten:

① +3,3 V   ② LCL   ③ LDA   ④ GND

Dieses Modul ist mit der sechspoligen Anschlussleiste mit dem Modul des Mikrocontrollers verbunden. Die Belegung ist von oben nach unten:

① +3,3 V   ② nc   ③ SCL   ④ SDA   ⑤ GPIO13   ⑥ GND

Modul 3:
I²C-Bus-Extender (schaltbar)

I²C-Bus-Extender Endpunkt und Sensoranschluss

Dieses Modul terminiert den erweiterten I²C-Bus und hat eine sechspoligen Anschlussleiste für den Sensor BME280 und den optionalen Sensor DHT22.

Über Klemmbuchsen und dem CAT5-Kabel wird die Verbindung zum Controller-Modul und zum I²C-Bus-Extender-Modul hergestellt. Die Belegung der Klemmbuchsen ist von oben nach unten:

① GPIO0   ② nc   ③ LCL   ④ LDA   ⑤ GND   ⑥ +3,3 V

Dieses Modul ist mit der sechspoligen Anschlussleiste mit den Sensoren verbunden. Die Belegung ist von oben nach unten:

① GPIO0   ② nc   ③ SCL   ④ SDA   ⑤ GND   ⑥ +3,3 V

Modul 4:
I²C-Bus-Extender Endpunkt und Sensoranschluss
Module 1 bis 3 montiert im Deckel des wasserdichten Gehäuses

Bauteile

  • [1x] Mikrocontroller WeMOS D1 mini
    • kleine Bauform
    • effizienter Spannungsregler für 3,3 V
  • [2x] P82B715 I²C-Bus-Extender
    • erweiterte Kabellänge bis zu 50 Meter
  • [1x] IRLZ44N Logic-Level-MOSFET
    • geringe Schaltspannung
    • nicht optimal um 3,3 V zu schalten
  • [1x] Sensor für Temperatur DS18B20
  • [1x] Sensor für Temperatur, Luftfeuchte und Luftdruck BME280
  • [1x] Sensor für Temperatur und Luftfeuchte DHT22 (optional)
  • weitere elektronische Bauelemente
    • [4x] 22 Ω-Widerstand
    • [4x] 47 Ω-Widerstand
    • [2x] 100 Ω-Widerstand
    • [1x] 1 kΩ-Widerstand
    • [3x] 4,7 kΩ-Widerstand
    • [1x] 1 MΩ-Widerstand
    • [1x] LED (rot)
    • [3x] 1-fach DIP-Schalter
    • [1x] 2-polig Jumper

Die Pull-up-Widerständen für den I²C-Bus sind nur für das Mikrocontrollermodul aufgeführt, da die Sensoren die notwendigen Pull-up-Widerstände bereits enthalten. Ebenfalls fehlen die Bauteile für den Spannungswandler auf dem Versorgungsmodul, da die regulierte 5 V-Spannungsversorgung diesen überflüssig macht.

Schaltplan

Bitte unbedingt die Verbesserungen der Schaltung und den aktualisierten Schaltplan beachten!

  • Die im Schaltplan enthaltene Echtzeituhr wird bisher noch nicht verwendet.
  • Die im Schaltplan enthaltene Messstrecke für Helligkeit und UV Strahlung ist noch nicht umgesetzt.
  • Im Schaltplan ist ein optionaler externen Spannungswandler enthalten, der gegebenenfalls realisiert werden kann.

Änderungen im Vergleich zum Prototypen

  • Statt des Mikrocontrollers NodeMCU verwende ich einen Mikrocontroller WeMOS D1 mini. Dieser Controller hat einen effizienten integrierten Spannungswandler und macht einen externen Spannungswandler überflüssig.
  • Statt des Sensors BMP280 verwende ich den Sensor BME280. Dieser Sensor kann zusätzlich auch die Luftfeuchte messen und macht den Sensor DHT22 optional.
  • Zusätzlich verwende ich einen I²C-Bus-Extender. Der I²C-Bus ist grundsätzlich nur für kurze Entfernungen spezifiziert. In der Praxis erlaubt der Bus oft bis zu 30 Zentimeter Distanz zwischen beiden Endpunkten. Um Sensoren aber an verschiedenen Stelle mit variablem Abstand unterbringen zu können, erlaubt der I²C-Bus-Extender Distanzen von bis zu 100 Metern.

Die notwendige Software der Wetterstation für unsere Terrasse beschreibe ich in einem weiteren Beitrag.