Na lang wachten zijn dan van de maand eindelijk m’n nieuwe sensoren en ESP boards binnen gekomen. Hier zaten onder andere PIR sensoren bij, dit staat voor Passive InfraRed sensor oftewel bewegingssensoren. In deze tutorial beginnen we met de basis een Passive InfraRed of kortweg PIR sensor maar dan met WiFi.

De PIR ofwel de Passive Infrared Sensor is een sensor die je in zeer veel producten tegenkomt.  Zo vind je bijvoorbeeld in alarminstallaties, worden ze veel gebruikt in bedrijfspanden om de verlichting te schakelen, maar ook zitten ze sommige van die chemische luchtverfrissers voor in huis.

Deze sensoren kun je eventueel rechtstreeks op een relais aansluiten om op deze wijze een eenvoudige bewegingssensor te maken die rechtstreeks een apparaat of lamp kan schakelen.

Uiteraard kun je genoeg kant en klare alternatieven krijgen zoals bijvoorbeeld de Klikaanklikuit AWST-6000 welke via Radio Frequentie communiceert met je Smart Home.  Of de eenvoudigere PIR sensor welke direct je apparaat aanstuurt zoals onderstaande PIR sensor welke op de plaats van je wandschakelaar kunt toepassen of een plafond PIR sensor mocht je wat rigoureuzer aan de slag willen.

 

PIR Sensor met WiFi

Maar vandaag bouwen wij een wat complexere PIR, namelijk eentje die via WiFi verbinding maakt met Homey. Nu had ik eigenlijk de verwachting dat een dergelijke sensor vrij eenvoudig zou zijn om te maken, dit viel echter behoorlijk tegen.

Allereerst was het een heel gepuzzel om de status van de sensor op Homey tevoorschijn te krijgen, nadat dit eindelijk gelukt was bleken de meeste voorbeeld codes die ik op internet had gevonden vast te lopen binnen een paar minuten tot paar uur.

Na veel proberen heb ik echter een stuk code gevonden op Instructables.com en dit lijkt vooralsnog de gouden formule, eenvoudige code die doet wat het doen moet en nog belangrijker, ook blijft doen.Totale kosten van dit alles bedragen nog geen € 5,- en een paar minuten van je tijd.

 

De benodigdheden:

 

Ook nodig maar enkel op de boel eenmalig te configureren, een computer of laptop met daarop geïnstalleerd:

 

 

ESP8266 ESP-12 NodeMCU Lua WiFi

 

AliExpress.com Product – WeMos D1 mini , WiFi board  met ESP8266 intergratie  + 32Mb flash

 

Passive Infrared Sensor – Gevonden op AliExpress.com  | Thuisbezorgd en al voor €0,70 

 

5 stuks Soldeerloze Prototype Breadboard 170 Tie-points PCB Test Board – Gevonden op AliExpress.com | Thuis bezorgd en al voor €1,60 

10 stuke LED en 40 stuks diverse weerstanden  – Gevonden op AliExpress.com | Gratis thuisbezorgd voor nog geen € 0,63 

 

Aansluitschema

Volg onderstaand schema op de sensor aan te sluiten aan je board. Onderstaand plaatje ie een Arduino Uno maar aansluiten op een ESP8266 NodeMCU  of D1 Mini is nagenoeg hetzelfde, voltage werkt ook op 3.3V.

 

PIR aansluitschema zoals gebruikt bij de oorsponkelijke code op Intstructables.com | Huisvanvandaag.nl

Aansluitschema zoals gebruikt bij de oorsponkelijke code op  https://www.instructables.com/id/Interface-PIR-Sensor-With-NodeMCU/

Code 

Uploaden gaat via Arduino IDE, mocht je hier niet bekend mee zijn lees dan hier voor een uitgebreide handleiding.

Zorg dat je bij instellingen in Arduino IDE het juiste board hebt geselecteerd en dat je op 9600 baud de code upload.  Mocht je ESP8266 board niet werken dan kun je proberen deze eerste te flashen met de NodeMcu Flasher.

Vul in de code uiteraard weer je eigen netwerk naam en wachtwoord in en de gewenste naam voor je PIR sensor.

 

