SOFTWARE UTILIZADO ARDUINO IDE 2.3.2 | LENGUAJE C++
SENSOR MQ 135
El MQ135 es un sensor de calidad del aire que permite detectar algunos gases peligrosos como Amoniaco, Dióxido de Nitrógeno, Alcohol, Benzeno, Dióxido y Monóxido de carbono. El sensor puede detectar concentraciones de gas entre 10 y 1000 ppm y es de utilidad para detección de gases nocivos para la salud. Partes por millón (ppm) es una unidad de medida con la que se mide la concentración. Determina un rango de tolerancia. Se refiere a la cantidad de unidades de una determinada sustancia (agente, etc.) que hay por cada millón de unidades del conjunto.
Conexiones:
Pin VCC del sensor: Conectarlo a los 5V de la placa Arduino.
Pin GND del sensor: Conectarlo a la tierra (GND) de la placa Arduino.
Pin A0 del sensor: Conectarlo al pin analógico A0 de la placa Arduino.
Pin D0 del sensor: Este pin no se utiliza en la configuración básica. Se puede conectar a un pin digital de la placa Arduino si se desea utilizar la funcionalidad de salida digital del sensor.
Código:
#include <Arduino.h>
const int sensorPin = A0; // Pin analógico del MQ135
#define RZERO 76.63 // Valor base de calibración en aire limpio (ajustable)
// Función para obtener promedio de lecturas y evitar valores anómalos
float getAverageReading(int pin) {
float sum = 0;
for (int i = 0; i < 10; i++) {
sum += analogRead(pin);
delay(100);
}
return sum / 10;
}
// Función para calcular la concentración de gas en PPM
float getPPM(float voltage) {
float ratio = voltage / 0.1; // Ajuste con valores medidos de referencia
return 1000 * pow(ratio, -2.327); // Fórmula calibrada para MQ135
}
void setup() {
Serial.begin(9600); // Iniciar comunicación serial
}
void loop() {
float sensorValue = getAverageReading(sensorPin); // Lectura estable del sensor
float voltage = sensorValue * (5.0 / 1023.0); // Conversión a voltaje
float ppm = getPPM(voltage); // Cálculo de concentración
// Mostrar valores en el Monitor Serie
Serial.print("Valor sensor: ");
Serial.print(sensorValue);
Serial.print(" | Voltaje: ");
Serial.print(voltage);
Serial.print("V | PPM: ");
Serial.println(ppm);
delay(2000); // Retardo de 2 segundos
}
Explicación del código:
La variable sensorPin se define para almacenar el pin analógico al que se conecta el sensor MQ135.
En la función setup(), se inicializa la comunicación serial a 9600 baudios.
En la función loop(), se lee el valor analógico del sensor MQ135 utilizando la función analogRead().
El valor analógico se convierte a voltaje utilizando la fórmula voltage = sensorValue * (5.0 / 1023.0).
La concentración de gas en ppm se calcula utilizando la ecuación ppm = 232.9 * pow(voltage, -2.327).
Los valores del sensor, el voltaje y la concentración de gas en ppm se imprimen en la consola serial.
La función delay(2000) introduce un retardo de 2 segundos entre cada lectura del sensor.
Aclaraciones:
Este código es un ejemplo básico y puede modificarse para adaptarse a las necesidades específicas de su proyecto.
La ecuación utilizada para calcular la concentración de gas en ppm es una aproximación y puede variar según el sensor específico y las condiciones ambientales.
El sensor MQ135 requiere un tiempo de calentamiento de aproximadamente 2 minutos antes de poder proporcionar lecturas precisas.
El sensor MQ135 es sensible a la humedad y la temperatura, por lo que no se recomienda su uso en entornos hostiles.
Fuentes:
El sensor MQ135 es capaz de detectar varios gases, incluyendo amoníaco, óxidos de nitrógeno, alcohol, benceno, humo y dióxido de carbono. También puede detectar otros gases nocivos para la salud.
Amoníaco (NH3): Es uno de los principales gases detectados por el MQ135.
Óxidos de nitrógeno (NOx): Estos gases también son detectables por el sensor.
Alcohol: El MQ135 es sensible a la presencia de alcohol en el aire.
Benceno (C6H6): También es un gas que el sensor puede detectar.
Humo: El sensor es sensible a la presencia de humo en el aire.
Dióxido de carbono (CO2): El MQ135 también puede detectar la presencia de CO2.
SENSOR DHT 11
Es un sensor que mide temperatura y humedad. Es ideal para sistemas de medición climatológicos o para controles de temperatura y humedad. Este sensor, además, incluye un transductor interno de temperatura del tipo NTC y tiene una gran relación señal a ruido ante la interferencia. El NTC es un Coeficiente de Temperatura Negativo: puede referirse a los termistores con coeficiente de temperatura negativo. Estos dispositivos tienen una resistencia que disminuye al aumentar la temperatura. Se utilizan como sensores de temperatura y limitadores de corriente.
Conexiones:
VCC del sensor: Conecte el pin VCC del sensor DHT11 al pin 5V de la placa Arduino Uno.
DATA del sensor: Conecte el pin DATA del sensor DHT11 al pin de datos digital 2 de la placa Arduino Uno.
GND del sensor: Conecte el pin GND del sensor DHT11 al pin GND de la placa Arduino Uno.
Resistencia pull-up (opcional): en este caso no la utilizamos
Se recomienda utilizar una resistencia pull-up de 4.7kΩ entre el pin DATA del sensor y el pin VCC del sensor para mejorar la estabilidad de la señal. Para conectar la resistencia:
Conecte un extremo de la resistencia al pin VCC del sensor.
Conecte el otro extremo de la resistencia al pin DATA del sensor.
Código:
#include <DHT.h>
#define DHTPIN 2 // Pin al que está conectado el sensor DHT11
#define DHTTYPE DHT11 // Tipo de sensor DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
// Lectura de la humedad y temperatura
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Verificación de errores en la lectura
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Error al leer el sensor DHT11!");
return;
}
// Impresión de los valores
Serial.print("Humedad: ");
Serial.print(humidity, 1);
Serial.print("% ");
Serial.print("Temperatura: ");
Serial.print(temperature, 1);
Serial.println(" °C");
delay(2000); // Tiempo de espera entre lecturas
}
Explicación del código:
La biblioteca DHT.h se incluye para trabajar con el sensor DHT11.
Se definen constantes para el pin al que está conectado el sensor (DHTPIN) y el tipo de sensor (DHTTYPE).
Se crea una instancia del objeto DHT para manejar el sensor.
En setup(), se inicializa la comunicación serial y se inicializa el sensor DHT11.
En loop(), se leen la humedad y la temperatura del sensor.
Se verifica si hubo un error en la lectura.
Si no hay errores, se imprimen los valores de humedad y temperatura en la consola serial.
Se espera un tiempo de 2 segundos antes de realizar la siguiente lectura.
Aclaraciones:
Asegúrate de que la placa Arduino Uno esté alimentada con un voltaje adecuado (5V) y que la conexión a tierra esté correcta.
Si estás utilizando una resistencia pull-up, asegúrate de que esté conectada correctamente entre el pin DATA del sensor y el pin VCC del sensor.
Puedes modificar el código para mostrar la humedad y la temperatura con más decimales si lo deseas.
Puedes usar este código como base para crear proyectos más complejos que involucren el sensor DHT11 para medir la humedad y la temperatura del ambiente.
Fuentes:
https://projecthub.arduino.cc/arcaegecengiz/using-dht11-12f621
https://www.geekfactory.mx/categoria-de-producto/sensores/sensores-de-humedad/
0 Reviews:
Publicar un comentario
Gracias por tu aporte !