Hackear un sensor de movimiento PIR con un ESP8266

¿Alguna vez has querido crear tu propio sistema de seguridad en casa? En este artículo te enseñaremos cómo hackear un sensor de movimiento PIR utilizando un ESP8266. Descubre cómo puedes personalizar y mejorar la funcionalidad de este sensor para proteger tu hogar de manera creativa y económica. ¡Sigue leyendo para descubrir todos los detalles!

En este proyecto modificamos un sensor de movimiento comercial (alimentado por red eléctrica) con un ESP8266 para registrar datos cuando se detecta movimiento. Los datos se envían a Node-RED mediante el protocolo de comunicación MQTT. El ESP8266 se alimenta desde el cable de salida de fase del sensor de movimiento mediante el convertidor CA/CC HLK-PM03.

Hackear un sensor de movimiento PIR con un ESP8266

requisitos

Antes de seguir adelante con este proyecto, te recomendamos echar un vistazo a los siguientes recursos:

  • Primeros pasos con el transceptor WiFi ESP8266 (revisión)
  • Suministre ESP8266 con voltaje de red a través de Hi-Link HLK-PM03
  • ¿Qué es MQTT y cómo funciona?
  • Debes tener instalado en tu Raspberry Pi: Node-RED, Node-RED Dashboard y Mosquitto MQTT Broker
  • ESP8266 GPIO y referencia de pinout

Piezas necesarias:

Aquí hay una lista de las piezas necesarias para este proyecto:

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

Hackear un sensor de movimiento PIR con un ESP8266

Descripción del proyecto

Este proyecto se divide en tres partes:

  1. Estructura del circuito
  2. Escribir y cargar código ESP8266
  3. Creando el flujo Node-RED

La siguiente imagen muestra una descripción general del proyecto que crearemos.

Hackear un sensor de movimiento PIR con un ESP8266

Sensor de movimiento

Hackeamos un sensor de movimiento disponible comercialmente que tiene suficiente espacio para acomodar un ESP-01 y el módulo convertidor CA/CC HLK-PM03. Compramos nuestro sensor de movimiento por $5 en una tienda local.

Hackear un sensor de movimiento PIR con un ESP8266

Cuando el sensor PIR detecta movimiento, el cable incandescente libera electricidad, que puede encender una lámpara o un dispositivo. Debería haber un diagrama de cableado similar en la cubierta de su sensor de movimiento o en el manual del usuario.

Hackear un sensor de movimiento PIR con un ESP8266

En nuestro proyecto, la carga de salida del sensor de movimiento es la HLK-PM03 CA/CC Módulo convertidor que suministra energía al ESP8266.

Hackear un sensor de movimiento PIR con un ESP8266
Hola enlace HLK-PM03

Relacionado: Suministre energía CA a ESP8266 a través del convertidor HLK-PM03

El convertidor CA/CC del módulo HLK-PM03 entrega 3,3 V a 110 VCA o 220 VCA. Esto lo hace perfecto para alimentar el ESP8266 a través de la tensión de red.

En resumen, el ESP8266 se enciende cuando se detecta movimiento. El ESP8266 puede realizar tareas siempre que el sensor de movimiento esté activado.

Es posible que deba ajustar la cantidad de tiempo que el sensor permanece encendido para que su ESP8266 tenga tiempo suficiente para completar sus tareas. El sensor debería tener un botón para ajustar la hora (y otro para ajustar el brillo).

Hackear un sensor de movimiento PIR con un ESP8266

En nuestro ejemplo, el ESP8266 ejecuta un boceto cada vez que se enciende, enviando información a Node-RED a través de MQTT para registrar la fecha y hora de la detección de movimiento.

En lugar de enviar información a Node-RED, puedes realizar otras tareas como:

  • Registrar datos en una hoja de cálculo de Google.
  • Enviar una alerta por correo electrónico de que se ha detectado movimiento;
  • Envía notificaciones a tu teléfono inteligente.

Estas tareas se pueden completar fácilmente utilizando IFTTT.

1. Estructura del circuito

El siguiente diagrama esquemático muestra el circuito de este proyecto.

Hackear un sensor de movimiento PIR con un ESP8266

Retire la cubierta de su sensor de movimiento PIR. Dentro debe haber tres cables: fase en, neutralY Salida. Sigue estos pasos:

  • cable fase en (marrón) y neutral (azul) al sensor de movimiento
  • cable neutral (azul) y Salida (rojo) a la entrada HLK-PM03
Hackear un sensor de movimiento PIR con un ESP8266

Se recomienda agregar un fusible de acción lenta justo antes del convertidor HKL-PM03 y un capacitor en la salida.

Nota: Si está utilizando un ESP8266 que siempre está encendido con el HLK-PM03, le recomendamos utilizar este circuito de protección.

El HLK-PM03 genera 3,3 V y GND. Estos están conectados al pin VCC y GND del ESP8266 para fuente de alimentación.

Hackear un sensor de movimiento PIR con un ESP8266

