Padarykite šį paprastą meteorologinių stočių projektą namams ir biurams

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše mes sukursime įdomų „Arduino“ pagrįstą mažų meteorologinių stočių projektą, kuris gali parodyti aplinkos temperatūrą, drėgmę, slėgį, oro kokybę ir daug daugiau duomenų iš jūsų aplinkos, kuriuos galima naudoti norint prognozuoti orą namuose.



Jei jus domina meteorologija, šis projektas gali būti naudingas tyrinėjant vietines oro sąlygas ir trumpalaikius pokyčius. Siūlomas projektas yra kietojo kūno dizainas, o tai reiškia, kad nėra judančių dalių.

Šis projektas gali būti vykdomas vidaus ar pusiau patalpų sąlygomis, kai grandinė yra atokiau nuo tiesioginių saulės spindulių, stipraus vėjo ar drėgmės, dėl kurios laive esantys jutikliai gali pablogėti.



Dizainas:

Siūlomas mažų meteorologinių stočių grandinės projektas yra pastatytas aplink „Arduino“, kuris yra meteorologijos stoties smegenys, kuri renka daugybę duomenų iš įvairių jutiklių ir juos apdoroja bei rodo 16x2 LCD ekrane.

Šiam projektui galite pasirinkti mėgstamiausią „arduino“ lentą. Grandinę sudaro trys jutikliai MQ-135, BMP180 ir DHT11. Pažiūrėkime, ką kiekvienas jutiklis daro išsamiai.

MQ-135 jutiklis:

MQ-135 yra oro kokybės matavimo jutiklis, galintis aptikti anglies dioksidą, alkoholį, benzeną, dūmus, butaną, propaną ir kt. Jei šių dujų cheminė koncentracija yra didelė ore, galime sakyti, kad oras yra užterštas.

Jutiklis gali aptikti teršalų koncentracijos pokyčius ore ir išduoda tinkamą įtampos lygį. Jutiklio išėjimo įtampa yra tiesiogiai proporcinga cheminės koncentracijos lygiui ore.

Įtampos svyravimas nuo jutiklio yra tiekiamas į „Arduino“, programoje turime iš anksto nustatytus ribinius lygius. Kai jis peržengia slenksčio lygį, mikrovaldiklis mums nurodo, ar oras yra saugus, ar ne.

Grandinės schema

sąsajos MQ135 jutiklis su meteorologinės stoties grandine

Pirmiau pateiktoje diagramoje parodyta laidų schema. Šiam jutikliui reikalingas išorinis 5 V maitinimas, nes jutiklio viduje yra kaitinimo elementas, kuris sunaudoja apie 1 vatą. „Arduino“ maitinimo kaiščio galia negali tiekti didesnės srovės.

Kaitinimo elementas palaiko jutiklį šiltą ir padeda atrinkti tinkamą cheminės koncentracijos kiekį ore. Jutiklis trunka apie kelias minutes, kol pasiekia optimalią temperatūrą.

DHT11 jutiklis:

DHT11 jutiklis populiariai vadinamas temperatūros ir drėgmės jutikliu. Jis gali matuoti temperatūrą ir drėgmę iš aplinkos, kaip rodo pavadinimas.

Tai yra 4 kontaktų įrenginys, tačiau naudojami tik 3 iš jų. Tai gali atrodyti kaip labai paprastas komponentas, tačiau jutiklio viduje yra mikrovaldiklis, kuris skaitmenine forma perduoda duomenis „arduino“ plokštei.

Jis kas sekundę siunčia 8 bitų duomenis „arduino“, norėdami iššifruoti gautą signalą, turime įtraukti biblioteką į kodą, skirtą jam tvarkyti. Bibliotekos nuoroda pateikiama vėlesnėje straipsnio dalyje.

Grandinės schema:

sąsaja DH11 su „arduino“

Grandinės jungtis nuo jutiklio iki „arduino“ yra labai paprasta. Jutiklio išėjimas yra prijungtas prie A1 arduino kaiščio. Tiekimas Vcc ir GND yra prijungtas prie „Arduino“ maitinimo šaltinio kaiščių.

Pastaba: Įsitikinkite, kad jūsų jutiklyje yra įmontuotas prisitraukimo rezistorius, jei jo nėra, prijunkite 4,7 K prisitraukimo rezistorių prie DHT11 jutiklio išvesties kaiščio.

BMP180 jutiklis:

BMP180 yra barometrinis jutiklis, kuriuo galima išmatuoti atmosferos slėgį, aukštį ir temperatūrą. Šio jutiklio temperatūros matavimas nepaisomas, nes mes turime specialų jutiklį aplinkos temperatūrai matuoti.

Jutiklis matuoja nustatymo aukštį nuo jūros lygio, tai taip pat yra vienas iš meteorologijoje naudojamų parametrų.

Grandinės schema:

susieti BM180 su „Arduino“
Jis naudoja I2C ryšio protokolą, SDA kaištis eina į A4 arduino, o SCL - į A5 arduino. „Vcc“ ir „GND“ yra prijungti prie „Arduino“ maitinimo kaiščių.

LCD jungtis:

drėgmės jutiklis naudojant „Aduino“


Skystųjų kristalų ekrane rodomi visi jutiklių duomenys. Ryšys tarp LCD ekrano ir „arduino“ yra standartinis, panašų ryšį galime rasti ir daugelyje kitų LCD pagrįstų projektų. Sureguliuokite 10K potenciometrą, kad LCD ekranas būtų optimalus.

Autoriaus prototipas:

meteorologinės stoties prototipo vaizdas

Štai autoriaus mini orų stebėjimo grandinės prototipas, kuriame visi schemose parodyti jutikliai yra prijungti prie „arduino“ plokštės.

Pastaba: Kiekvieno jutiklio ir LCD ekrano jungtis turėtų būti prijungta prie vienos „Arduino“ plokštės. Kiekvienoje schemoje mes suteikėme atskirą jutiklio jungtį, kad išvengtume painiavos, kartodami grandinę.

Prieš įkeldami kodą atsisiųskite bibliotekos failus:

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

BMP180 biblioteka: github.com/adafruit/Adafruit_BMP085_Unified.git

Programos kodas:

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

PASTABA:

Paaiškintoje mini meteorologinių stočių grandinėje trunka 2 minutes, kol parodomi jutiklio rodmenys, iki tol rodoma „Sensoriai ruošiasi“. Taip yra todėl, kad MQ-135 jutikliui pasiekti optimalią darbo temperatūrą reikia 2 minučių.




Pora: Kaip sukurti paprastą audinių džiovyklą lietingam sezonui Kitas: „Clap“ valdoma žaislinių automobilių grandinė