» Elektronika » Arduino »Namų oro stotis įsikūrusi Arduino pagrindu

Namų orų stotis įsikūrusi Arduino pagrindu


Ilgą laiką norėjau pasidaryti mini oro stotį, pavargęs pro langą žiūrėti į termometrą už stiklo. Šis prietaisas pakeis higrometrą, barometrą ir termometrą, taip pat parodys esamą laiką. Šiame įraše aš jums pasakysiu, kaip greitai ir lengvai surinkti nedidelę oro stotį, pagrįstą Arduino. Pagrindas bus lenta Arduino „Nano“ gali naudoti kitas plokštes - „Arduino Uno“, „Arduino Pro mini“). Iš BMP180 jutiklio gausime duomenis apie atmosferos slėgį ir temperatūrą, o iš DHT11 jutiklio - drėgmę ir lauko temperatūrą. DS1302 realaus laiko laikrodis parodys esamą laiką. Visa informacija rodoma dviejų eilučių LCD1602 ekrane.

DHT11 perduoda informaciją per vieną laidą arduinui. Jį maitina 5 V įtampa. Matuojama nuo 20 iki 80% drėgmė. Temperatūros matavimas nuo 0 iki 50apieC.

Namų orų stotis įsikūrusi Arduino pagrindu

BMP180 jutiklis matuoja atmosferos slėgį 300–1100 hPa diapazone, temperatūrą –40 +85.apieC. Tiekimo įtampa yra 3,3 V. Jis yra prijungtas per I2C ryšio protokolą.

DS1302 realaus laiko laikrodis maitinamas 5 V ir yra prijungtas per I2C ryšio protokolą. Įdėję į atitinkamą angą, CR2032 baterijos palaiko laikrodį, kai pagrindinis maitinimas yra išjungtas.

LCD1602 ekraną maitina 5 voltų įtampa, jis taip pat yra prijungtas per I2C ryšio protokolą.

Tai naminis pagamintas ant paruoštų lentų ir jutiklių, todėl tai gali būti pakartota bet kuriam pradedančiajam meilužei dirbti su lituokliu. Tuo pačiu metu jūs galite gauti pagrindinius „Arduino“ programavimo pagrindus. Užprogramuoju šią orų stotį vizualaus programavimo programoje FLPROG per 15 minučių. Nereikia rankomis brėžti valandų valandas, ši programa padeda pradedantiesiems (ir ne tik) greitai išmokti programavimo įrenginių, pagrįstų „Arduino“ platforma, pagrindus.

Kas per daug tingus, kad galvotų apie programą - eskizą (tik reikės nustatyti dabartinį laikrodžio laiką):
# įtraukti 
# įtraukti „DHT_NEW.h“
# įtraukti 
# Įtraukite 
# įtraukti 
BMP085 _bmp085 = BMP085 ();
ilgas _bmp085P = 0;
ilgas _bmp085T = 0;
ilgas _bmp085A = 0;

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

DHT _dht1;

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

