PIR uitlezen met Arduino

Een PIR sensor kun je gebruiken om de nabijheid van iemand te detecteren. Dit kan bijvoorbeeld handig zijn om een lamp automatisch te schakelen.

Een PIR sensor kun je heel eenvoudig met een Arduino controleren. In principe is een PIR nl. niets anders een digitale output die afhankelijk of iets gedetecteerd wordt hoog (gedecteerd) of laag (niets gedetecteerd) zal zijn. Zoals gebruikelijk maak ik weer gebruik van een NodeMCU ESP8266 module om de PIR uit te lezen.

Benodigheden

1 x Mini Solderless Breadboard 400 Contacts (US$ 1,42)
1 x NodeMCU Lua ESP8266 CP2102 module (US$ 3,79)
1 x PIR Motion Sensor Detector Module HC-SR501 (US$ 0,99)





Aansluiten

Het aansluiten is heel eenvoudig als je de pin-aansluitingen van je NodeMCU ESP8266 weet:



Verbind de volgende pins (PIR – NodeMCU):
GND – GND
Vcc – Vin
OUT – D5



Programmeren

Voor het programmeren van de NodeMCU gebruiken we de Arduino IDE software die je hier kunt downloaden. Voordat we aan de slag gaan moeten we nog wat instellingen in de Arduino IDE veranderen. Vul bij ‘File > Preferences’ voor ‘Additional Boards Manager URLs’ de volgende waarde in:



Ga naar Open Boards Manager vanaf ‘Tools > Board’. Scroll naar beneden en selecteer ‘esp8266 by ESP8266 Community’. Kies nu ‘install’.



We zijn nu klaar om eindelijk te gaan programmeren. Om de PIR uit te lezen kun je onderstaande code gebruiken. Lees vooral het commentaar zodat je hiermee zelf aan de slag kunt gaan. Ik gebruik in de code hieronder de Serial Monitor van de Arduino IDE om detectie te loggen. Je zou dit bijvoorbeeld zelf kunnen veranderen om een Relay aan te sturen voor een lamp voor een bepaalde tijd.

Je kunt eventueel nog de gevoeligheid en vertraging op de PIR module zelf configureren:




Laat jij in het commentaar eens weten waarvoor jij een PIR module gebruikt?

avatar
1200
Foto en Image Files
 
 
 
Audio en Video Files
 
 
 
Andere File Types
 
 
 
2 Comment threads
1 Thread replies
2 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
Henri MatthijssenErwin Recent comment authors

Erwin
Gast
Erwin

Hoi Henri, weer een leuke blog!

Is er ook een manier om de actuele status van de PIR uit te lezen in pimatic? Ik wil hier graag regels starten adv aanwezigheid.

Henri Matthijssen
Gast
Henri Matthijssen

Met de ESP8266 kun je heel eenvoudig een Webserver bouwen die je met je eigen API kunt uitbreiden. Ik heb datzelfde trucje gebruikt in mijn eCurtains project.

Deze API kun je dan m.b.v. ‘curl’ weer aanroepen vanuit Pimatic. Op deze manier kan ik nu met Pimatic mijn gordijnen automatisch open en dicht doen.

Hetzelfde zou je in principe voor een PIR sensor kunnen doen. Met behulp van een curl call kun je dan de status checken. Probleem is echter dat je niet constant wilt pollen. Daar valt echter wel weer omheen te programmeren door een verandering in PIR oftewel langer vast te houden of deze expliciet je Pimatic te laten triggeren. In het laatste heb ik mij (nog) niet verdiept.

Erwin
Gast
Erwin

Duidelijke uitleg, echter gaat helaas boven mijn niveau om zoiets zelf in elkaar te zetten!