Aufbau einer Wetterstation

Aufbau einer Wetterstation

Willkommen zu dieser Anleitung zum Bau einer eigenen Wetterstation! In diesem Projekt werden wir Schritt für Schritt eine voll funktionsfähige Wetterstation bauen, wie wir sie im

Erasmus+-Projekt vetskilling aufgebaut haben.

Mit dieser Wetterstation kannst du verschiedene Wetterbedingungen, wie ...

  • Temperatur,
  • Luftfeuchtigkeit,
  • Luftdruck,
  • Luftgüte und
  • Luftqualität.

messen.

Das Ziel dieses Projekts ist es, dir nicht nur Einblick in die Funktionsweise einer Wetterstation zu geben, sondern auch deine technischen Fähigkeiten in den Bereichen Elektronik, Programmierung und Datenanalyse zu entwickeln.

Wir beginnen damit, die benötigten Materialien zu sammeln, und bauen dann die Wetterstation Schritt für Schritt zusammen und programmieren sie.

 

Was ist eine Wetterstation

Eine Wetterstation misst verschiedene meteorologische Daten, um das Wetter zu überwachen und vorherzusagen. Sie erfasst unter anderem Temperatur, Luftfeuchtigkeit, Luftdruck, Windgeschwindigkeit und -richtung sowie Niederschlag. Diese Daten werden von Sensoren erfasst und oft in Echtzeit an Wetterdienste oder Endnutzer übermittelt, um Wettervorhersagen zu verbessern oder lokale Wetterbedingungen zu überwachen. Wetterstationen können sowohl manuell betrieben als auch automatisiert sein und finden Anwendung in der Landwirtschaft, im Umweltmonitoring oder im privaten Bereich.

Ziel des Projektes

Das Ziel des Projekt vetskilling ist es, an vielen Schulen in Europa kleine, einfach aufgebaute Wetterstationen zu installieren und die Wetterdaten über das Internet an einen gemeinsamen Server  zu senden.

Die Wetterdaten der einzelnen Wetterstationen werden auf einer Webseite dargestellt und somit kann man live das Wetter an vielen Orten in Europa einsehen.

 

 

 

Welche Wetterdaten werden gemessen

Mit den beiden Sensoren BME 280 und ENS160 werden folgende Daten gemessen:

  • Lufttemperatur
  • Luftfeuchte
  • Luftdruck
  • Luftqualität
  • äquivalenter Kohlendioxidanteil - eCO2
  • flüchtige organische Bestandteile in der Luft - TVOC

 

 

 

Benötigte Materialien

Liste der benötigten Materialien

An Materialien werden benötigt:

  • ein Raspberry Pi Pico (H) mit Baseshield

  +      =

  • ein BME280-Sensor ...

           ... zur Messung von Lufttemperatur, Luftfeuchte und Luftdruck

  • ein ENS160-Sensor ...

        ... zur Messung der Luftqualität (AQI), äquivalent CO2 Wert, ...

  • Lora-E5 Modul ...

        ... zum Versenden der Messdaten über Funk

  • Batterien

          ... zur Stromversorgung der Wetterstation

  • TPL5111 Nano Board

        ... zum Energiesparen

  • Gehäuse

       ... zum Schutz der Elektronik und zum Aufhängen

  • Kunststoffplatte + Schrauben

           +   

      ... zur Montage der Bauteile ins Gehäuse (Platte: 160mm x 56mm x 3 ~ 5mm)

 

  • Kabel zur Verbindung der Sensoren und dem Baseshield

oder  

 

 

Werkzeuge

Zum Aufbau der Wetterstation werden zusätzlich noch folgendene Materialien / Werkzeuge benötigt:

  • ein Computer mit der Software Thonny zum Programmieren des Rasperry Pi Pico (H)

 

               + =   

 

 

  • zusätzliche Werzeuge, wie eine Lötstation oder Zangen

 

                

 

Softwareanforderungen

Zur Programmierung des Rasperry Pi Pico (H) wird ein Computer mit der Thonny-Softwareumgebung benötigt.

 

               + =  

 

 

Um die Messdaten über Funk zu übertragen wird noch ein Zugang zum the THE THINGS NETWORK benötigt.

Dies ist ein LoRaWAN Netzwerk, welches es ermöglicht die lokalen Messdaten über Funk an einen Server zu senden und von dort über das Internet abzurufen.

 

