Introducción del sensor de dióxido de carbono MH-Z16
Utilizando el principio de infrarrojo no dispersivo (tecnología NDIR) para detectar CO2 en el aire, tiene buena selectividad y no depende del oxígeno. Y compensación de temperatura incorporada, utilizando el puerto serie, puede leer la concentración actual de gas CO2, el uso es muy simple, compatible con varios microcontroladores. El sensor de infrarrojos es un sensor de alto rendimiento fabricado con tecnología madura de detección de gas de absorción infrarroja. Tiene las características de interferencia anti-vapor de agua, sin envenenamiento, larga vida, etc. Puede usarse en el aire durante mucho tiempo, evitando el calentamiento a largo plazo después del envenenamiento. Puede ser ampliamente utilizado en agricultura inteligente, HVAC y monitoreo de calidad del aire interior, procesos industriales y monitoreo de protección de seguridad, monitoreo de procesos de producción agrícola y ganadera, etc.
Definición de pines del sensor
Formato de comando de lectura de datos de puerto serie
Cableado Arduino UNO con sensor
Arduino UNO | MH-Z16 |
---|---|
D11 | RX |
D10 | Texas |
5V | Vino |
TIERRA | TIERRA |
Programa de prueba
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
unsigned char hexdata[9] = {
0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79}; //Read the gas density command /Don't change the order
void setup() {
Serial.begin(9600);
while (!Serial) {
}
mySerial.begin(9600);
}
void loop() {
mySerial.write(hexdata, 9);
delay(500);
for (int i = 0, j = 0; i < 9; i++)
{
if (mySerial.available() > 0)
{
long hi, lo, CO2;
int ch = mySerial.read();
if (i == 2) {
hi = ch; //High concentration
}
if (i == 3) {
lo = ch; //Low concentration
}
if (i == 8) {
CO2 = hi * 256 + lo; //CO2 concentration
Serial.print("CO2 concentration: ");
Serial.print(CO2);
Serial.println("ppm");
}
}
}
}
Abra el asistente del puerto serie e inhale el sensor, el valor de CO2 que puede probar el sensor cambiará.
Tabla de resumen
En este experimento, el comando del puerto serie lee el valor del sensor y el ancho de pulso del PWM también puede calcular el valor medido por el sensor.