Készítse el ezt az egyszerű meteorológiai állomás projektet otthonok és irodák számára

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben egy érdekes Arduino alapú mini időjárás-állomás projektet fogunk készíteni, amely megmutatja a környezeti hőmérsékletet, páratartalmat, nyomást, levegő minőségét és még sok más adatot a környezetéből, amelyek felhasználhatók az időjárás előrejelzésére otthonról.



Ha érdekli a meteorológia, ez a projekt hasznos lehet a helyi időjárási viszonyok és rövid távú változások tanulmányozásához. A javasolt projekt szilárdtest alakú, ami azt jelenti, hogy nincsenek mozgó alkatrészek.

Ezt a projektet beltéri vagy félig beltéri körülmények között lehet megvalósítani, ahol az áramkör nincs közvetlen napfénytől, erős széltől vagy nedvességtől távol, amely ronthatja a fedélzeten lévő érzékelőket.



A dizájn:

A javasolt időjárási állomás mini projektje Arduino köré épül, amely az időjárási állomás agya, amely rengeteg adatot gyűjt különféle érzékelőkből, feldolgozza azokat, és megjeleníti a 16x2 LCD-képernyőt.

Kiválaszthatja kedvenc arduino tábláját ehhez a projekthez. Az áramkör három MQ-135, BMP180 és DHT11 érzékelőből áll. Nézzük meg, hogy az egyes érzékelők mit csinálnak részletesen.

MQ-135 érzékelő:

Az MQ-135 egy levegőminőséget mérő érzékelő, amely képes észlelni a szén-dioxidot, alkoholt, benzolt, füstöt, butánt, propánt stb. Ha ezeknek a gázoknak a kémiai koncentrációja magas a levegőben, akkor azt mondhatjuk, hogy a levegő szennyezett.

Az érzékelő képes érzékelni a levegőben lévő szennyező anyagok koncentrációjának változását, és megfelelő feszültségszintet ad ki. Az érzékelő kimeneti feszültsége egyenesen arányos a levegőben lévő kémiai koncentráció szintjével.

Az érzékelőtől érkező feszültségváltozás az Arduino-hoz kerül, a programban előre meghatározott küszöbszintek vannak. Amikor átlépi a küszöbszintet, a mikrovezérlő megmondja, hogy a levegő biztonságos-e vagy sem.

Kördiagramm

interfész MQ135 érzékelő meteorológiai állomás áramkörrel

A fenti ábra a bekötési rajzot mutatja. Ennek az érzékelőnek külső 5 V-os tápra van szüksége, mivel az érzékelő belsejében fűtőelem található, amely körülbelül 1 wattot fogyaszt. Az arduino tápcsatlakozójának tápellátása nem képes nagyobb áramot szolgáltatni.

A fűtőelem melegen tartja az érzékelőt, és segít a megfelelő mennyiségű kémiai koncentráció mintavételében a levegőben. Az érzékelő körülbelül pár percet vesz igénybe az optimális hőmérséklet eléréséhez.

DHT11 érzékelő:

A DHT11 érzékelőt közismert nevén Hőmérséklet és páratartalom érzékelő. Meg tudja mérni a környezeti hőmérsékletet és páratartalmat, ahogy a neve is sugallja.

Ez egy 4 tűs eszköz, de csak 3-at használnak. Nagyon egyszerű alkatrésznek tűnhet, de az érzékelőben van egy mikrovezérlő, amely digitális formában továbbítja az adatokat az arduino kártyára.

Másodpercenként 8 bites adatot küld az arduino-nak, a vett jel dekódolásához könyvtárat kell beépítenünk a kódba, amely annak kezelésére készült. A könyvtár linkje a cikk későbbi részében található.

Kördiagramm:

interfész DH11 az arduino-val

Az áramkör összekapcsolása az érzékelőtől az arduino felé nagyon egyszerű. Az érzékelő kimenete az arduino A1 tűjéhez csatlakozik. A Vcc és a GND tápegység az arduino tápegységeihez csatlakozik.

Megjegyzés: Kérjük, ellenőrizze, hogy az érzékelő beépített ellenállással rendelkezik-e, ha nincs ilyen, csatlakoztasson egy 4,7 K-os ellenállást a DHT11 érzékelő kimeneti tüskéjéhez.

BMP180 érzékelő:

A BMP180 légköri érzékelő, amely képes mérni a légköri nyomást, a magasságot és a hőmérsékletet. Az érzékelő hőmérsékletének mérését elhanyagoljuk, mivel külön érzékelőnk van a környezeti hőmérséklet mérésére.

Az érzékelő a beállítás tengerszint feletti magasságát méri, a meteorológiában használt paraméterek egyike is.

Kördiagramm:

a BM180 és az Arduino összekapcsolása
I2C kommunikációs protokollt használ, az SDA pin az arduino A4-re, az SCL pedig az arduino A5-re megy. A Vcc és a GND az arduino tápegységeihez vannak csatlakoztatva.

LCD csatlakozás:

páratartalom-érzékelő az Aduino segítségével


Az LCD kijelző az összes érzékelő adatait megjeleníti. Az LCD kijelző és az arduino közötti kapcsolat szabványos, hasonló kapcsolatot találhatunk más LCD alapú projekteknél is. Állítsa be a 10K potenciométert az optimális láthatóság érdekében az LCD kijelzőről.

A szerző prototípusa:

meteorológiai állomás prototípus képe

Itt található a szerző prototípusa egy mini időjárás-figyelő áramkörről, ahol a vázlatokon látható összes érzékelő az arduino táblához csatlakozik.

Megjegyzés: Az egyes érzékelők és az LCD kijelző áramköri csatlakozását egyetlen arduino kártyához kell csatlakoztatni. Az egyes vázlatokon külön szenzor csatlakozást adtunk, hogy elkerüljük az összekapcsolódást az áramkör megismétlése közben.

A kód feltöltése előtt töltse le a Library fájlokat:

DHT11 könyvtár: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 könyvtár: github.com/adafruit/Adafruit_BMP085_Unified.git

Program kód:

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

JEGYZET:

Az ismertetett mini meteorológiai állomás áramköre 2 percet vesz igénybe, amíg az érzékelő leolvassa az eredményeket, addig az „Az érzékelők készülődnek” felirat jelenik meg. Az MQ-135 érzékelő ugyanis 2 percet vesz igénybe az optimális üzemi hőmérséklet eléréséhez.




Előző: Hogyan készítsünk egy egyszerű ruhaszárítót az esős évszakhoz Következő: Tapsolva működtetett játékautó áramkör