» Elektronika » Arduino »Domowa stacja pogodowa oparta na Arduino

Domowa stacja pogodowa oparta na Arduino


Przez długi czas chciałem stworzyć mini stację pogodową, zmęczoną patrzeniem przez okno, by spojrzeć na termometr za szybą. To urządzenie zastąpi higrometr, barometr i termometr, a także wyświetli aktualny czas. W tym poście powiem ci, jak szybko i łatwo zmontować małą stację pogodową opartą na Arduino. Podstawą będzie tablica Arduino Nano może korzystać z innych płyt - Arduino Uno, Arduino Pro mini). Otrzymamy dane dotyczące ciśnienia atmosferycznego i temperatury z czujnika BMP180, a wilgotność i temperaturę zewnętrzną z czujnika DHT11. Zegar czasu rzeczywistego DS1302 wskazuje aktualny czas. Wszystkie informacje są wyświetlane na dwuwierszowym wyświetlaczu LCD1602.

DHT11 przesyła informacje jednym przewodem do arduino. Jest zasilany napięciem 5 V. Mierzy wilgotność w zakresie od 20 do 80%. Pomiary temperatury w zakresie od 0 do 50okołoC.

Domowa stacja pogodowa oparta na Arduino

Czujnik BMP180 mierzy ciśnienie atmosferyczne w zakresie 300-1100 hPa, temperatura w zakresie -40 +85okołoC. Napięcie zasilania wynosi 3,3 V. Jest podłączone za pomocą protokołu komunikacyjnego I2C.

Zegar czasu rzeczywistego DS1302 jest zasilany napięciem 5 V i jest podłączony przez protokół komunikacyjny I2C. Po zainstalowaniu w odpowiednim gnieździe baterie CR2032 obsługują zegar, gdy główne zasilanie jest wyłączone.

Wyświetlacz LCD1602 jest zasilany napięciem 5 woltów, a także jest podłączony przez protokół komunikacyjny I2C.

To domowej roboty wykonane na podstawie gotowych płyt i czujników, dzięki czemu można je powtórzyć każdemu nowicjuszowi miłośnikowi pracy z lutownicą. W tym samym czasie możesz zdobyć podstawy programowania Arduino. Zaprogramowałem tę stację pogodową w programie do programowania wizualnego FLPROG w 15 minut. Nie trzeba ręcznie szkicować godzinami, ten program pomaga początkującym (i nie tylko) szybko nauczyć się podstaw programowania urządzeń opartych na platformie Arduino.

Kto jest zbyt leniwy, aby majstrować przy programie - szkic (tylko konieczne będzie ustawienie aktualnej godziny zegara):
#include 
#include „DHT_NEW.h”
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
długie _bmp085P = 0;
długi _bmp085T = 0;
długi _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;
Ciąg _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
void setup ()
{
Wire.begin ();
opóźnienie (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, true);
_RTC1.begin ();
_RTC1. okres (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);
}

// Opłata: 1
if (1) {
_dispTempLength1 = (((((((String („T:”))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String („*”)))) + (((String ( „P:”)) + ((_floatToStringWitRaz ((_ bmp085P) / (133,3), 0))) + (String („*”)))) (((String („”))) + ((_floatToStringWitRaz (_dht1) . wilgotność, 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))). );
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”);

}
Ciąg _floatToStringWitRaz (liczba zmiennoprzecinkowa, int raz)
{

return String (wartość, raz);
}
bool _isTimer (bez znaku długi start, bez znaku długi okres)
{
unsigned long currentTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}

Możesz używać takiego urządzenia w dowolnym miejscu lub w domu, w naturze lub w miejscu samochód. Możliwe jest zasilanie obwodu z akumulatorów za pomocą płyty ładującej, w końcu będzie przenośny model stacje pogodowe.

Wszystkie informacje można uzyskać, oglądając wideo:


Lista materiałów i narzędzi

Arduino Nano Board
dwuwierszowy wyświetlacz LCD1602;
- zegar czasu rzeczywistego DS1302;
- czujnik ciśnienia atmosferycznego i temperatury BMP180;
- czujnik temperatury i wilgotności DHT11;
-blokowanie ładowania z telefonu;
- dowolna odpowiednia obudowa
pinceta;
nożyczki;
lutownica;
Cambridge;
tester;
przewody łączące;
Czteroprzewodowy do zdalnego czujnika.

Pierwszy krok Wykonanie budynku dla stacji pogodowej

Wziąłem plastikowe pudełko ze sklepu Fix Price (łącznie 17 pensów). Wstępnie wycięte okno do wyświetlania w pokrywie. Następnie częściowo wyciął przegrody w pudełku, wykonał otwory na złącze USB płyty Arduino, otwór na czujnik BMP180 Czujnik BMP180 będzie umieszczony na zewnątrz obudowy, aby zapobiec nadmiernemu nagrzewaniu się e polewy w środku. Po tym, jak pomalowałem korpus produktu domowego od wewnątrz, ponieważ plastik jest przezroczysty. Pudełko zamyka się zatrzaskiem, a wszystkie elementy ładnie się pasują.


Krok drugi Schemat montażu urządzenia.

Schemat zdjęcia


Następnie musisz podłączyć wszystkie tablice i czujniki stacji pogodowej zgodnie ze schematem. Robimy to za pomocą przewodów montażowych z odpowiednimi złączami. Nie wykonałem połączenia lutowanego, więc w przyszłości, gdy moduł ulegnie awarii (lub z innych powodów), możesz go łatwo wymienić. Na złączu śrubowym podłączony jest kabel czujnika DHT11 prowadzący na ulicę. Zasilanie może być dostarczane ze złącza USB płyty Arduino do komputera lub poprzez dostarczenie napięcia 7-12 V do pinów VIN i GND.

Najpierw zmontowałem obwód na zewnątrz obudowy, zaprogramowałem go i debugowałem w programie FLPROG.

Schemat blokowy zdjęcia w programie FLPROG.

Kiedy pierwszy raz zaprogramowałem i włączyłem obwód stacji pogodowej, zadziałało. Teraz stało się możliwe, aby mieć dane pogodowe za burtą i w pokoju. Ogólnie rzecz biorąc, okazała się interesująca domowa stacja pogodowa z wieloma różnymi funkcjami.

Zdjęcie kompletne

Dobry domowy projekt został zmontowany w weekend. Ekscytujące i użyteczne urządzenie było ekscytujące. Aby samemu stworzyć takie urządzenie, myślę, że nawet początkujący może to zrobić, nie wymaga to dużo czasu i pieniędzy. Możesz go zastosować w dowolnym miejscu w domu w wiejskiej chacie. Przez całą weekend spędziłem dwie noce weekendowe, zabrałem całą elektronikę na Aliexpress. Resztę materiałów znalazłem na helikopterze. Oparty na platformie Arduino, możesz montować wiele różnych przydatnych urządzeń.

Dziękuję wszystkim za uwagę, życzę powodzenia i powodzenia w życiu i pracy!
9.2
8.2
8.5

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij

Radzimy przeczytać:

Podaj go do smartfona ...