Evler ve Ofisler için Bu Basit Hava İstasyonu Projesini Yapın

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazıda, size ortam sıcaklığını, nemi, basıncı, hava kalitesini ve çevrenizden gelen çok daha fazla veriyi gösterebilen ve evden hava durumunu tahmin etmek için kullanılabilecek ilginç bir Arduino tabanlı mini hava istasyonu projesi inşa edeceğiz.



Meteoroloji ile ilgileniyorsanız, bu proje yerel hava koşulları ve kısa vadeli değişiklikler hakkında çalışmak için kullanışlı olabilir. Önerilen proje katı hal tasarımıdır, yani hareketli parça yoktur.

Bu proje, devrenin doğrudan güneş ışığından veya yoğun rüzgar veya nemden uzak olduğu iç mekan veya yarı kapalı koşullara yerleştirilebilir, bu da sensörleri bozabilir.



Dizayn:

Önerilen mini hava durumu istasyonu devre projesi, çeşitli sensörlerden çok sayıda veri toplayan ve bunları işleyen ve 16x2 LCD ekranda görüntüleyen meteoroloji istasyonunun beyni olan Arduino etrafında inşa edilmiştir.

Bu proje için favori arduino kartınızı seçebilirsiniz. Devre, üç sensör MQ-135, BMP180 ve DHT11'den oluşur. Her bir sensörün ne yaptığını ayrıntılı olarak görelim.

MQ-135 Sensör:

MQ-135, karbondioksit, alkol, benzen, duman, bütan, propan vb. Algılayabilen hava kalitesi ölçüm sensörüdür. Havadaki bu gazların kimyasal konsantrasyonu yüksekse, havanın kirlendiğini söyleyebiliriz.

Sensör, havadaki kirletici madde konsantrasyonundaki değişikliği algılayabilir ve uygun voltaj seviyesini verir. Sensörün çıkış voltajı, havadaki kimyasal konsantrasyon seviyesi ile doğru orantılıdır.

Sensörden voltaj değişimi Arduino ya beslenir, programda önceden belirlenmiş eşik seviyeleri vardır. Mikrodenetleyici, eşik seviyesini geçtiğinde bize havanın güvenli olup olmadığını söyler.

Devre şeması

hava istasyonu devresi ile arayüz MQ135 sensörü

Yukarıdaki şema kablo bağlantı şemasını göstermektedir. Bu sensör harici 5V beslemeye ihtiyaç duyar çünkü sensörün içinde yaklaşık 1 Watt tüketen ısıtma elemanı vardır. Arduino'nun güç pininden gelen güç, daha yüksek akım sağlayamaz.

Isıtma elemanı sensörü sıcak tutar ve havadaki uygun miktarda kimyasal konsantrasyonun numunelenmesine yardımcı olur. Sensörün optimum sıcaklığa ulaşması yaklaşık birkaç dakika sürer.

DHT11 Sensörü:

DHT11 sensörü, popüler olarak Sıcaklık ve nem sensörü olarak bilinir. Adından da anlaşılacağı gibi çevredeki sıcaklık ve nemi ölçebilir.

4 pinli bir cihazdır ancak sadece 3 tanesi kullanılmaktadır. Çok basit bir bileşen gibi görünebilir ancak sensörün içinde verileri dijital formda arduino kartına ileten bir mikrodenetleyici vardır.

Arduino'ya her saniye 8 bitlik veri gönderir, alınan sinyalin kodunu çözmek için onu işleyecek şekilde tasarlanan koda kitaplık eklememiz gerekir. Kütüphane bağlantısı makalenin ilerleyen kısımlarında verilmektedir.

Devre şeması:

DH11 ile arduino arayüzü

Sensörden arduino'ya devre bağlantısı çok basittir. Sensörün çıkışı arduino'nun A1 pinine bağlanır. Besleme Vcc ve GND, arduino'nun güç kaynağı pinlerine bağlanır.

Not: Lütfen sensörünüzün yerleşik bir çekme direncine sahip olduğundan emin olun, eğer yoksa, DHT11 sensörünün çıkış pinine bir 4.7K çekme direnci bağlayın.

BMP180 sensörü:

BMP180, atmosferik basınç, yükseklik ve sıcaklığı ölçebilen barometrik bir sensördür. Bu sensörden sıcaklık ölçümü, ortam sıcaklığını ölçmek için özel bir sensörümüz olduğu için ihmal edilir.

Sensör kurulumun yüksekliğini deniz seviyesinden ölçer, aynı zamanda meteorolojide kullanılan parametrelerden biridir.

Devre şeması:

BM180 ile Arduino arasında arayüz oluşturma
I2C iletişim protokolünü kullanır, SDA pini arduino'nun A4'üne ve SCL, arduino'nun A5'ine gider. Vcc ve GND, arduino'nun güç kaynağı pinlerine bağlanır.

LCD bağlantısı:

Aduino kullanarak nem sensörü


LCD ekran, sensörlerden gelen tüm verileri gösterir. LCD ekran ve arduino arasındaki bağlantı standarttır, diğer birçok LCD tabanlı projede benzer bir bağlantı bulabiliriz. LCD ekrandan optimum görünürlük için 10K potansiyometreyi ayarlayın.

Yazarın Prototipi:

meteoroloji istasyonu prototip görüntüsü

İşte yazarın şemalarda gösterilen tüm sensörlerin arduino kartına bağlandığı bir mini hava durumu izleme devresi prototipi.

Not: Her sensörden ve LCD ekrandan gelen devre bağlantısı tek bir arduino kartına bağlanmalıdır. Devreyi kopyalarken karışıklığı önlemek için her şematikte ayrı sensör bağlantısı verdik.

Kodu yüklemeden önce Kitaplık dosyalarını indirin:

DHT11 kitaplığı: https://arduino-info.wikispaces.com/file/detail/DHT-lib.zip

BMP180 kitaplığı: github.com/adafruit/Adafruit_BMP085_Unified.git

Program kodu:

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

NOT:

Açıklanan mini hava durumu istasyonu devresinin sensörden gelen okumaları göstermesi 2 dakika sürer ve ardından 'Sensörler hazırlanıyor' mesajı görüntülenir. Bunun nedeni, MQ-135 sensörünün optimum çalışma sıcaklığına ulaşmasının 2 dakika sürmesidir.




Bir çift: Yağmurlu Sezon İçin Basit Bir Kumaş Kurutucu Nasıl Yapılır Sonraki: Alkışla Çalışan Oyuncak Araba Devresi