Vyrobte si tento jednoduchý projekt meteorologickej stanice pre domácnosti a kancelárie

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku skonštruujeme zaujímavý projekt mini meteorologickej stanice založený na Arduine, ktorý vám môže ukázať teplotu prostredia, vlhkosť, tlak, kvalitu vzduchu a oveľa viac údajov z vášho okolia, z ktorých je možné predpovedať počasie z domova.



Ak vás zaujíma meteorológia, tento projekt by vám mohol prísť vhod pri štúdiu miestnych poveternostných podmienok a krátkodobých zmien. Navrhovaný projekt je polovodičový dizajn, čo znamená, že neexistujú žiadne pohyblivé časti.

Tento projekt môže byť umiestnený vo vnútorných alebo čiastočne vnútorných podmienkach, keď je okruh mimo dosahu priameho slnečného žiarenia alebo silného vetra alebo vlhkosti, ktorá môže poškodiť snímače na palube.



Dizajn:

Navrhovaný projekt obvodu minimálnej meteorologickej stanice je postavený na Arduine, ktoré je mozgom meteorologickej stanice, ktorá zhromažďuje množstvo údajov z rôznych senzorov a spracováva ich a zobrazuje na obrazovke LCD 16x2.

Pre tento projekt si môžete vybrať svoju obľúbenú arduino dosku. Obvod sa skladá z troch senzorov MQ-135, BMP180 a DHT11. Pozrime sa, čo jednotlivé senzory robia podrobne.

Senzor MQ-135:

MQ-135 je snímač kvality vzduchu, ktorý dokáže detekovať oxid uhličitý, alkohol, benzén, dym, bután, propán atď. Ak je chemická koncentrácia týchto plynov vo vzduchu vysoká, potom môžeme povedať, že je znečistený.

Senzor dokáže detekovať zmenu koncentrácie znečisťujúcich látok vo vzduchu a vydáva príslušnú úroveň napätia. Výstupné napätie senzora je priamo úmerné úrovni chemickej koncentrácie vo vzduchu.

Kolísanie napätia zo snímača sa privádza do Arduina, kde máme v programe vopred určené prahové úrovne. Keď prekročí prahovú hladinu, mikrokontrolér nám oznámi, či je vzduch bezpečný alebo nie.

Schéma zapojenia

rozhranie senzora MQ135 s obvodom meteorologickej stanice

Vyššie uvedená schéma zobrazuje schému zapojenia. Tento snímač vyžaduje externé napájanie 5 V, pretože má vo vnútri snímača vykurovacie teleso, ktoré spotrebúva okolo 1 Watt. Sila napájacieho kolíka Arduina nemôže dodávať vyšší prúd.

Vykurovacie teleso udržuje snímač v teple a pomáha vzorkovať príslušné množstvo chemickej koncentrácie vo vzduchu. Senzor dosiahne optimálnu teplotu asi pár minút.

Senzor DHT11:

Senzor DHT11 je všeobecne známy ako senzor teploty a vlhkosti. Môže merať teplotu a vlhkosť z okolia, ako to naznačuje názov.

Jedná sa o 4-pinové zariadenie, ale používajú sa iba 3 z nich. Môže to vyzerať ako veľmi jednoduchý komponent, ale vo vnútri snímača je mikrokontrolér, ktorý prenáša údaje v digitálnej podobe na dosku arduino.

Posiela 8-bitové dáta každú sekundu na arduino, aby sme dekódovali prijatý signál, musíme do kódu zahrnúť knižnicu, ktorá je navrhnutá na jeho spracovanie. Odkaz na knižnicu je uvedený v ďalšej časti článku.

Schéma zapojenia:

rozhranie DH11 s arduino

Pripojenie obvodu od senzora k arduinu je veľmi jednoduché. Výstup zo senzora je pripojený na pin A1 arduino. Napájacie Vcc a GND sú pripojené k napájacím pólom arduina.

Poznámka: Uistite sa, že váš snímač má zabudovaný pull-rezistor, ak ho nemá, na výstupný kolík snímača DHT11 pripojte pull-up odpor 4,7 kB.

Senzor BMP180:

BMP180 je barometrický snímač, ktorý dokáže merať atmosférický tlak, nadmorskú výšku a teplotu. Meranie teploty z tohto snímača je zanedbávané, pretože sme určili snímač na meranie teploty okolia.

Senzor meria nadmorskú výšku zariadenia od hladiny mora, je tiež jedným z parametrov používaných v meteorológii.

Schéma zapojenia:

prepojenie BM180 s Arduino
Používa komunikačný protokol I2C, pin SDA ide na A4 arduino a SCL na A5 arduino. Vcc a GND sú pripojené k napájacím pólom arduina.

Pripojenie LCD:

snímač vlhkosti pomocou Aduino


LCD displej zobrazuje všetky údaje zo senzorov. Spojenie medzi LCD displejom a Arduino je štandardné, podobné spojenie môžeme nájsť na mnohých ďalších projektoch založených na LCD. Nastavte 10K potenciometer pre optimálnu viditeľnosť z LCD displeja.

Prototyp autora:

obrázok prototypu meteorologickej stanice

Tu je autorov prototyp obvodu mini monitora počasia, kde sú všetky senzory zobrazené na schémach pripojené k doske arduino.

Poznámka: Pripojenie obvodu od každého senzora a LCD displeja by malo byť pripojené k jednej doske arduino. Na každej schéme sme poskytli zapojenie samostatného snímača, aby sme predišli zámene pri duplikovaní obvodu.

Pred nahraním kódu stiahnite súbory z knižnice:

Knižnica DHT11: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

Knižnica BMP180: github.com/adafruit/Adafruit_BMP085_Unified.git

Programový 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)
}
}

POZNÁMKA:

Vysvetlenému obvodu minimálnej meteorologickej stanice trvá 2 minúty, kým sa zobrazia namerané hodnoty zo senzora, dovtedy sa zobrazí hlásenie „Senzory sa pripravujú“. Je to preto, lebo senzoru MQ-135 trvá 2 minúty, kým dosiahne optimálnu prevádzkovú teplotu.




Dvojica: Ako zostaviť jednoduchý sušiak na handričku pre obdobie dažďov Ďalej: Obvod hračkárskych automobilov ovládaný tlieskaním