// Code aangepast voor Homeyduino door Domoticablog http://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) {
      //Print IP address
      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!");
      }
}
PIR sensor Homeyduino met LED

 

Heb je liever de de bewegingssensor zonder LED lampje, gebruik dan onderstaande code:

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <Homey.h>

int sensor = 13; //D7

void wifi() {
  if (WiFi.status() != WL_CONNECTED) {
    WiFi.begin("Newstreet_TuinWIFI", "@nk@13j@@r");
    uint8_t timeout = 30;
    while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      if (timeout<1) break;
    }
    if (WiFi.status() == WL_CONNECTED) {
      //Print IP address
      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
}

void loop(){
  wifi();
  Homey.loop();  
  long state = digitalRead(sensor);
  delay(5000); // was 1000
    if(state == HIGH){
      Homey.setCapabilityValue("alarm_motion", (true));
      Serial.println("Motion detected!");
    }
    else {
      Homey.setCapabilityValue("alarm_motion", (false));
      Serial.println("Motion absent!");
      }
}
PIR code zonder LED lampje

Testen

Nu het je gelukt is om de code te uploaden gaan we deze meteen testen. Dit doen we  door de Seriële Monitor in Arduino IDE te openen, klik hiervoor op Hulpmiddelen en dan Seriële Monitor of gebruik de sneltoets CTRL+SHIFT+M.

Via de seriële monitor krijg je nu dus de mededeling: Motion detected! wanneer beweging word gedetecteerd of de mededeling: Motion absent! wanneer dit niet het geval is. In onze huidige setup zit er ook een LED lampje welke gaat branden wanneer er beweging is en uitschakelt wanneer dit niet het geval is.

 

We testen de PIR sensor via de seriële monitor. Hier kun je zien of er al dan niet beweging is gedetecteerd | Huisvanvandaag.nl

We testen de PIR sensor via de seriële monitor. Hier kun je zien of er al dan niet beweging is gedetecteerd.

 

Wanneer dit goed werkt kun je door naar de volgende stap, namelijk het koppelen aan Homey. Mocht je niet weten hoe, volg dan onderstaande stappen.

 

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen | Huisvanvandaag.nl

Klik op de + en vervolgens op Homeyduino om een nieuwe sensor toe te voegen.

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

Hier vind je een overzicht van je Homeyduino sesnoren. Kies de PIR sensor

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

Hier zie je de PIR sensor, deze heeft twee standen: Ja, beweging en Nee, geen beweging

 

Met Homeyduino maak je eenvoudig en goedkoop je eigen Smart Home sensoren, bijvoorbeeld bewegingssensoren, hygrometer, thermometers en nog veel meer | Huisvanvandaag.n,

VIa Homey Inzichten kun je controleren of dat je bewegingssensor inderdaad goed werkt. Hier vind je een inzichtelijk wanneer de sensor beweging heeft waargenomen.

 

Nu heb je een werkende bewegingssensor voor een fractie van de prijs, waarmee je veel meer kunt. Bouw op goedkope wijze je eigen alarminstallatie.

Of bespaar eenvoudig op je energiekosten door alle lampen in je huis uit te schakelen wanneer er niemand in de kamer is. Nog mooier is het echter wanneer je meerdere sensoren in één propt waardoor je een multi-sensor maakt.

De volgende stap: Multi-sensor voor Homeyduino

Deze Multi-sensor word dan ook de volgende stap, in een toekomstige post zullen we deze sensor combineren met de reeds eerder gemaakte Homeyduino sensoren om zo een multi-sensor te bouwen.

Eén die naast beweging ook temperatuur en de luchtvochtigheid kan meten of een combi tussen de bewegingssensor en de schemersensor.

De mogelijkheden zijn vrijwel eindeloos maar voor een paar euro bouw je je eigen sensor die je huis automatiseert, energiekosten bespaard, je huis beveiligd wanneer je er niet bent en je binnenklimaat monitort.

Heb je zelf nog bijzondere doeleinden of ideeën voor dergelijke sensoren? Laat het me dan weten. Neem eenvoudig contact met me op.