Gawin itong Simple Weather Station Project para sa Mga Bahay at Opisina

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa post na ito magtatayo kami ng isang kagiliw-giliw na proyekto ng istasyon ng panahon ng Arduino batay sa proyekto, na maaaring ipakita sa iyo ang temperatura sa paligid, halumigmig, presyon, kalidad ng hangin at marami pang data mula sa iyong paligid, na maaaring magamit upang hulaan ang panahon mula sa bahay.



Kung interesado ka sa meteorolohiya ang proyektong ito ay maaaring maging madaling gamiting para sa pag-aaral tungkol sa mga lokal na kondisyon ng panahon at mga panandaliang pagbabago. Ang iminungkahing proyekto ay solidong disenyo ng estado, na nangangahulugang walang gumagalaw na mga bahagi.

Ang proyektong ito ay maaaring mailagay sa panloob o semi-panloob na mga kondisyon, kung saan ang circuit ay malayo mula sa direktang sikat ng araw o mabigat na hangin o kahalumigmigan na maaaring lumala ang mga sensor on-board.



Ang disenyo:

Ang iminungkahing proyekto ng circuit ng mini weather station ay itinayo sa paligid ng Arduino, na utak ng istasyon ng panahon na nakakolekta ng maraming data mula sa iba't ibang mga sensor at pinoproseso ang mga ito at ipinapakita sa 16x2 LCD screen.

Maaari kang pumili ng iyong paboritong arduino board para sa proyektong ito. Ang circuit ay binubuo ng tatlong mga sensor MQ-135, BMP180 at DHT11. Tingnan natin kung anong detalye ang ginagawa ng bawat sensor.

MQ-135 Sensor:

Ang MQ-135 ay isang sensor ng kalidad ng pagsukat ng hangin, na makakakita ng carbon dioxide, alkohol, benzene, usok, butane, propane atbp Kung ang konsentrasyon ng kemikal na ang mga gas na ito ay mataas sa hangin, maaari nating sabihin na ang hangin ay nadumhan.

Ang sensor ay maaaring makakita ng pagbabago sa konsentrasyon ng mga pollutant sa hangin at nagbibigay ng naaangkop na antas ng boltahe. Ang boltahe ng output ng sensor ay direktang proporsyonal sa antas ng konsentrasyon ng kemikal sa hangin.

Ang pagkakaiba-iba ng boltahe mula sa sensor ay pinakain sa Arduino mayroon kaming paunang natukoy na mga antas ng threshold sa programa. Kapag tumawid ito sa antas ng threshold sasabihin sa amin ng microcontroller kung ang hangin ay ligtas o hindi.

Diagram ng Circuit

interface MQ135 sensor na may circuit ng istasyon ng panahon

Ipinapakita ng diagram sa itaas ang diagram ng mga kable. Ang sensor na ito ay nangangailangan ng panlabas na 5V supply sapagkat mayroon itong elemento ng pag-init sa loob ng sensor na kumonsumo sa paligid ng 1 Watt. Ang lakas mula sa power pin ng arduino ay hindi maaaring magbigay ng mas mataas na kasalukuyang.

Pinapanatili ng elemento ng pag-init ang sensor na mainit at nakakatulong upang mai-sample ang naaangkop na dami ng konsentrasyon ng kemikal sa hangin. Tumatagal ang sensor ng halos dalawang minuto upang maabot ang pinakamainam na temperatura.

DHT11 Sensor:

Ang sensor ng DHT11 ay kilalang kilala bilang Temperatura at sensor ng kahalumigmigan. Masusukat nito ang temperatura at halumigmig mula sa nakapaligid na ayon sa ipinahihiwatig ng pangalan.

Ito ay isang 4 pin na aparato ngunit 3 lamang sa mga ito ang ginagamit. Maaari itong magmukhang isang napaka-simpleng sangkap, ngunit mayroon itong isang microcontroller sa loob ng sensor na nagpapasa ng data sa digital form sa arduino board.

Nagpadala ito ng 8 bit na data bawat segundo sa arduino, upang mai-decode ang natanggap na signal, kailangan naming isama ang library sa code na idinisenyo upang hawakan ito. Ang link para sa silid-aklatan ay ibinibigay sa ibang bahagi ng artikulo.

Diagram ng circuit:

interface DH11 na may arduino

Ang koneksyon ng circuit mula sa sensor hanggang sa arduino ay napakasimple. Ang output ng sensor ay konektado sa A1 pin ng arduino. Ang supply Vcc at GND ay konektado sa mga power supply pin ng arduino.

Tandaan: Mangyaring tiyakin na ang iyong sensor ay nakabuo ng pull-up risistor, kung wala itong isang kumonekta sa isang 4.7K pull-up risistor sa output pin ng DHT11 sensor.

Sensor ng BMP180:

Ang BMP180 ay sensor ng barometric maaari nitong sukatin ang presyon ng atmospera, altitude at temperatura. Ang pagsukat ng temperatura mula sa sensor na ito ay napapabayaan dahil mayroon kaming nakatuon na sensor para sa pagsukat ng temperatura ng paligid.

Sinusukat ng sensor ang altitude ng pag-setup mula sa antas ng dagat, isa rin ito sa parameter na ginamit sa meteorology.

Diagram ng Circuit:

interfacing BM180 kay Arduino
Gumagamit ito ng I2C komunikasyon protocol, ang SDA pin ay papunta sa A4 ng arduino at ang SCL ay papunta sa A5 ng arduino. Ang Vcc at GND ay konektado sa mga power supply pin ng arduino.

Koneksyon sa LCD:

kahalumigmigan sensor gamit ang Aduino


Ipinapakita ng LCD display ang lahat ng data mula sa mga sensor. Ang koneksyon sa pagitan ng LCD display at arduino ay pamantayan maaari kaming makahanap ng katulad na koneksyon sa maraming iba pang mga proyektong batay sa LCD. Ayusin ang 10K potentiometer para sa pinakamainam na kakayahang makita mula sa LCD display.

Prototype ng May-akda:

imahe ng prototype ng istasyon ng panahon

Narito ang prototype ng may-akda ng isang mini circuit ng monitor ng panahon kung saan ang lahat ng sensor na ipinakita sa mga eskematiko ay konektado sa arduino board.

Tandaan: Ang koneksyon ng circuit mula sa bawat sensor at LCD display ay dapat na konektado sa solong arduino board. Nagbigay kami ng koneksyon ng discrete sensor sa bawat eskematiko upang maiwasan ang pagkalito habang dinoble ang circuit.

I-download ang mga file ng Library bago i-upload ang code:

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

Library ng BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Code ng 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)
}
}

TANDAAN:

Ang ipinaliwanag na mini lagay ng istasyon ng panahon ay tumatagal ng 2 minuto upang maipakita ang mga pagbasa mula sa sensor, hanggang sa pagkatapos ay ipinapakita nito ang 'Mga sensor ay naghahanda'. Ito ay dahil ang sensor ng MQ-135 ay tumatagal ng 2 minuto upang maabot ang pinakamainam na temperatura ng operating.




Nakaraan: Paano Bumuo ng isang Simpleng Panunuyo ng Kain para sa Tag-ulan Susunod: Clap Operated Toy Car Circuit