Search Code

ESP32 Tutorijal 21/55 - Detekcija ljudi pomoću PIR senzora pokreta | SunFounder's ESP32 IoT Learning kit

ESP32 Tutorijal 21/55 - Detekcija ljudi pomoću PIR senzora pokreta | SunFounder's ESP32 IoT Learning kit

U ovom tutorijalu naučit ćemo kako koristiti PIR senzor pokreta s ESP32 mikrokontrolerom za detekciju prisustva ljudi. ESP32 je moćan mikrokontroler koji nudi i Wi-Fi i Bluetooth mogućnosti, što ga čini idealnim za IoT projekte. Integracijom PIR senzora možemo izgraditi sistem koji aktivira LED diodu ili zujalicu kad god se detektuje pokret, pružajući jednostavan, ali efikasan način za praćenje ljudske aktivnosti.

PIR SENZOR RE 200B

PIR (pasivni infracrveni) senzor detektuje pokret osjećajući infracrveno zračenje koje emituju objekti, posebno oni s toplim tijelom poput ljudi. Kada se detektuje pokret, senzor šalje signal ESP32 mikrokontroleru, koji zatim može aktivirati izlaz, poput paljenja LED diode ili oglašavanja zujalice. Ovaj tutorijal će vas provesti kroz hardversko postavljanje, povezivanje i kod potreban da sistem ispravno funkcioniše (u videu na 00:45).

ESP32-21_motion_sensor-schematic

Objašnjenje hardvera

Ovaj projekat uključuje nekoliko ključnih komponenti. ESP32 mikrokontroler služi kao mozak operacije, obrađujući podatke sa senzora i upravljajući izlazima. PIR senzor pokreta detektuje kretanje mjereći promjene u infracrvenom zračenju. LED dioda ili zujalica pružaju vizuelno ili zvučno upozorenje kada se detektuje pokret.

ESP32 je opremljen Wi-Fi i Bluetooth tehnologijom, omogućavajući proširene funkcionalnosti poput povezivanja s oblakom. PIR senzor sadrži sočivo koje fokusira infracrveno svjetlo na piroelektrični senzor, koji generiše naponski signal kada detektuje promjene u infracrvenim nivoima, ukazujući na kretanje.

Detalji iz tehničke dokumentacije

Proizvođač SunFounder
Broj dijela PIR senzor modul
Logički/IO napon 3,3 V
Napon napajanja 3,3 V
Izlazna struja (po kanalu) 20 mA maks.
Maksimalna struja (po kanalu) 50 mA maks.
Smjernice za PWM frekvenciju N/A
Ulazni logički pragovi 0,3 V (nisko), 2,0 V (visoko)
Pad napona / RDS(on) / zasićenje N/A
Termička ograničenja 0 do 70 °C
Pakovanje Modul
Napomene / varijante Podesiva osjetljivost i kašnjenje

 

  • Osigurajte ispravno napajanje (3,3 V) kako biste izbjegli oštećenja.
  • Koristite otpornik za LED diodu kako biste ograničili struju.
  • Održavajte ispravno povezivanje kako biste spriječili kratke spojeve.
  • Podesite dugmad na PIR senzoru za osjetljivost i kašnjenje prema potrebi.
  • Testirajte senzor u različitim okruženjima za optimalne performanse.

Upute za povezivanje

ESP32-21_motion_sensor-wiring

Za povezivanje PIR senzora pokreta i LED diode s ESP32 mikrokontrolerom, počnite spajanjem VCC pina PIR senzora na 3,3 V izlaz na ESP32. Zatim spojite uzemljenje (ground) pin PIR senzora na ground pin na ESP32. Signalni pin (često označen kao S) s PIR senzora treba spojiti na GPIO pin 14 na ESP32.