Schritt-für-Schritt Anleitung

Schritt 1: Software installieren

Installation der Programmierumgebung

Der Raspberry Pi Pico (H) kann in unterschiedlichen Programmierumgebungen (IDEs) programmiert werden.

Eine sehr bekannte und weit verbreitete Programmierumgebung ist die Arduino IDE.

In diesem Projekt werden wir den Raspberry Pi Pico (H) in MircoPython programmieren.

Hierfür eignet sich hervorragend die Entwicklungsumgebung Thonny.

Sie kann auf der Internetseite:

https://thonny.org/

für unterschiedliche Computer heruntergeladen werden.

Damit Thonny richtig funktioniert muss auf dem Computer die Progarmmiersprache Python installiert sein.

 

 

Vorbereitung des Raspberry Pi Pico (H)

Damit der Raspberry Pi Pico (H) in MicroPython programmiert werden kann, muss der Compiler noch auf den Raspberry Pi Pico (H) geflasht werden.

Dies kann man mithilfe der Thonny IDE tun oder die entsprechende Firmwaredatei .uf2 auf der Downloadseite

https://micropython.org/download/RPI_PICO/

herunterladen.

 

Schritt 2: Vorbereitung der Komponenten

Anschließen der Sensoren


Im ersten Schritt schließen wir die beiden Sensoren an den Raspberry Pi Pico (H) an. Beiden Sensoren benutzen das I2C-Protokoll und können somit sehr einfach angeschlossen werden.

 

Die einfachste Verbindung der beiden Sensoren geschieht,  wie im folgenden Bild dargestellt mit einem qwicc-Kabel.

Alternativ kann die Verbindung auch gelötet werden. Dazu löten wir Verbindungsleitungen zwischen die Kontaktepunkte der beiden Platinen:

  • VIN - positive Spannungsversorgung
  • GND - Ground (negative Spannungsversorgung)
  • SCK - Clocksignal des I2C-Buses
  • SDI - Datensignal des I2C-Buses

 

Die Verbindung mit dem Baseshield kann mittels einem qwicc-Grove-Adaperkabel erfolgen.

Alternativ kann auch diese Verbindung gelötet werden, wenn wir an einem Ende eines Grove-Kabels den Stecker abschneiden und das Kabel wie eine Sensorplatine anlöten:

  • VIN - rotes Kabel
  • GND - schwarzes Kabel
  • SCK - gelbes Kabel
  • SDI - gelbes Kabel

Am Baseshield können die Sensoren an folgende Anschlüsse eingesteckt werden:

Softwaretest der Sensoren

Den korrekten Anschluss der Sensoren an den Raspberry Pi Pico (H) können wir sehr einfach über eine Suche am I2C-Bus durchführen.

Findet der Raspberry Pi Pico (H) am I2C-Bus Sensoren gibt das Programm die zugehörigen Deviceadressen aus.

Der BME280-Sensor hat die Adressen 0x76 oder 0x77.

Der ENS160-Sensor hat die Adressen 0x52 oder 0x53.

 

Findet der Raspberry Pi Pico (H) keine Sensoren am I2C-Bus wird das ebenfalls vom Programm ausgegeben.

Ein häufiger Fehler ist die Verwechslung der SCK- und SDI-Leitungen!

Anschluss des LoRaWAN-Funkmoduls

Zur Weitergabe der Messdaten ist am seriellen Anschluss des Raspberry Pi Pico (H) ein LoRaWAN-Funkmodul angeschlossen. Mit dieser Funktechnologie lassen sich die Daten über eine größere Reichweite und mit geringerem Stromverbrauch senden als beispielsweise mit WLAN.

Die Programmierung des Funkmoduls findet über die serielle Schnittstelle mittels AT-Befehle statt.

Eine Beschreibung der einzelnen Befehle findet man in der Lora-E5 Befehlsspezifikation.

 

 

 

Stromverbrauch Funkmodul

Der Stromverbrach des Funkmoduls ist der mit Abstand größte bei der Wetterstation. Somit ist es sinnvoll die Sende- und Empfangszeit so gering wie möglich zu halten.

Daher sollte man sich im Vorfeld genau überlegen was man sendet und wie oft!

 

Vorbereitung des Timer-Boards

