Izveidojiet šo vienkāršo meteoroloģisko staciju projektu mājām un birojiem

Izmēģiniet Mūsu Instrumentu Problēmu Novēršanai





Šajā ierakstā mēs izveidosim interesantu Arduino bāzes mini laika staciju projektu, kas var parādīt apkārtējās vides temperatūru, mitrumu, spiedienu, gaisa kvalitāti un daudz vairāk datu no apkārtnes, kurus var izmantot laika apstākļu prognozēšanai no mājām.



Ja jūs interesē meteoroloģija, šis projekts var būt noderīgs, lai izpētītu vietējos laika apstākļus un īstermiņa izmaiņas. Piedāvātais projekts ir cietvielu dizains, kas nozīmē, ka nav kustīgu daļu.

Šo projektu var izvietot iekštelpās vai daļēji iekštelpās, kur ķēde atrodas prom no tiešiem saules stariem vai stipra vēja vai mitruma, kas var pasliktināt borta sensorus.



Dizains:

Ierosinātais mini meteoroloģisko staciju ķēdes projekts ir veidots ap Arduino, kas ir meteoroloģiskās stacijas smadzenes, kas vāc daudzus datus no dažādiem sensoriem, tos apstrādā un parāda 16x2 LCD ekrānā.

Šim projektam varat izvēlēties iecienītāko arduino dēli. Kontūru veido trīs sensori MQ-135, BMP180 un DHT11. Apskatīsim katra sensora darbību detalizēti.

MQ-135 sensors:

MQ-135 ir gaisa kvalitātes mērīšanas sensors, kas var noteikt oglekļa dioksīdu, spirtu, benzolu, dūmus, butānu, propānu utt. Ja šo gāzu ķīmiskā koncentrācija gaisā ir augsta, tad mēs varam teikt, ka gaiss ir piesārņots.

Sensors var noteikt piesārņojošo vielu koncentrācijas izmaiņas gaisā un noteikt atbilstošu sprieguma līmeni. Sensora izejas spriegums ir tieši proporcionāls ķīmiskās koncentrācijas līmenim gaisā.

Sprieguma variācija no sensora tiek padota uz Arduino, mums programmā ir iepriekš noteikti sliekšņa līmeņi. Kad tas pārsniedz sliekšņa līmeni, mikrokontrolleris mums paziņo, vai gaiss ir drošs vai nē.

Ķēdes shēma

saskarnes MQ135 sensors ar meteoroloģiskās stacijas shēmu

Iepriekš sniegtā shēma parāda elektroinstalācijas shēmu. Šim sensoram nepieciešama ārēja 5 V barošana, jo sensora iekšpusē tam ir sildelements, kas patērē aptuveni 1 vatu. Arduino strāvas tapas jauda nevar piegādāt lielāku strāvu.

Sildelements uztur sensoru siltu un palīdz noteikt piemērotu daudzumu ķīmiskās koncentrācijas gaisā. Sensoram nepieciešamas aptuveni pāris minūtes, lai sasniegtu optimālo temperatūru.

DHT11 sensors:

DHT11 sensoru tautā sauc par temperatūras un mitruma sensoru. Tas var izmērīt temperatūru un mitrumu no apkārtnes, kā norāda nosaukums.

Tā ir 4 kontaktu ierīce, bet tiek izmantotas tikai 3 no tām. Tas var izskatīties kā ļoti vienkāršs komponents, taču sensora iekšpusē tam ir mikrokontrolleris, kas datus digitālā veidā nodod arduino dēlim.

Tas katru sekundi nosūta 8 bitu datus arduino, lai atšifrētu saņemto signālu, mums jāiekļauj bibliotēka kodā, kas paredzēts tā apstrādei. Saite uz bibliotēku ir dota vēlāk raksta daļā.

Ķēdes shēma:

saskarne DH11 ar arduino

Ķēdes savienojums no sensora līdz arduino ir ļoti vienkāršs. Sensora izeja ir pievienota arduino A1 tapai. Barošana Vcc un GND ir savienota ar arduino barošanas tapām.

Piezīme: Lūdzu, pārliecinieties, vai sensorā ir iebūvēts pievilkšanas rezistors, ja tam nav neviena, pievienojiet 4,7 K pievilkšanas rezistoru pie DHT11 sensora izejas tapas.

BMP180 sensors:

BMP180 ir barometriskais sensors, ar kuru var izmērīt atmosfēras spiedienu, augstumu un temperatūru. Temperatūras mērīšana no šī sensora tiek atstāta novārtā, jo mums ir īpašs sensors apkārtējās vides temperatūras mērīšanai.

Sensors mēra iestatījuma augstumu no jūras līmeņa, tas ir arī viens no meteoroloģijā izmantotajiem parametriem.

Ķēdes shēma:

saskaroties ar BM180 ar Arduino
Tas izmanto I2C sakaru protokolu, SDA tapa iet uz A4 arduino, bet SCL - uz A5 arduino. Vcc un GND ir pievienoti arduino barošanas tapām.

LCD savienojums:

mitruma sensors, izmantojot Aduino


LCD displejā tiek parādīti visi sensoru dati. Savienojums starp LCD displeju un arduino ir standarta. Mēs varam atrast līdzīgu savienojumu daudziem citiem LCD balstītiem projektiem. Pielāgojiet 10K potenciometru optimālai redzamībai no LCD displeja.

Autora prototips:

meteoroloģiskās stacijas prototipa attēls

Šeit ir minētā laika laika monitora ķēdes autora prototips, kur visi shēmās parādītie sensori ir savienoti ar arduino dēli.

Piezīme. Katra sensora un LCD displeja ķēdes savienojumam jābūt savienotam ar vienu arduino dēli. Katrā shēmā mēs esam piešķīruši diskrētu sensora savienojumu, lai izvairītos no neskaidrībām, vienlaikus dublējot ķēdi.

Pirms koda augšupielādes lejupielādējiet bibliotēkas failus:

DHT11 bibliotēka: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 bibliotēka: github.com/adafruit/Adafruit_BMP085_Unified.git

Programmas kods:

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

PIEZĪME:

Izskaidrotajā nelielajā meteoroloģisko staciju ķēdē ir nepieciešamas 2 minūtes, lai parādītu sensora rādījumus, līdz tam parādās “Sensori gatavojas”. Tas ir tāpēc, ka MQ-135 sensoram nepieciešamas 2 minūtes, lai sasniegtu optimālo darba temperatūru.




Pāri: Kā izveidot vienkāršu veļas žāvētāju lietainai sezonai Nākamais: Clap darbināmā rotaļlietu automašīnas ķēde