Cómo calibrar el sensor MQ-3

A continuación, te detallo el método de calibración del sensor MQ‑3 y cómo definir y ajustar los límites de alerta, para que cada quien pueda adaptar el alcoholímetro a sus necesidades y al límite legal en España. Para otros países, tienes que consultar la normativa vigente de tu país. Si has llegado directamente aquí y no sabes cómo contruir el alcoholímetro con el sensor MQ-3, en este otro artículo, te lo explico detalladamente.

1. Método de Calibración del Sensor MQ‑3

Paso 1: Precalentamiento del Sensor

  • Tiempo necesario:
    Los sensores MQ‑3 necesitan calentarse (incluso hasta 24–48 horas) para alcanzar estabilidad.
  • Consejo:
    Deja el sensor encendido en condiciones constantes antes de iniciar cualquier medición de calibración.

Paso 2: Medir en “Aire Limpio” para Obtener el Offset

  • Objetivo:
    Determinar el valor base (offset) que el sensor marca en ausencia de alcohol.
  • Procedimiento:
    1. Coloca el sensor en un ambiente sin presencia de vapores de alcohol (un lugar bien ventilado, sin contaminantes).
    2. Toma lecturas durante varios minutos (por ejemplo, cada 1 segundo durante 10 minutos).
    3. Calcula el promedio de estas lecturas; este promedio es el offset que luego restarás a todas las mediciones.
    Ejemplo: Si el sensor marca alrededor de 0,07 mg/L en aire limpio, este será tu offset.

Paso 3: Exponer el Sensor a una Concentración Conocida de Alcohol

  • Objetivo:
    Obtener un segundo punto de referencia midiendo la respuesta del sensor ante una concentración definida de alcohol.
  • Procedimiento:
    1. Prepara una atmósfera con una concentración conocida de alcohol. Esto puede lograrse, por ejemplo, dejando evaporar una cantidad controlada de alcohol etílico en un espacio pequeño y cerrado o utilizando un calibrador de gas, si dispones de uno.
    2. Toma varias lecturas mientras el sensor está expuesto a esta concentración y calcula el promedio.
    Ejemplo: Si conoces que la atmósfera tiene, digamos, 0,15 mg/L de alcohol y el sensor (sin corregir) marca 1,3 V (o un valor convertido a mg/L), usarás estos datos para el siguiente paso.

Paso 4: Calcular el Factor de Sensibilidad

  • Fórmula Básica:
  • Interpretación:
    Este factor indica cuántos mg/L corresponden a cada unidad (voltio o valor convertido) que supere el offset.
  • Ejemplo numérico:
    • Offset medido: 0,9 V
    • Lectura con alcohol: 1,3 V
    • Diferencia: 0,4 V
    • Si la concentración conocida es 0,15 mg/L, el factor sería:

(Nota: Puedes trabajar en la misma unidad que uses en el código, ya sea voltios o mg/L, siempre que mantengas la coherencia en la fórmula).

Paso 5: Incorporar los Parámetros de Calibración en el Código

Una vez que tengas el offset y el factor, adapta el código para que:

  1. Se reste el valor del offset.
  2. Se multiplique el valor restante por el factor de sensibilidad.

Un ejemplo modificado del bloque de código podría ser:

globals:
  - id: sensor_mg_l_global
    type: float
    restore_value: no
    initial_value: "0.0"
  - id: offset_mg_l  # Valor en mg/L medido en aire limpio
    type: float
    restore_value: no
    initial_value: "0.070"  # Ejemplo: 0.070 mg/L
  - id: factor_calibracion  # Factor de sensibilidad (mg/L por unidad de sensor)
    type: float
    restore_value: no
    initial_value: "5.0"  # Ejemplo: ajusta este valor según tu calibración

