Napravite ovaj jednostavni projekt meteorološke stanice za domove i urede

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu izraditi zanimljiv projekt mini vremenske stanice zasnovan na Arduinu, koji vam može pokazati temperaturu okoline, vlagu, tlak, kvalitetu zraka i mnogo više podataka iz vaše okoline, koji se mogu koristiti za predviđanje vremena od kuće.



Ako vas zanima meteorologija, ovaj bi vam projekt mogao dobro doći za proučavanje lokalnih vremenskih prilika i kratkoročnih promjena. Predloženi projekt je čvrstog stanja, što znači da ne postoje pokretni dijelovi.

Ovaj se projekt može smjestiti u zatvorene ili polu-zatvorene uvjete, gdje je krug daleko od izravne sunčeve svjetlosti ili jakog vjetra ili vlage što može pokvariti senzore na brodu.



Dizajn:

Predloženi projekt kruga mini vremenske stanice izgrađen je oko Arduina, mozga meteorološke stanice koji sakuplja mnoštvo podataka s različitih senzora, obrađuje ih i prikazuje na LCD zaslonu 16x2.

Za ovaj projekt možete odabrati svoju omiljenu arduino ploču. Krug se sastoji od tri senzora MQ-135, BMP180 i DHT11. Pogledajmo što pojedini senzor radi u detalje.

MQ-135 senzor:

MQ-135 je senzor za mjerenje kvalitete zraka koji može otkriti ugljični dioksid, alkohol, benzen, dim, butan, propan itd. Ako su ti plinovi visoko u zraku, tada možemo reći da je zrak zagađen.

Senzor može otkriti promjenu koncentracije onečišćujućih tvari u zraku i daje odgovarajuću razinu napona. Izlazni napon senzora izravno je proporcionalan razini kemijske koncentracije u zraku.

Varijacija napona sa senzora dovodi se u Arduino, a mi imamo unaprijed određene razine praga u programu. Kad prijeđe prag, mikrokontroler nam kaže je li zrak siguran ili ne.

Kružni dijagram

sučelje MQ135 senzor s krugom meteorološke stanice

Gornji dijagram prikazuje shemu ožičenja. Ovaj senzor treba vanjsko napajanje od 5 V jer u njemu postoji grijaći element koji troši oko 1 W. Napajanje iz arduino-ove utičnice ne može isporučiti veću struju.

Grijaći element održava senzor toplim i pomaže uzorkovanju odgovarajuće količine kemijske koncentracije u zraku. Senzoru treba oko nekoliko minuta da postigne optimalnu temperaturu.

DHT11 senzor:

DHT11 senzor je u narodu poznat kao senzor temperature i vlage. Može mjeriti temperaturu i vlažnost iz okoline kao što naziv govori.

To je 4-pinski uređaj, ali koristi se samo 3 od njih. Možda izgleda kao vrlo jednostavna komponenta, ali unutar senzora ima mikrokontroler koji podatke u digitalnom obliku prenosi na ploču arduino.

Šalje 8-bitne podatke svake sekunde na arduino, da bi dekodirao primljeni signal, u kôd koji je dizajniran za njegovo rukovanje trebamo uključiti knjižnicu. Poveznica za knjižnicu dana je u nastavku članka.

Kružni dijagram:

sučelje DH11 s arduinom

Spoj kruga od senzora do arduina vrlo je jednostavan. Izlaz senzora spojen je na A1 pin arduino. Opskrbni Vcc i GND povezani su na napajalne pinove arduina.

Napomena: Pazite da vaš senzor ima ugrađeni pull-up otpornik, ako ga nema, spojite 4.7K pull-up otpornik na izlazni pin DHT11 senzora.

BMP180 senzor:

BMP180 je barometarski senzor koji može mjeriti atmosferski tlak, nadmorsku visinu i temperaturu. Mjerenje temperature s ovog senzora zanemaruje se jer imamo namjenski senzor za mjerenje temperature okoline.

Senzor mjeri nadmorsku visinu uređaja od razine mora, to je također jedan od parametara koji se koristi u meteorologiji.

Kružni dijagram:

povezivanje BM180 s Arduinom
Koristi I2C komunikacijski protokol, SDA pin ide na A4 arduino, a SCL ide na A5 arduino. Vcc i GND spojeni su na napajanje iglama arduina.

LCD veza:

senzor vlage pomoću Aduina


LCD zaslon prikazuje sve podatke sa senzora. Veza između LCD zaslona i arduina je standardna, a sličnu vezu možemo pronaći i na mnogim drugim LCD projektima. Podesite 10K potenciometar za optimalnu vidljivost s LCD zaslona.

Autorski prototip:

slika prototipa meteorološke stanice

Ovdje je autorov prototip kruga mini vremenskog monitora gdje su svi senzori prikazani u shemama povezani s pločom arduino.

Napomena: Priključak kruga sa svakog senzora i LCD zaslona trebao bi biti povezan na jednu arduino ploču. Dali smo diskretni priključak senzora na svakoj shemi kako bismo izbjegli zabunu prilikom dupliciranja kruga.

Preuzmite datoteke iz knjižnice prije slanja koda:

DHT11 knjižnica: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 biblioteka: github.com/adafruit/Adafruit_BMP085_Unified.git

Kod programa:

#include
#include
#include
#include
#define DHTxxPIN A1
LiquidCrystal lcd(12,11,5,4,3,2)
dht DHT
Adafruit_BMP085 bmp
int ack
int input = A0
unsigned long A = 1000L
unsigned long B = A * 60
unsigned long C = B * 2
int low = 300
int med = 500
int high = 700
int x = 4000
void setup()
{
Serial.begin(9600)
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('Sensors are')
lcd.setCursor(0,1)
lcd.print('getting ready')
delay(C)
}
void loop()
{
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Temp(*C)= ')
lcd.print(DHT.temperature)
lcd.setCursor(0,1)
lcd.print('Humidity(%) = ')
lcd.print(DHT.humidity)
delay(x)
}
if(ack==1)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('NO DATA')
lcd.setCursor(0,1)
lcd.print('Check Sensor')
delay(x)
}
if (!bmp.begin())
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('BMP180 sensor')
lcd.setCursor(0,1)
lcd.print('not found')
while (1) {}
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Pressure---- ')
lcd.setCursor(0,1)
lcd.print(bmp.readPressure())
lcd.print(' Pascal')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('----Altitude----')
lcd.setCursor(0,1)
lcd.print(bmp.readAltitude(101500))
lcd.print(' meter')
delay(x)
lcd.clear()
lcd.setCursor(0,0)
lcd.print(' Air Quality:')
if(analogRead(input)==0)
{
lcd.setCursor(0,1)
lcd.print(' Sensor Error')
delay(x)
}
if(analogRead(input)0)
{
lcd.setCursor(0,1)
lcd.print(' GOOD')
delay(x)
}
if(analogRead(input)>low && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' GETTING BAD')
delay(x)
}
if(analogRead(input)>=med && analogRead(input) {
lcd.setCursor(0,1)
lcd.print(' VERY POOR')
delay(x)
}
if(analogRead(input)>=high)
{
lcd.setCursor(0,1)
lcd.print(' WORST')
delay(x)
}
}

BILJEŠKA:

Objasnjeni krug mini vremenske stanice treba 2 minute da pokaže očitanja sa senzora, a do tada se prikazuje 'Senzori se pripremaju'. To je zato što senzoru MQ-135 treba 2 minute da postigne optimalnu radnu temperaturu.




Prethodno: Kako izraditi jednostavnu sušilicu za krpu za sezonu kiša Dalje: Kružni krug automobila s igračkama