Skip to main content
shopping_basket Warenkorb 0
Einloggen

Drahtlose Wetterstation mit Pitotrohr-Anemometer

awong
0
Bei diesem Projekt bauen wir eine Arduino-basierte, drahtlose Wetterstation, die in der Lage ist, die Umgebungstemperatur, die relative Luftfeuchtigkeit und die Windstärke zu messen. Diese Umweltdaten werden per Bluetooth an einen Computer gesendet.

Parts list

Qty Produkt Part number
1 Arduino Due Entwicklungsboard 769-7412
1 Pmod TMP3 Umgebungstemperatursensor 136-8066
1 Pmod HYGRO Humidity/Temperature Sensor 136-8072
1 Pmod DPG1 Differential Pressure Gauge 134-6485
1 Pmod BLE Bluetooth Low Energy Module 175-2110

Zunächst müssen wir die von der Wetterstation gemessenen Elemente bestimmen. Zwei gängige Messungen sind die Temperatur und die relative Feuchtigkeit. Um die „gefühlte“ Temperatur (d. h. man fühlt sich bei kühlem Wind kälter) zu erhalten, müssen wir auch die Windgeschwindigkeit in der Wetterstation messen. Zur Messung der Windgeschwindigkeit verwenden wir ein Rohranometer, da es wenig Strom verbraucht und preisgünstiger ist.

Wir wollen die Messungen auf einem Smartphone, Tablet oder PC ansehen. Dazu bauen wir eine drahtlose Wetterstation. Die verfügbaren Drahtlostechnologien sind WLAN, Mobilfunknetze und Bluetooth. Sowohl WLAN als auch 3G/4G erfordern jedoch, dass das Gerät mit einem bestehenden Netzwerk verbunden ist, und verbrauchen eine große Menge Strom. Aus diesem Grund entscheiden wir uns für Bluetooth Low Energy (BLE).

Als Steuerungsplattform kommt ein Arduino Due zum Einsatz. Er hat eine Digitalspannung von 3,3 V und ist mit fast allen I2C- oder SPI-Sensoren und -Aktuatoren kompatibel. Wir verwenden eine 9-V-Batterie, um die Wetterstation mit Strom zu versorgen.

Sensoren in der Wetterstation

Um Zeit zu sparen, erfassen wir die Messungen über Digilent Pmod-Sensormodule. Diese Sensormodule können direkt an den Arduino Due angeschlossen werden. Es wird keine externe Schaltung benötigt. Durch die Verwendung von Digilent Pmod-Sensoren können wir alle Sensoren in der drahtlosen Wetterstation haben, was sehr praktisch ist.

Pmod TMP3 digitaler Temperatursensor

Der Pmod TMP3 ist ein Umgebungstemperatursensor, der einen großen Bereich von Umgebungstemperaturen (-40 °C bis +125 °C) mit einer Auflösung von bis zu 0,0625 °C (12 Bit) messen kann. Die Standardgenauigkeit beträgt ±1 °C. Der Sensor kann über den 3V3-Pin des Microcontrollers mit Strom versorgt und ohne sonstige externe Hardware betrieben werden. Der Pmod TMP3 kommuniziert über die I2C-Schnittstelle mit dem Arduino Due. Wir können die untenstehende Verdrahtungsanleitung befolgen und ihn so an den Arduino Due anschließen.

Pmod TMP3 Arduino Due
SCL (1) SCL (21)
SDA (2) SDA (20)
GND (3) GND
VCC (4) 3V3

Es gibt 8 verschiedene I2C-Adressen im Bereich 0x48 bis 0x4F. Wenn alle Jumper in den Standardpositionen belassen werden, ist die I2C-Adresse des Geräts 0x48. Die Standardauflösung beträgt 9 Bit. Wir können die gewünschte Auflösung im Konfigurationsregister der Adresse 0x01 einstellen (Microchip TCN75A-Datenblatt Abschnitt 5.3.2) und den Adresszeiger auf 0x00 stellen, was die Adresse der gespeicherten Daten ist. Um die Temperatur auszulesen, schreiben wir in das Register der Adresse der gespeicherten Daten (0x00). Die Temperaturdaten kommen in zwei Bytes und sind im Zweierkomplementformat angeordnet. Wir verwenden die nachfolgende Gleichung, um die Messdaten in die Umgebungstemperatur umzuwandeln (Microchip TCN75A-Datenblatt Abschnitt 5.3 and 5.3.1)

