» Elektronik » Arduino »Heimwetterstation basierend auf Arduino

Heimwetterstation basierend auf Arduino


Lange wollte ich eine Mini-Wetterstation bauen, die es satt hatte, aus dem Fenster zu schauen, um auf ein Thermometer hinter dem Glas zu schauen. Dieses Gerät ersetzt das Hygrometer, Barometer und Thermometer und zeigt auch die aktuelle Uhrzeit an. In diesem Beitrag werde ich Ihnen erklären, wie Sie schnell und einfach eine kleine Wetterstation auf Basis von Arduino zusammenbauen können. Die Basis wird der Vorstand sein Arduino Nano kann andere Boards verwenden (Arduino Uno, Arduino Pro mini). Wir erhalten Luftdruck- und Temperaturdaten vom BMP180-Sensor sowie Luftfeuchtigkeit und Außentemperatur vom DHT11-Sensor. Die Echtzeituhr DS1302 zeigt die aktuelle Uhrzeit an. Alle Informationen werden auf einem zweizeiligen LCD1602-Display angezeigt.

Der DHT11 überträgt Informationen über einen einzelnen Draht an ein Arduino. Es wird mit einer Spannung von 5 V betrieben. Es misst die Luftfeuchtigkeit im Bereich von 20 bis 80%. Temperaturmessungen im Bereich von 0 bis 50überC.

Heimwetterstation basierend auf Arduino

Der BMP180-Sensor misst den atmosphärischen Druck im Bereich von 300 bis 1100 hPa und die Temperatur im Bereich von -40 +85überDie Versorgungsspannung beträgt 3,3 V. Sie wird über das I2C-Kommunikationsprotokoll angeschlossen.

Die Echtzeituhr DS1302 wird mit 5 V versorgt und über das I2C-Kommunikationsprotokoll angeschlossen. Bei Installation im entsprechenden Steckplatz unterstützen CR2032-Batterien die Uhr, wenn die Hauptstromversorgung ausgeschaltet wird.

Das LCD1602-Display wird mit einer Spannung von 5 Volt betrieben und ist auch über das I2C-Kommunikationsprotokoll verbunden.

Das hier hausgemacht Hergestellt auf der Basis von vorgefertigten Platinen und Sensoren, so dass es für jeden Anfänger wiederholt werden kann, mit einem Lötkolben zu arbeiten. Gleichzeitig können Sie die Grundlagen der Programmierung von Arduino erlernen. Ich habe diese Wetterstation in 15 Minuten im visuellen Programmierprogramm FLPROG programmiert. Dieses Programm muss nicht stundenlang manuell skizziert werden. Es hilft Anfängern (und nicht nur), schnell die Grundlagen von Programmiergeräten zu erlernen, die auf der Arduino-Plattform basieren.

Wer ist zu faul, um mit dem Programm zu basteln - eine Skizze (nur muss die aktuelle Uhrzeit eingestellt werden):
#include 
#include "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
long _bmp085P = 0;
long _bmp085T = 0;
long _bmp085A = 0;

LiquidCrystal_I2C _lcd1 (0x3f, 16, 2);
int _dispTempLength1 = 0;
boolean _isNeedClearDisp1;

DHT _dht1;

iarduino_RTC _RTC1 (RTC_DS1302, 7, 5, 6);

unsigned long _dht1LRT = 0UL;
unsigned long _dht1Tti = 0UL;
int _disp1oldLength = 0;
unsigned long _bmp0852Tti = 0UL;
String _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
void setup ()
{
Wire.begin ();
Verzögerung (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, true);
_RTC1.begin ();
_RTC1.period (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}}
void loop ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
if (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}}