Zum Energiesparen ist ein TPL5111-Board von Adafruit verbaut. Nachdem eine Messung durchgeführt und über Funk versendet wurde, gibt der Raspberry Pi Pico (H) dem TPL5111-Board ein Signal. Daraufhin schaltet dieses für eine eingestellte Zeit die Stromversorgung ab. Nach Ablauf dieser Zeit schaltet das TPL5111-Board die Stromversorgung wieder ein und es wird eine neue Messung  durchgeführt.  

Damit die Steuerung zwischen dem Raspberry Pi Pico (H) und dem TPL5111-Board funktionieren kann müssen die beiden Teile folgendermassen verbunden werden:

 

TPL5111-Board   ->   Rasberry Pi Pico (H)   cable colour
VDD   ->   VSYS (PIN 39)   red
GND   ->   GND (PIN 38)   black
Delay   ->   not connected    
ENout   ->   3V3EN (PIN 37)   orange
DONE   ->   I/O-PIN (PIN 34)   brown

 

Über den einstellbaren Widerstand lässt sich die Zeit verändern, die das TPL5111-Board die Stromversorgung unterbricht.

Um die Abschaltzeit einfach einstellen zu können, gibt Texas Instruments (Hersteller des TPL-Bausteins) im Datenblatt folgende Angaben:

Zwischen den Anschlüsse DELAY und GND auf dem TPL5111-Board lässt sich der Widerstand messen.

 

Auf der Rückseite des TPL5111-Boards können die Batterieanschlüsse (+) und (-) angelötet werden.

 

 

 

 

 

Schritt 3: Zusammenbau der Wetterstation

Für den Zusammenbau der Wetterstation werden die einzelnen Komponenten auf die  Kunststoffplatte aufgeschraubt.

Vorderseite

 

Rückseite

 

Bei der Montage ist darauf zu achten, dass tiefen Elemente, wir der Raspberry Pi Pico (H) und die Batterien auf der Vorderseite montiert werden.

 

Nach dem Zusammenbau können wir einen ersten umfangreicheren Test der Wetterstation machen. Hierzu laden wir das Micropythonprogramm

  • Sensortest_BME280_ENS160.py

und die dazugehörigen Bibliotheken

  • PiicoDev_BME280.py
  • PiicoDev_ENS160.py
  • PiicoDev_Unified.py

auf den Raspberry Pi Pico (H) und starten es.

Wenn alles korrekt verdrahtet ist erscheinen in der Ausgabe dann alle fünf Sekunden aktuelle Sensordaten.

 

 

 

 

Aber es werden nicht nur die Daten der Sensoren per Funk verschickt, sondern auch noch eine Länder-/Stadtkennung und um welche Wettersstation es sich handelt! Jede Schule kann mehrere kleine Wetterstationen betreiben.

Wie schon bei der Beschreibung des Funkmoduls aufgeführt, wird aufgrund des Energieverbrauchs des Funkmoduls versucht, die zu übertragenen so klein wie möglich zu machen.

Daher werden die Sensordaten vor dem versenden bearbeitet, zum Beispiel werden die  Kommata bei den Senordaten entfernt.

Zum Schluss werden alle Daten zu einer großen Stringvariablen zusammengefasst und dem Funkmodul zum versenden übergeben.   

 

Das folgende Bild zeigt, wie der Raspberry Pi Pico (H) die Daten verarbeitet und zum Schluss als Stringvariable an das Funkmodul weiterleitet.

Die Cleaned Data ist der Datenstring, welcher das Funkmodul ans TTN sendet.

Hier als Beispiel beginnend mit

  • 2 als Länderkennung Deutschland,
  • 1 als Kennzeichnung der ersten Wetterstation
  • 11843 Temperaturwert ohne Punkt
  • die weiteren Sensorwerte (Luftdruck, Luftfeuchte, ...)

 

 

 

The Things Network

TTN - The Things Network

Das The Things Network (TTN) ist ein globales, kostenloses Funknetzwerk, das auf dem LoRa-Funkstandard basiert. Es hat unter anderem das Ziel, allen Interessierten eine Infrastruktur für IoT-Anwendungen zur Verfügung zu stellen, ohne dass diese selbst einen großen Hardwareaufwand betreiben müssen.

In vielen Fällen reicht es schon aus, wenn ein TTN-Gateway, also eine Basisstation, in Reichweite ist. Dieses empfängt die zu messenden Daten und leitet sie eigenständig an einen TTN-Server weiter. Von dort können die Messdaten weltweit über das Internet abgerufen werden.

