¿Te gustaría recibir un mensaje de WhatsApp cada vez que una puerta se abra? Con un ESP32, un sensor Hall y el servicio gratuito CallMeBot, podemos crear un sistema de alerta que nos envíe notificaciones en tiempo real cuando se detecte la apertura de una puerta.
Este proyecto es ideal para mejorar la seguridad en el hogar o en una oficina, ya que permite saber cuándo una puerta ha sido abierta sin necesidad de costosos sistemas de monitoreo.
🔹 ¿Qué aprenderás en este tutorial?
✅ Cómo obtener una API Key de CallMeBot.
✅ Cómo conectar tu ESP32 a WiFi eficientemente.
✅ Cómo enviar mensajes de WhatsApp desde ESP32.
✅ Cómo utilizar un sensor Hall para detectar la apertura de una puerta con un imán.
✅ Cómo mostrar información en un display OLED con Heltec.h.
✅ Cómo evitar el envío de mensajes continuos con un temporizador de seguridad.
📌 ¿Cómo funciona?
- Un sensor Hall se coloca en el marco de la puerta, y un imán en la hoja de la puerta.
- Cuando la puerta está cerrada, el sensor detecta el campo magnético del imán.
- Cuando la puerta se abre, el sensor deja de detectar el imán y el ESP32 envía un mensaje de alerta por WhatsApp.
- En el display OLED se mostrará el estado de la puerta (Abierta o Cerrada).
- Se implementa un tiempo de espera para evitar múltiples mensajes en poco tiempo.
💡 Aplicaciones:
✔ Monitoreo de accesos en el hogar u oficina.
✔ Alertas de seguridad en bodegas, cajones o vitrinas.
✔ Supervisión de puertas de refrigeradores en comercios.
🚀 ¡Vamos a programar nuestro ESP32 y recibir notificaciones de WhatsApp en tiempo real
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
Como obtener ApiKey
Guarda este número en tu smartphone
Y envía esee mensaje “i allow callmebot to send me messages”
Te llegaran todos los datos para configurar en el código fuente
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.
Pines hembra
Cables dupont hembra macho
Módulo Buzzer
Modulo KY-003 Sensor Efecto Hall Magnético
El módulo KY-003 consta de un sensor de efecto Hall 3144, una resistencia de 680Ω y un LED. Es compatible con plataformas electrónicas como Arduino, Pic y Raspberry Pi, entre otras.
El 3144 es un sensor del tipo Digital. Nos entrega un valor Alto si existe un campo magnético, y bajo si no hay campo magnético cercano.
Hay dos tipos de sensores hall digitales:
- Switch, se activan al acercar el polo de un imán, y se desactivan al retirar el polo
- Del tipo Latch, se activan al acercar un polo, y mantienen su valor hasta que se acerca un polo contrario.
- En este video usaremos el sensor Hall A3144, de tipo digital Switch
ESPECIFICACIONES TÉCNICAS
- Voltaje de funcionamiento 4.5 Volts a 24 Volts CD
- Rango de temperatura de funcionamiento -40 °C a 85 °C [ -40 °F a 185 °F]
- Dimensiones 18.5 mm x 15 mm [0.728 in x 0.5905 in]
- Corriente sin carga 3 mA
- Corriente con carga 8 mA (Cuando detecta un campo magnético)
PinOut
PCB
Descargar archivo gerber –> Gerber_esp32
Circuito
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 |
#include <WiFi.h> #include <HTTPClient.h> const char* ssid = "xxxxxxxx"; // Reemplaza con el nombre de tu red WiFi const char* password = "xxxxxxxx"; // Reemplaza con tu contraseña const int sensorHall = 23; // Pin donde está conectado el sensor Hall const int buzzer = 12; // Pin donde está conectado el buzzer void setup() { Serial.begin(115200); pinMode(sensorHall, INPUT); // Configurar el sensor Hall como entrada pinMode(buzzer, OUTPUT);//Buzzer como salida // Conexión a WiFi Serial.print("Conectando a WiFi..."); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi conectado!"); Serial.print("Dirección IP: "); Serial.println(WiFi.localIP()); } void loop() { int apertura = digitalRead(sensorHall); if (apertura == HIGH) { // Detecta el estado del sensor Hall Serial.println("Apertura de puerta, abriendo URL..."); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(1000); enviarSolicitud(); } } void enviarSolicitud() { if (WiFi.status() == WL_CONNECTED) { HTTPClient http; String url = "https://api.callmebot.com/whatsapp.php?phone=12345678&text=⚠¡Puerta+abierta!⚠&apikey=1234567"; // Reemplazar los datos de la URL de tu telefono, mensaje y apikey de callmebot Serial.print("Abriendo URL: "); Serial.println(url); http.begin(url); int httpResponseCode = http.GET(); // Enviar solicitud GET if (httpResponseCode > 0) { Serial.print("Código de respuesta: "); Serial.println(httpResponseCode);//Código de respuesta Serial.println(http.getString());//Mensajes de callmebot para depuración y posibles errores } else { Serial.print("Error en la solicitud: "); Serial.println(http.errorToString(httpResponseCode).c_str()); } http.end(); // Cerrar conexión } else { Serial.println("Error: No conectado a WiFi."); } Serial.println("Espera de 30 segundos para un proximo mensaje"); delay(30000); Serial.println("Disponible para otro mensaje"); } |
Si deseas que revise algún producto escríbeme a reviews@rogerbit.com (sólo contacto empresarial ).
No te pierdas ningún video más suscríbete a nuestro canal de telegram https://t.me/carlosvolt_electronica_robotica
PROYECTO RECOMENDADO