Az Arduino fejlesztői környezetbe tökéletesen illeszkednek az egyes levegő koncentrátumát vizsgáló szenzorok. Amiről most szó lesz a továbbiakban az az MQ9-es modell, amely képes metán, PB és szén-monoxid (10ppm-től 1.000ppm-ig) és egyéb gyúlékony gázok (100ppm-től 10.000ppm-ig) mérésére. Működési elve, hogy egy belső ellenállás értéke annak függvényében változik, ahogy a levegő összetétele. Egy fütött elektróda érzékeli mindezt.
Egy otthoni, saját fejlesztésű IoT rendszerbe fogom illeszteni.
Bekötése:
- VCC (1.4...5V)
- GND
- Digitális kimenet
- Analóg kimenet
Amire figyelni kell:
- A helyes polaritásra és feszültség tartományra
- A felfűtési idő 24-48 óra (a gyártó szerint)
- Ne remegtessük a szenzort
- Kalibrálni kell
- Hosszabb időszakra ne mérjen magas gáz koncentrátumot
A digitális kimenete magas állapotba kerül, amennyiben már veszélyes a gáz koncentrációja, ellenkező esetben alacsony. Én az analóg kimenetét használom fel, mert mérni akarom az összetétel értékét.
Az eszközt először is kalibrálni kell. Ezzel a kóddal megkapjuk az R0 értékét, amit később majd fel fogunk használni:
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_air; // Rs in clean air
float R0; // R0 in 1000 ppm LPG
float sensorValue;
//Average
for(int x = 0 ; x < 100 ; x++)
{
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
//-----------------------------------------------/
sensor_volt = (sensorValue/1024)*5.0;
RS_air = (5.0-sensor_volt)/sensor_volt; // Depend on RL on yor module
R0 = RS_air/9.9; // According to MQ9 datasheet table
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
Serial.print("R0 = ");
Serial.println(R0);
delay(1000);
}
Ha megkaptuk az R0 értékét, akkor be kell helyettesíteni ebbe a kódba:
void setup() {
Serial.begin(9600);
}
void loop() {
float sensor_volt;
float RS_gas;
float ratio;
float R0 = 0.48;
int sensorValue = analogRead(A0);
sensor_volt = ((float)sensorValue / 1024) * 5.0;
RS_gas = (5.0 - sensor_volt) / sensor_volt; // Depend on RL on yor module
ratio = RS_gas / R0; // ratio = RS/R0
//------------------------------------------------------------/
Serial.print("sensor_volt = ");
Serial.println(sensor_volt);
Serial.print("RS_ratio = ");
Serial.println(RS_gas);
Serial.print("Rs/R0 = ");
Serial.println(ratio);
Serial.print("\n\n");
delay(1000);
}
Az alábbi grafikonról leolvashatók a PPM értékek a kapott RS / R0 hányadosával:
Megjegyzés: a CH4 = metán gáz.
Megjegyzések
Megjegyzés küldése