En este tutorial veremos como crear un dispositivo de Internet de las cosas, que nos enviará alertas, de fuga de gas y también si se produce un incendio. Esto se hará mediante un esp32, un sensor de gases explosivos mq-2 y un sensor de llama, todo armado en un pcb fabricado por PcbWay. Veremos el armado del dispositivo y conexiones.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos
Un Esp32
Características del módulo ESP32-T
Conectividad
El módulo ESP32 dispone de todas las variantes del WiFi:
- 802.11 b/g/n/e/i/n
- Wi-Fi Direct (P2P), P2P Discovery, P2P Group Owner mode and P2P Power Management
Esta versión nueva incluye la conectividad mediante Bluethoot de bajo consumo
- Bluetooth v4.2 BR/EDR and BLE
- BLE Beacon
Además, puede comunicarse mediante los protocoles SPI, I2C, UART, MAC Ethernet, Host SD
Prestaciones del microcontrolador
La CPU está formado por un SoC modelo Tensilica LX6 con las siguientes características y memoria
- Doble núcleo de 32 bits con velocidad de 160MHz
- Memoria ROM de 448 kBytes
- Memoria SRAM de 520kBytes
Dispne de 48 Pines
- 18 ADC de 12 bits
- 2 DAC de 8 bits
- 10 pines sensores de contacto
- 16 PWM
- 20 Entradas/salidas digitales
Alimentación y modos de consumo
Para un correcto funcionamiento del ESP32 es necesario subministrar un voltaje de entre 2,8V y 3,6V. La energía que consume depende del modo de funcionamiento. Contiene un modo, el Ultra Low Power Solution (ULP), en que se continúan realizando tareas básicas (ADC, RTC…) en el modo Sleep.
Sensor de gas mq2
Pin-Out sensor de gas Mq-2
Datasheet sensor MQ-2
Descargar–> MQ-2
Sensor de gas (MQ2) es útil para la detección de fugas de gas (en el hogar y la industria). Puede detectar GLP, i-butano, metano, alcohol, hidrógeno, humo, etc. Basado en su rápido tiempo de respuesta. las medidas se pueden tomar lo antes posible. Además, la sensibilidad se puede ajustar mediante un potenciómetro(pin digital).
ESPECIFICACIONES TÉCNICAS
Voltaje de Operación: 5V DC
Respuesta rápida y alta sensibilidad
Rango de detección: 300 a 10000 ppm
Gas característico: 1000ppm, Isobutano
Resistencia de sensado: 1KΩ 50ppm Tolueno a 20KΩ in
Tiempo de Respuesta: ≤ 10s
Tiempo de recuperación: ≤ 30s
Temperatura de trabajo: -20 ℃ ~ +55 ℃
Humedad: ≤ 95% RH
Contenido de oxigeno ambiental: 21%
Consume menos de 150mA a 5V.
APLICACIONES
Detector de fugas de Gas
Detector industrial de gas
Detector de llama
Sobre el módulo detector de llama
- Este módulo es sensible a una llama y su radiación. También puede detectar fuente de luz ordinaria en el rango de una longitud de onda de 760 nm a 1100 nm.
- El sensor de Llama puede emitir señal digital o analógica.
- Se puede usar como una alarma de incendios.
- Detección de ángulo de unos 60 grados, particularmente sensible al espectro de la llama.
- Sensibilidad ajustable (en azul ajuste del potenciómetro digital).
- La salida del comparador, señal limpia, buena onda, la capacidad de conducción, más que 15mA.
- Voltaje de funcionamiento de 3.3 V-5 V.
- La forma de salida: salidas de conmutación digital (0 y 1) y salida de tensión analógica AO.
- Agujeros de perno fijo para una fácil instalación.
- Pequeñas placas PCB Tamaño: 3.2 cm x 1.4 cm.
- Usa un amplificador LM393 como comparador de voltaje
Uso del módulo
- Una pequeña placa de interfaz de salida puede ser conectado directamente al microcontrolador
- El sensor y la llama tiene que mantener una cierta distancia, a fin de no dañar por temperatura al sensor
- La llama de un encendedor se ha probada a una distancia de 80 cm.
- Pequeñas placas de salida analógica y con un procesador de conversión AD, se puede obtener una mayor precisión.
Espectro de una llama
El espectro de emisión de una llama depende de los elementos que intervienen en la reacción. En el caso de combustión de productos con carbón en presencia del oxígeno tenemos dos picos característicos en ultravioleta en longitudes de onda de 185nm-260nm y en infrarrojo en longitudes de onda 4400-4600nm.
Los sensores de llama son ampliamente utilizados en la industria. Muchas máquinas ejecutan procesos susceptibles de generar llamas, como por ejemplo procesos de mecanizado o de electroerosión. Frecuentemente se realizan en presencia de elementos combustibles como aceite o viruta.
Por este motivo se incorporan sensores de llaman como dispositivo de seguridad, permitiendo detener el proceso en caso de detectar cualquier indicio de combustión. Estos dispositivos se ajustan a las longitudes de onda características de la aparición de la llama y normalmente combinan las señales ultravioleta y de infrarrojo.
Buzzer
Pines hembra
PCB
Descargar archivo gerber –> Gerber_esp32
Cables Dupont
Código Fuente
Si notas que los sensores de gas o llama se disparan muy fácilmente, o por el contrario al probar no se disparan correctamente, te recomiendo cambiar los valores de las condiciones de “if(gasValor >= 1000)” o de “if(fireValor <= 1000)” e ir probando, hasta alcanzar el umbral de dispara deseado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
#ifdef ESP32 #include <WiFi.h> #else #include <ESP8266WiFi.h> #endif include# <WiFiClientSecure.h> #include <UniversalTelegramBot.h> #include <ArduinoJson.h> // Reemplazar con los datos de tu red wifi const char* ssid = "Mi_red_wifi"; const char* password = "Mi_contraseña"; //Token de Telegram BOT se obtenienen desde Botfather en telegram #define token_Bot "Token_telegram" // El ID se obtiene de (IDBot) en telegram no olvidar hacer click en iniciar #define ID_Chat "Id_chat" WiFiClientSecure secured_client; UniversalTelegramBot bot(token_Bot, secured_client); const int buzzer = 15;// Pin para el buzzer String mensaje = ""; const int firePin = 34;//pin para el sensor de fuego const int gasPin = 35;//Pin para el sensor de gas int gasValor = 0; int fireValor = 0; ////Setup//// void setup() { delay(5000); Serial.begin(115200); pinMode(buzzer, OUTPUT);//El pin del buzzer como salida // Intenta conectarse a la red Wifi: Serial.print("Conectando a la red wifi... "); Serial.println(ssid); //Seteo de la red Wifi WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); secured_client.setCACert(TELEGRAM_CERTIFICATE_ROOT); //Agregar certificado raíz para api.telegram.org while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("Conectado a la red wifi!!!"); Serial.print("Dirección ip: "); Serial.println(WiFi.localIP());//Imprimimos la direción ip local bot.sendMessage(ID_Chat, "Sistema preparado!!!", "");//Enviamos un mensaje a telegram para informar que el sistema está listo } /////loop////// void loop() { delay(500); //Lectura de los sensores fireValor = analogRead(firePin); gasValor = analogRead(gasPin); Serial.print("Sensor fuego: "); Serial.println(fireValor); //Envío del valor al puerto serie Serial.print("Sensor gas: "); Serial.println(gasValor); //Envío del valor al puerto serie if(fireValor <= 1000){ Serial.println("Fuego detectado!"); mensaje = "Se ha detectado fuego";//Mensaje bot.sendMessage(ID_Chat, mensaje, "");//Enviamos este mensaje a Telegram digitalWrite(buzzer, HIGH);//Activamos el buzzer en forma continuo delay(5000);//Mantenemos el buzzer activo x 5 segundos digitalWrite(buzzer, LOW);//Lo desactivamos } if(gasValor >= 1000){ Serial.println("Escape de gas detectado!"); mensaje = "Escape de gas detectado!";//Mensaje bot.sendMessage(ID_Chat, mensaje, "");//Enviamos este mensaje a Telegramm for(int a =0; a <=28; a++){//Sonido del buzzer intermitente digitalWrite(buzzer, HIGH); delay(100); digitalWrite(buzzer, LOW); delay(75); } } } |
Librerias
Descargar Librería –> Universal-Arduino-Telegram-Bot-master
PROYECTO RECOMENDADO