En esta entrada te enseño a integrar un PIR con ESPHome, para incorporar la detección de movimiento en tus proyectos.
Índice
Requisitos previos
Para integrar un PIR con ESPHome necesitas:
- Una placa ESP32 o ESP8266. En mi caso voy a utilizar una placa LILYGO LoRa32, una variante de ESP32 que puede funcionar como gateway o nodo LoRa.
- Un sensor de movimiento PIR. Estos sensores miden la luz infrarroja emitida por los objetos en su campo de visión y, si detectan un cambio repentino entre diferentes partes del área de detección, la señal se amplifica.
- Un cable USB para alimentar la placa de DATOS (con un cable de carga no vas a poder instalar el software).
- Haber instalado ESPHome en Home Assistant.
Conexión del PIR
Para integrar un PIR con ESPHome lo primero que vamos a hacer es conectar dicho sensor con nuestra placa. Como siempre lo primero que te recomiendo es que consultes el ‘pinout’ (o distribución de pines) de la placa. En mi caso voy a utilizar una placa LILYGO LoRa32 y este es su ‘pinout’.

Por otro lado, el PIR tiene el siguiente aspecto (puedes retirar el plástico blanco para ver la leyenda), que nos lleva al siguiente esquema de conexión.
- VCC irá conectado al pin de alimentación 3v3 de la placa.
- GND irá conectado al pin GND (‘ground’ o tierra) de la placa.
- OUT proporciona los datos, y puede ir conectado a cualquier pin libre de nuestra placa (por ejemplo, en nuestro caso al GPIO34).

Cuando termines de realizar las conexiones te quedará algo como esto:

Configuración de ESPHome
Ahora tenemos que ‘flashear’ la placa con ESPHome y la configuración correspondiente. Para ello sigue estos pasos:
- Conecta la placa a tu ordenador a través del puerto USB.
- En Home Assistant, accede al complemento de ESPHome desde el menú lateral y pulsa en “New device”. Pulsa en “Continue” y dale un nombre (por ejemplo, “Encoder”).
- Pulsa en “Next” y a continuación selecciona la opción “ESP32” como tipo de dispositivo. Verás que en el fondo se ha creado un nuevo dispositivo.
- Pulsa en “Skip” y haz clic en el enlace “Edit” del bloque correspondiente al dispositivo que acabas de crear.
- Añade las siguientes líneas al final del código (adaptando el GPIO donde has conectado el pin ‘OUT’ del sensor):
captive_portal:
binary_sensor:
- platform: gpio
pin: GPIO34
name: "PIR Sensor"
device_class: motion
- Cuando hayas terminado de editar el código pulsa en “Save” e “Install”. Selecciona la opción “Manual download” y espera a que el código se compile.
- Cuando termine, selecciona la opción “Modern format” para descargar el fichero ‘.bin’ correspondiente.
- Ahora ve a la página de ESPHome y pulsa en “Connect”. En la ventana emergente selecciona tu placa y pulsa en “Conectar”.
- Ahora pulsa en “Install” y selecciona el fichero ‘.bin’ obtenido en el paso 7. De nuevo, pulsa en “Install”.
- Vuelve a Home Assistant y ve a Configuración > Dispositivos y servicios. Lo normal es que tu dispositivo haya sido descubierto y aparezca en la parte superior, esperando únicamente a que pulses el botón de “Configurar”. De lo contrario pulsa en el botón de “Añadir integración”, busca “ESPHome” e introduce la IP de tu placa en el campo ‘Host’.
- Como siempre, te recomiendo que asignes una IP fija en tu router para evitar fallos en el futuro si esta cambia.
Ajustar la sensibilidad
Es posible que observes un comportamiento extraño en la detección de movimiento. Esto puede suceder cuando no has ajustado correctamente la sensibilidad de la detección. En concreto podemos configurar tanto la sensibilidad de detección, como el tiempo que mantiene el estado ‘on’ cuando detecta movimiento.
Para ello dale la vuelta a tu sensor PIR y observa que tiene dos rueditas naranjas que puedes ajustar con un destornillador. La de la izquierda controla la sensibilidad y la de la derecha el tiempo de retardo. Para aumentar estos parámetros, gíralos en el sentido del reloj (y para bajarlo, al revés).


