Hava kalitesi ölçer; Arduino Uno, MQ-135 gaz sensörü, DHT22 sıcaklık ve nem sensörü ve 0,96 inç OLED ekranla yapılır. MQ-135 havadaki gazların toplam etkisini göreli olarak ölçer; gerçek ppm değeri vermez. Bu yüzden sınıfta temiz havaya göre değişimi izlersiniz ve havalandırmanın etkisini ölçebilirsiniz.
Kapalı bir sınıfta ders ilerledikçe havanın ağırlaştığını hepimiz hissederiz. Bu yazıda bu değişimi ölçen bir hava kalitesi ölçer yapıyoruz. Arduino Uno, MQ-135 gaz sensörü, DHT22 sıcaklık ve nem sensörü ve OLED ekran kullanıyoruz. MQ-135'in neyi ölçüp neyi ölçemediğini de dürüstçe anlatıyoruz.
Hava kalitesi ölçer nedir?
Hava kalitesi ölçer, havadaki gazları, sıcaklığı ve nemi sensörlerle ölçüp sonucu ekranda gösteren bir cihazdır. Bizim modelimizde MQ-135 gazları, DHT22 sıcaklık ve nemi ölçer. Sonuçlar küçük bir OLED ekranda görünür ve aynı anda bilgisayara da gönderilir.
MQ-135 neyi ölçer, neyi ölçemez?
MQ-135, havadaki pek çok gazın toplam etkisini ölçer, ama hangi gazın ne kadar olduğunu ayıramaz. Sensör amonyak, azot oksitler, alkol buharı, benzen, duman ve karbondioksit gibi gazlara tepki verir. İçindeki ısıtılan katmanın direnci bu gazlar arttıkça düşer ve modülün analog çıkışı yükselir.
İnternette MQ-135 ile "CO2 ppm" hesaplayan kodlar bulunur. Bu hesaplar, sensörün bilinen bir gaz ortamında kalibre edilmesini gerektirir ve yine de kaba tahmindir. Sıcaklık ve nem de okumayı değiştirir. Bu yüzden projede ppm yerine göreli ölçüm yapıyoruz: temiz havadaki değere göre oran.
| Özellik | MQ-135 | NDIR CO2 sensörü |
|---|---|---|
| Ölçüm ilkesi | Isıtılan metal oksit katman | Kızılötesi ışığın CO2 tarafından emilmesi |
| Seçicilik | Birçok gaza birlikte tepki verir | Yalnızca CO2'yi ölçer |
| Sonuç | Göreli değer (temiz havaya göre) | ppm cinsinden değer |
| Isınma | Her açılışta birkaç dakika | Kısa |
| Uygun kullanım | Değişimi izlemek, eğitim | Sınıf CO2 takibi, ölçüm |
Açık havada CO2 yaklaşık 420 ppm civarındadır. Kalabalık ve kapalı sınıflarda bu değer 1.000 ppm'in üstüne çıkabilir. MQ-135 bunu sayıyla gösteremez, ama havanın değiştiğini gösterebilir. MQ serisinin genel bağlantısını MQ gaz sensörü bağlantısı yazısında anlattık.
Hangi malzemeler gerekir?
Hava kalitesi ölçer için bir Arduino Uno, MQ-135 modülü, DHT22 modülü, 0,96 inç I2C OLED ekran, breadboard ve jumper kablo yeterlidir. Devre USB ile beslenir.
Malzeme listesi
| Malzeme | Adet | Ne işe yarar? |
|---|---|---|
| Arduino Uno R3 (CH340) | 1 | Sensörleri okur, ekrana yazar |
| MQ-135 hava kalitesi ölçüm modülü | 1 | Havadaki gazlardaki değişimi algılar |
| DHT22 sıcaklık ve nem sensörü modülü | 1 | Sıcaklık ve nemi ölçer |
| 0,96 inç 128x64 I2C OLED ekran | 1 | Sonuçları gösterir |
| 830 pin breadboard | 1 | Lehimsiz bağlantı yapılır |
| Erkek-dişi jumper kablo | 10-12 | Modülleri karta bağlar |
DHT11 de kullanılabilir, ama DHT22 daha doğrudur: DHT11 sıcaklığı yaklaşık ±2 °C, DHT22 ise ±0,5 °C doğrulukla ölçer. Farkları DHT11 ve DHT22 farkı yazısında. DHT11 kullanırsanız kodda DHT22 yerine DHT11 yazın.
Hava kalitesi ölçer adım adım nasıl yapılır?
Hava kalitesi ölçer, üç modül Arduino'ya bağlanıp kütüphaneler kurularak ve kod yüklenerek yapılır. Bağlantı yaparken USB kablosu takılı olmasın.
- MQ-135'in VCC ucunu 5V'a, GND ucunu GND'ye, AO ucunu A0'a bağlayın.
- DHT22 modülünün + ucunu 5V'a, − ucunu GND'ye, OUT ucunu D2'ye bağlayın.
- OLED ekranın VCC ucunu 5V'a, GND ucunu GND'ye, SDA ucunu A4'e, SCL ucunu A5'e bağlayın.
- Arduino IDE'de Kütüphane Yöneticisi'nden Adafruit SSD1306, Adafruit GFX ve DHT sensor library kütüphanelerini kurun.
- Cihazı açık pencerenin yanına koyun ve kodu yükleyin. İlk 2 dakika ekranda "Isiniyor" yazar.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>
Adafruit_SSD1306 ekran(128, 64, &Wire, -1);
DHT dht(2, DHT22);
float temiz = 0; // temiz havadaki başlangıç değeri
void setup() {
Serial.begin(9600);
dht.begin();
ekran.begin(SSD1306_SWITCHCAPVCC, 0x3C);
ekran.setTextColor(SSD1306_WHITE);
ekran.clearDisplay();
ekran.setCursor(0, 0);
ekran.print("Isiniyor...");
ekran.display();
delay(120000); // 2 dakika ısınma
for (int i = 0; i < 10; i++) { // temiz hava ortalaması
temiz += analogRead(A0);
delay(500);
}
temiz = temiz / 10;
}
void loop() {
int ham = analogRead(A0);
float oran = ham / temiz;
float sic = dht.readTemperature();
float nem = dht.readHumidity();
ekran.clearDisplay();
ekran.setTextSize(1);
ekran.setCursor(0, 0);
ekran.print("MQ-135: "); ekran.println(ham);
ekran.print("Oran: "); ekran.println(oran, 2);
ekran.print("Sicaklik: "); ekran.print(sic, 1); ekran.println(" C");
ekran.print("Nem: %"); ekran.println(nem, 0);
ekran.setTextSize(2);
ekran.setCursor(0, 44);
if (oran < 1.2) ekran.print("IYI");
else if (oran < 1.5) ekran.print("ORTA");
else ekran.print("HAVALANDIR");
ekran.display();
Serial.print(ham); Serial.print(",");
Serial.print(sic); Serial.print(",");
Serial.println(nem);
delay(2000);
}
Kod açılışta temiz havanın ortalamasını alır ve sonraki her ölçümü bu değere böler. Oran 1,0 ise hava başlangıçtaki gibidir. 1,2 ve 1,5 sınırları bilimsel bir standart değildir; sınıf deneyi için seçilmiş göreli eşiklerdir. OLED ekran açılmıyorsa adresi 0x3D olarak deneyin. Ekranın ayrıntıları OLED ekran SSD1306 yazısında.
Sınıf havalandırma deneyi nasıl yapılır?
Havalandırma deneyi, ders boyunca pencereler kapalıyken ve sonra pencereler açıldığında MQ-135 oranı düzenli aralıklarla kaydedilerek yapılır. Deney için öğretmeninizden izin alın.
- Teneffüste pencereleri açın ve cihazı açık pencere yanında başlatın. 2 dakikalık ısınmayı bekleyin.
- Pencereler kapandıktan sonra cihazı sınıfın ortasına, öğrencilerden yaklaşık 1 metre yüksekliğe koyun.
- Ders boyunca her 5 dakikada oranı, sıcaklığı ve nemi bir tabloya yazın. Sınıftaki kişi sayısını da not edin.
- Dersin sonunda pencereleri 10 dakika açın ve her 2 dakikada ölçüme devam edin.
- Deneyi farklı bir gün tekrarlayın; tek ölçümle kesin sonuç çıkarmayın.
Kapalı sınıfta oranın, sıcaklığın ve nemin yavaşça arttığını, havalandırmadan sonra düştüğünü görmeniz beklenir. Bu, insanların nefesle havaya karbondioksit, su buharı ve başka gazlar verdiğini gösterir.
Hangi güvenlik kurallarına dikkat edilmeli?
Bu proje 5 V ile çalışır; yine de şu kurallara uyun:
- Devreyi yalnızca USB'den ya da powerbank'tan besleyin. 220V şebeke elektriğiyle hiçbir bağlantı yapmayın.
- MQ-135'in içindeki ısıtıcı başlığı ısıtır; çalışırken sensöre dokunmayın.
- Sensörü test etmek için duman, gaz ya da yanıcı sprey kullanmayın. Kolonya gibi alkollü sıvıları yalnızca bir yetişkin gözetiminde, ateşten uzakta ve çok az miktarda deneyin.
- Pil kullanırsanız kutuplarını ters bağlamayın, kısa devre etmeyin; ısınan pili hemen çıkarın.
- Bu cihaz resmi bir ölçüm cihazı değildir; sağlık ya da güvenlik kararı için kullanılmaz.
Ödevinizi nasıl sunarsınız?
Ödevinizi, havalandırma deneyinin sonuçlarını zamana göre çizilmiş bir grafikle sunabilirsiniz. Grafik, havalandırmanın etkisini ilk bakışta gösterir.
- Tablo: Zaman, oran, sıcaklık, nem ve kişi sayısı sütunları.
- Grafik: Yatay eksende dakika, dikey eksende oran; pencerelerin açıldığı anı işaretleyin.
- Sınırlar: MQ-135'in ppm vermediğini ve göreli ölçüm yaptığınızı afişinizde açıkça yazın.
Örnek hipotez: "Kapalı sınıfta ders boyunca MQ-135 oranı artar, 10 dakikalık havalandırmadan sonra azalır." Seri Monitör çıktısını Excel'e kopyalayarak grafik çizebilirsiniz. Başka sensörlere sıcaklık ve nem sensörleri kategorisinden bakabilirsiniz.
Sık sorulan sorular
MQ-135 ile CO2 ppm değeri ölçülebilir mi?
Güvenilir biçimde ölçülemez. MQ-135 karbondioksidin yanında alkol, amonyak ve duman gibi başka gazlara da tepki verir; ölçtüğü değer bu gazların toplam etkisidir. İnternetteki ppm formülleri kalibrasyon ister ve sıcaklık ile nemden etkilenir. Gerçek CO2 ölçümü için NDIR yöntemiyle çalışan bir CO2 sensörü kullanılmalıdır.
Sensör neden ısınma süresi ister?
MQ-135'in gazları algılayan katmanı ancak belirli bir sıcaklıkta kararlı çalışır. Açılışta ısıtıcı bu sıcaklığa ulaşana kadar okuma yavaş yavaş değişir. Bu yüzden kod ilk 2 dakika ölçüm yapmaz. Yeni bir sensör ilk kullanımda birkaç saat çalıştırılırsa değerleri daha kararlı olur; üreticiler bunu genellikle 24 saat olarak önerir.
Oran değeri neden kendiliğinden değişiyor?
MQ-135'in okuması sıcaklık ve nemle birlikte değişir. Güneş gelen bir pencere, kalorifer ya da nefes alınan yakın bir nokta değeri etkiler. Cihazı sabit bir yere koyun ve küçük dalgalanmaları değil, dakikalar içindeki genel eğilimi izleyin. Bu yüzden projede DHT22 ile sıcaklık ve nemi de kaydediyoruz.
DHT22 yerine DHT11 kullanabilir miyim?
Evet, kullanabilirsiniz. Bağlantı aynıdır; kodda yalnızca DHT22 yerine DHT11 yazmanız yeterlidir. DHT11 daha ucuzdur, ama sıcaklığı yaklaşık ±2 °C, nemi ±5 civarında doğrulukla ölçer. Sınıf deneyinde değişimi görmek için yeterlidir. Daha hassas sonuç ve daha geniş ölçüm aralığı istiyorsanız DHT22'yi tercih edin.
Özet
- Hava kalitesi ölçer; MQ-135, DHT22 ve OLED ekranlı bir Arduino projesidir.
- MQ-135 birçok gazın toplam etkisini göreli olarak ölçer; güvenilir ppm değeri vermez.
- MQ-135 AO ucu A0'a, DHT22 D2'ye, OLED SDA ve SCL uçları A4 ve A5'e bağlanır.
- Kod temiz havadaki değeri başlangıç kabul eder ve sonraki ölçümleri buna oranlar.
- Sınıf deneyinde ders boyunca ve havalandırmadan sonra oranı düzenli kaydedin.
- Gerçek CO2 ölçümü için NDIR CO2 sensörü gerekir.
