Inhaltsverzeichnis:

Grafische Wetterstation - Gunook
Grafische Wetterstation - Gunook

Video: Grafische Wetterstation - Gunook

Video: Grafische Wetterstation - Gunook
Video: Mit dem Raspberry PI und Glade oder Geany grafische Benutzeroberflächen entwickeln 2024, Juli
Anonim
Grafische Wetterstation
Grafische Wetterstation

Sie wollten schon immer eine grafische Wetterstation haben? Und mit genauen Sensoren? Vielleicht ist dieses Projekt etwas für Sie. Mit dieser Wetterstation können Sie sehen, was das Wetter "macht". Die Temperaturen können beispielsweise steigen oder fallen. Von einem normalen Thermometer ist es nicht möglich, den Temperaturverlauf zu sehen. Mit dieser Wetterstation haben Sie eine Historie von 26 Stunden, dargestellt über 320 Pixel eines TFT-Displays. Alle 5 Minuten wird dem Diagramm ein Pixel hinzugefügt, mit dem Sie sehen können, ob es einen steigenden oder fallenden Trend aufweist. Dies erfolgt für Temperatur, Luftfeuchtigkeit, Luftdruck und CO2 in verschiedenen Farben. Die Außentemperatur ist auch kabellos enthalten. Auf diese Weise können Sie das Wetter anhand des Luftdrucks "vorhersagen".

Normale Wetterstationen haben teilweise ungenaue Sensoren. Bei der Temperatur haben sie beispielsweise normalerweise eine Genauigkeit von +/- 2 Grad. Für diese Wetterstation werden genauere Sensoren verwendet. Der Temperatursensor HDC1080 hat eine Genauigkeit von +/- 0,2 Grad, was weitaus besser ist. Das gleiche gilt für Luftfeuchtigkeit und Luftdruck.

Oben auf dem TFT-Display werden die Messwerte der Sensoren angezeigt und alle 5 Sekunden aktualisiert. Diese Messungen sind auch über RS232 verfügbar.

Haupteigenschaften:

  • Grafiken in verschiedenen Farben zum Erkennen von Trends
  • Präzise Sensoren für Temperatur, Luftfeuchtigkeit und Luftdruck.
  • Die Werkskalibrierungsdaten und die Sensortemperatur werden nach Möglichkeit von den Sensoren gelesen und auf den Code angewendet, um die genauesten Messungen zu erhalten.
  • Die Temperaturen sind in Celsius (Standard) oder Fahrenheit verfügbar.
  • Außentemperatur über Funkmodul (optional)
  • RS232-Schnittstelle zur Fernüberwachung.
  • Schönes kleines Design (sogar meine Frau verträgt es in unserem Wohnzimmer;-)

Ich wünsche Ihnen genauso viel Spaß beim Beobachten der Wetterbedingungen wie mir !

Schritt 1: Teile

Teile
Teile
Teile
Teile
Teile
Teile

1 x TFT-Modul 2,8 Zoll ohne Touch Panel ILI9341 Drive IC 240 (RGB) * 320 SPI-Schnittstelle

1 x Microchip 18f26k22 Mikrocontroller 28-PIN PDIP

1 x HDC1080-Modul, GY-213V-HDC1080 Hochgenauer digitaler Feuchtigkeitssensor mit Temperatursensor

1 x GY-63 MS5611 Hochauflösendes atmosphärisches Höhensensormodul IIC / SPI

1 x Infrarot-CO2-Sensor MH-Z19 für CO2-Monitor

1 x (optional) NRF24L01+PA+LNA Funkmodule (mit Antenne)

1 x 5V bis 3,3V DC-DC Step Down Netzteil Buck-Modul AMS1117 800MA

1 x Keramikkondensator 100nF

2 x Acrylplatte 6 * 12 cm Dicke 5 mm oder 100 * 100 mm Dicke 2 mm

1 x Micro-USB-Anschluss 5-Pin-Sitzbuchse Micro-USB-DIP4-Beine Vier Beine Einsteckplatte Sitz Mini-USB-Anschluss

1 x Schwarz Universal-Android-Telefon Micro-USB-EU-Stecker Reise-AC-Ladegerät-Adapter für Android-Telefone

1 x PCB doppelseitig.

Einige M3-Nylon-Abstandshalter/-Schrauben

-

Für Außentemperatur (optional)

1 x Microchip 16f886 Mikrocontroller 28-Pin PDIP

1 x Wasserdichter DS18b20 Temperaturfühler Temperatursensor Edelstahlpaket -100cm Draht

1 x 4k7 Widerstand

1 x NRF24L01+ Funkmodul

1 x Keramikkondensator 100nF

1 x Prototyp PCB Steckbrett

1 x 85 x 58 x 33 mm wasserdichte durchsichtige Abdeckung Kunststoff-Elektronikkabel-Projektbox-Gehäuse

1 x Kunststoff Batteriefach Aufbewahrungsbox Halter mit Kabel für 2 x AA 3.0V 2AA

2 x AA-Batterie

Schritt 2: PCB

PCB
PCB
PCB
PCB
PCB
PCB

