Índice
El poder de las etiquetas NFC
Requisitos previos
Esquema de conexiones

Por otro lado, nuestro módulo PN532 tiene el siguiente aspecto.

Antes de nada quiero que te fijes en la parte que he resaltado con un círculo verde. Puesto que el módulo puede comunicarse mediante 3 protocolos diferentes (UART, I2C y SPI), primero tenemos que seleccionar el que vamos a utilizar en nuestro lector (I2C). Para ello tienes que retirar el protector y verificar que la primera palanquita (1) está «encendida» (hacia arriba) y la segunda (2) está «apagada» (hacia abajo). Generalmente recibirás el módulo en posición 0:0, por lo que sólo necesitarías subir la primera (1).
Hecho esto, seguiremos el siguiente esquema de conexiones:
- GND irá conectado al pin GND (‘ground’ o tierra) de la placa (en mi caso, el cable negro).
- VCC irá conectado al pin de alimentación 5v de la placa (en mi caso, el cable rojo).
- SDA irá conectado al pin D2 de la placa, que se corresponde con el GPIO4 (en mi caso, el cable amarillo).
- SCL irá conectado al pin D1 de la placa, que se corresponde con el GPIO5 (en mi caso, el cable azul).
Al final del proceso deberías obtener algo como esto:

Configuración de ESPHome
Ahora tenemos que ‘flashear’ la placa con ESPHome y la configuración correspondiente, que vamos a extraer directamente de la documentación ESPHome sobre el componente PN532. Para ello sigue estos pasos:
Ahora tenemos que ‘flashear’ la placa con ESPHome y la configuración correspondiente, siguiendo estos pasos:
- Conecta la placa a tu ordenador a través del puerto USB-C.
- 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, “Tag Reader”).
- Pulsa en “Next” y a continuación selecciona la opción “ESP8266” 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.
captive_portal: i2c: sda: GPIO4 # D2 en ESP8266 scl: GPIO5 # D1 en ESP8266 scan: true pn532_i2c: update_interval: 1s
- 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.
- 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”.
Lectura de etiquetas
Así de fácil, acabas de crear tu propio lector NFC. Ahora vamos a ver cómo interactuar con tus etiquetas o dispositivos NFC para generar automatizaciones.
- En el complemento de ESPHome, pulsa sobre «Logs» en el bloque de tu dispositivo. Esto abrirá la consola en una ventana emergente.
- Desde aquí, si acercas una etiqueta a tu lector, observarás una serie de mensajes entre los que se encuentra el identificador de la etiqueta (con el formato ‘XX-XX-XX-XX’). Copia y conserva este código.

- Cierra la consola, pulsa en «Edit» para acceder al código de tu lector NFC y añade las siguientes líneas al final del código, reemplazando el identificador de tu etiqueta.
binary_sensor:
- platform: pn532
uid: 03-55-E5-13
name: "NFC Tag"
- Pulsa en «Save» e «Install» para flashear de nuevo tu placa (recuerda que ya puedes hacerlo vía WiFi).
- 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.
- Accede a Configuración > Dispositivos y servicios > Integraciones > ESPHome > Dispositivos y pulsa sobre tu lector NFC. Observarás que tiene un sensor con el nombre que has dado a tu etiqueta (en el ejemplo «NFC Tag»). Este sensor se enciende cuando escaneas tu etiqueta, por lo que ya puedes utilizar en tus automatizaciones (para abrir una puerta, encender una luz o lo que tú quieras!).

Obtener respuesta del lector
Como has comprobado, tu lector NFC ya es plenamente funcional. No obstante, lo habitual es conectar a tu placa algún otro componente que te confirme que ha leído correctamente la etiqueta (por ejemplo, un zumbador si quieres respuesta sonora o unos LED si quieres respuesta visual). En mi caso voy a utilizar un par de LEDs de una tira LED direccionable W2812B que uso en algunos proyectos.
Lo primero es conectarla físicamente a la placa. En mi caso, el esquema de conexiones con la ESP8266 (WeMos D1 Mini) es el siguiente:
- El cable rojo proporciona la alimentación a 5 voltios, por lo que irá al pin correspondiente (5V)
- El cable blanco es el de la conexión de tierra o ‘ground’, e irá conectado a uno de los respectivos pines (GND)
- El cable verde proporciona los datos e irá conectado al al D4/GPIO2
Luego sólo tienes que editar el código de la placa de la siguiente forma, y volver a instalarlo.
captive_portal:
i2c:
sda: GPIO4 # D2 en ESP8266
scl: GPIO5 # D1 en ESP8266
scan: true
pn532_i2c:
update_interval: 1s
light:
- platform: neopixelbus
type: GRB
variant: ws2812x
pin: GPIO2
num_leds: 2
name: "LED"
id: tira_led
restore_mode: ALWAYS_OFF
binary_sensor:
- platform: pn532
uid: 03-55-E5-13
name: "NFC Tag"
on_press:
- light.turn_on:
id: tira_led
brightness: 100%
red: 0%
green: 100%
blue: 0%
- delay: 1s
- light.turn_off:
id: tira_led

