Tehke see lihtne ilmajaama projekt kodude ja kontorite jaoks

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Selles postituses ehitame huvitava Arduino põhise ilmajaama projekti, mis näitab teile ümbritseva keskkonna temperatuuri, õhuniiskust, rõhku, õhukvaliteeti ja palju muud teavet, mida saab kasutada koduse ilma ennustamiseks.



Kui teid huvitab meteoroloogia, võib see projekt olla kasulik kohalike ilmastikutingimuste ja lühiajaliste muutuste uurimiseks. Kavandatav projekt on tahkiskujundus, mis tähendab, et liikuvaid osi pole olemas.

Selle projekti võib paigutada sise- või pooleldi sisetingimustesse, kus vooluahel on otsese päikesevalguse, tugeva tuule või niiskuse eest, mis võib pardal olevaid andureid halvendada.



Kujundus:

Kavandatud mini-ilmajaama ringrajaprojekt on ehitatud Arduino ümber, mis on ilmajaama peaosa, mis kogub erinevatelt anduritelt palju andmeid ja töötleb neid ning kuvab 16x2 LCD-ekraanil.

Selle projekti jaoks saate valida oma lemmik arduino plaadi. Vooluring koosneb kolmest andurist MQ-135, BMP180 ja DHT11. Vaatame, mida iga andur üksikasjalikult teeb.

MQ-135 andur:

MQ-135 on õhukvaliteedi mõõtesensor, mis suudab tuvastada süsinikdioksiidi, alkoholi, benseeni, suitsu, butaani, propaani jne. Kui nende gaaside keemiline kontsentratsioon on õhus kõrge, siis võime öelda, et õhk on saastatud.

Andur suudab tuvastada õhus sisalduvate saasteainete kontsentratsiooni muutusi ja annab sobiva pingetaseme. Anduri väljundpinge on otseselt proportsionaalne keemilise kontsentratsiooni tasemega õhus.

Anduri pinge variatsioon suunatakse Arduinole, meil on programmis eelnevalt kindlaks määratud lävetasemed. Kui see ületab lävetaseme, ütleb mikrokontroller meile, kas õhk on ohutu või mitte.

Vooluringi skeem

liides MQ135 andur ilmajaama kontuuriga

Ülaltoodud skeem näitab juhtmestiku skeemi. See andur vajab välist 5V toiteallikat, kuna selle anduri sees on kütteelement, mis tarbib umbes 1 W. Arduino voolupistiku toide ei suuda toita suuremat voolu.

Kütteelement hoiab anduri soojas ja aitab proovida õhus sobivat keemilise kontsentratsiooni kogust. Anduril kulub optimaalse temperatuuri saavutamiseks umbes paar minutit.

DHT11 andur:

DHT11 andurit tuntakse rahva seas temperatuuri ja niiskuse andurina. See saab mõõta temperatuuri ja niiskust ümbritsevast, nagu nimigi ütleb.

See on 4-kontaktiline seade, kuid neist kasutatakse ainult 3. See võib tunduda väga lihtsa komponendina, kuid sensori sees on mikrokontroller, mis edastab andmed digitaalsel kujul arduino plaadile.

See saadab iga sekundi järel 8-bitiseid andmeid arduinole. Vastuvõetud signaali dekodeerimiseks peame lisama selle käsitsemiseks mõeldud koodi ka teegi. Raamatukogu link on toodud artikli hilisemas osas.

Skeem:

liides DH11 arduinoga

Vooluühendus sensorist arduinoga on väga lihtne. Anduri väljund on ühendatud arduino A1 tihvtiga. Toiteallikas Vcc ja GND on ühendatud arduino toiteallika tihvtidega.

Märkus. Veenduge, et teie anduril oleks sisseehitatud tõmmetakistus, kui sellel pole DHT11 anduri väljundtapis 4,7K tõmbetakisti.

BMP180 andur:

BMP180 on õhurõhuandur, millega saab mõõta atmosfäärirõhku, kõrgust ja temperatuuri. Selle anduri temperatuuri mõõtmine jäetakse tähelepanuta, kuna meil on spetsiaalne andur ümbritseva õhu temperatuuri mõõtmiseks.

Andur mõõdab seadistuse kõrgust merepinnast, see on ka üks meteoroloogias kasutatav parameeter.

Vooluahela skeem:

BM180 ühendamine Arduinoga
See kasutab I2C sideprotokolli, SDA pin läheb arduino A4-le ja SCL arduino A5-le. Vcc ja GND on ühendatud arduino toiteallika tihvtidega.

LCD-ühendus:

niiskusesensor Aduino abil


LCD-ekraanil kuvatakse kõik andurite andmed. LCD-ekraani ja arduino ühendus on standardne, leiame sarnase ühenduse paljude teiste LCD-põhiste projektidega. LCD ekraanilt optimaalse nähtavuse jaoks reguleerige 10K potentsiomeetrit.

Autori prototüüp:

ilmajaama prototüübi pilt

Siin on autori prototüüp väikesest ilmakontrolli vooluringist, kus kõik skeemidel näidatud andurid on ühendatud arduino plaadiga.

Märkus. Andurite ja LCD-ekraanide vooluühendus tuleks ühendada ühe arduino plaadiga. Oleme andnud skemaatilisele anduriühendusele skeemi, et vältida segadust vooluahela dubleerimisel.

Enne koodi üleslaadimist laadige alla raamatukogu failid:

DHT11 teek: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

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

Programmi kood:

#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)
}
}

MÄRGE:

Selgitatud mini-ilmajaama vooluringil kulub andurilt saadud näidude kuvamiseks 2 minutit, kuni selle ajani kuvatakse teade 'Sensorid valmistuvad'. Seda seetõttu, et MQ-135 anduril kulub optimaalse töötemperatuuri saavutamiseks 2 minutit.




Eelmine: Kuidas ehitada vihmaperioodiks lihtsat riidekuivatit Järgmine: Plaksutatav mänguautode ring