Ich habe für dieses Projekt eine doppelseitige Platine verwendet. Die Gerber-Dateien sind verfügbar. Diese Platine passt auf die Rückseite des TFT-Displays. Der Temperatursensor ist auf der Rückseite montiert, um eine Erwärmung aus dem Kreislauf zu verhindern. Verbinden Sie den NRF24L01+ wie folgt mit dem Mikrocontroller:

Pin 2 - CSN von NRF24L01+

Pin 8 – GND von NRF24L01+

Pin 9 - CE von NRF24L01+

Pin 22 - SCK von NRF24L01+

Pin 23 - MISO von NRF24L01+

Pin 24 - MOSI von NRF24L01+

Pin 20 – VCC von NRF24L01+

n.c - IRQ von NRF24L01+

Schritt 3: Außentemperatur

Außentemperatur
Außentemperatur
Außentemperatur
Außentemperatur

Der 16f886-Mikrocontroller wird verwendet, um alle 5 Minuten den DS18B20-Temperatursensor auszulesen. Diese Temperatur wird über das Funkmodul NRF24L01+ übertragen. Hier reicht ein Prototyp-PCB-Steckbrett. Verwenden Sie die folgende Mikrocontroller-Pin-Konfiguration:

Pin 2 - CSN von NRF24L01+

Pin 8 - GND

Pin 9 - CE von NRF24L01+

Pin 14 - SCK von NRF24L01+

Pin 15 - MISO von NRF24L01+

Pin 16 - MOSI von NRF24L01+

Pin 20 - +3 Volt der AA-Batterien

Pin 21 - IRQ von NRF24L01+

Pin 22 - DS18B20-Daten (verwenden Sie den 4k7-Widerstand als Pull-Up)

Schritt 4: RS232-Ausgang

RS232-Ausgang
RS232-Ausgang

Alle 5 Sekunden werden die Messwerte über RS232 an Pin 27 (9600 Baud) ausgegeben. Sie können diese Schnittstelle an Ihren Computer anschließen und ein Terminalprogramm (z. B. Putty) verwenden, um die Daten abzurufen. Es ermöglicht Ihnen, die Messungen für andere Zwecke zu verwenden.

Schritt 5: Code

Code
Code
Code
Code

Die in diesem Projekt verwendeten Sensoren verwenden verschiedene Schnittstellen des 18f26k22-Mikrocontrollers. Dies ist die erste serielle Schnittstelle, die der CO2-Sensor MH-Z19 verwendet. Diese Schnittstelle ist auf 9600 Baud eingestellt. Die zweite serielle Schnittstelle dieses Mikrocontrollers dient dazu, die Sensormessungen an Pin 27 alle 5 Sekunden zur Verfügung zu stellen, damit Sie ihn an Ihren Computer anschließen können (ebenfalls auf 9600 Baud eingestellt). Der Temperatur-/Feuchtigkeitssensor HDC1080 und der Luftdrucksensor MS5611 arbeiten an der i2c-Schnittstelle. Das TFT-Display und das Funkmodul NRF24L01+ arbeiten an derselben SPI-Schnittstelle, die mit 8 MHz konfiguriert ist. Der 18f26k22-Mikrocontroller selbst ist auf 64 MHz eingestellt. Standardmäßig sind die Temperaturen in Celsius. Wenn Sie Pin 21 mit Masse verbinden, erhalten Sie die Temperaturen in Fahrenheit. Danke an Achim Döbler für seine µGUI-Grafikbibliothek und Harry W (1and0) für seine 64bit-Lösung.

Zur Messung der Außentemperatur wird der Mikrocontroller 16f886 verwendet. Der Temperatursensor DS18B20 wird alle 5 Minuten ausgelesen (hier wird Eindrahtprotokoll verwendet) und mit der SPI-Schnittstelle über das Funkmodul NRF24L01+ übertragen. Die meiste Zeit befindet sich dieser Mikrocontroller im Energiesparmodus, um Batterien zu sparen. Natürlich werden auch negative Temperaturen unterstützt. Wenn diese Außentemperaturfunktion nicht verwendet wird, wird sie nicht auf dem TFT-Bildschirm angezeigt und ist daher optional.

Für die Programmierung der Mikrocontroller 18f26k22 und 16f886 benötigen Sie einen pickit3-Programmierer. Sie können die kostenlose IPE-Programmiersoftware von Microchip verwenden (vergessen Sie nicht, VDD auf 3,0 Volt einzustellen und das Kontrollkästchen "Power Target Circuit from Tool" bei "ICSP Options" im Menü "Power" zu aktivieren).

Schritt 6: Zeitraffer-Impression

Image
Image

Ein Zeitraffer-Eindruck, wie etwa 15 Stunden Wetterüberwachung aussehen. Der weiße Dunst auf dem Display ist in Wirklichkeit nicht vorhanden.

  • In Rot die Innentemperatur
  • In Orange die Außentemperatur
  • In Blau die Luftfeuchtigkeit
  • In Grün der Luftdruck
  • In gelb das co2

Schritt 7: Genießen Sie

Genießen Sie dieses Projekt !!

Aber im Prinzip ist es völlig falsch, eine Theorie nur über beobachtbare Größen zu begründen. In Wirklichkeit passiert genau das Gegenteil. Es ist die Theorie, die entscheidet, was wir beobachten können.

~ Albert Einstein in Physik und darüber hinaus von Werner Heisenberg p. 63

Empfohlen: