Èkọ́ ESP32 21/55 - Ṣíṣàwárí Ènìyàn pẹ̀lú PIR Motion Sensor | SunFounder's ESP32 IoT Learning kit
Nínú ẹ̀kọ́ yìí, a óò kọ́ bí a ṣe le lo sensa ìṣíṣípò PIR pẹ̀lú ESP32 láti mọ̀ nípa wíwà níwájú ènìyàn. ESP32 jẹ́ ẹ̀rọ aláṣẹ alágbára tí ó ní agbára Wi-Fi àti Bluetooth, tí ó sì jẹ́ kí ó dára fún àwọn iṣẹ́ IoT. Nípa fífi sensa PIR kún un, a lè kọ́ ètò tí yóò mú LED tàbí buzzer ṣiṣẹ́ nígbàkúùgbà tí a bá rí ìṣíṣípò, tí ó ń pèsè ọ̀nà tí ó rọrùn ṣùgbọ́n tí ó gbéṣẹ́ láti ṣe àbójútó ìgbòkègbodò ènìyàn.
Sensa PIR (Passive Infrared) ń ṣe àwárí ìṣíṣípò nípa gbígbé ìtànṣán infrared tí àwọn ohun tí ó ní ìgbóná, pàápàá àwọn tí ó ní ara gbígbóná bí ènìyàn, ń jáde. Nígbà tí a bá rí ìṣíṣípò, sensa náà ń fi àmì ránṣẹ́ sí ESP32, èyí tí ó lè mú ìjàde kan ṣiṣẹ́, bíi mímọ́ LED tàbí lílù buzzer. Ẹ̀kọ́ yìí yóò darí ọ lọ nípa ṣíṣètò ohun èlò, ìsopọ̀ okun, àti kóòdù tí a nílò láti jẹ́ kí ètò náà ṣiṣẹ́ dáradára (nínú fídíò ní 00:45).
Àlàyé Ohun Èlò
Ìṣẹ̀lẹ́ yìí ní ọ̀pọ̀lọpọ̀ àwọn ohun èlò pàtàkì. Ẹ̀rọ aláṣẹ ESP32 ni ó jẹ́ ọpọlọ iṣẹ́ náà, tí ó ń gba data láti ọ̀dọ̀ sensa tí ó sì ń ṣàkóso àwọn ìjàde. Sensa ìṣíṣípò PIR ń ṣe àwárí ìgbòkègbodò nípa wíwọ̀n àwọn ìyípadà nínú ìtànṣán infrared. LED tàbí buzzer ń pèsè ìkìlọ̀ tí a lè rí tàbí gbọ́ nígbà tí a bá rí ìṣíṣípò.
ESP32 ní Wi-Fi àti Bluetooth, tí ó ń gba ààyè fún àwọn iṣẹ́ tí ó gbòòrò bíi ìsopọ̀ pẹ̀lú àwọn ohun tí ń lọ sórí ayélujára. Sensa PIR ní lẹnsi tí ó ń dojúkọ ìmọ́lẹ̀ infrared sórí sensa pyroelectric, èyí tí ó ń ṣe àgbéjáde àmì folti nígbà tí ó bá rí àwọn ìyípadà nínú ipele infrared, tí ó ń tọ́ka sí ìgbòkègbodò.
Àwọn Àlàyé Datasheet
| Olùṣe | SunFounder |
|---|---|
| Nọ́mbà apá | Modulu Sensa PIR |
| Folti Logic/IO | 3.3 V |
| Folti ìpèsè | 3.3 V |
| Ìjàde lọ́wọ́lọ́wọ́ (fún ikanni kọ̀ọ̀kan) | 20 mA tó pọ̀jù |
| Ìjàde tí ó ga jùlọ (fún ikanni kọ̀ọ̀kan) | 50 mA tó pọ̀jù |
| Ìtọ́sọ́nà ìgbohùnsáfẹ́fẹ́ PWM | Kò sí |
| Àwọn ìpele ìwọ̀nà logic | 0.3 V (rẹ̀lẹ̀), 2.0 V (ga) |
| Ìrẹ̀wẹ̀sì folti / RDS(on) / ìkún | Kò sí |
| Àwọn ìwọ̀nà ìgbóná | 0 sí 70 °C |
| Ìpako | Modulu |
| Àwọn àkíyèsí / àwọn oríṣiríṣi | Ìmúyọ̀rọ̀rọ̀ àti ìdúró tí a lè ṣàtúnṣe |
- Rí i dájú pé ìpèsè agbára tí ó tọ́ (3.3 V) wà láti yẹra fún ìbàjẹ́.
- Lo resistor fún LED láti dín ìṣàn lọ́wọ́lọ́wọ́ kù.
- Mú ìsopọ̀ okun tí ó tọ́ mú láti ṣègbọ́dọ̀gbọ́n sí ìsopọ̀ kúkúrú.
- Ṣàtúnṣe àwọn kọbọ̀ sensa PIR fún ìmúyọ̀rọ̀rọ̀ àti ìdúró bí a ṣe nílò rẹ̀.
- Dán sensa náà wò ní àwọn àyíká oríṣiríṣi fún iṣẹ́ tí ó dára jùlọ.
Àwọn Ìtọ́sọ́nà Ìsopọ̀ Okun

Láti so sensa ìṣíṣípò PIR àti LED pọ̀ mọ́ ESP32, bẹ̀rẹ̀ nípa sísopọ̀ pin VCC ti sensa PIR sí ìjàde 3.3 V lórí ESP32. Lẹ́yìn náà, so pin ilẹ̀ ti sensa PIR pọ̀ mọ́ pin ilẹ̀ kan lórí ESP32. Pin àmì (tí a sábà máa ń pè ní S) láti ọ̀dọ̀ sensa PIR yẹ kí a so pọ̀ mọ́ pin GPIO 14 lórí ESP32.
Fún LED, so ẹsẹ̀ tí ó gùn (anode) pọ̀ mọ́ pin GPIO 26 nípasẹ̀ resistor 220 Ohm, kí o sì so ẹsẹ̀ kúkúrú (cathode) pọ̀ mọ́ ilẹ̀. Rí i dájú pé gbogbo àwọn ìsopọ̀ ti mú ṣinṣin láti rí i dájú pé iṣẹ́ náà ṣiṣẹ́ dáradára. Bí o bá ń lo buzzer dípò LED, so pin kan ti buzzer pọ̀ mọ́ pin GPIO 26 àti èkejì pọ̀ mọ́ ilẹ̀, ní rírọ́pò ètò LED náà.
Àwọn Àpẹẹrẹ Kóòdù & Ìtọ́sọ́nà
Nínú kóòdù náà, a ń ṣàlàyé àwọn nọ́mbà pin fún sensa PIR àti LED. A ń lo const int pirPin = 14; láti ṣètò pin PIR àti const int ledPin = 26; fún pin LED. Àwọn ìwọ̀n àìyípadà wọ̀nyí ń rí i dájú pé àwọn nọ́mbà pin kò yípadà ní gbogbo ìgbà tí ètò náà bá ń ṣiṣẹ́.
const int pirPin = 14; // nọ́mbà pin pir
const int ledPin = 26; // pin LED
Àkójọpọ̀ yìí ń bẹ̀rẹ̀ àwọn pin tí a óò lò. Nínú iṣẹ́ setup(), a ń ṣètò pin PIR gẹ́gẹ́ bí ìwọ̀nà àti pin LED gẹ́gẹ́ bí ìjàde. Ìṣètò yìí ṣe pàtàkì fún kíka ipò sensa àti ṣíṣàkóso LED.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // bẹ̀rẹ̀ pin pir gẹ́gẹ́ bí ìwọ̀nà
pinMode(ledPin, OUTPUT); // bẹ̀rẹ̀ pin LED gẹ́gẹ́ bí ìjàde
}
Nínú iṣẹ́ loop(), a ń ka ipò sensa PIR nígbà gbogbo nípa lílo digitalRead(pirPin);. Bí sensa bá rí ìṣíṣípò (tí a tọ́ka sí nípa ipò HIGH), a ń mú LED wálẹ̀ nípa lílo digitalWrite(ledPin, HIGH);. Bí kò bá rí rẹ̀, a ń pa LED náà.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // mú LED wálẹ̀
} else {
digitalWrite(ledPin, LOW); // pa LED
}
Ìgbìmọ̀ yìí ń gba LED láàyè láti fèsì sí ìṣíṣípò tí sensa PIR rí. Rí i dájú pé o gbé kóòdù kíkún tí a pèsè nísàlẹ̀ àpilẹ̀kọ yìí sílẹ̀ fún iṣẹ́ kíkún.
Ìfihàn / Ohun Tí O Lè Retí
Nígbà tí ohun gbogbo bá ti ṣètò tán àti tí a ti gbé kóòdù sílẹ̀, LED yóò mọ́lẹ̀ nígbà tí sensa PIR bá rí ìṣíṣípò. O lè dán sensa náà wò nípa gbígbé ara rẹ kọjá níwájú rẹ̀; LED yóò mọ́lẹ̀ lẹ́sẹ̀kẹsẹ̀. Bí a bá ṣètò ìdúró sílẹ̀ fún sensa náà, yóò dúró ní mímọ́ fún àkókò tí a yàn kí ó tó pa tún (nínú fídíò ní 12:15).
Awọn idiwọ ti o wọpọ pẹlu okun ti ko tọ, eyiti o le ṣe idiwọ fun sensọ lati ṣiṣẹ. Rii daju pe sensọ PIR ti ni agbara daradara ati pe pinnu ifihan ti sopọ si pinnu GPIO ti o tọ lori ESP32. Ṣatunṣe awọn koko ifamọ ati idaduro lori sensọ PIR tun le ṣe iranlọwọ lati mu iṣẹ ṣiṣe dara si da lori agbegbe rẹ.
Awọn Akoko Fidio
- 00:00 Bẹrẹ
- 1:54 Ifihan si Sensọ PIR
- 6:38 Okun ti ṣe alaye
- 10:21 Koodu Arduino ti ṣe alaye
- 12:45 Yiyan bọọdi ESP32 ati ibudo COM ni Arduino IDE
- 14:27 Ifihan ati iwọn ti sensọ PIR
// 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);
}
}
Common Course Links
Common Course Files
Orisun & itọkasi
Ko si awọn orisun sibẹsibẹ.
Fáìlìs📁
Fọọmu data (pdf)
-
RE200B_PRI motion sensor datasheet
RE200B_PRI_datasheet.pdf0.02 MB -
BISS0001 motion sensor chip datasheet
BISS0001_datasheet.pdf0.16 MB
Awọn faili miiran
-
Itọsọna Olumulo sensọ Iṣipopada HC-SR501
robojax-HC-SR501-motion-manual.pdf0.83 MB