ESP8266 WiFi – Infrarood bewegings-sensor (PIR) (ArduinoIDE)
Op deze pagina vind je een voorbeeld om via de ESP-01 module een infrarood bewegings-sensor (PIR) sensor te gebruiken via de GPIO pinnen met de ArduinoIDE.
Hardware
Met deze Infrarood bewegings-sensor (PIR) (Passive InfraRed) sensor kun je beweging detecteren, wordt vaak gebruikt als mensen of dieren binnen het sensorbereik bewegen, ze zijn klein, niet duur, verbruiken weinig vermogen en zijn makkelijk te gebruiken.
Deze PIR heef een bereik tot 7 meter, er zitten 2 stelknoppen op, één voor de detectietijd en één voor vertragings tijd voor de volgende interval.
Specificaties:
- Voltage: DC 4.5 tot 20V
- Verbruik: 50uA
- Blok tijd: 2.5 seconden (standaard)
- Vertragings tijd: 0.3 tot 18 seconden (standaard)
- Detectie hoek: <110 graden
- Detectie bereik :3 meter (standaard) tot max 7 meter
- Lens diameter: 23mm (standaard)
Pinout
Pin: | Functie: |
---|---|
01 | +4.5v~20v |
02 | OUT |
03 | GND |
Wat heb je nodig?
1) Firmware flashen met ArduinoIDE
Een voorbeeld code voor een bewegings-melder, de led gaat aan, is er beweging, dan gaat de LED uit en weer aan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// Configureer de pin voor de LED. int ledPin = 0; // Configureer de INPUT pin van de PIR. int inputPin = 2; // Zet de pirstate op LOW, aannemend dat er geen beweging is gedetecteerd wanneer de PIR start. int pirState = LOW; // Een variabele voor de pinstatus van de PIR. int val = 0; void setup() { // Stel de digitale in- of uitgangen in. pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); Serial.begin(9600); } void loop(){ // Uitlezen van de PIR pin, is deze hoog of laag? val = digitalRead(inputPin); // Als de PIR pin HOOG is. if (val == HIGH) { // Zet de LED aan. digitalWrite(ledPin, HIGH); if (pirState == LOW) { //De PIR is AAN. Serial.println("Beweging gedetecteerd!"); // We reageren alleen op de verandering aan de OUT pin, niet de PIR status. pirState = HIGH; } } else { // Zet de LED uit. digitalWrite(ledPin, LOW); if (pirState == HIGH){ // De PIR is UIT. Serial.println("Beweging beëindigd!"); // We reageren alleen op de verandering aan de OUT pin, niet de PIR status. pirState = LOW; } } } |
Code flashen:
Voordat je de PIR module kan aansluiten, verbind GPIO 0 op GND en flash de code in de ESP8266 module.
PIR aansluiten:
Eenmaal de code geflashed, Sluit de module aan volgens onderstaand schema:
Het resultaat via de seriële monitor:
1 2 |
Beweging gedetecteerd! Beweging beëindigd! |