Za LED diodu, spojite dužu nogicu (anodu) na GPIO pin 26 kroz otpornik od 220 Ohma, a kraću nogicu (katodu) spojite na uzemljenje. Provjerite da su svi spojevi sigurni kako biste osigurali ispravnu funkcionalnost. Ako koristite zujalicu umjesto LED diode, spojite jedan pin zujalice na GPIO pin 26, a drugi na uzemljenje, zamjenjujući LED postavku.

Primjeri koda i objašnjenje

U kodu definiramo brojeve pinova za PIR senzor i LED diodu. Koristimo const int pirPin = 14; za postavljanje PIR pina i const int ledPin = 26; za LED pin. Ove konstante osiguravaju da brojevi pinova ostanu nepromijenjeni tokom izvršavanja programa.

const int pirPin = 14;  // broj pir pina
const int ledPin = 26;     // LED pin

Ovaj isječak inicijalizira pinove koje ćemo koristiti. U setup() funkciji konfiguriramo PIR pin kao ulaz, a LED pin kao izlaz. Ovo postavljanje je ključno za čitanje stanja senzora i upravljanje LED diodom.

void setup() {
  Serial.begin(115200);  
  pinMode(pirPin, INPUT);  // inicijaliziraj pir pin kao ulaz
  pinMode(ledPin, OUTPUT);  // inicijaliziraj LED pin kao izlaz
}

U loop() funkciji kontinuirano čitamo stanje PIR senzora koristeći digitalRead(pirPin);. Ako senzor detektuje pokret (označeno HIGH stanjem), palimo LED diodu koristeći digitalWrite(ledPin, HIGH);. U suprotnom, gasimo LED diodu.

if (pirState == HIGH) {
    digitalWrite(ledPin, HIGH);  // upali LED diodu
} else {
    digitalWrite(ledPin, LOW);    // ugasi LED diodu
}

Ova logika omogućava LED diodi da reaguje na pokret koji detektuje PIR senzor. Obavezno prenesite kompletan kod koji je dat ispod članka za punu funkcionalnost.

Demonstracija / Šta očekivati

Kada je sve postavljeno i kod prenesen, LED dioda će zasvijetliti kada PIR senzor detektuje pokret. Možete testirati senzor krećući se ispred njega; LED dioda bi trebala odmah zasvijetliti. Ako je senzor podešen s kašnjenjem, ostat će uključen određeno vrijeme prije nego što se ponovo ugasi (u videu na 12:15).

Uobičajene zamke uključuju pogrešno povezivanje, što može spriječiti rad senzora. Provjerite da je PIR senzor pravilno napajan i da je signalni pin spojen na ispravan GPIO pin na ESP32. Podešavanje osjetljivosti i dugmadi za odgodu na PIR senzoru također može pomoći u optimizaciji performansi u skladu s vašim okruženjem.

Vremenske oznake videa

  • 00:00 Početak
  • 1:54 Uvod u PIR senzor
  • 6:38 Objašnjeno povezivanje
  • 10:21 Objašnjen Arduino kod
  • 12:45 Odabir ESP32 ploče i COM porta u Arduino IDE
  • 14:27 Demonstracija i kalibracija PIR senzora

Images

ESP32-21_motion_sensor-wiring
ESP32-21_motion_sensor-wiring
PIR SENSOR RE 200B
PIR SENSOR RE 200B
ESP32-21_motion_sensor-schematic
ESP32-21_motion_sensor-schematic
820-ESP32 Tutorial 21/55- Arduino code for motion sensor
Language: C++
// set pin numbers
const int pirPin = 14;  // the number of the pir pin
const int ledPin = 26;     // LED pin

// variable for storing the pir status 
int pirState = 0;

void setup() {
  Serial.begin(115200);  
  // initialize the pir pin as an input
  pinMode(pirPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the pir value
  pirState = digitalRead(pirPin);
  Serial.println(pirState);
  delay(100);

  // if the pir is pressed, the pirState is HIGH
  if (pirState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Resources & references

No resources yet.

Files📁

Datasheet (pdf)

Other files