» elektronika » Težak »Početna meteorološka stanica zasnovana na Arduinu

Domaća meteorološka stanica zasniva se na Arduinu


Dugo sam željela napraviti mini meteorološku stanicu, umorna od gledanja kroz prozor da bih pogledala termometar iza stakla. Ovaj će uređaj zamijeniti higrometar, barometar i termometar i prikazati trenutno vrijeme. U ovom postu ću vam reći kako brzo i lako sastaviti malu vremensku stanicu koja se temelji na Arduinu. Osnova će biti ploča Težak Nano može koristiti druge ploče - Arduino Uno, Arduino Pro mini). Podatke o atmosferskom tlaku i temperaturi dobivat ćemo od senzora BMP180, a vlažnost i vanjsku temperaturu od DHT11 senzora. DS1302 sat u stvarnom vremenu prikazat će trenutno vrijeme. Sve se informacije prikazuju na dvorednom LCD1602 zaslonu.

DHT11 prenosi informaciju preko jedne žice na arduino. Napaja ga naponom od 5 V. mjeri vlažnost u rasponu od 20 do 80%. Mjere temperature u području od 0 do 50okoS.

Domaća meteorološka stanica zasniva se na Arduinu

Senzor BMP180 mjeri atmosferski tlak u rasponu od 300-1100 hPa, temperaturu u rasponu od -40 +85okoC. Napon napajanja je 3,3 V. Povezan je putem komunikacijskog protokola I2C.

DS1302 sat u stvarnom vremenu napaja se od 5 V i povezan je putem komunikacijskog protokola I2C. Kad se ugrade u odgovarajući utor, baterije CR2032 podržavaju sat kad je glavni izvor isključen.

Zaslon LCD1602 napaja se naponom od 5 Volta, a također je povezan putem I2C komunikacijskog protokola.

ovo domaći proizvod izrađeni na temelju gotovih ploča i senzora, tako da se može ponoviti bilo kojem ljubitelju novaka da radi s lemilicom. Istodobno, možete dobiti osnove programiranja Arduinoa. Programirao sam ovu vremensku stanicu u programu vizualnog programiranja FLPROG za 15 minuta. Nema potrebe da ručno crtate satima, ovaj program pomaže početnicima (i ne samo) brzo naučiti osnove programskih uređaja temeljenih na Arduino platformi.

Tko je previše lijen da se popriča s programom - skica (samo će biti potrebno podesiti trenutačno vrijeme takta):
#include <žica.h>
#include "DHT_NEW.h"
#include 
#include 
#include 
BMP085 _bmp085 = BMP085 ();
dugo _bmp085P = 0;
long _bmp085T = 0;
dugo _bmp085A = 0;

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

DHT _dht1;

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

