lunes, 17 de junio de 2024

 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:

  1. Pin VCC del sensor: Conectarlo a los 5V de la placa Arduino.

  2. Pin GND del sensor: Conectarlo a la tierra (GND) de la placa Arduino.

  3. Pin A0 del sensor: Conectarlo al pin analógico A0 de la placa Arduino.

  4. 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. 

Los gases se miden en partes por millón (ppm) porque es una unidad de medida muy sensible que permite expresar concentraciones muy bajas de gases en una mezcla. Esto es útil para medir la concentración de gases tóxicos, de traza, o cuando se requiere una alta precisión en la medición.
PPM (Partes por millón):
Representa una fracción de un millón de partes de un gas en una mezcla total. Por ejemplo, si hay 1 ppm de un gas, significa que por cada millón de moléculas en la mezcla, una es de ese gas. 
Por qué se usa:
Concentraciones bajas: Muchas sustancias, especialmente los gases tóxicos, pueden tener efectos en la salud o en el medio ambiente incluso en concentraciones muy bajas. Las ppm permiten medir estas concentraciones con precisión. 
Precisión: En campos como la investigación de la contaminación del aire, la salud ocupacional, o la calidad del agua, se necesita una medición muy precisa de las concentraciones de gases. 
Estudio de la calidad del aire: Los niveles de gases como CO2, SO2, NO2, y otros, en el aire se miden en ppm para evaluar la calidad del aire. 
Control de procesos: En algunos procesos industriales, es importante controlar la concentración de gases para asegurar la seguridad y la calidad del producto. 




  

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:

  1. VCC del sensor: Conecte el pin VCC del sensor DHT11 al pin 5V de la placa Arduino Uno.

  2. DATA del sensor: Conecte el pin DATA del sensor DHT11 al pin de datos digital 2 de la placa Arduino Uno.

  3. 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:

  1. Conecte un extremo de la resistencia al pin VCC del sensor.

  2. 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:


0 Reviews:

Publicar un comentario

Gracias por tu aporte !

Suscribíte

https://www.youtube.com/@jonatanmontesgobelet