Arduino Eğitim Kiti – Tüm Yıl İçin Arduino Müfredatı: Ders 18 Arduino Hava Kalitesi ve Isı Nem için isterseniz sunu şeklinde alt taraftaki kutucuğu büyüterek takip edebilir, isterseniz de tüm sunu sayfalarının makale haline dönüştürülmüş versiyonu takip edebilirsiniz. İçerikler büyük oranda aynıdır. Sınıf ortamında kolaylık olması açısından sunu şeklinde de sunulmuştur.

Ders İçeriği:

Arduino Hava Kalitesi ve Isı Nem Sensörü

Ders Kazanımları:

  • Hava kalitesi ölçüm aracının ne amaçla kullanıldığını açıklar.
  • Hava kalitesi ölçüm aracı uygulamasını yardım almadan doğru bir şekilde yapar.
  • Isı ve nem sensörünün ne amaçla kullanıldığını açıklar.
  • Isı ve nem sensörü uygulamasını yardım almadan doğru bir şekilde yapar.

DHT11 Isı ve Nem Sensörü:

  • DHT-11 Sıcaklık ve Nem Sensörü nem ve sıcaklık ölçümünde kullanılan ve dijital sinyal çıkışı veren gelişmiş bir algılayıcı birimidir.
  • Projelerinizde kolay kullanım amaçlı olarak breakout üzerinde sunulmuştur.
  • DHT-11 8 bit mikroişlemci içerir ve hızlı tepki verir.
  • 0 ile 50°C arasında 2°C hata payı ile sıcaklık ölçen birim, 20-90% RH arasında 5% RH hata payı bulunur.

MQ-135 Hava Kalitesi Ölçüm Modülü:

  • MQ135 sensör ve gerekli devrelerden oluşan modül ile hava kalitesi ölçümleri yapabilirsiniz.
  • Sensör üzerindeki potansiyometre ile eşik değeri oluşturarak dijital çıkış pinini kullanabilir veya analog çıkış pinlerinden veri alabilirsiniz.

Oluşabilecek Hatalar:

Aşağıdaki programları çalıştırırken bir takım hatalarla karşılaşabilirsiniz. Bu hataların kodların yazımında meydana gelen hatalar dışında başka sebeplerle ortaya çıkması muhtemeldir. Bu hatalardan sık karşılaşılanlara aşağıda değinilmiştir.

Kart Seçilmesinden Kaynaklı Hata:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru kartın seçilmesi gerekmektedir. Kart seçilmediğinde “Karta yüklenirken bir sorun oluştu.” benzeri bir hata alabilirsiniz.

USB Portun Seçilmesiyle İlgili Hatalar:

Arduino kurulumu gerçekleştirildikten sonra araçlar menüsünden doğru portun seçilmesi gerekmektedir. Bu port Arduino Uno’nun bilgisayara bağlandığı usb porttur. Farklı şekilde bilgisayarınızda usb driver yüklenmemiş olabilir.  Bu gibi hatalarda “Port bulunamadı.” gibi hatalar almanız muhtemeldir.


Uygulama 1: Hava Kalitesi Ölçümü

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

Resim105

Hava kalitesi sensörünün, VCC (en sağdaki) pini 5v, GND pini GND’ye, D0 0 nolu pine, A0 ise boşta kalacak şekilde bağlantısı yapılır.

Kodlar:

Uygulamanın “.ino” dosyasını (kod dosyasını) buradan indirebilirsiniz.

int havakalitesi = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.print("Hava Kalitesi = ");
Serial.print(sensorValue);
Serial.print("*PPM");
Serial.println();
delay(1000);
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada hava kalitesi ölçüm aracının ölçtüğü değeri serial ekranda görebileceksiniz

Uygulama 2: Sıcaklık ve Nem Ölçümü

Kullanılacak Malzemeler:

Bağlantı Şeması:

Bağlantılar şekildeki gibi yapılır.

Resim106

  1. LCD ekranın 4 pini sete göre  aşağıdan yukarı doğru GND, 5V, A4, A5 pinlerine bağlanır.
  2. Isı nem sensörünün “+” bacağı 5v, “-” bacağı GND, OUT pini 3 numaralı pine bağlanır.

Kodlar:

Uygulamanın “.ino” dosyasını (kod dosyasını) buradan indirebilirsiniz.

#include <Wire.h> //kütüphanelerin tanımlanması
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
LiquidCrystal_I2C lcd(0x3F,16,2); //lcd ekranın tanımlanması
//buradaki "3F" burada kullanılan lcd ekranın adresidir.
//önceki slaytlarda anlatılan I2C adres bulma ile kendi lcd
//ekranınızın adresi bulup, buradaki adresler değiştirmeniz
//gerekmektedir.
#define DHTPIN 3 //DHT ısı ve nem sensörünün bağlandığı pin
#define DHTTYPE DHT11 //DHT modelinin tanımlanması
DHT dht(DHTPIN,DHTTYPE); //dht değişkeninin tanımlanması
void setup() {
pinMode(3,INPUT); // dht sensörün bağlnadığı pin numarası
dht.begin(); //dht sensörün başlatılması
lcd.begin(); //lcd ekranın başlatılması
}
void loop()
{
float t=dht.readTemperature(); //sensörün ölçtüğü sıcaklık değerinin
//t değişkenine atanması
lcd.setCursor(0,0); //lcd ekranın ilk satır ilk sutünuna imlecin
//getirilmesi
lcd.print("sicaklik :"); //"sıcaklık" yazılması
lcd.print(t); //sıcaklık değerinin yazılması
for(int i=0;i<=16;i++) // 16 adımlı döngü tanımlanması
{
lcd.setCursor(i,1); // lcd ekranın satır ve sütun bilgilerinin
//belirlenmesi
lcd.print("."); //belirlenen yerlere "." konması
delay(500); //500 milisaniye beklenmesi
}
lcd.clear();
float n=dht.readHumidity();//sensörün ölçtüğü nem değerinin
//n değişkenine atanması
lcd.setCursor(0,0); //lcd ekranda imleci yerinin belirlenmesi
lcd.print("Nem: "); //lcd ekrana "nem" yazılması
lcd.print(n); //lcd ekrana n değerinin yazılması
for(int i=0;i<=16;i++) //16 seferlik döngünün oluşturulması
{
lcd.setCursor(i,1); //imlecin yerinin belirlenmesi
lcd.print("."); //lcd ekrana "." konması
delay(500); //500 milisaniye beklenmesi
}
lcd.clear(); //lcd ekranın temizlenmesi
lcd.setCursor(0,0); //lcd ekranda imlecin yerinin belirlenmesi
lcd.print("Tekrar"); //lcdye "Tekrar" yazılması
lcd.setCursor(0,1); //lcd ekranda imlecin yerinin belirlenmesi
lcd.print("Hesaplaniyor"); //lcdye "Hesaplaniyor" yazılması
delay(2000); //2000 milisaniye beklenmesi
lcd.clear(); //lcd ekranın temizlenmesi
}
  • Yukarıdaki bağlantı yapıldığında ve kodlar Arduino Uno’ya yüklendiğinde çalışma tamamlanmış olacaktır.
  • Bu uygulamada sıcaklık ve nem değeri ölçülecek,
  • Sırasıyla LCD Ekranda değerler okunacaktır.

**Eğer hata alıyor veya veri okuyamıyorsanız I2C modülünüzün adresini güncelleyip güncellemediğinizi ve kontrast ayarını (I2C modülün arkasındaki pot yardımıyla) yaptığınızdan emin olun.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz