NFC op Homey is handig, maar in de praktijk wil je een kaartlezer vaak juist op een andere plek in huis hebben. Denk aan een vaste plek bij een deur, kast of andere logische locatie waar een scan echt onderdeel van je routine wordt.
Precies daarvoor is dit project interessant. Je bouwt een losse NFC/RFID-lezer die via Homeyduino met Homey praat. Zodra een compatibele kaart wordt gescand, stuurt de lezer de kaart-ID door naar Homey als teksttrigger. Daarmee leg je de basis voor praktische flows zonder ingewikkelde extra hardware.
Wat ga je bouwen?
Je bouwt een compacte NFC/RFID-lezer op basis van een NodeMCU ESP8266 en een RFID-RC522-module. De lezer scant een kaart of tag en stuurt de uitgelezen identificatie direct door naar Homey.
- Losse NFC-lezer → een zelfstandig apparaat dat je niet naast Homey hoeft te plaatsen.
- Homey-trigger op kaart-ID → Homey ontvangt de gescande kaart als tekst en kan daar een flow op starten.
Het resultaat is een praktische bouwsteen voor automatisering: niet omdat de hardware ingewikkeld is, maar juist omdat je een simpele handeling op een vaste plek in huis bruikbaar maakt in je flows.
Benodigdheden
- Een NodeMCU ESP8266-bord
- Een RFID-RC522-module
- Een breadboard
- Prototyping wires / dupontdraden
- Arduino IDE met ESP8266-ondersteuning, de MFRC522-library en de Homeyduino-library
Handige links bij dit project
Dit zijn producten die aansluiten op de benodigdheden in dit artikel.
Stap-voor-stap uitleg
1. Sluit de RC522 aan op de NodeMCU
De lezer en de ESP8266 worden via SPI gekoppeld. Volgens het voorbeeldproject worden deze pinnen gebruikt: SDA naar D8, SCL naar D5, MOSI naar D7, MISO naar D6, GND naar GND, RST naar D3 en 3V3 naar 3.3V. De IRQ-pin blijft ongebruikt. Bouw eerst op breadboard zodat je eenvoudig kunt testen en corrigeren.
- SDA → D8
- RST → D3
- 3.3V → 3V3
2. Installeer de softwareomgeving
Zorg dat de Arduino IDE klaar is voor de ESP8266. Installeer daarna de MFRC522-library via de bibliotheekbeheerder en voeg ook de Homeyduino-library toe. In het voorbeeld wordt expliciet genoemd dat de boardinstelling op NodeMCU 1.0 moet staan, anders compileert de sketch niet door ontbrekende definities voor D3 en D8.
3. Upload de sketch naar je board
Vul in de sketch eerst je wifi-gegevens in. Daarna upload je de code naar de NodeMCU. De sketch maakt verbinding met wifi, initialiseert Homeyduino en leest vervolgens steeds of er een nieuwe kaart aanwezig is. Bij een nieuwe scan wordt de kaart-ID opgebouwd en als trigger naar Homey gestuurd.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
#include <SPI.h>
#include "MFRC522.h"
/* PIN CONFIG */
#define MFRC522_RESET D3
#define MFRC522_SS D8
/* OBJECTS */
MFRC522 mfrc522(MFRC522_SS, MFRC522_RESET);
/* GLOBAL VARIABLES */
unsigned long previousMillis = 0;
const unsigned long interval = 100;
String oldCardId = "";
uint8_t timeout = 0;
void wifi() {
if (WiFi.status() != WL_CONNECTED) {
WiFi.begin("<SSID>", "<PASSWORD>");
uint8_t timeout = 30;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
if (timeout < 1) break;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.print("Connected to WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup() {
Serial.begin(115200);
Homey.begin("RFID");
Homey.setClass("sensor");
SPI.begin();
mfrc522.PCD_Init();
}
void loop() {
wifi();
Homey.loop();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (mfrc522.PICC_IsNewCardPresent()) {
mfrc522.PICC_ReadCardSerial();
String cardId = "";
for (uint8_t i = 0; i < mfrc522.uid.size; i++) {
if (mfrc522.uid.uidByte[i] < 0x10) cardId += "0";
cardId += String(mfrc522.uid.uidByte[i], HEX);
}
if (cardId != oldCardId) {
oldCardId = cardId;
Serial.println(cardId);
Homey.trigger("card", cardId);
timeout = 50;
}
} else {
if (timeout > 0) {
timeout--;
if (timeout == 0) oldCardId = "";
}
}
}
}
4. Test het uitlezen van een kaart
Open de seriële monitor en scan een compatibele RFID-kaart. Bij een succesvolle scan verschijnt de kaart-ID in beeld. De sketch voorkomt dat dezelfde kaart voortdurend opnieuw wordt getriggerd zolang hij nog op de lezer ligt, en maakt dezelfde kaart na een korte timeout weer opnieuw scanbaar.
5. Maak het project compacter
Werkt alles goed op breadboard, dan kun je het project kleiner bouwen. In het voorbeeld is de breadboardopstelling uiteindelijk vervangen door een compactere variant waarbij de RC522 op een kleiner ESP8266-bord is gesoldeerd. Daardoor wordt het makkelijker om de lezer in een behuizing weg te werken en permanent te monteren.
Integratie met Homey
In Homey wordt de identificatie van de gescande kaart als tekst naar het apparaat gestuurd. Volgens het voorbeeldproject gebruik je daarvoor in een flow de actiekaart met teksttrigger en kies of typ je de triggernaam card. Die trigger verschijnt pas automatisch in autocomplete nadat er minstens één keer succesvol is gescand.
Daarmee verandert deze lezer van een losse sensor in een praktische input voor Homey. Je kunt er geen complexe toegangscontrole van verwachten, maar wel een nette en flexibele manier om een scan als startsein voor automatisering te gebruiken.
- Gebruik een RFID-scan als handmatige trigger voor een Homey-flow.
- Plaats de lezer op een logische plek in huis in plaats van naast Homey.
- Werk met verschillende kaarten of tags die elk een eigen flow kunnen starten op basis van hun ID.
Praktisch gebruik
De kracht van dit project zit vooral in de plaatsing. Een NFC-scanner is pas echt handig als hij hangt waar de handeling logisch voelt. Omdat deze lezer los van Homey werkt, kun je hem dicht bij het gebruiksmoment zetten. Juist dat maakt dit een mooi Homeyduino-project: niet de kaartscan zelf is bijzonder, maar de vrijheid om die scan op de juiste plek in huis in te zetten.
Aandachtspunten
- Stel in de Arduino IDE het boardtype in op NodeMCU 1.0, anders compileert de voorbeeldcode niet correct.
- De RC522 werkt in deze opstelling op 3.3V; sluit hem dus niet aan alsof het een 5V-module is.
- De trigger card wordt in Homey pas zichtbaar in autocomplete nadat er minimaal één succesvolle scan is geweest.
Conclusie
Dit is een sterk Homeyduino-project voor wie NFC of RFID praktisch wil inzetten zonder vast te zitten aan de plek van Homey zelf. De hardware is overzichtelijk, de voorbeeldcode is duidelijk en de koppeling met Homey is direct bruikbaar. Eerst testen op breadboard, daarna eventueel compacter bouwen: precies die aanpak maakt dit project laagdrempelig én bruikbaar. Vanuit hier kun je verder bouwen aan een vaste lezer op de plek waar een scan in jouw huis echt logisch is.