Skip to main content

Grove - Sensor de Gas(MQ3)

pir

El módulo Grove - Sensor de Gas(MQ3) es útil para la detección de fugas de gas (en el hogar y la industria). Es adecuado para detectar Alcohol, Bencina, CH4, Hexano, GLP, CO. Debido a su alta sensibilidad y tiempo de respuesta rápido, las mediciones se pueden tomar lo antes posible. La sensibilidad del sensor se puede ajustar usando el potenciómetro.

Nota

El valor del sensor solo refleja la tendencia aproximada de la concentración de gas en un rango de error permisible, NO representa la concentración exacta de gas. La detección de ciertos componentes en el aire generalmente requiere un instrumento más preciso y costoso, lo cual no se puede hacer con un solo sensor de gas. Si tu proyecto está dirigido a obtener la concentración de gas a un nivel muy preciso, entonces no recomendamos este sensor de gas.

Sensor

Tipo de Gas

Consigue Uno Ahora

MQ2Gas Combustible, Humo
MQ3Vapor de Alcohol
MQ5GLP, Gas Natural, Gas de Ciudad
MQ9Monóxido de Carbono, Gas de Carbón, Gas Licuado
tip

Hemos lanzado la Guía de Selección de Sensores de Gas de Seeed, te ayudará a elegir el sensor de gas que mejor se adapte a tus necesidades.

Características

  • Alta sensibilidad al alcohol y pequeña sensibilidad a la bencina
  • Estable y larga vida útil
  • Respuesta rápida y alta sensibilidad
tip

Más detalles sobre los módulos Grove consulta Sistema Grove

Especificaciones

ElementoParámetroMínTípicoMáxUnidad
VCCVoltaje de Trabajo4.955.1V
PHConsumo de Calentamiento0.5-750mW
RLResistencia de Cargaajustable
RHResistencia del Calentador-33-Ω
RsResistencia de Detección1-8
AlcanceConcentración de Detección0.05-10mg/L

Aplicación

  • Detector de alcohol.
  • Alcoholímetro.
  • Juguetes.

Descripción General del Hardware

Este es un sensor de salida analógica. Necesita conectarse a cualquier conector analógico en el Grove Base Shield. Los ejemplos utilizados en este tutorial hacen uso del pin analógico A0. Conecta este módulo al puerto A0 del Base Shield.

Es posible conectar el módulo Grove directamente a Arduino usando cables jumper mediante la conexión mostrada en la tabla a continuación:

ArduinoSensor de Gas
5VVCC
GNDGND
NCNC
Analog A0SIG

El voltaje de salida del sensor de gas aumenta cuando la concentración de gas aumenta. La sensibilidad se puede ajustar variando el potenciómetro. Tenga en cuenta que el mejor tiempo de precalentamiento para el sensor es superior a 24 horas. Para información detallada sobre el sensor MQ-3, consulte la hoja de datos proporcionada en la sección Recursos.

Plataformas Compatibles

ArduinoRaspberryArduPy

pir

pir

pir

caution

Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.

Primeros Pasos

Jugar Con Arduino

Seeeduino V4.2Base ShieldGrove - Sensor de Gas(MQ3)

pir

pir

pir

Obtener Uno AhoraObtener Uno AhoraObtener Uno Ahora

pir

Conecta el Grove - Gas Sensor(MQ3) al puerto A0 como se muestra en la imagen anterior.

Detección de Gas : Ejemplo Básico

En este ejemplo, el sensor está conectado al pin A0. Se muestra el voltaje leído del sensor. Este valor puede usarse como umbral para detectar cualquier aumento/disminución en la concentración de gas.

void setup() {
Serial.begin(9600);
}
 
void loop() {
float sensor_volt;
float sensorValue;
 
sensorValue = analogRead(A0);
sensor_volt = sensorValue/1024*5.0;
 
Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");
delay(1000);
}

Medición : Aproximación

Este ejemplo demuestra una forma de conocer la concentración aproximada de Gas. Según la hoja de datos de los sensores MQ3, estas ecuaciones están probadas para condiciones estándar y no están calibradas. Puede variar según los cambios de temperatura o humedad.

  1. Mantén el Sensor de Gas en un ambiente de aire limpio. Sube el programa a continuación.
void setup()
{
Serial.begin(9600);
}

void loop()
{
float sensor_volt;
float RS_air; // Get the value of RS via in a clear air
float R0; // Get the value of R0 via in Alcohol
float sensorValue;

/*--- Get a average data by testing 100 times ---*/
for(int x = 0 ; x < 100 ; x++)
{
sensorValue = sensorValue + analogRead(A0);
}
sensorValue = sensorValue/100.0;
/*-----------------------------------------------*/

sensor_volt = sensorValue/1024*5.0;
RS_air = (5.0-sensor_volt)/sensor_volt; // omit *RL
R0 = RS_air/60.0; // The ratio of RS/R0 is 60 in a clear air from Graph (Found using WebPlotDigitizer)

Serial.print("sensor_volt = ");
Serial.print(sensor_volt);
Serial.println("V");

Serial.print("R0 = ");
Serial.println(R0);
delay(1000);

}
  1. Luego, abre el monitor serie del IDE de Arduino. Anota el valor de R0 y esto necesita ser usado en el siguiente programa. Por favor anota el R0 después de que la lectura se estabilice.

Reemplaza el R0 de abajo con el valor de R0 probado arriba . Expón el sensor a cualquiera de los gases listados arriba.

void setup() {
Serial.begin(9600);
}

void loop() {

float sensor_volt;
float RS_gas; // Get value of RS in a GAS
float ratio; // Get ratio RS_GAS/RS_air
int sensorValue = analogRead(A0);
sensor_volt=(float)sensorValue/1024*5.0;
RS_gas = (5.0-sensor_volt)/sensor_volt; // omit *RL

/*-Replace the name "R0" with the value of R0 in the demo of First Test -*/
ratio = RS_gas/R0; // ratio = RS/R0
/*-----------------------------------------------------------------------*/

Serial.print("sensor_volt = ");
Serial.println(sensor_volt);
Serial.print("RS_ratio = ");
Serial.println(RS_gas);
Serial.print("Rs/R0 = ");
Serial.println(ratio);

Serial.print("\n\n");

delay(1000);

}

Ahora, podemos obtener la concentración de gas de la figura a continuación.

pir

Según la figura, podemos ver que la concentración mínima que podemos probar es 0.1mg/L y la máxima es 10mg/L. Sin embargo, no podemos proporcionar una fórmula porque la relación entre la proporción y la concentración es no lineal. Pero también, podemos convertir mg/L a ppm, puede ser conveniente para nosotros observar el valor.

Jugar con Raspberry Pi (Con Grove Base Hat para Raspberry Pi)

Hardware

  • Paso 1. Cosas utilizadas en este proyecto:
Raspberry piGrove Base Hat para RasPiGrove - Sensor de Gas(MQ3)

pir

pir

pir

Obtener UNO AhoraObtener UNO AhoraObtener UNO Ahora
  • Paso 2. Conecta el Grove Base Hat al Raspberry.
  • Paso 3. Conecta el Grove - Gas Sensor(MQ3) al puerto A0 del Base Hat.
  • Paso 4. Conecta el Raspberry Pi a la PC a través del cable USB.

pir

note

Para el paso 3 puedes conectar el Grove - Gas Sensor(MQ3) a cualquier Puerto Analógico pero asegúrate de cambiar el comando con el número de puerto correspondiente.

Software

  • Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
  • Paso 2. Descarga el archivo fuente clonando la librería grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Paso 3. Ejecuta los siguientes comandos para escribir el código.
cd grove.py/grove
nano grove_gas_sensor_mq3.py

Luego debes copiar el siguiente código en este archivo y presionar ++ctrl+x++ para salir y guardar.

import math
import sys
import time
from grove.adc import ADC


class GroveGasSensorMQ3:

def __init__(self, channel):
self.channel = channel
self.adc = ADC()

@property
def MQ3(self):
value = self.adc.read(self.channel)
return value

Grove = GroveGasSensorMQ3


def main():
if len(sys.argv) < 2:
print('Usage: {} adc_channel'.format(sys.argv[0]))
sys.exit(1)

sensor = GroveGasSensorMQ3(int(sys.argv[1]))

print('Detecting...')
while True:
print('Gas value: {0}'.format(sensor.MQ3))
time.sleep(.3)

if __name__ == '__main__':
main()

  • Step 4. Excute below commands to run code.
python grove_gas_sensor_mq3.py  0
success

Si todo va bien, podrás ver el siguiente resultado

pi@raspberrypi:~/grove.py/grove $ python grove_gas_sensor_mq3.py 0
Detecting...
Gas value: 564
Gas value: 564
Gas value: 564
Gas value: 565
Gas value: 565
Gas value: 565
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
Gas value: 566
^CTraceback (most recent call last):
File "grove_gas_sensor_mq3.py", line 69, in <module>
main()
File "grove_gas_sensor_mq3.py", line 66, in main
time.sleep(.3)
KeyboardInterrupt

