Bewegingssensoren kom je overal tegen: in alarmsystemen, bij automatische verlichting en in allerlei slimme toepassingen in huis. Met een losse PIR sensor en een ESP8266-board maak je zelf een betaalbaar alternatief dat je rechtstreeks aan Homey kunt koppelen.
Het leuke aan dit project is dat het klein en overzichtelijk blijft, maar in de praktijk toch meteen bruikbaar is. Zodra de sensor beweging detecteert, wordt dat als status naar Homey gestuurd. Daarmee kun je flows bouwen voor lampen, meldingen of andere automatiseringen die alleen actief worden als er echt iemand aanwezig is.
Wat ga je bouwen?
Je bouwt een wifi-bewegingssensor op basis van een PIR sensor en een ESP8266-board, zoals een NodeMCU of Wemos D1 Mini. De sensor detecteert beweging en zet die status door naar Homey via Homeyduino.
- Bewegingsdetectie → de PIR sensor meet of er beweging aanwezig is en geeft dat digitaal door aan het board.
- Homey-integratie → via Homeyduino verschijnt de sensor in Homey als apparaat met de capability alarm_motion.
In de basis is dit dus een compacte bewegingssensor voor wifi, maar wel eentje waar je zelf de controle over hebt. Je kunt hem eenvoudig testen via de seriële monitor en daarna opnemen in je eigen flows.
Benodigdheden
- ESP8266 board, bijvoorbeeld een NodeMCU of Wemos D1 Mini
- Passive Infrared Sensor (PIR)
- Micro USB oplader
- Breadboard
- Homey met de Homeyduino app geïnstalleerd
Handige links bij dit project
Dit zijn producten die aansluiten op de benodigdheden in dit artikel.
Stap-voor-stap uitleg
1. Sluit de PIR sensor aan op je board
Begin met het opbouwen van de basisopstelling. Volgens de oorspronkelijke opzet werkt de aansluiting op een Arduino Uno, maar voor dit project gebruik je een ESP8266-board. Dat is qua aansluiting grotendeels vergelijkbaar en werkt ook op 3.3V. In de gebruikte code is de PIR sensor gekoppeld aan D7 en een optionele status-led aan D6.
- PIR uitgang → D7
- Status LED → D6
- Voeding sensor → 3.3V
2. Bereid Arduino IDE voor
Uploaden doe je via Arduino IDE. Kies daar het juiste board en upload de code op 9600 baud. Werkt je ESP8266-board niet meteen zoals verwacht, dan kun je het eerst opnieuw flashen met NodeMCU Flasher. Vul in de code daarna je eigen wifi-naam, wachtwoord en de gewenste naam van je PIR sensor in.
3. Upload de code voor Homeyduino
De onderstaande code maakt verbinding met wifi, start Homeyduino op als sensor en geeft beweging door via de capability alarm_motion. In deze variant is ook een status-led opgenomen, zodat je lokaal kunt zien of er beweging is gedetecteerd.
// Code aangepast voor Homeyduino door Domoticablog https://huisvanvandaag.nl.
// Kijk op de site voor meer Homeyduino en andere Smart Home gerelateerde posts.
// Originele code zie: https://www.instructables.com/id/Interface-PIR-Sensor-With-NodeMCU/
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>
int Status = 12; //D6
int sensor = 13; //D7
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("Verbonden met WiFi! (");
Serial.print(WiFi.localIP());
Serial.println(")");
}
}
}
void setup() {
Serial.begin(9600);
Homey.begin("PIR sensor");
Homey.setClass("sensor");
Homey.addCapability("alarm_motion");
pinMode(sensor, INPUT); // declare sensor as input
pinMode(Status, OUTPUT); // declare LED as output
}
void loop() {
wifi();
Homey.loop();
long state = digitalRead(sensor);
delay(5000); // was 1000
if (state == HIGH) {
digitalWrite(Status, HIGH);
Homey.setCapabilityValue("alarm_motion", true);
Serial.println("Motion detected!");
} else {
digitalWrite(Status, LOW);
Homey.setCapabilityValue("alarm_motion", false);
Serial.println("Motion absent!");
}
}
4. Test of de sensor goed werkt
Open in Arduino IDE de Seriële Monitor via Hulpmiddelen > Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M. Wanneer de sensor beweging detecteert, verschijnt de melding Motion detected!. Wordt er niets waargenomen, dan zie je Motion absent!. Gebruik je de variant met led, dan zie je dat ook direct aan het lampje.
5. Voeg de sensor toe aan Homey
Werkt de sensor lokaal goed, dan kun je hem toevoegen in Homey via de Homeyduino app. Daarna verschijnt hij als bewegingssensor met twee duidelijke statussen: wel of geen beweging. In Homey Inzichten kun je vervolgens terugzien wanneer er beweging is waargenomen.
Integratie met Homey
De Homey-integratie is in dit project de stap die losse elektronica omzet in iets echt bruikbaars. Door de capability alarm_motion toe te voegen, herkent Homey het project als bewegingssensor. Daardoor kun je de sensor net zo gebruiken als andere bewegingsmelders binnen je slimme woning.
Dat opent meteen veel praktische toepassingen. Denk bijvoorbeeld aan:
- Lampen inschakelen wanneer er beweging wordt gedetecteerd
- Een melding sturen wanneer er op een bepaalde plek activiteit is
- Beweging loggen in Homey Inzichten om patronen of aanwezigheid te volgen
Aandachtspunten
- Vergeet niet in de code je eigen wifi-gegevens en apparaatnaam in te vullen voordat je uploadt.
- Kies in Arduino IDE het juiste ESP8266-board en upload op 9600 baud om onnodig zoekwerk te voorkomen.
- Test eerst via de seriële monitor voordat je de sensor in Homey toevoegt, zodat je zeker weet dat de basis goed werkt.
Conclusie
Met dit project bouw je voor weinig geld een verrassend bruikbare bewegingssensor die via wifi samenwerkt met Homey. De combinatie van een PIR sensor, ESP8266 en Homeyduino maakt het laagdrempelig om zelf slimme automatiseringen toe te voegen. Zoek je een volgende stap, dan ligt uitbreiding naar een multi-sensor of een andere zelfbouwsensor voor de hand.