dugo nepotpisani _dht1LRT = 0UL;
dugo nepotpisani _dht1Tti = 0UL;
int _disp1oldLength = 0;
nespisano dugo _bmp0852Tti = 0UL;
String _RTC1_GetTime2_StrOut;
int _disp2oldLength = 0;
postavljanje praznine ()
{
Wire.begin ();
kašnjenje (10);
_bmp085.init (MODE_ULTRA_HIGHRES, 116, istina);
_RTC1.begin ();
_RTC1.period (1);
_lcd1.init ();
_lcd1.backlight ();
_dht1.setup (4);
_dht1LRT = millis ();
_dht1Tti = millis ();
}
void petlja ()
{if (_isNeedClearDisp1) {_lcd1.clear (); _isNeedClearDisp1 = 0;}
ako (_isTimer (_bmp0852Tti, 1000)) {
_bmp0852Tti = millis ();
_bmp085.getAltitude (& _ bmp085A);
_bmp085.getPressure (& _ bmp085P);
_bmp085.getTemperature (& _ bmp085T);
}

// Naknada: 1
ako je (1) {
_dispTempLength1 = ((((((String ("T:")) + ((_floatToStringWitRaz ((_ bmp085T) / (10.00), 1))) + (String ("*")))) + ((String ( "P:")) + ((_floatToStringWitRaz ((_ bmp085P) / (133.3), 0))) + (String ("*"))) + (((String ("")) + ((_floatToStringWitRaz (_dht1 . vlažnost, 0))) + (string ("%")))) .duljina ();
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 {
ako je (_disp1oldLength> 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;}
}
ako je (_isTimer (_dht1Tti, 2000)) {
if (_isTimer (_dht1LRT, (_dht1.getMinimumSamplingPeriod ()))) {
_dht1.readSensor ();
_dht1LRT = millis ();
_dht1Tti = millis ();
}
}
ako je (1) {
_dispTempLength1 = ((((((String ("t:")) + ((_floatToStringWitRaz (_dht1.temperature, 0)) + (String ("*"))) + (_RTC1_GetTime2_StrOut))) (dužina (( );
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 {
ako je (_disp2oldLength> 0) {_isNeedClearDisp1 = 1; _disp2oldLength = 0;}
}
_RTC1_GetTime2_StrOut = _RTC1.gettime ("H: i: sD");

}
String _floatToStringWitRaz (float vrijednost, int raz)
{

uzvratni niz (vrijednost, raz);
}
bool _isTimer (nepotpisani dugi startTime, nepotpisani dugi period)
{
nepotpisana duga strujaTime;
currentTime = millis ();
if (currentTime> = startTime) {return (currentTime> = (startTime + period));} else {return (currentTime> = (4294967295-startTime + period));}
}

Takav uređaj možete koristiti bilo gdje ili kod kuće, u prirodi ili mjestu automobil, Moguće je napajati krug iz baterija, koristeći ploču za punjenje, na kraju će biti prenosiv model meteorološke stanice.

Sve informacije možete dobiti gledajući video:


Popis materijala i alata

Arduino Nano Board
dvoredni LCD 16060 zaslon;
- sat u stvarnom vremenu DS1302;
- senzor atmosferskog tlaka i temperature BMP180;
- senzor temperature i vlage DHT11;
-blicno punjenje s telefona;
- bilo koje odgovarajuće kućište
-pintset;
škare;
lemljenje željeza;
-kembrik;
Tester;
-povezivanje žica;
Četverožični za daljinski senzor.

Prvi korak. Izrada zgrade za meteorološku stanicu

Pokupila sam plastičnu kutiju iz trgovine Fix Price (ukupno 17p). Unaprijed izrezani prozor za prikaz u poklopcu. Zatim je djelomično izrezao pregrade u kutiji, napravio rupe za USB priključak Arduino ploče, otvor za senzor BMP180 BMP180 senzor bit će smješten na vanjskoj strani kućišta kako bi se spriječilo prekomjerno zagrijavanje od elektronički preljevi iznutra. Nakon što sam iznutra slikao tijelo domaćeg proizvoda jer je plastika prozirna. Kutija se zatvara zasunom i u njemu se svi elementi lijepo uklapaju.


Drugi korak Dijagram montaže uređaja.

Shema fotografija


Zatim trebate povezati sve ploče i senzore vremenske stanice prema shemi. To radimo pomoću montažnih žica s odgovarajućim priključcima. Spajanje lemljenja nisam uspostavio, tako da ga u budućnosti, kada neki modul ne uspije (ili iz drugih razloga), lako zamijenite. Na vijčanom priključku spojen je kabel osjetnika DHT11 koji ide prema ulici. Napajanje se može napajati iz USB priključka Arduino ploče na računalo ili napajanjem napona od 7-12V na VIN i GND pin.

Prvo sam sklopio krug izvan kućišta i programirao ga i ispravio program u FLPROG programu.

Foto blok dijagram u programu FLPROG.

Kad sam prvi put programirao i uključio krug meteorološke stanice, uspjelo je. Sad je postalo moguće da će se vremenski podaci nalaziti u brodu i u sobi. Općenito, ispala je zanimljiva kućna meteorološka stanica s mnogo različitih funkcija.

Fotografija je dovršena

Dobar domaći dizajn sastavljen je vikendom. Bilo je uzbudljivo sami napraviti zanimljiv i koristan aparat. Mislim da mogu napraviti takav uređaj samostalno, mislim da to može učiniti i početnik, a za to ne treba puno vremena i novca. Možete ga primijeniti gdje god želite u kući u seoskoj vikendici. Za cijeli rad prošla su dva vikenda, uzeo sam svu elektroniku na Aliexpress. Ostatak materijala našao sam na helikopteru. Na temelju Arduino platforme možete sastaviti široku paletu korisnih uređaja.

Hvala svima na pažnji, želim vam uspjeh i sreću i u vašem životu i u radu!
9.2
8.2
8.5

Dodajte komentar

    • osmijehosmjesixaxau redudontknowprostakNea
      gazdaogrebotinabudaladaDa-Daagresivantajna
      oprostiteplesdance2dance3pomilovanjepomoćpića
      zaustavljanjeprijateljidobrogoodgoodzviždaljkapasti u nesvijestjezik
      dimpljeskanjeCrayObjavitepodrugljivdon-t_mentionpreuzimanje
      vrućinaljutitlaugh1MDAsastanakmoskingnegativan
      not_ikokicekaznitičitatiuplašitiplašitraži
      podsmijehthank_youovoto_clueumnikakutansložiti
      lošebeeeblack_eyeblum3rumenilohvalisati sedosada
      cenzuriranizadirkivanjesecret2prijetitipobjedayusun_bespectacled
      shokrespektlolpreveddobrodošlikrutoyya_za
      ya_dobryipomoćnikne_huliganne_othodifludzabranablizu

Savjetujemo vam da pročitate:

Predaj to pametnom telefonu ...