Arduino MQ Sensors Library

Поделиться
HTML-код
  • Опубликовано: 15 авг 2019
  • Buenos dias Amigos.
    Hoy les traigo esta espectacular libreria, la cual permite obtener el valor en PPM (partes por millon) de contaminantes usando los sensores MQ. Muy facil de utilizar y personalizar, implementala en tus proyectos como:
    * Alcoholimetro
    * Detector de humo
    * Detector de gases peligrosos
    y mucho mas, recuerda dar clic en clone or download y descargas un .zip y en arduino en la seccion programa/Incluir libreria/Añadir libreria como zip podras agregarla y con los ejemplos usarla muy facilmente.
    Nuevo video • Como leer un sensor MQ...
    Link de la libreria:
    github.com/miguel5612/MQSenso...
    Manual de usuario:
    drive.google.com/open?id=1BAF...
    webplot digitalizer automeris.io/WebPlotDigitizer/
    la libreria MQ Unified github.com/miguel5612/MQSenso...
    Si deseas analizar el modelado matematico lineal github.com/miguel5612/MQSenso...
    Si deseas analizar modelado matematico exponencial
    github.com/miguel5612/MQSenso...
  • НаукаНаука

Комментарии • 33

  • @fmcone
    @fmcone 4 года назад +1

    excelente trabajo!

  • @erickmarin6147
    @erickmarin6147 2 года назад

    Gracias!

  • @CarlosRojas-er9ol
    @CarlosRojas-er9ol 4 года назад +1

    hola, tengo una duda con el funcionamiento del mq9 para calcular el c02 de un motor de MCI

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад +1

      Hola Carlos!, muchas gracias por tu inquietud,
      primero que todo cabe aclarar que segun el datasheet el MQ-9 NO es un sensor que tenga la capacidad de medir CO2, puede medir otros gases como CO, LPG, CH4.
      Si lo que quieres es medir CO2 el sensor mas apropiado seria el MQ-135 o si en definitiva quieres un sensor especializado en ello te recomendaria el CCS_811.
      Otro detalle:
      Si usas un sensor MQ debes dejarlo precalentar 48 horas antes de su uso para que la medida sea confiable.
      Ahora no se en que factor pero seria de esperarse que los gases de salida de un motor calienten harian poco confiable la medida, por tanto debes garantizar que el sensor este a una temperatura constante y inmerso en el aire que deseas medir.
      Sin entrar en mayor detalle porque no trabajo mucho con la parte mecanica te recomendaria primero monitorear que el ambiente que rodea al sensor no afecte la medida, luego seleccionar un sensor para la medida y finalmente desarrollar el codigo fuente :).
      Muchas gracias por tu inquietud y para cualquier duda estare a la espera de tus comentarios :).

    • @CarlosRojas-er9ol
      @CarlosRojas-er9ol 4 года назад +1

      @@miguelangelingenieria hola, gracias por responder, si perdón era CO y ya deje el sensor las 48 horas para que la resistencia tenga efecto y tener una mejor medida, aunque según un escanner del vehículo la medida de co tendría que estar entre 0.60 a 0.90 y elsensor del mq me tira lecturas de 0.61 como máxima en contraparte del escanner que me da una constante de 0.74-0.86

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      @@CarlosRojas-er9ol Si utilizas la siguiente opcion:
      CO = MQ9.readSensor("CO", true);
      Podras ver en el puerto Serie la impresion de todos los datos de la libreria, tanto la ecuacion, voltaje, RS, R0, RS_AIR y con ello podremos identificar que parametro esta mal.
      Te recomendaria apuntar cual es el valor de CO medido junto con el voltaje del sensor en un documento de excel, y con ello podemos implementar correcciones a la libreria o recomendarte un valor para R0.
      Recuerda que R0 es el valor medido a 1000 ppm de LPG (Es un valor medido) el cual al ser modificado altera totalmente tus medidas obtenidas acercandolas al valor real.
      R0 tambien lo puedes modificar tu manualmente usando la funcion:
      MQ9.setR0(Valor de R0);
      Variando este valor te tiene que arrojar medidas mas cercanas al valor que te esta midiendo el otro sensor
      Y si no conoces su valor actual y lo deseas conocer lo puedes ver con la siguiente instruccion:
      Serial.println(MQ9.getR0());

    • @CarlosRojas-er9ol
      @CarlosRojas-er9ol 4 года назад +2

      @@miguelangelingenieria oye muchas gracias, ahorita estoy viendo eso, para recalibrar la medida y ya casi me esta dando un valor apegado al sensor con una variación de +- 0.7 muchísimas gracias el único video y persona que me pudo ayudar GRACIAAAAS!

  • @diegodeganis
    @diegodeganis 3 года назад

    Hola una consulta. Tengo el sensor mq9 y en el datasheet me dice que detecta monóxido de carbono en un rango de 20ppm a 2000ppm. Mi consulta es la siguiente. Ya que en entrada analógica de arduino me entrega entre 0 y 1023 de puede usar la función map. O sea a 0 lo convertiría al valor de 20ppm y al valor 1023 a 2000ppm.. Ese valor estaría dentro de lo real? Aclaro tengo el sensor que viene con la placa ya incluye el comparador. Gracias

    • @miguelangelingenieria
      @miguelangelingenieria  3 года назад

      Cordial saludo, no es correcto por que el comportamiento del sensor no es lineal, la mejor forma de representarlo es exponencialmente de la forma A*B^N, quedo atento a cualquier otra inquietud :D

  • @marianolujan6347
    @marianolujan6347 4 года назад

    Amigo Miguel, no puedo ingresar al aplicativo online que indicas de Andres Acebedo... podrás porfavor compartir el link o en todo caso la carpeta de la que haces mención pero parece que se olvido colocarlo en la descripción. Se te agradece por anticipado.

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      Buen dia Mariano, no entiendo muy bien a que aplicativo te refieres, mas sin embargo:
      Si es webplot digitalizer automeris.io/WebPlotDigitizer/
      Si es la libreria MQ Unified -> github.com/miguel5612/MQSensorsLib
      Si deseas analizar el modelado matematico lineal -> github.com/miguel5612/MQSensorsLib_Docs/tree/master/Internal_design_documents
      Si deseas analizar modelado matematico exponencial ->
      github.com/miguel5612/MQSensorsLib_Docs/tree/master/WPDigitalizer

  • @julian291284
    @julian291284 4 года назад

    Sin utizar el modulo para arduino nesecito una resistencia para el mq131?

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      Claro que si, por que recuerda el arduino es incapaz de medir directamente la resistencia interna del sensor, al igual que la corriente DC que pasaria por el circuito, entonces lo que hacemos es conectar en serie con la resistencia del sensor una resistencia de carga de valor conocido, por donde pasara una corriente, esa corriente cambiara proporcionalmente siguiendo los cambios de la resistencia del sensor y alterara de forma proporcional el voltaje en la resistencia de carga (Ley de ohm) lo cual mide el arduino en el pin Analogico.

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      Ademas Julio, tu puedes hacer el circuito que tiene el modulo es realmente sencillo, acontinuacion te enseño el circuito:
      github.com/miguel5612/MQSensorsLib_Docs/blob/master/static/img/Points_explanation.jpeg?raw=true
      Si lo ensamblas correctamente al final de la practica deberias tener los mismos 3 puntos que tiene toda tarjeta (VCC, GND y AO). y podras continuar con la implementacion de tu lector de concentracion de gases.

  • @gdelec
    @gdelec 4 года назад

    Hola Miguel, te comento que he estado usando el sensor mq131 desde el ejemplo de tu librería, sin embargo quisiera si la calibración que llevaste a cabo para dicho sensor se basa únicamente en el "datasheet" o utilizaste un instrumento patrón para determinar la relación? (me imagino que sabes que hay dos manuales para ese sensor y ambos tienen informacion completamente distinta)

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      Buen dia Gabriel.
      Muchas gracias por tu pregunta, es cierto, datasheets hay muchos, por eso hemos empleado los que pertenecen a fabricantes o a casas de venta mas usuales a nivel mundial, por ello esperamos tu MQ-131 provenga de alli.
      Por otra parte con un instrumento patron no hemos realizado la medicion puesto que en nuestra region no son muy usuales y si bien se puedieran conseguir deben estar en centros de metrologia y no ahondamos en esta practica.
      El planteamiento es netamente matematico como te has dado cuenta, partimos del principio de la confianza en la grafica de los datasheets y usando modelamiento matematico calibramos y hallamos la concentracion en PPM.
      Esperamos porsupuesto que si tu tienes la oportunidad de experimentar con un instrumento patron nos compartas tus aportes o si quieres realizar un cambio nos lo indiques puede ser en comentario o en forma de issue en Github.
      Esperamos esta libreria tambien te sea de mucha ayuda y te sirva para tu implementacion.

    • @gdelec
      @gdelec 4 года назад +1

      @@miguelangelingenieria Gracias Miguel, en efecto, dentro de las próximas semanas vamos a estar probando y calibrando diferentes sensores comerciales de bajo costo con un instrumento profesional, en cuanto tengamos resultados te haré llegar los ajustes para el mq131.

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      @@gdelec Perfecto, estaremos atentos para dar soporte a cualquier inquietud o mejora.

  • @jefersonoyolagarcia7023
    @jefersonoyolagarcia7023 4 года назад

    Buenas noches, en este momento estoy calibrando el mq7, sin embargo estoy utilizando el pic 18f452, de casualidad tienes la libreria para pic?

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      No sr de momento la libreria no esta disponible para pic, sin embargo si ya lo estas programando podrias usar la informacion disponible en la siguiente ruta de la libreria:
      Folder WPDigitalizer/MQ9/MQ9_Analisis.xlsx
      Entonces alli encontraras en la segunda grafica la ecuacion que modela la RS/R0 con respecto al gas que estas midiendo entonces los pasos en el programa del pic seria lo siguiente:
      0. Precalentar por 48 horas (o el tiempo que estipule el datasheet)
      1. Leer el voltaje del sensor
      2. Hallar con las ecuaciones de la ley de ohm el valor de la Rs interna del sensor
      3. Esa Rs si es en condiciones de calibracion entonces es el R0.
      4. Realizar las mediciones y hallar la relacion del valor de Rs actual sobre R0
      5. Introducir ese valor en la ecuacion
      6. Hallar los PPM y validar que este dentro del rango que especifica el datasheet

    • @jefersonoyolagarcia7023
      @jefersonoyolagarcia7023 4 года назад +1

      @@miguelangelingenieria muchas gracias!!!!!!!

    • @jefersonoyolagarcia7023
      @jefersonoyolagarcia7023 4 года назад

      Disculpa, estoy un poco confundido con los valores de Rs y R0, me podrías por favor indicar cuál es la ecuación para hallar Rs?

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад

      @@jefersonoyolagarcia7023 Buen dia, claro que si.
      Primero que todo hay que aclarar, R0 es el valor de RS en las condiciones que especifica el fabricante, en general cuando esta al aire limpio.
      La ecuacion de RS es la siguiente:
      _RS_Calc = ((_VOLT_RESOLUTION*_RLValue)/_sensor_volt)-_RLValue; //Get value of RS in a gas
      Es decir:
      _VOLT_RESOLUTION = 5 Voltios para arduino, 3.3 para otras placas como wemos.
      RL_VALUE = Valor de la resistencia de carga en KiloOhms
      _sensor_volt = Voltaje leido del pin analogico (Debe estar en voltios, escala 0:5 voltios o de 0:3.3 Voltios)
      _RS_Calc = Valor de RS
      La referencia, de donde cito esta ecuacion esta en el siguiente enlace:
      jayconsystems.com/blog/understanding-a-gas-sensor
      Donde llegan a la misma ecuacion que esta arriba, solo que escrita con otras variables
      RS = [(VC x RL) / VRL] - RL

  • @luiscarlosvillan185
    @luiscarlosvillan185 4 года назад +1

    Hola Tengo una pregunta con respecto a lo valores que se muestran en las librerias del MQ7....Es que al comienzo , cuando se ejecuta el codigo y abro el Monitor Serie de Arduino, me arroja valores de 9990.00 ppm..No entiendo que ocurre.Agradeceria una pronta respuesta.Gracias

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад +1

      Buen dia,
      Para validar se recomendaria que uses un segundo parametro en tus mediciones.
      Ejemplo:
      SI estas usando un MQ9, seguramente en el setup haz colocado:
      Serial.begin(baudrate); //Donde baudrate es la velocidad misma que tienes seleccionada en el puerto serie
      Y por otra parte haz colocado:
      H2 = MQ7.readSensor("H2"); // Return CH4 concentration
      Reemplaza esta linea por:
      H2 = MQ7.readSensor("H2", true); // Return CH4 concentration
      y en ese momento la libreria imprimira por puerto serie toda la informacion (Voltaje que leyo, R0, Ecuacion matematica) y envianos un capture de esa pantalla para poder colaborarte :), quedo a la espera.

    • @luiscarlosvillan185
      @luiscarlosvillan185 4 года назад

      @@miguelangelingenieria Listo , ya hice eso..Pero aun me siguen saliendo esos valores..(aclaro) cuando lo acerco a una fuente de CO esos valores cambian y se ven un poco mas reales , la cuestion esta , en que cuando esta en un área con aire normal , marca dichos valores de 9999.00.Esa es mi intriga...(Donde te puedo enviar el capture?).Muchas gracias

    • @luiscarlosvillan185
      @luiscarlosvillan185 4 года назад

      Hola.Agardeceria tu respuesta.Gracias

    • @miguelangelingenieria
      @miguelangelingenieria  4 года назад +1

      @@luiscarlosvillan185 El capture puedes enviarmelo via correo electronico al correo miguelangel5612@gmail.com o como un issue en github

    • @luiscarlosvillan185
      @luiscarlosvillan185 4 года назад

      @@miguelangelingenieria Listo te lo acabo de adjuntar al correo.Agradezco tu pronta respuesta..(No se si esos valores vienen por defecto en la libreria.)