Table of contents
Uvod Kako to radi? Vrijeme odgode (Delay time) Detekcija pokreta PIR WiFi Alert projektTable of contents
Uvod
Senzori pokreta su svuda oko nas, tiho osiguravajući prostore i čineći ih responzivnima, a da mi to niti ne primjećujemo. Od automatskih svjetala u hodnicima koja se pale dok prolazite, preko alarmnih sustava koji otkrivaju neočekivana kretanja, do mreža sigurnosnih kamera koje se aktiviraju pokretom - PIR (pasivni infracrveni) senzori igraju glavnu ulogu u svakodnevnoj automatizaciji i sigurnosti. Nekada su se uglavnom nalazili u komercijalnim proizvodima, no kako su projekti "uradi sam" (DIY) elektronike postali napredniji, komponente poput PIR senzora sada su dostupne kao jednostavni plug-and-play moduli dostupni svakome.
Ovaj članak provest će vas kroz to što su PIR senzori, kako detektiraju kretanje i konačno kako možete postaviti svoj mikrokontroler da izvrši određeni zadatak, poput uključivanja svjetla ili slanja obavijesti, ovisno o tome je li detektiran pokret.
Kako to radi?
Pasivni infracrveni senzor je elektronički uređaj koji detektira objekt u pokretu kada uđe u njegovo vidno polje, uzrokujući promjenu razine infracrvenog zračenja. Svi predmeti i ljudi koji zrače toplinu također ispuštaju nisku razinu infracrvenog zračenja, ovisno o njihovoj temperaturi. Što je objekt topliji, to više zračenja emitira.
Ovi uređaji su centrirani oko dvije uravnotežene trake piroelektričnog materijala koje su postavljene paralelno jedna s drugom, stvarajući tako piroelektrični senzor. To detektira toplinsku energiju u okolnom području. Osim toga, uključen je i infracrveni filter koji blokira sve ostale valne duljine svjetlosti. Dakle, nakon što se detektira promjena u razlici signala između dva piroelektrična elementa, PIR senzor se aktivira i šalje signal.
Vrijeme odgode (Delay time)
Jedan važan koncept kod PIR senzora pokreta je vrijeme zadržavanja (ponekad se naziva "vrijeme odgode" ili "delay time"), što je količina vremena tijekom kojeg izlaz senzora ostaje VISOK (HIGH) nakon detekcije pokreta. Jednostavnije rečeno, to je koliko dugo senzor nastavlja javljati "pokret detektiran" prije nego što se vrati na NISKO (LOW).

Neki modeli PIR senzora mogu imati mali ugrađeni potenciometar koji vam omogućuje podešavanje odgode senzora. To je važno jer pomaže u izbjegavanju lažnih okidača ili brzog uključivanja/isključivanja, a također je korisno u sustavima rasvjete ili sigurnosti gdje želite stabilan signal "pokret detektiran".
Detekcija pokreta
Nakon razumijevanja osnova, stvorit ćemo jednostavan primjer koji će ispisati poruku na serijski monitor kada se detektira pokret. Naša pločica PIR senzora pokreta dolazi u dvije varijante:
- Standardna verzija - koristi DOUT i SOUT pinove za izlaz
- I2C verzija - koristi Qwiic/easyC priključak za jednostavno povezivanje (zadana adresa 0x30)
Primjer: Jednostavna detekcija pokreta s odgođenim izlazom
#define SOUT_PIN 2
#define DOUT_PIN 4
// Variables that hold the time since the last measurement for specific pins
unsigned long dout_delay = 0;
unsigned long sout_delay = 0;
void setup()
{
// Set the pins as input
pinMode(DOUT_PIN, INPUT);
pinMode(SOUT_PIN, INPUT);
// Initialize serial communication
Serial.begin(115200);
Serial.println("Warming up sensor...");
// Wait 20s so the sensor can warm up
delay(20000);
Serial.println("Warmup done!");
}
void loop()
{
// If the pin is set to HIGH and at least 4s have passed since the last measurement, print detection
if (digitalRead(DOUT_PIN) && millis() - dout_delay >= 4000)
{
Serial.println("DOUT Motion detected!");
dout_delay = millis();
}
// If the pin is set to HIGH and at least 4s have passed since the last measurement, print detection
if (digitalRead(SOUT_PIN) && millis() - sout_delay >= 4000)
{
Serial.println("SOUT Motion detected!");
sout_delay = millis();
}
}
Kao što možete vidjeti iz izlaza serijskog monitora, DOUT pin prelazi prag odgode od 4 sekunde koji smo postavili, to je zato što pin daje VISOKO ("pokret detektiran") očitanje dodatne 2 sekunde kada je ugrađeni potenciometar postavljen na najveću odgodu (u smjeru suprotnom od kazaljke na satu). Podešavanje ove vrijednosti može biti korisno za projekte kada stvarate detektor pokreta koji nije previše osjetljiv na male pokrete.
PIR WiFi Alert projekt
Korištene komponente:
- ESP32
- Modul PIR senzora
- LED
- Otpornik od 330 Ohma
Ovaj projekt koristi WiFi mogućnosti ESP32 za slanje e-mail obavijesti upozorenja kada je detektirano kretanje, e-mail sadrži datum i vrijeme kada je kretanje detektirano. Dodatno, obavijesti se mogu uključiti/isključiti (ON/OFF) s web poslužitelja izgrađenog na ESP32. Da biste mu pristupili, prvo provjerite jeste li spojeni na istu mrežu kao i ESP, a zatim jednostavno upišite IP adresu ispisanu na serijskom monitoru u URL vašeg web preglednika.
Ispod je ključna logika koja pokazuje kako petlja (loop) obrađuje prekid (interrupt) i pokreće e-mail obavijest:
void loop()
{
// Handle incoming client requests for the web server
server.handleClient();
// If motion is detected (set by ISR) and at least 4 seconds have passed from last detection
if (motionDetected)
{
// Reset the flag safely
noInterrupts();
motionDetected = false;
interrupts();
const unsigned long now = millis();
// Debounce/Delay check
if (now - lastHandledMS >= 4000)
{
lastHandledMS = now;
Serial.println("MOTION DETECTED");
updateTime(); // Sync time for timestamp
// If notifications are enabled via web UI, send alert email
if (notificationsEnabled)
{
sendMotionNotification("Movement detected on " + print_last_detection_time() + "!!");
}
}
}
}
// Interrupt Service Routine (ISR) for PIR sensor
void IRAM_ATTR onPIRDetection()
{
motionDetected = true;
}
Logika glavne petlje prvo provjerava je li neki uređaj uputio HTTP zahtjev prema ESP32 pločici. Zatim, ako je detektirano kretanje i prošlo je najmanje 4 sekunde od posljednjeg obrađivanja pokreta, ažurira vremensku oznaku, ispisuje odgovarajuću poruku i šalje e-mail upozorenja o pokretu ako su obavijesti omogućene.
Web stranica + e-mail obavijest:

Ispis uspješne poruke:
