Tee tämä yksinkertainen sääasemaprojekti kodeille ja toimistoille

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä viestissä aiomme rakentaa mielenkiintoisen Arduino-pohjaisen minisääasemaprojektin, joka voi näyttää ympäristön lämpötilan, kosteuden, paineen, ilmanlaadun ja paljon muuta tietoa ympäristöstäsi, jonka avulla voidaan ennustaa sää kotoa.



Jos olet kiinnostunut meteorologiasta, tämä projekti voi olla hyödyllinen paikallisten sääolosuhteiden ja lyhytaikaisten muutosten tutkimiseen. Ehdotettu projekti on puolijohdesuunnittelu, mikä tarkoittaa, että liikkuvia osia ei ole.

Tämä projekti voidaan sijoittaa sisä- tai puoli-sisäolosuhteisiin, joissa piiri on poissa suorasta auringonvalosta, kovasta tuulesta tai kosteudesta, joka voi heikentää aluksella olevia antureita.



Muotoilu:

Ehdotettu mini-sääaseman piirihanke on rakennettu Arduinon ympärille, joka on sääaseman aivot, joka kerää paljon tietoja eri antureista ja käsittelee niitä ja näyttää 16x2 LCD-näytöllä.

Voit valita suosikkiarduino-levyn tähän projektiin. Piiri koostuu kolmesta anturista MQ-135, BMP180 ja DHT11. Katsotaanpa, mitä kukin anturi tekee yksityiskohtaisesti.

MQ-135-anturi:

MQ-135 on ilmanlaadun mittausanturi, joka voi havaita hiilidioksidin, alkoholin, bentseenin, savun, butaanin, propaanin jne. Jos näiden kaasujen kemiallinen pitoisuus on korkea ilmassa, voidaan sanoa, että ilma on saastunutta.

Anturi tunnistaa ilman epäpuhtauspitoisuuden muutoksen ja antaa sopivan jännitetason. Anturin lähtöjännite on suoraan verrannollinen ilman kemiallisen pitoisuuden tasoon.

Anturin jännitteen vaihtelu syötetään Arduinoon, meillä on ohjelmassa ennalta määritetyt kynnysarvot. Kun se ylittää kynnystason, mikro-ohjain kertoo meille, onko ilma turvallista vai ei.

Piirikaavio

liitäntä MQ135-anturi sääasema-piirillä

Yllä oleva kaavio näyttää kytkentäkaavion. Tämä anturi tarvitsee ulkoisen 5 V: n virtalähteen, koska siinä on lämmityselementti anturin sisällä, joka kuluttaa noin 1 wattia. Arduinon virtapistokkeen virta ei voi syöttää suurempaa virtaa.

Lämmityselementti pitää anturin lämpimänä ja auttaa ottamaan näytteestä sopivan määrän kemiallisia pitoisuuksia ilmassa. Anturin optimaalisen lämpötilan saavuttaminen kestää noin muutaman minuutin.

DHT11-anturi:

DHT11-anturi tunnetaan yleisesti nimellä lämpötila- ja kosteusanturi. Se voi mitata lämpötilaa ja kosteutta ympäröivästä, kuten nimestä voi päätellä.

Se on 4-nastainen laite, mutta vain 3 niistä on käytössä. Se voi näyttää hyvin yksinkertaiselta komponentilta, mutta anturin sisällä on mikrokontrolleri, joka välittää tiedot digitaalisessa muodossa arduino-kortille.

Se lähettää 8-bittistä tietoa sekunnissa arduinolle, vastaanotetun signaalin purkamiseksi meidän on sisällytettävä kirjasto koodiin, joka on suunniteltu käsittelemään sitä. Kirjaston linkki on artikkelin myöhemmässä osassa.

Piirikaavio:

käyttöliittymä DH11 arduinolla

Piiriliitäntä anturista arduinoon on hyvin yksinkertainen. Anturin lähtö on kytketty arduinon A1-nastaan. Syöttö Vcc ja GND on kytketty Arduinon virtalähteen nastoihin.

Huomautus: Varmista, että anturissasi on sisäänrakennettu vetovastus, jos siinä ei ole sellaista, joka kytkee 4,7 kt: n vetovastuksen DHT11-anturin ulostulotappiin.

BMP180-anturi:

BMP180 on barometrinen anturi, jolla voidaan mitata ilmanpaine, korkeus ja lämpötila. Tämän anturin lämpötilan mittaus jätetään huomioimatta, koska meillä on oma anturi ympäristön lämpötilan mittaamiseen.

Anturi mittaa asennuksen korkeuden merenpinnasta, se on myös yksi meteorologiassa käytetyistä parametreista.

Piirikaavio:

BM180: n liittäminen Arduinoon
Se käyttää I2C-yhteyskäytäntöä, SDA-tappi menee arduinon A4: ään ja SCL arduinon A5: een. Vcc ja GND on kytketty arduinon virtalähteen nastoihin.

LCD-liitäntä:

kosteusanturi Aduinoa käyttämällä


LCD-näyttö näyttää kaikki antureiden tiedot. LCD-näytön ja arduinon välinen yhteys on vakiona, voimme löytää samanlaisen yhteyden moniin muihin LCD-pohjaisiin projekteihin. Säädä 10K-potentiometriä optimaalisen näkyvyyden saamiseksi LCD-näytöltä.

Kirjoittajan prototyyppi:

sääaseman prototyyppikuva

Tässä on kirjoittajan prototyyppi pienestä säämonitoripiiristä, jossa kaikki kaavioissa esitetyt anturit on kytketty arduino-korttiin.

Huomaa: Jokaisen anturin ja LCD-näytön piiriliitäntä tulisi liittää yhteen arduino-korttiin. Olemme antaneet erillisen anturiliitännän jokaisessa kaaviossa sekaannusten välttämiseksi samalla, kun kopioimme piiriä.

Lataa kirjastotiedostot ennen koodin lataamista:

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

BMP180-kirjasto: github.com/adafruit/Adafruit_BMP085_Unified.git

Ohjelmakoodi:

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

HUOMAUTUS:

Selitetyllä minisääaseman piirillä kestää 2 minuuttia anturin lukemien näyttäminen, kunnes se näyttää 'Anturit ovat valmistautumassa'. Tämä johtuu siitä, että MQ-135-anturilla kestää 2 minuuttia optimaalisen käyttölämpötilan saavuttamiseksi.




Pari: Kuinka rakentaa yksinkertainen kuivausrumpu sadekaudelle Seuraava: Taputettava leikkiautopiiri