nepasirašytas ilgas _dht1LRT = 0UL;
nepasirašytas ilgas _dht1Tti = 0UL;
int _disp1oldLength = 0;
nepasirašytas ilgas _bmp0852Tti = 0UL;
Eilutė _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
negaliojanti sąranka ()
{
Viela.beginas ();
vėlavimas (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, tiesa);
_RTC1.begin ();
_RTC1.periodas (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = milis ();
_dht1Tti = milis ();
}
tuščia kilpa ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
if (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltumas (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperatūra (& _ bmp085T);
}

// Mokestis: 1
jei (1) {
_dispTempLength1 = (((((((Styga ("T:"))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (Styga ("*")))) + (((Styga ( „P:“)) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (Styga („*“))) + (((Styga („“)) + ((_floatToStringWitRaz (_dht1 .drėgnis, 0))) + (stygos ("%"))))). ilgis ();
if (_disp1oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 0);
_lcd1.print (((((((Styga („T:“))) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (Styga („*“)))) + (((Styga („P:“)) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (Styga („*“)))) + (((Styga („“)) + ((_floatToStringWitRaz ( _dht1.šlapimas, 0)))) + (eilutė („%“)))));
} dar {
if (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
if (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = milis ();
_dht1Tti = milis ();
}
}
jei (1) {
_dispTempLength1 = ((((((((styga ("t:"))) + (((_floatToStringWitRaz (_dht1.temperatūra, 0))) + (styga ("*"))))) (_RTC1_GetTime2_StrOut))). ilgis () );
if (_disp2oldLength> _dispTempLength1) {_isNeedClearDisp1 = 1;}
_disp2oldLength = _dispTempLength1;
_lcd1.setCursor (int ((16 - _dispTempLength1) / 2), 1);
_lcd1.print (((((((eilutė ("t:")))) (((_floatToStringWitRaz (_dht1.temperatūra, 0))) + (eilutė ("*"))) + (_RTC1_GetTime2_StrOut))););
} dar {
if (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime („H: i: sD“);

}
Styginių _floatToStringWitRaz (svyruojančioji vertė, intarpas)
{

grįžtamoji eilutė (vertė, skustuvas);
}
bool _isTimer (nepasirašytas ilgas pradžios laikas, nepasirašytas ilgas laikotarpis)
{
nepasirašytas ilgas dabartinis laikas;
currentTime = milis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}

Tokį prietaisą galite naudoti bet kur, namuose, gamtoje ar vietoje mašina. Galima maitinti grandinę iš baterijų, naudojant įkrovimo plokštę, galų gale bus nešiojama modelis orų stotys.

Visą informaciją galite gauti žiūrėdami vaizdo įrašą:


Medžiagų ir įrankių sąrašas

„Arduino Nano“ lenta
dviejų eilučių LCD1602 ekranas;
- realaus laiko laikrodis DS1302;
- atmosferos slėgio ir temperatūros jutiklis BMP180;
- temperatūros ir drėgmės jutiklis DHT11;
-blokuoti įkrovimą iš telefono;
- tinkamas būstas
pincetai;
žirklės;
lituoklis;
Kembridžas;
testeris;
-jungiamieji laidai;
Keturių laidų nuotolinio jutiklio.

Pirmasis žingsnis. Pastatyti orų stotį

Paėmiau plastikinę dėžutę iš parduotuvės „Fix Price“ (viso 17p). Paruoštas langas, skirtas rodyti dangtelyje. Tada jis iš dalies iškirpo pertvaras dėžutėje, padarė skyles „Arduino“ plokštės USB jungčiai, angai BMP180 jutikliui. BMP180 jutiklis bus įrengtas korpuso išorėje, kad būtų išvengta per didelio šildymo. e užpildai viduje. Po to, kai dažiau naminio gaminio korpusą iš vidaus, nes plastikas yra skaidrus. Dėžutė uždaroma fiksatoriumi ir joje visi elementai gražiai telpa.


Antras žingsnis Prietaiso surinkimo schema.

Nuotraukų schema


Kitas, jums reikia prijungti visas oro stoties plokštes ir jutiklius pagal schemą. Mes tai darome naudodami tvirtinimo laidus su atitinkamomis jungtimis. Aš neužmezgiau litavimo jungties, todėl ateityje, sugedus moduliui (ar dėl kitų priežasčių), galite lengvai jį pakeisti. Sraigtinėje jungtyje yra prijungtas DHT11 jutiklio laidas, einantis į gatvę. Maitinimas gali būti tiekiamas iš „Arduino“ plokštės USB jungties prie kompiuterio arba tiekiant 7–12 V įtampą VIN ir GND kaiščiams.

Pirma, aš surinkau grandinę ne gaubte ir užprogramavau ir suderinau ją naudodamas programą FLPROG.

Nuotraukų blokinė schema programoje FLPROG.

Kai pirmą kartą užprogramavau ir įjungiau oro stoties grandinę, ji veikė. Dabar tapo įmanoma orų duomenis laikyti borte ir kambaryje. Apskritai pasirodė įdomi namų oro stotis, turinti daugybę skirtingų funkcijų.

Nuotrauka baigta

Savaitgalį buvo surinktas geras namų dizainas. Buvo įdomu patiems pasidaryti įdomų ir naudingą prietaisą. Norėdami pats pasidaryti tokį prietaisą, manau, kad tai gali padaryti net pradedantysis. Tai nereikalauja daug laiko ir pinigų. Galite jį pritaikyti kur norite, name, esančiame sodyboje. Visam darbui prabėgo dvi savaitgalio naktys, visą elektroniką nuvežiau į „Aliexpress“. Likusią medžiagą radau smulkintuve. Remdamiesi „Arduino“ platforma, galite surinkti daugybę įvairių naudingų prietaisų.

Ačiū visiems už dėmesį, linkiu sėkmės ir sėkmės tiek gyvenime, tiek darbe!
9.2
8.2
8.5

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalėju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...