Bouw je eigen Bewegingssensor (PIR + Arduino)

Bouw je eigen Bewegingssensor (PIR + Arduino)

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.

Xiaomi  bewegings- en lichtsensor met ZigBee | gevonden op Aliexpress | thuisbezorgd en al voor nog géén € 15,-

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:

Geen tijd of geduld om op levering uit China te wachten? Conrad heeft het ook en levert direct vanuit Nederland!

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 

 

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.

 

[pastacode lang=”cpp” manual=”%2F%2F%20Code%20aangepast%20voor%20Homeyduino%20door%20Domoticablog%20https%3A%2F%2Fhuisvanvandaag.nl.%20%0A%2F%2F%20Kijk%20op%20de%20site%20voor%20meer%20Homeyduino%20en%20andere%20Smart%20Home%20gerelateerde%20posts.%0A%2F%2F%20Originele%20code%20zie%3A%20https%3A%2F%2Fwww.instructables.com%2Fid%2FInterface-PIR-Sensor-With-NodeMCU%2F%0A%0A%0A%23include%20%3CESP8266WiFi.h%3E%0A%23include%20%3CWiFiClient.h%3E%0A%23include%20%3CHomey.h%3E%0A%0Aint%20Status%20%3D%2012%3B%20%2F%2FD6%0Aint%20sensor%20%3D%2013%3B%20%2F%2FD7%0A%0Avoid%20wifi()%20%7B%0A%20%20if%20(WiFi.status()%20!%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20WiFi.begin(%22SSID%22%2C%20%22PASSWORD%22)%3B%0A%20%20%20%20uint8_t%20timeout%20%3D%2030%3B%0A%20%20%20%20while%20(WiFi.status()%20!%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20%20%20delay(500)%3B%0A%20%20%20%20%20%20Serial.print(%22.%22)%3B%0A%20%20%20%20%20%20if%20(timeout%3C1)%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(WiFi.status()%20%3D%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20%20%20%2F%2FPrint%20IP%20address%0A%20%20%20%20%20%20Serial.print(%22Verbonden%20met%20WiFi!%20(%22)%3B%0A%20%20%20%20%20%20Serial.print(WiFi.localIP())%3B%0A%20%20%20%20%20%20Serial.println(%22)%22)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0A%0Avoid%20setup()%20%7B%0A%20%20Serial.begin(9600)%3B%0A%20%20Homey.begin(%22PIR%20sensor%22)%3B%0A%20%20Homey.setClass(%22sensor%22)%3B%0A%20%20Homey.addCapability(%22alarm_motion%22)%3B%0A%20%20pinMode(sensor%2C%20INPUT)%3B%20%2F%2F%20declare%20sensor%20as%20input%0A%20%20pinMode(Status%2C%20OUTPUT)%3B%20%20%2F%2F%20declare%20LED%20as%20output%0A%7D%0A%0Avoid%20loop()%7B%0A%20%20wifi()%3B%0A%20%20Homey.loop()%3B%20%20%0A%20%20long%20state%20%3D%20digitalRead(sensor)%3B%0A%20%20delay(5000)%3B%20%2F%2F%20was%201000%0A%20%20%20%20if(state%20%3D%3D%20HIGH)%7B%0A%20%20%20%20%20%20digitalWrite%20(Status%2C%20HIGH)%3B%0A%20%20%20%20%20%20Homey.setCapabilityValue(%22alarm_motion%22%2C%20(true))%3B%0A%20%20%20%20%20%20Serial.println(%22Motion%20detected!%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20digitalWrite%20(Status%2C%20LOW)%3B%0A%20%20%20%20%20%20Homey.setCapabilityValue(%22alarm_motion%22%2C%20(false))%3B%0A%20%20%20%20%20%20Serial.println(%22Motion%20absent!%22)%3B%0A%20%20%20%20%20%20%7D%0A%7D” message=”PIR sensor Homeyduino met LED” highlight=”” provider=”manual”/]

 

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

[pastacode lang=”cpp” manual=”%23include%20%3CESP8266WiFi.h%3E%0A%23include%20%3CWiFiClient.h%3E%0A%23include%20%3CHomey.h%3E%0A%0Aint%20sensor%20%3D%2013%3B%20%2F%2FD7%0A%0Avoid%20wifi()%20%7B%0A%20%20if%20(WiFi.status()%20!%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20WiFi.begin(%22Newstreet_TuinWIFI%22%2C%20%22%40nk%4013j%40%40r%22)%3B%0A%20%20%20%20uint8_t%20timeout%20%3D%2030%3B%0A%20%20%20%20while%20(WiFi.status()%20!%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20%20%20delay(500)%3B%0A%20%20%20%20%20%20Serial.print(%22.%22)%3B%0A%20%20%20%20%20%20if%20(timeout%3C1)%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(WiFi.status()%20%3D%3D%20WL_CONNECTED)%20%7B%0A%20%20%20%20%20%20%2F%2FPrint%20IP%20address%0A%20%20%20%20%20%20Serial.print(%22Verbonden%20met%20WiFi!%20(%22)%3B%0A%20%20%20%20%20%20Serial.print(WiFi.localIP())%3B%0A%20%20%20%20%20%20Serial.println(%22)%22)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A%0A%0Avoid%20setup()%20%7B%0A%20%20Serial.begin(9600)%3B%0A%20%20Homey.begin(%22PIR%20sensor%22)%3B%0A%20%20Homey.setClass(%22sensor%22)%3B%0A%20%20Homey.addCapability(%22alarm_motion%22)%3B%0A%20%20pinMode(sensor%2C%20INPUT)%3B%20%2F%2F%20declare%20sensor%20as%20input%0A%7D%0A%0Avoid%20loop()%7B%0A%20%20wifi()%3B%0A%20%20Homey.loop()%3B%20%20%0A%20%20long%20state%20%3D%20digitalRead(sensor)%3B%0A%20%20delay(5000)%3B%20%2F%2F%20was%201000%0A%20%20%20%20if(state%20%3D%3D%20HIGH)%7B%0A%20%20%20%20%20%20Homey.setCapabilityValue(%22alarm_motion%22%2C%20(true))%3B%0A%20%20%20%20%20%20Serial.println(%22Motion%20detected!%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20Homey.setCapabilityValue(%22alarm_motion%22%2C%20(false))%3B%0A%20%20%20%20%20%20Serial.println(%22Motion%20absent!%22)%3B%0A%20%20%20%20%20%20%7D%0A%7D” message=”PIR code zonder LED lampje” highlight=”” provider=”manual”/]

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. 

 

Mike | Huisvanvandaag

7 reacties op “Bouw je eigen Bewegingssensor (PIR + Arduino)

  1. Werkt super , is de reactie snelheid nog te beïnvloeden tot bv het
    Licht aangaat daar zit nu een paar seconden tussen of is dat standaard met WiFi ?

    1. Dat is denk ik afhankelijk van hetgeen wat je uiteindelijk aanstuurt. Bijvoorbeeld in mijn setup gaat het van WiFi naar RF (KlikaanKlikuit). Met een vertraging van om en nabij een halve seconde.

      Enige tijdswinst die ik me zou kunnen voorstellen is de frequentie veranderen in de code waarop de sensor werkt. Maar dit staat al redelijk straf afgesteld.

        1. Klopt dit loopt via Homey, maar ik zou me iets wat tijdsverlies kunnen voorstellen bij het zenden van de Arduino naar Homey en dan weer terug naar het schakelmateriaal.

Geef een reactie

Aanbevolen
 Bouw je eigen watertemperatuur of gewone thermometer die je via WiFi uit kunt lezen en…
Translate »