- Gerekli Bileşenler
- 0.96 'OLED Ekran Modülü
- MQ-135 Sensörünü Hazırlama
- Arduino ile MQ135 Arayüzüne Devre Şeması
- R'nin hesaplanması
- Arduino MQ135 Sensörünü Kullanarak CO2 Ölçme Kodu
- MQ-135 Sensörünün Arayüzünün Test Edilmesi
Dünyanın Atmosferik CO2 seviyesi gün geçtikçe artmaktadır. 2019'da küresel ortalama atmosferik karbondioksit milyonda 409,8 parçaydı ve Ekim-2020'de 411.29'dur. Karbondioksit, önemli bir sera gazıdır ve emisyonların yaklaşık dörtte üçünden sorumludur. Dolayısıyla CO2 seviyesi izleme de önem kazanmaya başladı.
Önceki projemizde, havadaki CO2 konsantrasyonunu ölçmek için Yerçekimi Kızılötesi CO2 sensörünü kullandık. Bu projede, CO2 konsantrasyonunu ölçmek için Arduino ile bir MQ-135 sensörü kullanacağız. Ölçülen CO2 konsantrasyon değerleri OLED modülünde görüntülenecek ve son olarak Arduino MQ-135 sensör okumalarını Kızılötesi CO2 sensör okumaları ile karşılaştıracağız. CO2 dışında, Arduino kullanarak LPG, Duman ve Amonyak gazının konsantrasyonunu da ölçtük.
Gerekli Bileşenler
- Arduino Nano
- MQ-135 Sensör
- Atlama Telleri
- 0.96 'SPI OLED Ekran Modülü
- Breadboard
- 22KΩ Direnç
0.96 'OLED Ekran Modülü
OLED (Organik Işık Yayan Diyotlar), iki iletken arasına bir dizi organik ince film yerleştirilerek oluşturulmuş kendinden ışık yayan bir teknolojidir. Bu filmlere elektrik akımı uygulandığında parlak bir ışık üretilir. OLED'ler televizyonlarla aynı teknolojiyi kullanıyor, ancak çoğu televizyonumuzdakinden daha az piksel içeriyor.
Bu proje için, Monokrom 7 pimli SSD1306 0,96 ”OLED ekran kullanıyoruz. Üç farklı iletişim Protokolü üzerinde çalışabilir: SPI 3 Tel modu, SPI dört tel modu ve I2C modu. Bağlantılı makaleyi okuyarak, OLED ekran ve türleri hakkında daha fazla bilgi edinebilirsiniz. Pimler ve işlevleri aşağıdaki tabloda açıklanmıştır:
Pin Adı |
Diğer isimler |
Açıklama |
Gnd |
Zemin |
Modülün topraklama pimi |
Vdd |
Vcc, 5V |
Güç pimi (3-5V tolere edilebilir) |
SCK |
D0, SCL, CLK |
Saat pimi görevi görür. Hem I2C hem de SPI için kullanılır |
SDA |
D1, MOSI |
Modülün veri pini. Hem IIC hem de SPI için kullanılır |
RES |
RST, RESET |
Modülü sıfırlar (SPI sırasında kullanışlıdır) |
DC |
A0 |
Veri Komutu pimi. SPI protokolü için kullanılır |
CS |
Çip Seçimi |
SPI protokolü altında birden fazla modül kullanıldığında kullanışlıdır |
OLED Özellikleri:
- OLED Sürücü IC: SSD1306
- Çözünürlük: 128 x 64
- Görsel Açı:> 160 °
- Giriş Voltajı: 3.3V ~ 6V
- Piksel Rengi: Mavi
- Çalışma sıcaklığı: -30 ° C ~ 70 ° C
MQ-135 Sensörünü Hazırlama
MQ-135 Gaz Sensörü, NH3, NOx, alkol, benzen, duman ve CO2 dahil çok çeşitli gazları algılamak için bir hava kalitesi sensörüdür. MQ-135 sensörü, bir modül olarak veya yalnızca bir sensör olarak satın alınabilir. Bu projede, PPM'deki CO2 konsantrasyonunu ölçmek için bir MQ-135 sensör modülü kullanıyoruz. MQ-135 kartı için devre şeması aşağıda verilmiştir:
Yük direnci RL, sensörün çalışmasında çok önemli bir rol oynar. Bu direnç, gaz konsantrasyonuna göre direnç değerini değiştirir. MQ-135 veri sayfasına göre, yük direnci değeri 10KΩ ile 47KΩ arasında değişebilir. Veri sayfası, dedektörü havadaki 100 ppm NH3 veya 50 ppm Alkol konsantrasyonu için kalibre etmenizi ve yaklaşık 20 KΩ'luk bir yük direnci (RL) değeri kullanmanızı önerir. Ancak karttaki RL'nizin değerini bulmak için PCB izlerinizi takip ederseniz, 1KΩ (102) yük direnci görebilirsiniz.
Bu nedenle, uygun CO2 konsantrasyon değerlerini ölçmek için 1KΩ direncini 22KΩ dirençle değiştirmeniz gerekir.
Arduino ile MQ135 Arayüzüne Devre Şeması
MQ-135 Gaz Sensörünü Arduino ile bağlamak için eksiksiz şema aşağıda verilmiştir:
Devre çok basittir çünkü sadece MQ-135 Sensör ve OLED Ekran modülünü Arduino Nano ile bağlarız. MQ-135 Gaz Sensörü ve OLED Ekran modülünün her ikisi de + 5V ve GND ile çalışır. MQ-135 sensörünün Analog Çıkış pini, Arduino Nano'nun A0 pinine bağlanır. OLED Ekran modülü SPI iletişimini kullandığından, OLED modülü ile Arduino Nano arasında bir SPI iletişimi kurduk. Bağlantılar aşağıdaki tabloda gösterilmektedir:
S.No |
OLED Modül Pimi |
Arduino Pimi |
1 |
GND |
Zemin |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Donanımı devre şemasına göre bağladıktan sonra, Arduino MQ135 sensör kurulumu aşağıdaki gibi görünmelidir:
R'nin hesaplanması
Artık RL'nin değerini bildiğimize göre, temiz havada R o değerlerinin nasıl hesaplanacağına geçelim. Burada havadaki CO2 konsantrasyonunu ölçmek için MQ135.h'yi kullanacağız. Bu nedenle, önce MQ-135 Kitaplığını indirin, ardından R o değerlerini okumadan önce sensörü 24 saat önceden ısıtın. Ön ısıtma işleminden sonra, R o değerlerini okumak için aşağıdaki kodu kullanın:
#include "MQ135.h" void setup () {Serial.begin (9600); } boşluk döngüsü () {MQ135 gasSensor = MQ135 (A0); // Sensörü A0 float pinine takın rzero = gasSensor.getRZero (); Serial.println (rzero); gecikme (1000); }
Şimdi R o değerlerini aldığınızda, Belgeler> Arduino> kitaplıklar> MQ135-ana klasörüne gidin ve MQ135.h dosyasını açın ve RLOAD & RZERO değerlerini değiştirin.
/// Kart üzerindeki yük direnci #define RLOAD 22.0 /// Atmosferik CO2 seviyesinde kalibrasyon direnci #define RZERO 5804.99
Şimdi aşağı kaydırın ve ATMOCO2 değerini mevcut Atmosferik CO2 olan 411.29 ile değiştirin.
/// Kalibrasyon amaçlı atmosferik CO2 seviyesi #define ATMOCO2 397.13
Arduino MQ135 Sensörünü Kullanarak CO2 Ölçme Kodu
MQ-135 Sensörünün Arduino ile arayüzlenmesi için eksiksiz kod belgenin sonunda verilmiştir. Burada MQ135 Arduino kodunun bazı önemli kısımlarını açıklıyoruz.
Kod kullanır Adafruit_GFX , ve Adafruit_SSD1306 , ve MQ135.h kütüphaneleri. Bu kitaplıklar Arduino IDE'deki Kitaplık Yöneticisinden indirilebilir ve oradan yüklenebilir. Bunun için Arduino IDE'yi açın ve Sketch <Include Library <Manage Libraries'e gidin . Şimdi Adafruit GFX'i arayın ve Adafruit tarafından Adafruit GFX kitaplığını kurun.
Benzer şekilde, Adafruit tarafından Adafruit SSD1306 kitaplıklarını yükleyin. MQ135 kitaplığı buradan indirilebilir.
Kitaplıkları Arduino IDE'ye yükledikten sonra, gerekli kitaplık dosyalarını ekleyerek kodu başlatın.
#include "MQ135.h" #include
Ardından OLED genişliğini ve yüksekliğini tanımlayın. Bu projede 128 × 64 SPI OLED ekran kullanıyoruz. Değişebilirsin SCREEN_WIDTH ve SCREEN_HEIGHT ekranınıza göre değişkenler.
#define SCREEN_WIDTH 128 #define SCREEN_HEIGHT 64
Ardından OLED Ekranın bağlandığı SPI iletişim pinlerini tanımlayın.
#define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13
Ardından, SPI iletişim protokolüyle daha önce tanımlanan genişlik ve yüksekliğe sahip bir Adafruit görüntü örneği oluşturun.
Adafruit_SSD1306 ekranı (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Bundan sonra, MQ-135 sensörünün bağlı olduğu Arduino pinini tanımlayın.
int sensorIn = A0;
Şimdi setup () işlevinin içinde, hata ayıklama amacıyla Seri Monitörü 9600 baud hızında başlatın. Ayrıca, begin () işlevi ile OLED ekranını başlatın.
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
İç döngü () işlevi, birinci arayarak Arduino Analog pim sinyal değerleri okumak analogRead () işlev.
val = analogRead (A0); Seri.print ("ham =");
Ardından sonraki satırda, PPM değerlerini hesaplamak için gasSensor.getPPM () öğesini çağırın. PPM değerleri, Yük direnci, R 0 kullanılarak ve analog pinden okunarak hesaplanır.
float ppm = gasSensor.getPPM (); Seri.print ("ppm:"); Serial.println (ppm);
Bundan sonra setTextSize () ve setTextColor () kullanarak metin boyutunu ve metin rengini ayarlayın.
display.setTextSize (1); display.setTextColor (BEYAZ);
Ardından sonraki satırda setCursor (x, y) yöntemini kullanarak metnin başladığı konumu tanımlayın. Ve display.println () işlevini kullanarak OLED Ekran üzerindeki CO2 Değerlerini yazdırın.
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
Ve son olarak, metni OLED Ekranında görüntülemek için display () yöntemini çağırın.
display.display (); display.clearDisplay ();
MQ-135 Sensörünün Arayüzünün Test Edilmesi
Donanım ve kod hazır olduğunda, sensörü test etme zamanı gelmiştir. Bunun için Arduino'yu dizüstü bilgisayara bağlayın, Board ve Port'u seçin ve yükleme düğmesine basın. Ardından seri monitörünüzü açın ve bir süre bekleyin (ön ısıtma işlemi), ardından son verileri göreceksiniz. Değerler, aşağıda gösterildiği gibi OLED ekranda görüntülenecektir:
Havadaki CO2'yi doğru ölçmek için bir MQ-135 sensörü bu şekilde kullanılabilir. Tam MQ135 Hava Kalitesi Sensörü Arduino Kodu ve çalışma videosu aşağıda verilmiştir. Herhangi bir şüpheniz varsa, bunları yorum bölümüne bırakın.