- Gerekli Bileşenler
- Yerçekimi Kızılötesi CO2 Sensörü
- 0.96 'OLED Ekran Modülü
- Devre şeması
- CO2 Konsantrasyonunu Ölçmek için Arduino Kodu
- Yerçekimi Kızılötesi CO2 Sensörünün Arayüzünün Test Edilmesi
Havadaki artan karbondioksit konsantrasyonu artık ciddi bir sorun haline geldi. NOAA raporuna göre ozon CO2 konsantrasyonu yüzde 0,0385'e (385 ppm) ulaşmıştır ve 2,1 milyon yılın en yüksek miktarıdır. Bu, bir milyon hava parçacığında 385 karbondioksit parçacığı olduğu anlamına gelir. Bu artan CO2 seviyesi çevreyi kötü bir şekilde etkiledi ve bizi iklim değişikliği ve küresel ısınma gibi durumlarla yüzleşmeye yönlendirdi. CO2 seviyesini söylemek için yollara kurulmuş birçok hava kalitesi ölçüm cihazı var, ancak aynı zamanda bir DIY CO2 ölçüm cihazı da yapabilir ve bunu bölgemize kurabiliriz.
Bu eğitimde, PPM'deki CO2 konsantrasyonunu ölçmek için Yerçekimi Kızılötesi CO2 Sensörünü Arduino ile arayüzleyeceğiz. Yerçekimi Kızılötesi CO2 Sensörü, yüksek hassasiyetli bir analog CO2 sensörüdür. 0 ila 5000 ppm aralığında CO2 içeriğini ölçer. Hava kalitesi monitörü oluşturmak için MQ135 Gaz sensörünü, Sharp GP2Y1014AU0F Sensörünü ve Nova PM Sensör SDS011'i kullandığımız önceki projelerimizi de inceleyebilirsiniz.
Gerekli Bileşenler
- Arduino Nano
- Yerçekimi Kızılötesi CO2 Sensörü V1.1
- Atlama Telleri
- 0.96 'SPI OLED Ekran Modülü
- Breadboard
Yerçekimi Kızılötesi CO2 Sensörü
Yerçekimi Kızılötesi CO2 Sensörü V1.1, DFRobot tarafından piyasaya sürülen en yeni yüksek hassasiyetli analog kızılötesi CO2 sensörüdür. Bu sensör, dağılmayan kızılötesi (NDIR) teknolojisine dayanmaktadır ve iyi bir seçiciliğe ve oksijensiz bağımlılığa sahiptir. Sıcaklık telafisini entegre eder ve DAC çıkışını destekler. Bu sensörün etkili ölçüm aralığı, ± 50ppm +% 3 doğrulukla 0 ile 5000ppm arasındadır. Bu Kızılötesi CO2 Sensörü, HVAC, iç mekan hava kalitesi izleme, endüstriyel süreç ve güvenlik koruma izleme, tarım ve hayvancılık üretim süreci izlemesinde kullanılabilir.
Kızılötesi CO2 Sensörü Pin Çıkışı:
Daha önce belirtildiği gibi, Kızılötesi CO2 Sensörü 3 pimli bir konektörle birlikte gelir. Aşağıdaki şekil ve tablo Kızılötesi CO2 Sensörü için pin atamalarını göstermektedir:
Pin No. |
Pin Adı |
Açıklama |
---|---|---|
1 |
Sinyal |
Analog Çıkış (0.4 ~ 2V) |
2 |
VCC |
VCC (4.5 ~ 5.5V) |
3 |
GND |
GND |
Kızılötesi CO2 Sensörü Teknik Özellikleri ve Özellikleri:
- Gaz Algılama: Karbon Dioksit (CO2)
- Çalışma Gerilimi: 4.5 ~ 5.5V DC
- Ön ısıtma Süresi: 3 dak
- Tepki Süresi: 120s
- Çalışma Sıcaklığı: 0 ~ 50 ℃
- Çalışma Nemi:% 0 ~ 95 Bağıl Nem (yoğunlaşma yok)
- Su geçirmez ve korozyon önleyici
- Yüksek çevrim ömrü
- Anti-su buharı paraziti
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. Pimler ve işlevleri aşağıdaki tabloda açıklanmıştır:
OLED ve türlerini bir önceki makalede ayrıntılı olarak ele almıştık.
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
Bağlantıyı takip ederek OLED ve farklı mikro denetleyicilerle arabirimi hakkında daha fazla bilgi edinin.
Devre şeması
Arduino için Yerçekimi Analog Kızılötesi CO2 Sensörünün arayüzünü oluşturan Devre Şeması aşağıda verilmiştir:
Sadece Yerçekimi Kızılötesi CO2 Sensörü ve OLED Ekran modülünü Arduino Nano ile bağladığımız için devre çok basit. Kızılötesi CO2 Sensörü ve OLED Ekran modülünün her ikisi de + 5V ve GND ile güçlendirilmiştir. CO2 sensörünün Sinyal (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 aşağıdaki gibi görünmelidir:
CO2 Konsantrasyonunu Ölçmek için Arduino Kodu
Bu Yerçekimi Analog Kızılötesi CO2 Sensörü için Arduino projesinin tam kodu belgenin sonunda verilmiştir. Burada kodun bazı önemli kısımlarını açıklıyoruz.
Kod kullanır Adafruit_GFX , ve Adafruit_SSD1306 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. Kızılötesi CO2 sensörü, voltaj değerlerini doğrudan Arduino'nun analog pininden okuduğumuz için herhangi bir kitaplığa ihtiyaç duymaz.
Kitaplıkları Arduino IDE'ye yükledikten sonra, gerekli kitaplık dosyalarını ekleyerek kodu başlatın. Okumalar doğrudan Arduino'nun analog pininden alındığı için toz sensörü herhangi bir kitaplık gerektirmez.
#Dahil etmek
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, CO2 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); analogReference (VARSAYILAN);
İç döngü () işlevi, birinci arayarak Arduino Analog pim sinyal değerleri okumak analogRead () işlev. Daha sonra bu analog sinyal değerlerini gerilim değerlerine çeviriniz.
geçersiz döngü () {int sensorValue = analogRead (sensorIn); float voltajı = sensorValue * (5000 / 1024.0);
Bundan sonra voltaj değerlerini karşılaştırın. Voltaj 0 V ise, sensörde bir sorun olduğu anlamına gelir. Voltaj 0 V'den büyük ancak 400 V'tan düşükse, bu, sensörün hala ön ısıtma işleminde olduğu anlamına gelir.
eğer (voltaj == 0) {Serial.println ("Hata"); } else if (voltaj <400) {Serial.println ("ön ısıtma"); }
Voltaj 400 V'a eşit veya daha büyükse CO2 konsantrasyon değerlerine dönüştürün.
else {int voltaj_diferans = voltaj-400; şamandıra konsantrasyonu = voltaj_ farklılığı * 50.0 / 16.0;
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.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (konsantrasyon);
Ve son olarak, metni OLED Ekranında görüntülemek için display () yöntemini çağırın.
display.display (); display.clearDisplay ();
Yerçekimi Kızılötesi CO2 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:
Not: Sensörü kullanmadan önce, doğru PPM değerlerini elde etmek için sensörün yaklaşık 24 saat ısınmasına izin verin. Sensörü ilk kez çalıştırdığımda, çıkış CO2 konsantrasyonu 1500 PPM ila 1700PPM idi ve 24 saatlik bir ısınma sürecinden sonra, çıkış CO2 konsantrasyonu doğru PPM değerleri olan 450 PPM'den 500 PPM'ye düştü. Bu nedenle, CO2 konsantrasyonunu ölçmek için kullanmadan önce sensörü kalibre etmek gerekir.
Havadaki doğru CO2 konsantrasyonunu ölçmek için bir Kızılötesi CO2 sensörü bu şekilde kullanılabilir. Kodun tamamı ve çalışma videosu aşağıda verilmiştir. Herhangi bir şüpheniz varsa, bunları yorum bölümüne bırakın veya teknik yardım için forumlarımızı kullanın.