Gleichung: Umgebungstemperatur = Messdaten (in Dezimal) x 2-4

Datenübertragungen werden durch eine Startbedingung (Start) eingeleitet, gefolgt von einer 7-Bit-Geräteadresse und einem Lese-/Schreibbit. Ein Acknowledge (ACK) vom Slave bestätigt den Empfang jedes Bytes. Jeder Zugriff muss durch eine Stop-Bedingung (Stop) beendet werden. (Microchip TCN75A-Datenblatt Abschnitt 4)

Pmod HYGRO digitaler Feuchtesensor

Der Pmod HYGRO ist ein Sensor für relative Feuchte, der die relative Feuchtigkeit der Umgebung mit einer Auflösung von bis zu 14 Bit bestimmen kann. Die Genauigkeit liegt bei ±2 %. Der Sensor kann über den 3V3-Pin des Microcontrollers mit Strom versorgt und ohne sonstige externe Hardware betrieben werden. Der Pmod HYGRO kommuniziert über die I2C-Schnittstelle mit dem Arduino Due. Wir können die nachfolgende Verdrahtungsanleitung befolgen. Da sowohl der Pmod TMP3 als auch der Pmod HYGRO über die I2C-Schnittstelle kommunizieren, können sie in Reihe geschaltet werden (einen Pmod mit dem Arduino verbinden und dann den zweiten Pmod an den ersten anschließen).

Pmod HYGRO Arduino Due
SCL (3) SCL (21)
SDA (4) SDA (20)
GND (5) GND
VCC (6) 3V3

Der einfachste Weg, die Kommunikation zwischen Feuchtesensoren und Arduino Due herzustellen, ist die Verwendung der Bibliothek ClosedCube_HDC1080.h

Pmod DPG1 Differenzdrucksensor und Pitot-Statikrohr

Das Pitot-Statikrohr ist ein aerodynamisches Koaxialrohr, dessen innerer Teil offen ist und in die Windrichtung zeigt, während der äußere Teil kleinere Löcher in seiner Oberfläche hat. Das Außenrohr gibt den statischen Druck an, während das Innenrohr den Stagnationsdruck (Druck, der durch den direkt in das Rohr wehenden Wind entsteht) anzeigt.

Pitot Tube Types

Quelle: https://commons.wikimedia.org/w/index.php?curid=3301685

Die Differenz zwischen beiden Werten ergibt den dynamischen Druck, aus dem die Geschwindigkeit der Fluidströmung (Wind) über folgende Gleichung (Bernoulli-Gleichung) bestimmt werden kann:

Bernoulli's equationBernoulli's equation, where v equals

Die Windgeschwindigkeit an sich hat für uns keine Bedeutung, daher kodieren wir die Geschwindigkeit auf Grundlage der Beaufort-Skala.

Beaufort-Zahl

Windge-schwin-digkeit (mph)

Windge-schwin-digkeit (km/h)

Windge-schwin-digkeit (Knoten)

Beschreibung

Windeffekte an Land

0 <1 <1 <1 Windstille Keine Luftbewegung, Rauch steigt senkrecht empor
1 1-3 1-5 1-3 Leichter Zug Windbewegung in Rauch sichtbar
2 4-7 6-11 4-6 Leichte Briese Wind ist auf nackter Haut zu spüren. Blätter rascheln
3 8-12 12-19 7-12 Mäßige Brise Staub und loses Papier werden aufgewirbelt. Kleine Äste beginnen sich zu bewegen
4 13-18 20-28 13-16

Moderate Breeze

