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 uitgangD7
  • Status LEDD6
  • Voeding sensor3.3V
Aansluitschema van een PIR sensor op een ESP8266 board voor Homeyduino
De basis van dit project is eenvoudig: een PIR sensor op een ESP8266-board, eventueel aangevuld met een status-led om beweging direct zichtbaar te maken.

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.

Zelfgebouwde PIR bewegingssensor zichtbaar in Homey via Homeyduino
Zodra je PIR sensor kun je via de serial monitor ziet dat beweging wordt gedetecteerd, kun je hem toevoegen in Homey. In Homey Inzichten zie je vervolgens 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
Een eenvoudige bewegingssensor als deze is vooral interessant op plekken waar je slimme verlichting of aanwezigheidsschakeling wilt toevoegen zonder hoge kosten.

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.