» elektronika » Arduino »Domáca meteorologická stanica založená na Arduino

Domáca meteorologická stanica založená na Arduino


Dlho som chcel vyrobiť mini meteorologickú stanicu, unavený z pohľadu z okna a pozerať sa na teplomer za sklom. Toto zariadenie nahradí vlhkomer, barometer a teplomer a tiež zobrazí aktuálny čas. V tomto príspevku vám poviem, ako rýchlo a ľahko zostaviť malú meteorologickú stanicu založenú na Arduino. Základom bude predstavenstvo Arduino Nano môže používať ďalšie dosky - Arduino Uno, Arduino Pro mini). Údaje o atmosférickom tlaku a teplote získame zo snímača BMP180 a údaje o vlhkosti a vonkajšej teplote zo snímača DHT11. Aktuálny čas DS1302 bude indikovať aktuálny čas. Všetky informácie sa zobrazujú na dvojriadkovom LCD1602 displeji.

DHT11 prenáša informácie cez jeden drôt do arduino. Je napájaný napätím 5 V. Meria vlhkosť v rozsahu od 20 do 80%. Merania teploty v rozsahu 0 až 50oS.

Domáca meteorologická stanica založená na Arduino

Senzor BMP180 meria atmosférický tlak v rozsahu 300 - 1100 hPa, teplotu v rozsahu -40 +85oC. Napájacie napätie je 3,3 V. Je pripojené prostredníctvom komunikačného protokolu I2C.

Hodiny v reálnom čase DS1302 sú napájané 5 V a sú pripojené prostredníctvom komunikačného protokolu I2C. Keď sú batérie CR2032 nainštalované do príslušného slotu, podporujú hodiny, keď je vypnuté napájanie.

Displej LCD1602 je napájaná napätím 5 voltov a je tiež pripojená prostredníctvom komunikačného protokolu I2C.

toto domáci produkt Vyrobené na základe hotových dosiek a senzorov, takže pre každého začiatočníka sa môže opakovať práca so spájkou. Zároveň môžete získať základy programovania Arduino. Túto meteorologickú stanicu som naprogramoval vo vizuálnom programovacom programe FLPROG za 15 minút. Nie je potrebné ručne kresliť hodiny, tento program pomáha začiatočníkom (a nielen) rýchlo sa naučiť základom programovacích zariadení založených na platforme Arduino.

Kto je príliš lenivý na to, aby sa hádal s programom - skica (iba bude potrebné nastaviť aktuálny čas hodín):
#include 
#include „DHT_NEW.h“
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
dlhá _bmp085P = 0;
dlhá _bmp085T = 0;
dlhá _bmp085A = 0;

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

DHT _dht1;

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

nepodpísané dlho _dht1LRT = 0UL;
nepodpísané dlho _dht1Tti = 0UL;
int _disp1oldLength = 0;
nepodpísané dlho _bmp0852Tti = 0UL;
String _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
neplatné nastavenie ()
{
Wire.begin ();
oneskorenie (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, true);
_RTC1.begin ();
_RTC1.perioda (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}
prázdna slučka ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
if (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}

// Poplatok: 1
ak (1) {
_dispTempLength1 = ((((((String ("T:"))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*")))) + (((String ( "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String (""))) + ((_floatToStringWitRaz (_dht1) vlhkosť, 0))) + (String ("%"))))). dĺžka ();
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.humidita, 0))) + (String ("%"))))));
} else {
ak (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
if (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ())))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}
}
ak (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 {
ak (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}
String _floatToStringWitRaz (float value, int raz)
{

return String (value, raz);
}
bool _isTimer (nepodpísané dlhé obdobie začiatku, nepodpísané dlhé obdobie)
{
dlhá doba bez podpisuTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + perioda));} else {return (currentTime> = (4294967295-startTime + perioda));}}
}

Takéto zariadenie môžete používať kdekoľvek alebo doma, v prírode alebo na mieste auto, Je možné napájať obvod z batérií, pomocou nabíjacej dosky, nakoniec bude prenosný model meteorologické stanice.

Všetky informácie možno získať na videu:


Zoznam materiálov a nástrojov