Dust and loose paper are raised. Small branches begin to move
5 19-24 29-38 17-21 Frische Briese Kleine Bäume beginnen zu schwanken
6 25-31 39-49 22-27 Starke Briese Große Äste sind in Bewegung. Pfeifen in Freileitungen zu hören. Schirmbenutzung ist schwierig
7 32-38 50-61 28-33 Steifer Wind Ganze Bäume in Bewegung. Schwierigkeiten beim Laufen gegen den Wind
8 39-46 62-74 34-40 Stürmischer Wind Zweige und kleine Äste brechen von Bäumen. Autos kommen von der Straße ab
9 47-54 75-88 41-47 Sturm Größere Äste brechen von Bäumen ab. Leichte strukturelle Schäden
10 55-63 89-102 48-55 Schwerer Sturm Bäume abgebrochen und entwurzelt. Erhebliche strukturelle Schäden
11 64-72 103-117 56-63 Orkanartiger Sturm Weitreichende Schäden an Gebäuden und Vegetation
12 >73 >117 >64 Orkan Erhebliche und weitreichende Schäden an Gebäuden und Vegetation


Components needed to create pitot-static tube

Um ein Pitot-Statikrohr zu bauen, benötigen wir zwei Plastikrohre mit unterschiedlichem Durchmesser. Bei diesem Projekt verwenden wir eine 2,5-ml-Spritze und eine leere Kugelschreibermine, um das Rohr zu fertigen. Außerdem benötigen Sie einen Cutter, einen Bohrer und etwas Klebstoff, der aus Zweikomponenten-Polyesterkitt besteht, um die Rohre abzudichten und das äußere Rohr aerodynamisch zu machen (mehr dazu später).

Drill holes in syringe as indicated

Schneiden Sie zunächst die Spitze der Spritze ab und bohren sie einige Löcher an einem ihrer Enden. Bohren Sie zwei weitere Löcher in die Spritze für die kleineren Röhren: Ein Loch entlang der Achse und ein Loch in der Nähe des Fußes. Verwenden Sie einen 3-mm-Bohrer (Durchmesser der kleineren Röhre). Orientieren Sie sich am nachfolgenden Bild, die Löcher sind rot markiert:

Basic construction of Pitot tube

Schneiden Sie zwei Stücke von der Kugelschreibermine ab und stecken Sie diese in die Spritze, wie in der Abbildung unten gezeigt. Denken Sie daran, dass das längere Stück an beiden Enden aus der Spritze herausragen sollte.

 

Construction of Pitot tube with putty to seal holes

Dichten Sie jetzt mit Kitt die Löcher ab, in denen die kleinen Röhrchen (Kugelschreibermine) in die Spritze eingeführt werden. Dichten Sie auch die Rückseite der Spritze ab. Verwenden Sie ein Stück Kitt, um die Spitze der Spritze aerodynamischer zu machen. Das nachfolgende Bild zeigt das geklebte Rohr.

Construction of Pitot tube - completed

Gehen wir nun zum dynamischen Luftdrucksensor über. Wir verwenden den Digilent Pmod DPG1 als Differenzdrucksensor. Der Pmod DPG1 kann eine sehr kleine Druckdifferenz (0–10 kPa) zwischen seinen beiden Eingängen erkennen.

Der Pmod DPG1 kann mit dem Arduino Due über SPI mit SPI-Modus 0 kommunizieren. Die folgende Tabelle zeigt die Verdrahtungsanleitung.

Pmod DPG1 Arduino Due
SS (1) 2
MISO (3) MISO
SCK (4) SCK
GND (5) GND
VCC (6) 3V3

Wenn der Kleber getrocknet ist, können Sie das Pitot-Statikrohr durch kleinere Gummischläuche mit einem Pmod DPG1 verbinden. Diese kleineren Schläuche sind im Lieferumfang des Pmod DPG1 enthalten.

Pitot tube connected to tubes

Wir können folgende Gleichung zur Berechnung der Druckdifferenz verwenden:

Pmod DPG1 Equations