// Gebühr: 1
if (1) {
_dispTempLength1 = ((((((String ("T:"))) + ((_floatToStringWitRaz ((bmp085T) / (10.00), 1)) + (String ("*")) +) (((String ()) "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz (_dht1) .humidity, 0))) + (String ("%"))))). length ();
if (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0);
_lcd1.print ((((((String ("T:"))) + ((_floatToStringWitRaz ((bmp085T) / (10.00), 1)) + (String ("*")) +) (((String)) ("P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0)) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz () _dht1.humidity, 0))) + (String ("%")))));
} else {
if (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}}
if (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}}
}}
if (1) {
_dispTempLength1 = ((((((String ("t:"))) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*"))) + (_RTC1_GetTime2_StrOut))). length ( );
if (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1);
_lcd1.print ((((((String ("t:"))) + ((_floatToStringWitRaz (_dht1.temperature, 0))) + (String ("*"))) + (_RTC1_GetTime2_StrOut)));
} else {
if (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}}
String _floatToStringWitRaz (float value, int raz)
{

return String (Wert, raz);
}}
bool _isTimer (lange Startzeit ohne Vorzeichen, lange Zeit ohne Vorzeichen)
{
unsigned long currentTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}}

Sie können ein solches Gerät überall oder zu Hause, in der Natur oder an einem Ort in verwenden ein Auto. Es ist möglich, den Stromkreis von den Batterien mit einer Ladetafel zu versorgen, am Ende wird tragbar sein das Modell Wetterstationen.

Alle Informationen erhalten Sie im Video:


Liste der Materialien und Werkzeuge

Arduino Nano Board
zweizeiliges LCD1602-Display;
- Echtzeituhr DS1302;
- Atmosphärendruck- und Temperatursensor BMP180;
- Temperatur- und Feuchtigkeitssensor DHT11;
- Blockieren des Ladevorgangs vom Telefon aus;
- jedes geeignete Gehäuse
Pinzette;
Schere;
Lötkolben;
Cambridge;
Tester;
-Verbindungsdrähte;
Vierdraht für Fernbedienungssensor.

Erster Schritt. Ein Gebäude für eine Wetterstation bauen

Ich habe eine Plastikbox aus dem Festpreisgeschäft (insgesamt 17 Pence) abgeholt. Vorgeschnittenes Fenster zur Anzeige im Deckel. Dann schnitt er die Trennwände in der Box teilweise aus, bohrte Löcher für den USB-Anschluss der Arduino-Platine, die Öffnung für den BMP180-Sensor. Der BMP180-Sensor befindet sich an der Außenseite des Gehäuses, um eine übermäßige Erwärmung zu verhindern e Belag innen. Nachdem ich den Körper des hausgemachten Produkts von innen bemalt habe, weil der Kunststoff transparent ist. Die Box schließt mit einem Riegel und alle Elemente passen gut hinein.


Schritt zwei Montageplan des Gerätes.

Foto-Schema


Als nächstes müssen Sie alle Karten und Sensoren der Wetterstation gemäß dem Schema anschließen. Dazu verwenden wir Befestigungsdrähte mit den entsprechenden Anschlüssen. Ich habe keine Lötverbindung hergestellt. Wenn ein Modul in Zukunft ausfällt (oder aus anderen Gründen), können Sie es problemlos ersetzen. Am Schraubverbinder ist das zur Straße führende DHT11-Sensorkabel angeschlossen. Die Stromversorgung kann über den USB-Anschluss der Arduino-Karte an einen Computer oder durch Anlegen einer Spannung von 7-12 V an den VIN- und GND-Pin erfolgen.

Zuerst habe ich die Schaltung außerhalb des Gehäuses zusammengebaut und im FLPROG-Programm programmiert und debuggt.

Fotoblockdiagramm im FLPROG-Programm.

Als ich die Wetterstation zum ersten Mal programmierte und einschaltete, funktionierte es. Jetzt ist es möglich geworden, Wetterdaten über Bord und im Raum zu haben. Im Allgemeinen stellte sich eine interessante Heimwetterstation mit vielen verschiedenen Funktionen heraus.

Foto komplett

Am Wochenende wurde ein gutes hausgemachtes Design zusammengestellt. Es war aufregend, selbst ein interessantes und nützliches Gerät herzustellen. Um ein solches Gerät selbst herzustellen, kann es meiner Meinung nach auch ein Anfänger. Es erfordert nicht viel Zeit und Geld. Sie können es anwenden, wo immer Sie wollen, in einem Haus in einem Landhaus. Für die ganze Arbeit, zwei Wochenendnächte vergingen, brachte ich die gesamte Elektronik zu Aliexpress. Den Rest der Materialien habe ich auf dem Hubschrauber gefunden. Basierend auf der Arduino-Plattform können Sie eine Vielzahl nützlicher Geräte zusammenstellen.

Vielen Dank für Ihre Aufmerksamkeit. Ich wünsche Ihnen viel Erfolg und viel Glück sowohl in Ihrem Leben als auch in Ihrer Arbeit!
9.2
8.2
8.5

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      EntschuldigungtanzenTanz2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...