sensor:
  - platform: adc
    pin: A0
    name: "Nivel de Alcohol (V)"
    id: sensor_voltage
    update_interval: 1s
    filters:
      - multiply: 3.3

  - platform: template
    name: "Nivel de Alcohol (mg/L)"
    lambda: |-
      float voltage = id(sensor_voltage).state;
      // Conversión inicial (según tu aproximación)  
      float mg_l_bruto = voltage * 0.08;
      // Resta el offset medido en aire limpio
      float mg_l_corr = mg_l_bruto - id(offset_mg_l);
      if (mg_l_corr < 0.0) {
        mg_l_corr = 0.0;
      }
      // Aplica el factor de calibración para obtener el valor real
      mg_l_corr = mg_l_corr * id(factor_calibracion);
      id(sensor_mg_l_global) = mg_l_corr;
      return mg_l_corr;
    accuracy_decimals: 3
    unit_of_measurement: "mg/L"

Este ejemplo ilustra cómo se corrige la lectura para que cada constructor pueda ajustar los valores según sus propias mediciones.

2. Explicación de los Límites y Cómo Aconsejar Calibrar Según el Caso

Límites Legales en España

  • Conductores habituales:
    El límite en el aliento es de 0,25 mg/L.
  • Conductores noveles/profesionales:
    El límite suele ser más bajo, alrededor de 0,15 mg/L.

Implementación en el Código

En tu código, puedes definir umbrales basados en el valor corregido (después de restar el offset):

text_sensor:
  - platform: template
    name: "Estado de Alcohol"
    lambda: |-
      float mg_l = id(sensor_mg_l_global);
      if (mg_l < 0.05) {
        return {"Bien"};
      } else if (mg_l < 0.25) {
        return {"Precaución"};
      } else {
        return {"Mejor quédate en casa"};
      }
    update_interval: 1s
  • «Bien»:
    Lecturas corregidas inferiores a 0,05 mg/L indican ausencia o niveles muy bajos de alcohol.
  • «Precaución»:
    Valores entre 0,05 y 0,25 mg/L (para conductores habituales) sugieren que se debe tener cuidado.
  • «Mejor quédate en casa»:
    Lecturas por encima de 0,25 mg/L indican que se ha superado el límite legal para conductores habituales.
    Para conductores noveles, se recomendaría bajar este umbral (por ejemplo, a 0,15 mg/L).

Consejos para Cada Caso

  1. Calibración Individual:
    • Cada sensor puede comportarse de forma diferente. Es fundamental que cada usuario realice su propia calibración, midiendo el offset en aire limpio y luego exponiendo el sensor a una concentración conocida.
    • Se recomienda documentar el procedimiento y ajustar los parámetros offset_mg_l y factor_calibracion en el código según los resultados obtenidos.
  2. Ajuste de Umbrales:
    • Conductores habituales: Mantén el umbral de 0,25 mg/L para la alerta “Mejor quédate en casa”.
    • Conductores noveles/profesionales: Se aconseja ajustar el límite a 0,15–0,20 mg/L.
    • Es importante aclarar en el tutorial que estos valores son orientativos y que el dispositivo es experimental. Recomienda a los usuarios que, si lo usan para fines prácticos, verifiquen y adapten los umbrales de acuerdo a su calibración.
  3. Importancia de Restar el Offset:
    • Al restar el offset, te aseguras de que la medición en condiciones “limpias” sea 0. Esto hace que los umbrales sean más precisos y evita falsas alertas por la variabilidad inherente al sensor.

Conclusión

  1. Calibración:
    • Precalienta el sensor.
    • Mide en aire limpio para obtener el offset.
    • Expon el sensor a una concentración conocida y toma lecturas.
    • Calcula el factor de sensibilidad (diferencia en la lectura vs. concentración conocida).
    • Actualiza el código para restar el offset y aplicar el factor de calibración.
  2. Límites:
    • Para conductores habituales, usar un umbral de 0,25 mg/L (después de calibrar).
    • Para conductores noveles o profesionales, considerar umbrales más bajos (alrededor de 0,15–0,20 mg/L).
    • Asegúrate de que los usuarios sepan que deben ajustar estos valores basándose en sus mediciones reales, ya que cada sensor y entorno puede variar.

De esta forma, cada uno podrá realizar su propia calibración y adaptar los umbrales de advertencia según el uso que le dé y las normativas correspondientes. ¡Espero que esta explicación te sea útil!

Sígueme a YouTube

Sensor de amperios en Home Assistant
Scroll al inicio