Doska Arduino Nano
dvojriadkový displej LCD1602;
- hodiny v reálnom čase DS1302;
- snímač atmosférického tlaku a teploty BMP180;
- snímač teploty a vlhkosti DHT11;
-blokové nabíjanie z telefónu;
- akékoľvek vhodné bývanie
-pintset;
nožnice;
spájkovačka;
-kembrik;
Skúšobný prístroj;
- vodiče;
Štvorvodičový pre diaľkový senzor.

Prvý krok. Vytvorenie budovy pre meteorologickú stanicu

Z obchodu Fix Fix som zdvihol plastovú krabičku (celkom 17p). Predrezané okno na zobrazenie vo veku. Potom čiastočne vyrezal priečky v krabici, urobil otvory pre USB konektor na doske Arduino, otvor pre snímač BMP180. Snímač BMP180 bude umiestnený na vonkajšej strane skrinky, aby sa zabránilo nadmernému zahrievaniu elektronický polevy vnútri. Potom, čo som maľoval telo domáceho výrobku zvnútra, pretože plast je priehľadný. Krabica sa uzatvára pomocou západky av nej všetky prvky pekne zapadajú.


Krok dva Schéma montáže zariadenia.

Foto schéma


Ďalej musíte podľa schémy zapojiť všetky dosky a senzory meteorologickej stanice. Robíme to pomocou montážnych drôtov s príslušnými konektormi. Nepripojil som spájku, takže v budúcnosti, keď modul zlyhá (alebo z iných dôvodov), môžete ho ľahko vymeniť. Na skrutkovom konektore je pripojený kábel snímača DHT11 smerujúci do ulice. Napájanie môže byť dodávané z USB konektora dosky Arduino do počítača alebo dodávaním napätia 7-12 V do pinov VIN a GND.

Najprv som zostavil obvod mimo krytu a naprogramoval a odladil ho v programe FLPROG.

Foto bloková schéma v programe FLPROG.

Keď som prvýkrát naprogramoval a zapol okruh meteorologickej stanice, fungovalo to. Teraz je možné mať údaje o počasí cez palubu a v miestnosti. Vo všeobecnosti sa ukázala zaujímavá domáca meteorologická stanica s mnohými rôznymi funkciami.

Fotografia je kompletná

O víkendu sa zostavil dobrý domáci dizajn. Bolo zaujímavé vytvoriť si zaujímavé a užitočné zariadenie sami. Ak si chcete takéto zariadenie vyrobiť sami, myslím, že aj začiatočník to môže urobiť. Vyžaduje to veľa času a peňazí. Môžete ju použiť kdekoľvek chcete v dome v vidieckej chate. Za celú prácu, dve víkendové noci, som vzal všetku elektroniku do Aliexpress. Zvyšok materiálov, ktoré som našiel na vrtulníku. Na základe platformy Arduino môžete zostaviť širokú škálu užitočných zariadení.

Ďakujem vám všetkým za pozornosť, prajem veľa úspechov a veľa šťastia vo vašom živote aj vo vašej práci!
9.2
8.2
8.5

Pridajte komentár

    • usmievaťúsmevyxaxaokdontknowyahoonea
      bossškrabanecoklamaťánoáno, ánoútočnýtajomstvo
      ľutovaťtanecdance2dance3odpusteniehelpnápoje
      zastávkapriateliadobrýgoodgoodpíšťalaomdlieťjazyk
      dymtlieskanieCraydeklarovaťvýsměšnýdon-t_mentiondownload
      teplohnevlivýlaugh1MDAstretnutiemoskingnegatívny
      not_ipražená kukuricatrestaťprečítaťvydesiťzdesenievyhľadávať
      posmechthank_youtototo_clueumnikakútnasúhlasiť
      zlýbeeeblack_eyeblum3očervenieťchvastanienuda
      cenzurovanéžartysecret2hroziťvíťazstvoyusun_bespectacled
      shokrešpektlolprevedievitajtekrutoyya_za
      ya_dobryipomocníkne_huliganne_othodiFLUDzákazzavrieť

Odporúčame vám prečítať si:

Ruku pre smartphone ...