Puedes salir de este programa simplemente presionando ++ctrl+c++.

note

Puede que hayas notado que para el puerto analógico, el número de pin en la serigrafía es algo como A0, A1, sin embargo en el comando usamos el parámetro 0 y 1, igual que el puerto digital. Así que por favor asegúrate de conectar el módulo en el puerto correcto, de lo contrario puede haber conflictos de pines.

Jugar Con Wio Terminal (ArduPy)

Hardware

  • Paso 1. Prepara las siguientes cosas:
Wio TerminalGrove - Sensor de Gas(MQ3)

pir

pir

Consigue Uno AhoraConsigue Uno Ahora
  • Paso 2. Conecta Grove - Gas Sensor(MQ3) al puerto A0 del Wio Terminal.

  • Paso 3. Conecta el Wio Terminal a la PC a través del cable USB Type-C.

pir

Software

  • Paso 1. Sigue ArduPy Getting Started para configurar el entorno de desarrollo ArduPy en Wio Terminal.

  • Paso 2. Asegúrate de que el firmware ArduPy esté flasheado en Wio Terminal. Para más información, por favor sigue aquí.

aip build
aip flash
  • Paso 3. Copia el siguiente código y guárdalo como ArduPy-mq3.py:
from machine import Pin, ADC
from machine import LCD
from machine import Sprite
import time

mq3 = ADC(Pin(13))
lcd = LCD()
spr = Sprite(lcd) # Create a buff

def main():
spr.createSprite(320, 240)
while True:
spr.setTextSize(2)
spr.fillSprite(spr.color.BLACK)
spr.setTextColor(lcd.color.BLUE)
spr.drawString("MQ3 Reading", 90, 10)
spr.drawFastHLine(40, 35, 240, lcd.color.DARKGREY)
spr.setTextColor(lcd.color.WHITE)
spr.drawString("- Current Level: ", 20, 50)
spr.drawNumber(mq3.read(), 220,50)
spr.pushSprite(0,0)
time.sleep_ms(500)

print("MQ3 Gas Sensor Reading is: ", mq3.read())

if __name__ == "__main__":
main()
  • Paso 4. Guarda el ArduPy-mq3.py en una ubicación que conozcas. Ejecuta el siguiente comando y reemplaza <YourPythonFilePath> con la ubicación de tu ArduPy-mq3.py.
aip shell -n -c "runfile <YourPythonFilePath>"
# Example:
# aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
  • Step 5. We will see the gas value display on terminal as below, and displaying on the Wio Terminal LCD screen.
ansonhe@Ansons-Macbook-Pro ~:aip shell -n -c "runfile /Users/ansonhe/Desktop/ArduPy-mq3.py"
Positional argument (/dev/cu.usbmodem1413101) takes precedence over --open.
Connected to ardupy
MQ3 Gas Sensor Reading is: 609
MQ3 Gas Sensor Reading is: 611
MQ3 Gas Sensor Reading is: 614
MQ3 Gas Sensor Reading is: 616
MQ3 Gas Sensor Reading is: 618
MQ3 Gas Sensor Reading is: 621
MQ3 Gas Sensor Reading is: 623
MQ3 Gas Sensor Reading is: 625
MQ3 Gas Sensor Reading is: 627
MQ3 Gas Sensor Reading is: 628
MQ3 Gas Sensor Reading is: 629
MQ3 Gas Sensor Reading is: 632

pir

Visor de Esquemático en Línea

Recursos

Lectura Sugerida / Referencias

Esquemático

Hoja de Datos

Soporte Técnico y Discusión de Productos

Actualizable a Sensores Industriales

Con el controlador S2110 y el registrador de datos S2100 de SenseCAP, puedes convertir fácilmente el Grove en un sensor LoRaWAN®. Seeed no solo te ayuda con el prototipado, sino que también te ofrece la posibilidad de expandir tu proyecto con la serie SenseCAP de sensores industriales robustos.

La carcasa IP66, configuración Bluetooth, compatibilidad con la red global LoRaWAN®, batería integrada de 19 Ah y el potente soporte de la APP hacen del SenseCAP S210x la mejor opción para aplicaciones industriales. La serie incluye sensores para humedad del suelo, temperatura y humedad del aire, intensidad de luz, CO2, EC y una estación meteorológica 8 en 1. Prueba el último SenseCAP S210x para tu próximo proyecto industrial exitoso.

Loading Comments...