Construimos el circuito HLK-PM03 y ESP8266 en un pequeño protoboard para ahorrar espacio. También agregamos algunos encabezados de pines para colocar el ESP8266-01. Esto le permite conectar y desconectar la placa cada vez que necesite cargar un código nuevo.

Recomendaciones de literatura: Guía de referencia de configuración de pines y GPIO de ESP8266

2. Escriba y cargue el código ESP8266

Programamos el ESP8266 con el IDE de Arduino. Para cargar código en su ESP8266, primero debe instalar el complemento ESP8266 si aún no lo ha hecho (instale la placa ESP8266 en el IDE de Arduino).

Usted también debe PubSubCliente Biblioteca para crear un cliente MQTT con ESP8266. La biblioteca PubSubClient proporciona un cliente para mensajes simples de publicación/suscripción con un servidor que admite MQTT (básicamente permite que su ESP8266 se comunique con Node-RED).

  • Haga clic aquí para descargar la biblioteca PubSubClientdeberías tener uno .Cremallera Carpeta en su carpeta de Descargas
  • Descomprime eso .Cremallera carpeta y deberías recibir maestro pubsubcliente Carpeta
  • Cambie el nombre de su carpeta de maestro pubsubcliente A pubsubcliente
  • mueve eso pubsubcliente Carpeta a su instalación Arduino IDE Bibliotecas Carpeta

Luego copie el siguiente código en su IDE de Arduino, pero no lo cargue todavía. Deberá realizar algunos cambios para que funcione para usted.

Debe editar el código con su propio SSID, contraseña y dirección IP del agente MQTT (dirección IP de Raspberry Pi).

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

// Replace with your SSID, password and MQTT broker IP address
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";
const char* mqtt_server = "REPLACE_WITH_YOUR_MQTT_BROKER_IP";
//For example
//const char* mqtt_server = "192.168.1.144";

WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() {

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  randomSeed(micros());

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Create a random client ID
    String clientId = "ESP8266Client-";
    clientId += String(random(0xffff), HEX);
    // Attempt to connect
    if (client.connect(clientId.c_str())) {
      Serial.println("connected");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}

void setup() {
  pinMode(BUILTIN_LED, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
  digitalWrite(BUILTIN_LED, HIGH);
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  while (!client.connected()) {
    reconnect();
  }
  Serial.print("Motion Detected");
  // Publish MQTT message
  String mqttMessage = "Motion Detected";  
  client.publish("esp/pir", mqttMessage.c_str());
}

void loop() {
  client.loop();
}

Ver código sin formato

Proporcione sus credenciales de red

Debe pegar sus credenciales de red en las siguientes líneas.

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

Pegue la dirección IP de su corredor MQTT

También debe proporcionar la dirección IP de su corredor MQTT.

const char* mqtt_server = "REPLACE_WITH_YOUR_MQTT_BROKER_IP"; 

Para encontrar la dirección IP de su corredor MQTT, primero debe configurarlo. Usamos el broker Mosquitto alojado en una Raspberry Pi. Siga los siguientes recursos si aún no lo ha hecho:

  • Cómo instalar Mosquitto Broker en Raspberry Pi
  • Prueba de Mosquitto Broker y Client en Raspbbery Pi

Así es como funciona el código

El código es muy simple. Simplemente publica un mensaje sobre un tema. Para fines de prueba, también encendemos el LED integrado cada vez que se enciende el ESP8266. Esto sucede en el configuración() porque solo se ejecuta una vez (cuando se detecta movimiento y mientras el ESP8266 está encendido).

void setup() {
   pinMode(BUILTIN_LED, OUTPUT); // BUILTIN_LED pin as an output
   digitalWrite(BUILTIN_LED, HIGH);
   Serial.begin(115200);
   setup_wifi();
   client.setServer(mqtt_server, 1883);
   while (!client.connected()) {
     reconnect();
   }
   Serial.print("Motion Detected");
   // Publish MQTT message
   String mqttMessage = "Motion Detected";  
   client.publish("esp/pir", mqttMessage.c_str());
}

Sube el código

Después de modificar el código con tus credenciales de red, puedes subirlo a tu tablero. Para cargar el código al ESP8266-01 necesitas uno adaptador serie o un programador FTDI.

3. Creando el flujo Node-RED

Antes de crear el flujo, debes tener instalado lo siguiente en tu Raspberry Pi:

  • Nudo-ROJO
  • Panel de control del nodo RED
  • corredor de mosquitos

Importando el flujo Node-RED

Para importar el flujo Node-RED implementado, vaya a repositorio de GitHub o haga clic en la imagen a continuación para ver el archivo sin formato y copiar el código proporcionado.

Hackear un sensor de movimiento PIR con un ESP8266

A continuación, en la ventana Node-RED, seleccione el menú en la parte superior derecha y vaya a Importar > Portapapeles.

Hackear un sensor de movimiento PIR con un ESP8266

Luego pegue el código proporcionado y haga clic Importar.

Hackear un sensor de movimiento PIR con un ESP8266

Aquí está el flujo importado. Recibe los mensajes ESP8266 MQTT y registra el tiempo en que se detecta movimiento.

Hackear un sensor de movimiento PIR con un ESP8266

También agregamos dos botones para borrar y actualizar el registro.

Panel de control del nodo RED

Después de realizar todos los cambios necesarios, haga clic en el Insertar Botón para guardar todos los cambios.

Hackear un sensor de movimiento PIR con un ESP8266

Ahora su aplicación Node-RED está lista. Para acceder al panel de Node-RED y ver cómo se ve su aplicación, abra cualquier navegador en su red local y escriba:

http://Your_RPi_IP_address:1880/ui

demostración

Ahora puedes probar tu proyecto. Siempre que se detecta movimiento, el ESP8266 se enciende y envía un mensaje a Node-RED a través de MQTT.

Si va a su panel de Node-RED, puede ver todos los registros de cuándo se detectaron movimientos. Su aplicación debería verse como la siguiente imagen.

Hackear un sensor de movimiento PIR con un ESP8266

El panel muestra la hora de la última detección de movimiento, así como todos los registros anteriores. También tiene la opción de actualizar y eliminar el registro. Tenga en cuenta que la eliminación del registro no se puede deshacer.

Envolver

Este proyecto mostró cómo se puede piratear un sensor de movimiento disponible en el mercado con un ESP8266 para hacerlo más inteligente. Puede alimentar fácilmente el ESP8266 desde la tensión de red utilizando el HLK-PM03 y crear un circuito compacto que encaje en el sensor de movimiento.

Siempre que se detecta movimiento, el ESP8266 se enciende y realiza una tarea. En este caso, publica un mensaje MQTT para registrar el tiempo de detección de movimiento. Sin embargo, puedes escribir código fácilmente para realizar cualquier otra tarea.

Esperamos que este proyecto le haya resultado útil. Si disfrutó de este proyecto, es posible que también le interese uno de los siguientes recursos:

  • Suministre ESP8266 con voltaje de red a través del convertidor Hi-Link HLK-PM03
  • MicroPython: introducción a MQTT en ESP32/ESP8266
  • Escudo multisensor ESP8266 con Nodo-RED
  • [eBook] Domótica con ESP8266
Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Preguntas Frecuentes sobre cómo hackear un sensor de movimiento PIR con un ESP8266

¿Qué es un sensor de movimiento PIR?

Un sensor de movimiento PIR es un dispositivo que utiliza un sensor pasivo infrarrojo para detectar cambios en el ambiente, como movimientos. Estos sensores son comúnmente utilizados en sistemas de seguridad para activar alarmas o luces cuando se detecta movimiento.

¿Qué es un ESP8266?

El ESP8266 es un microcontrolador de bajo costo y alto rendimiento que integra capacidades de Wi-Fi. Es ampliamente utilizado en proyectos de IoT debido a su facilidad de programación y conectividad inalámbrica.

¿Qué es Node-RED?

Node-RED es una herramienta de programación visual basada en JavaScript que permite la creación de flujos de trabajo para el IoT. Se utiliza para integrar dispositivos y servicios, como en este caso, para recibir datos del ESP8266 a través de MQTT.

¿Cómo se puede hackear un sensor de movimiento PIR con un ESP8266?

Para hackear un sensor de movimiento PIR con un ESP8266, es necesario modificar el sensor comercial para que pueda alimentar el ESP8266 cuando detecte movimiento. Se debe realizar una conexión eléctrica adecuada y programar el ESP8266 para enviar datos a Node-RED a través de MQTT.

¿Se necesita experiencia previa en electrónica para llevar a cabo este proyecto?

Se recomienda tener conocimientos básicos en electrónica y programación para realizar este proyecto con éxito. Es importante seguir las instrucciones detalladas y tener cuidado al trabajar con corriente eléctrica.

¿Cuáles son los materiales necesarios para este proyecto?

  1. Sensor de movimiento PIR 220V
  2. ESP8266-01
  3. Adaptador serial ESP8266-01
  4. Convertidor AC/DC HLK-PM03
  5. Protoboard pequeño
  6. Fusible lento de 200mA
  7. Condensador electrolítico de 47uF
  8. Raspberry Pi

Estos son solo algunos de los materiales necesarios para el proyecto. Se pueden encontrar todos los componentes en tiendas especializadas o en línea.

¿Qué otras aplicaciones se pueden realizar con este proyecto?

Además de enviar datos a Node-RED, el ESP8266 puede ejecutar diversas tareas al detectar movimiento, como enviar correos electrónicos, notificaciones a dispositivos móviles o almacenar datos en una hoja de cálculo. Las posibilidades son casi ilimitadas.

Esperamos que estas preguntas frecuentes hayan aclarado tus dudas sobre cómo hackear un sensor de movimiento PIR con un ESP8266. Si deseas obtener más información detallada, te recomendamos revisar los recursos mencionados en este artículo.

4 comentarios en «Hackear un sensor de movimiento PIR con un ESP8266»

Deja un comentario