Um den montierten Pmod DPG1 und das Pitot-Statikrohr zu kalibrieren, können Sie bei ruhender Luft einige Messungen vornehmen und die gemessene Druckdifferenz im Serial Monitor anzeigen lassen. Dadurch können Sie jeglichen Offset aus den Messungen eliminieren.

Hinweis: Der Pmod DPG1 kann nur einen bestimmten Bereich von Druckdifferenzen aufnehmen, ohne das interne piezoresistive Silizium zu beschädigen. Wenn der Pmod so auf einer flachen Oberfläche liegt, dass sich der Messwertaufnehmer über der Leiterplatte befindet, ist die oberste Düse P1 (Empfangsdüse zur Erfassung von schwankendem Druck) und die unterste Düse P2 (Druckreferenzdüse für P1). Der Druck bei P1 sollte zwischen 0 und 10 kPa über dem Druck bei P2 liegen.

Bluetooth-Übertragung

Wir senden die von der Wetterstation gesammelten Daten per Bluetooth an ein beliebiges Empfängergerät (z. B. Tablet, Laptop oder Desktop-PC). Dazu schließen wir das Pmod BLE, ein Low Energy Bluetooth-Modul, an einen der UART-Ports des Arduino Due an (z. B. Serial1):

Pmod BLE Arduino Due
RXD (2) TX1 (18)
TXD (3) RX1 (19)
GND (5) GND
VCC (6) 3V3

Das Pmod BLE kann mit ASCII-Befehlen konfiguriert werden. Dazu senden wir "$$$", wenn wir das Pmod BLE initialisieren, und versetzen es so in den Befehlsmodus. Anschließend können wir die nachfolgenden Befehle zur Konfiguration des Pmod senden. Jeder Befehl muss mit einem Wagenrücklauf (\r) abgeschlossen werden und innerhalb von " " stehen.

  • "SF,1":Setzt die Konfigurationen auf die Werkseinstellungen zurück.
  • "S-,name": Legt den Gerätenamen fest. Das Gerät hängt automatisch seine Seriennummer an das Ende des Namens an.
  • "SGA,0":Stellt die Ausgangsleistung auf das Maximum.
  • "SS,C0":Aktiviert die Übertragung von Geräteinformationen und den transparenten UART-Modus. Wir verwenden diesen Modus zur Kommunikation mit dem Arduino Due.

Nachdem wir das Modul konfiguriert haben, verlassen wir den Befehlsmodus, indem wir "---\r" senden. Das Pmod BLE wird wieder in den Datenmodus versetzt und sendet die Daten. Die vollständige Befehlsliste finden Sie unter https://reference.digilentinc.com/_media/reference/pmod/pmodble/rn4871_user_guide.pdf.

Warnung: Durch Hot-Plugging (Ein- oder Ausstecken des Geräts unter Spannung) des Pmod BLE kann möglicherweise der interne Speicher des Geräts gelöscht werden. Die Behebung dieses Problems erfordert eine UART-Terminalverbindung zwischen einem PC und dem Pmod BLE.

Datenanzeige

Daten können in einem Serial Monitor empfangen werden. Zur Anzeige der Daten und des Status verwenden wir eine kostenlose Android-App (Serial Bluetooth Terminal von Kai Morich). Um die Verbindung herzustellen, müssen wir der App die erforderlichen Berechtigungen erteilen und GPS und Bluetooth auf Handys oder Tablets einschalten.

Öffnen Sie das Menü (obere linke Ecke) und wählen Sie dann „Devices“ aus. Öffnen Sie den Reiter „Bluetooth LE“ und wählen Sie anschließend das Pmod BLE (welchen Namen Sie auch immer für Pmod BLE vergeben). Die App öffnet automatisch das Terminal und zeigt die vom Bluetooth-Modul eingehenden Daten an.

terminal screen showing serial dataterminal data showing more serial data

Anhang

Vollständiges Anschlussschema

Full connection diagram

Vollständiger Code

Love learn engineering in hands-on approach. Interested in new technology. Work in Digilent as International Sales and Distribution Manager.

Recommended Articles

DesignSpark Electrical Logolinkedin