Ist kein Gateway verfügbar, kann man selbst eines installieren und somit die Abdeckung von TTN vergrößern.

 

Ob in seiner Nähe ein TTN-Gateway vorhanden ist kann man über die Webseite:

 

https://ttnmapper.org/

herausfinden.

 

Da in diesem Projekt Wetterdaten an vielen verschiedenen Berufsschulen in zahlreichen europäischen Städten gesammelt werden sollen, bot es sich an, TTN in die Datenübertragung miteinzubeziehen.

 

 

 

Schritt 4: Anmelden bei TheThingsNetwork

Um Sensordaten über das TTN zu senden und zu empfangen muss man sich einmal bei dem TTN registrieren und einen Account erstellen.

https://www.thethingsnetwork.org/

Für die kostenlose Registrierung benötigt man eine gültige E-Mailadresse. Während des Registrier-ungsprozesses erstellt man einen Benutzernamen und ein eigenes Passwort.

 

Applikation anlegen

Um nun Daten über das TTN zum empfangen muss man zuerst eine Applikation anlegen und dieser wird im Anschluss dann das physikalische Gerät welches die Daten sendet zugeordnet.

 

Hierzu drückt man oben auf den +Add-Button und wählt aus, dass man eine neue Applikation anlegen möchte. Im nachfolgenden Fenster vergibt der Applikation dann einen aussagekräftigen Namen.

 

 

Mit Drücken auf den Create application Button im unteren Bereich wird die Applikation angelegt und man kann neue Geräte hinzufügen.

Neues Gerät - Wetterstation registrieren

In der erstellten Applikation kann man jetzt physikalische Geräte, z.B. unsere Wetterstation hinzufügen. Hierzu betätigen wir den + Register end device - Button in der Mitte des Fensters.

 

 

Im nachfolgenden Fenster wählen wir aus, dass wir das Endgerät manuell eintragen:

 

Eine JoinEUI hat der Hersteller schon mit weiteren IDs im Modul gespeichert. Mit einem einfachen AT-Befehl (siehe LoRa-E5 AT Command Spezifikation)  können wir sie aus dem Modul auslesen und wenn nötig auch verändern!

 

 

 

 

 

 

 

 

 

Mit der ausgelesenen, danach eingetragenen und betätigten JoinEUI kommt direkt im Anschluss noch die Eingabe der gleichzeitig mit ausgelesenen DevEUI.

Nach Eingabe der DevEUI lässt man sich eine AppKey generieren. Dieser, im TTN generierte, wird später im Raspberry Pi Pico (H) Programm eingetragen und dient zur Authentifizierung, dass die Wetterstation Daten ans TTN senden darf.

Daher ist es wichtig, sich den AppKey zu kopieren oder zu notieren!!!

Nach Eingabe einer End Device ID kann das Gerät / die Wetterstation im TTN registriert werden. 

 

 

Testen der Wetterstation

Damit die Wetterstation sich gegenüber dem TTN authentifizieren kann, muss der generierte AppKey noch im main.py Programm des Raspberry Pi Pico (H) eingetragen werden.

 

Ist dies geschehen, kann getestet werden, ob Daten von der Wetterstation zum TTN übertragen werden.

Hat die Wetterstation Sensordaten an das TTN versendet kann man sich bei TTN einloggen und im Applikationsfenster sehen, ob die Daten empfangen wurden.

 

 

Hierbei zeigen die Zeilen Forward uplink data message die empfangene Daten da.

 

Daten bei TTN decodieren

Aus den empfangenen Daten kann nicht direkt abgelesen werden, woher sie kommen oder welche Temperatur an dem Ort gerade gewesen ist. Die Daten müssen erst dekodiert werden.

 

Dazu muss am linken Rand in der TTN Applikation der Punkt Payload formatters ausgewählt werden.   

Im Anschluss wählen wir den Punkt UPLINK aus, da wir die Daten dekodieren wollen, die wir empfangen.

 

 

Zum Versenden wurde das Datenpaket vom Raspberry Pi Pico (H) in eine Stringvariable (Character) umgewandelt. Um nun aus dem übertragenen Datenstrom eine Dezimalzahl zu generieren müssen wir aus den einzelnen Datenbytes die Character in wieder in Dezimalzahlen umwandeln.

