- MQ serisi Gaz sensörleri
- Donanımınızı Hazırlama:
- MQ Gaz Sensörlerinden PPM Ölçme Yaklaşımı:
- Temiz Havada Ro Değerinin Hesaplanması:
- Rs'nin değerini ölçün:
- PPM ile Rs / Ro oranını ilişkilendirme:
- MQ sensörünü kullanarak PPM hesaplama programı:
- Arduino ve MQ-137 ile Donanım üzerinde PPM değeri gösteriliyor:
Sanayi çağından beri, biz insanlık hızla gelişiyoruz. Her ilerlemeyle birlikte çevremizi de kirletir ve sonunda onu bozarız. Şimdi küresel ısınma endişe verici bir tehdit ve soluduğumuz hava bile kritik hale geliyor. Böylece hava kalitesi takibi de önem kazanmaya başladı. Bu yüzden bu yazıda Arduino ile herhangi bir MQ serisi gaz sensörünün nasıl kullanılacağını ve çıkışı PPM cinsinden (milyonda parça) göstermeyi öğreneceğiz . PPM ayrıca litre başına miligram (mg / L) olarak ifade edilir . Bu sensörler yaygın olarak bulunur ve aşağıda gösterilen farklı gaz türlerini ölçmek için de güvenilirdir.
MQ serisi Gaz sensörleri
- Karbondioksit (CO2): MG-811
- Karbon Monoksit (CO): MQ-9
- Toplam Uçucu Organik Bileşikler (TVOC'ler): CCS811
- Eşdeğer Karbon Dioksit (eCO2): CCS811
- Metal Oksit (MOX): CCS811
- Amonyak: MQ-137
- Hava Kalitesi: MQ-135
- LPG, Alkol, Duman: MQ2
Duman algılama için MQ2'yi ve Hava kalitesi izleme projesi için MQ-135'i zaten kullandık. Burada amonyağı ppm cinsinden ölçmek için sainsmart'ın MQ-137 sensörünü kullanacağım. Elimdeki sensörle mevcut tüm eğitimleri gözden geçirdim ve gazın ppm cinsinden nasıl ölçüleceğine dair uygun bir dokümantasyon olmadığını gördüm. Çoğu öğretici ya sadece Analog değerlerle ilgilenir ya da her tür gazı ölçmek için güvenilir olmayan bazı sabitler sunar. Bu yüzden uzun süre çevrimiçi ortamda uğraştıktan sonra nihayet bu MQ serisi gaz sensörlerini Arduino kullanarak ppm'yi ölçmek için nasıl kullanacağımı buldum. Bu makaleyi yanınızda bulunan herhangi bir Gaz sensörü için kullanabilmeniz için, herhangi bir kitaplık olmadan aşağıdan bazı şeyleri açıklıyorum.
Donanımınızı Hazırlama:
MQ gaz sensörleri, bir modül olarak veya yalnızca bir sensör olarak satın alınabilir. Amacınız yalnızca ppm ölçmekse, modül yalnızca Dijital pimi kullanmak için iyi olduğundan sensörü tek başına satın almak en iyisidir. Dolayısıyla, modülü zaten satın aldıysanız, daha sonra tartışılacak olan küçük bir hack gerçekleştirmeniz gerekir. Şimdilik, sensörü satın aldığınızı varsayalım. Sensörün pin çıkışı ve bağlantısı aşağıda gösterilmiştir
Gördüğünüz gibi, tedarik için 'H'nin bir ucunu ve' H'nin diğer ucunu toprağa bağlamanız yeterli. Sonra hem A hem de B'yi birleştirin. Bir seti voltaj sağlamak için ve diğerini analog pininize bağlayın. Direnç R L, sensörün çalışmasında çok önemli bir rol oynar. Bu nedenle hangi değeri kullandığınızı not edin, 47k değeri önerilir.
Zaten bir modül satın aldıysanız, karttaki R L' nizin değerini bulmak için PCB izlerinizi izlemelisiniz. Grauonline bu işi bizim için halihazırda yaptı ve MQ gaz sensör kartının devre şeması aşağıda verilmiştir.
Gördüğünüz gibi direnç R L (R2), Aout pini ile toprak arasına bağlıdır, bu nedenle bir modülünüz varsa, R L değeri, Vout pini ve Vcc pini boyunca direnç modunda bir multimetre kullanılarak ölçülebilir. modül. Sainsmart MQ-137 gaz sensörümde RL değeri 1K idi ve aşağıdaki resimde gösterildiği gibi burada bulunuyordu.
Bununla birlikte, web sitesi, devre şemasında açıkça görebileceğiniz gibi doğru olmayan değişken bir R L potu sağladığını iddia ediyor, pot, op-amp için değişken voltajı ayarlamak için kullanılır ve R L ile hiçbir ilgisi yoktur. Bu yüzden yukarıda gösterilen SMD direncini (1K) manuel olarak lehimlemeliyiz ve RL olarak hareket edecek olan Zemin ve Vout pininde kendi direncimizi kullanmalıyız. RL için en iyi değer, veri sayfasının önerdiği gibi 47K olacaktır, dolayısıyla aynısını kullanacağız.
MQ Gaz Sensörlerinden PPM Ölçme Yaklaşımı:
Artık R L' nin değerini bildiğimize göre, bu sensörlerden ppm'yi gerçekte nasıl ölçeceğimize geçelim. Tüm sensörler gibi, başlama yeri de veri sayfasıdır. MQ-137 Veri Sayfası burada verilmiştir ancak sensörünüz için doğru veri sayfasını bulduğunuzdan emin olun. Veri sayfasının içinde, (Rs / Ro) VS PPM'ye karşı çizilecek tek bir grafiğe ihtiyacımız var, bu, hesaplamalarımız için ihtiyacımız olan şey. Öyleyse al ve el altında bir yerde sakla. Sensörüm için olanı aşağıda gösterilmektedir.
MQ137 sensörünün NH3, C2H6O ve hatta CO ölçebildiği ortaya çıktı. Ama burada sadece NH3'ün değerleri ile ilgileniyorum. Bununla birlikte, istediğiniz herhangi bir sensör için ppm'yi hesaplamak için aynı yöntemi kullanabilirsiniz. Bu grafik, ppm değerini bulmamız için tek kaynaktır ve bir şekilde Rs / Ro oranını (X ekseni) hesaplayabilirsek, bu grafiği ppm (Y ekseni) değerini bulmak için kullanabiliriz. Rs / Ro'nun değerini bulmak için Rs'nin değerini ve Ro'nun değerini bulmamız gerekir. Rs, gaz konsantrasyonundaki Sensör direncidir ve Ro, temiz efendimdeki sensör direncidir.
Evet… plan bu, bakalım bundan nasıl kurtulabiliriz….
Temiz Havada Ro Değerinin Hesaplanması:
Rs / Ro'nun grafik değerinde hava için sabit (kalın mavi çizgi) olduğuna dikkat edin, bu yüzden bunu kendi yararımıza kullanabiliriz ve sensör temiz havada çalışırken Rs / Ro değerinin 3.6 olacağını söyleyebiliriz resme bakın altında
Rs / Ro = 3.6
Veri sayfasından ayrıca Rs'nin değerini hesaplamak için bir formül elde ederiz. Formül aşağıda gösterilmiştir. Bu formülün nasıl türetildiğini merak ediyorsanız, jay con sistemlerini okuyabilirsiniz, ayrıca bunu çözmeme yardımcı oldukları için onlara kredi vermek isterim.
Bu formülde Vc'nin değeri besleme voltajımızdır (+ 5V) ve R L' nin değeri zaten hesapladığımız değerdir (sensörüm için 47K). Küçük bir Arduino programı yazarsak, V RL'nin değerini de bulabilir ve sonunda Rs'nin değerini hesaplayabiliriz. Aşağıda sensörün analog voltajını (V RL) okuyan ve bu formülü kullanarak Rs değerini hesaplayan ve son olarak seri monitörde görüntüleyen bir Arduino Programı verdim. Program, yorum bölümü aracılığıyla iyi bir şekilde açıklanmıştır, bu nedenle bu makaleyi kısa tutmak için buradaki açıklamasını atlıyorum.
/ * * Temiz hava koşullarında bilinen bir RL için R0 değerini ölçen program * Programı yapan: B.Aswinth Raj * Web sitesi: www.circuitdigest.com * Tarih: 28-12-2017 * / // Bu program en iyi şekilde çalışır bir temiz hava odasında Sıcaklık: 20 ℃, Nem:% 65, O2 konsantrasyonu% 21 ve Rl değeri 47K olduğunda #define RL 47 // Direnç RL değeri 47K void kurulumu () // Yalnızca çalışır bir kez {Serial.begin (9600); // Değeri görüntülemek için seri COM'u başlatın} void loop () {float analog_value; şamandıra VRL; şamandıra Rs; float Ro; for (int test_cycle = 1; test_cycle <= 500; test_cycle ++) // Sensörün analog çıkışını 200 kez okuyun {analog_value = analog_value + analogRead (A0); // 200} analog_value = analog_value / 500.0 için değerleri ekleyin; // Ortalama VRL = analog_value * (5.0 / 1023.0) alın;// Analog değeri voltaja dönüştür // RS = ((Vc / VRL) -1) * RL, Rs = ((5.0 / VRL) -1) * RL veri sayfasından elde ettiğimiz formüllerdir; // Ro = Rs / 3.6 veri sayfası grafiğinden elde ettiğimiz gibi RS / RO 3.6; Serial.print ("Temiz havada Ro ="); Serial.println (Ro); // Hesaplanan Ro gecikmesini göster (1000); // 1 saniye gecikme}
Not: Ro değeri değişecektir, sensörün en az 10 saat ön ısıtma yapmasına izin verin ve ardından Ro değerini kullanın.
Sensörüm için Ro değerinin 30 KΩ olduğu sonucuna vardım (R L 47kΩ olduğunda). Sizinki biraz değişebilir.
Rs'nin değerini ölçün:
Artık Ro'nun değerini bildiğimize göre, yukarıdaki iki formülü kullanarak Rs'nin değerini kolayca hesaplayabiliriz. Önceden hesaplanan Rs değerinin temiz hava durumu için olduğunu ve havada amonyak bulunduğunda aynı olmayacağını unutmayın. Rs'nin değerini hesaplamak, son programda doğrudan ilgilenebileceğimiz büyük bir sorun değildir.
PPM ile Rs / Ro oranını ilişkilendirme:
Artık Rs ve Ro'nun değerini nasıl ölçeceğimizi bildiğimize göre, oranını (Rs / Ro) bulabiliriz. Ardından PPM'nin karşılık gelen değeri ile ilişkilendirmek için grafiği (aşağıda gösterilen) kullanabiliriz.
NH3 çizgisi (camgöbeği rengi) doğrusal gibi görünse de, aslında doğrusal değildir. Görünüş, ölçeğin görünüm için eşit olmayan bir şekilde bölünmesidir. Dolayısıyla, Rs / Ro ve PPM arasındaki ilişki aslında aşağıdaki denklemle temsil edilebilen logaritmiktir.
log (y) = m * log (x) + b burada, y = oran (Rs / Ro) x = PPM m = doğrunun eğimi b = kesişme noktası
M ve b değerlerini bulmak için gaz hattımızda iki noktayı (x1, y1) ve (x2, y2) dikkate almalıyız. Burada amonyakla çalışıyoruz, bu nedenle dikkate aldığım iki nokta yukarıdaki resimde gösterildiği gibi (kırmızı işaretli) kırmızı işaretli (40,1) ve (100,0,8).
m = / m = günlük (0,8 / 1) / günlük (100/40) m = -0,243
Benzer şekilde (b) için orta nokta değerini (x, y) yukarıdaki resimde gösterildiği gibi (70,0.75) olan grafikten (mavi ile işaretlenmiş) alalım.
b = log (y) - m * log (x) b = log (0,75) - (-0,243) * log (70) b = 0,323
İşte m ve b'nin değerini hesapladığımıza göre, aşağıdaki formülü kullanarak (Rs / Ro) değerini PPM'ye eşitleyebiliriz
PPM = 10 ^ {/ m}
MQ sensörünü kullanarak PPM hesaplama programı:
Tüm program bir MQ sensör kullanarak hesapla PPM aşağıda verilmiştir. Aşağıda birkaç önemli satır açıklanmıştır.
Programa geçmeden önce Yük direnci (RL), Eğim (m), Kesişme (b) ve temiz havadaki Direnç değeri (Ro) değerlerini beslememiz gerekir. Tüm bu değerleri elde etme prosedürü zaten açıklanmıştı, şimdi onları besleyelim
#define RL 47 // RL direncinin değeri 47K'dır #define m -0.263 // Hesaplanan Eğimi girin #define b 0.42 // Hesaplanan kesmeyi girin #define Ro 30 // Bulunan Ro değerini girin
Ardından sensördeki (VRL) Gerilim düşüşünü okuyun ve bunu Voltaja (0 V ila 5 V) dönüştürün çünkü analog okuma yalnızca 0 ila 1024 arasındaki değerleri döndürecektir.
VRL = analogRead (MQ_sensor) * (5.0 / 1023.0); // Gerilim düşüşünü ölçün ve 0-5V'a dönüştürün
Şimdi, VRL'nin değeri hesaplandığına göre , Rs'nin değerini ve ayrıca oranı (Rs / Ro) hesaplamak için yukarıda tartışılan formülü kullanabilirsiniz.
oran = Rs / Ro; // Rs / Ro oranını bul
Son olarak, logaritmik formülümüz ile PPM'yi hesaplayabilir ve aşağıda gösterildiği gibi seri monitörümüzde görüntüleyebiliriz.
çift ppm = pow (10, ((log10 (oran) -b) / m)); // ppm Serial.print (ppm) hesaplamak için formül kullanın; // ppm göster
Arduino ve MQ-137 ile Donanım üzerinde PPM değeri gösteriliyor:
Yeterince teori, gazın değerini PPM cinsinden görüntülemek için sensör ve LCD ile basit bir devre oluşturalım. Burada kullandığım sensör amonyağı ölçen MQ137'dir, kurulumumun devre şeması aşağıda gösterilmiştir.
Sensörünüzü ve LCD'nizi Devre şemasında gösterildiği gibi bağlayın ve programın sonunda verilen kodu yükleyin. Ro değerini yukarıda açıklandığı gibi değiştirmeniz gerekir. Ayrıca 4.7K dışında RL olarak başka bir direnç kullanıyorsanız, parametre değerlerinde değişiklikleri yapın.
Herhangi bir ölçüm yapmadan önce en az 2 saat kurulumunuzu açık bırakın (daha doğru değerler için 48 saat önerilir). Bu süre, sensörün ısındığı ısıtma süresi olarak adlandırılır. Bundan sonra, aşağıda gösterildiği gibi LCD ekranınızda görüntülenen PPM değerini ve voltajı görebilmelisiniz.
Şimdi değerlerin gerçekten amonyak varlığıyla ilişkili olup olmadığından emin olmak için, bu kurulumu kapalı bir kap içine yerleştirelim ve değerlerin artıp artmadığını kontrol etmek için içine amonyak gazı gönderelim. Kalibre etmek için yanımda uygun bir PPM ölçüm cihazım yok ve ölçüm cihazı olan birinin bu kurulumu test edip bana bildirmesi harika olur.
Okumaların amonyak varlığına göre nasıl değiştiğini kontrol etmek için aşağıdaki videoyu izleyebilirsiniz. Umarım kavramı anladınız ve öğrenmekten zevk almışsınızdır. Herhangi bir şüpheniz varsa yorum bölümüne bırakın veya daha ayrıntılı yardım için buradaki forumu kullanın.