En este tutorial veremos como hacer un sistema detector de movimiento, con un sensor PIR, un modulo relay, para conectar un foco de 110V/220V, un esp32 que se conectará a nuestra red wifi y enviará notificaciones de alertas, por mensajes a través del servicio de mensajería telegram, cuando el sensor PIR detecte un movimiento.
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
Circuito
Componentes electrónicos
Cables dupont
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.
Un foco
Sensor PIR
Calibración Al energizarse el sensor pir requiere de un tiempo de preparación para comenzar a operar de forma adecuada. Esto se debe a que tiene que ocurrir la adaptación a las condiciones propias de operación de ambiente donde fue instalado. Durante este momento el sensor aprende a reconocer el estado de reposo o no movimiento del ambiente. La duración de esta calibración puede estar entre 10 y 60 segundos y es altamente recomendable la ausencia de personas en la vecindad del sensor mientras se calibra.
Características:
- Sensor de infrarrojos con placa de circuito de control.
- La sensibilidad y tiempo de retención puede ser ajustada.
- Pequeño y ligero, es fácil de usar.
- Distancia de detección es de hasta 6 metros.
- Adecuado para el campo de la seguridad, juguete, automatización de control, etc.
Caracteristicas del sensor PIR ROBOX IR
Marca | Robox |
Modelo | RTHW |
Color | Blanco + Verde |
Material | placa PCB + Plástico |
Caracteristicas | Potencia estática: 50uA; Distancia de detección: 7m; Ángulo de detección: 110 grados; Amplio rango de tensión: CC 4.5 20V ~ |
Aplicación | Detectar movimiento |
Peso: 0.25 oz (7 g)
Pines macho
Zócalo
Módulo Relay
ESPECIFICACIONES TÉCNICAS
- Voltaje de Operación: 5V DC
- Señal de Control: TTL (3.3V o 5V)
- Nº de Relays (canales): 1 CH
- Capacidad máx: 10A/250VAC, 10A/30VDC
- Corriente máx: 10A (NO), 5A (NC)
- Tiempo de acción: 10 ms / 5 ms
- Para activar salida NO: 0 Voltios
Circuito Impreso
Archivo gerber
Código Fuente
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 |
#include <WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> #include <ArduinoJson.h> // Reemplazar con los datos de tu red wifi const char* ssid = "Tu_red_wifi"; const char* password = "Tu_clave"; //Token de Telegram BOT se obtenienen desde Botfather en telegram #define token_Bot "Tu_token" // El ID se obtiene de (IDBot) en telegram no olvidar hacer click en iniciar #define ID_Chat "Tu_chat_ID" WiFiClientSecure client; UniversalTelegramBot bot(token_Bot, client); const int sensorPIR = 23; // Pin donde está conectada la entrada del sensor PIR const int luz = 13;// Pin para luz de 110 o 220 V( Con módulo relay) int conteo = 0; String mensaje = ""; String conteoString = ""; int PIR = 0; ////Setup//// void setup() { Serial.begin(115200); // Activamos el resistor de PULLUP para la entrada sensor PIR pinMode(sensorPIR, INPUT_PULLUP); pinMode(luz, OUTPUT); // 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); 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() { PIR = digitalRead(sensorPIR);//Leemos el estado del del sensor PIR //Si es igual a "1" se cumple la condición if(PIR == 1){ digitalWrite(luz, HIGH);//Encendemos la luz Serial.println("Luz Encendida!"); conteo = conteo + 1;//Incremento en el contador de movimientos detectados conteoString = String(conteo);//Lo convertimos a una cadena mensaje = "Movimiento detectados: " + conteoString;//Concatenamos ambas cadenas bot.sendMessage(ID_Chat, mensaje, "");//Enviamos el mensaje a Telegram delay(5000);//mantensmos la luz encendida este tiempo digitalWrite(luz, LOW);//Luego la apagamos Serial.println("Luz apagada!"); PIR = 0;//Asignamos el valor "0" a la variable PIR para que deje de cumplirse la condición } } |
Descargar Librería –> Universal-Arduino-Telegram-Bot-master
Crear Bot en Telegram
En telegram buscamos BotFather
Escribimos /start y nos aparecerá algo similar a esto
Escribimos /newbot
Nos apareceré el nombre del bot, y inventamos un nombre para nuestro bot, debe tener el formato «usuario_bot»
Obtendremos un token que vamos a usar en el código fuente
Ahora buscaremos IDBot, y lo iniciamos
Escribimos /getid y nos entregará el user_id que debemos colocar en el código fuente
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
PROYECTO RECOMENDADO
El tutorial el youtube lo puedes ver en https://youtu.be/S3HxrlVCzGM saludos cordiales