Aus dem Vergleich der gesendeten Daten und den im TTN empfangenen Daten können wir nun den Decoder programmieren.

Gesendete Daten:

Empfangene Daten:

 

Vergleich:

  • Gesendet: 2 (dezimal)     
  • Empfangen: 32 (hexadezimal)

 

Jetzt kann unter Zuhilfenahme einer ASCII-Tabelle eine mögliche Decodierung vorgenommen werden.

Eine 32 in hexadezimaler Darstellung ist in dezimaler Darstellung eine 50.

Um jetzt von 50 auf 2 zu kommen subtrahieren wir 48.

Mit dieser Vorgehensweise bearbeiten wir jetzt alle Bytes des empfangenen Datenpakets.

Desweiteren teilen wir das Datenpaket wieder in die vorher bekannte Struktur

  • Länderkennung
  • Nummer der Wetterstation
  • und nachfolgend die Sensordaten

auf.

 

Anwenden des Decoders

Um die empfangenen Daten in TTN direkt lesen zu können wir den Decoder innerhalb der Applikation von TTN auch direkt anwenden.

Hierzu kopieren wir den erstellten Decoder ...

 

und fügen ihn in der Applikation

  • linke Seite End Devices auswählen und dann
  • oben Payload formatters.

in das Feld Formatter code ein.

 

Um ihn zu testen können wir darunter die den Bytestream, den wir empfangen haben einfügen und den Decoder testen.

 

Herzlichen Glückwunsch - deine Wetterstation ist fertig und sendet Daten ins TheThingsNetwork!

 

In weiteren Tutorials zeigen wir, wie man die Daten von dort abholt und graphisch aufbereitet! 

Fazit

Was wurde erreicht?

Herzlichen Glückwunsch - deine Wetterstation ist nun fertig und sendet Daten ins TheThingsNetwork!

 

In weiteren Tutorials zeigen wir, wie man die Daten von dort abholt und graphisch aufbereitet!

 

Was hast  wir alles erreicht:

  • wir haben die elektronischen Bauteile einer Wetterstation - Mikrocontroller, Sensoren und ein Funkmodul erfolgreich miteinander verbunden
  • wir haben den Mikrocontroller, ein Raspberry Pi Pico (H) so programmiert, dass er die Sensoren ausliest, die Daten verarbeitet und an ein Funkmodul weiterleitet
  • wir haben uns erfolgreich bei TheThingsNetwork (TTN) angemeldet, eine Applikation erstellt und unsere Wetterstation hinzugefügt
  • wir haben einen Decoder für das TTN geschrieben, um unsere Daten wieder in eine lesbare Form darzustellen 

 

Mögliche Erweiterungen

Es gibt jetzt noch viele interessante Möglichkeiten die Wetterstation zu erweitern.

Man kann zum Beispiel die Stromversorgung mit einem kleinen Solarmodul ausrüsten oder weitere Sensoren für Regen oder Windgeschwindigkeit hinzufügen.

Einfach mal ausprobieren ....

Anhang

Applikation anlegen

  • Het arrangement Aufbau einer Wetterstation is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Auteur
    Vetskilling
    Laatst gewijzigd
    2025-05-29 09:01:29
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding 4.0 Internationale licentie.

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Toelichting
    Aufbau einer Wetterstation
    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
  • Downloaden

    Het volledige arrangement is in de onderstaande formaten te downloaden.

    Metadata

    LTI

    Leeromgevingen die gebruik maken van LTI kunnen Wikiwijs arrangementen en toetsen afspelen en resultaten terugkoppelen. Hiervoor moet de leeromgeving wel bij Wikiwijs aangemeld zijn. Wil je gebruik maken van de LTI koppeling? Meld je aan via info@wikiwijs.nl met het verzoek om een LTI koppeling aan te gaan.

    Maak je al gebruik van LTI? Gebruik dan de onderstaande Launch URL’s.

    Arrangement

    IMSCC package

    Wil je de Launch URL’s niet los kopiëren, maar in één keer downloaden? Download dan de IMSCC package.

    Voor developers

    Wikiwijs lesmateriaal kan worden gebruikt in een externe leeromgeving. Er kunnen koppelingen worden gemaakt en het lesmateriaal kan op verschillende manieren worden geëxporteerd. Meer informatie hierover kun je vinden op onze Developers Wiki.