Tutorial ESP32 21/55 - Ogaanshaha Dadka ee PIR Motion Sensor | Qalabka Barashada IoT ee SunFounder ee ESP32
Cashiggan, waxaan ku baran doonaa sida loo isticmaalo dareemaha dhaqdhaqaaqa PIR ee ESP32 si loo ogaado joiritaanka dadka. ESP32 waa kontoroolka xooggan oo bixiya awoodaha Wi-Fi iyo Bluetooth labadaba, taasoo ka dhigaysa mid ku habboon mashaariicda IoT. Adigoo ku daraya dareemaha PIR, waxaan dhisi karnaa nidaam ka shideeya LED ama buzzer markasta oo dhaqdhaqaaq la ogaado, taasoo bixisa hab fudud oo wax ku ool ah oo lagula socdo dhaqdhaqaaqa dadka.
Dareemaha PIR (Passive Infrared) wuxuu ogaadaa dhaqdhaqaaqa isagoo dareemaya shucaaca infrared-ka ee ay soo saaraan walxaha, gaar ahaan kuwa jirka kuleylka leh sida dadka. Marka dhaqdhaqaaq la ogaado, dareemuhu wuxuu u soo diraa calaamad ESP32, kaasoo markaa kicin kara wax soo saar, sida shidaynta LED ama dhawaqa buzzer. Casharradan ayaa ku hagaya qalabaynta hardware-ka, fiilooyinka, iyo koodhka loo baahan yahay si nidaamku si sax ah u shaqeeyo (fiidiyowga 00:45).
Qalabka La Sharxay
Mashruucan wuxuu ku lug leeyahay dhowr qaybood oo muhiim ah. Kontoroolka ESP32 wuxuu u shaqeeyaa sida maskaxda hawlgalka, isagoo maamulaya xogta dareemaha iyo xakamaynta wax soo saarka. Dareemaha dhaqdhaqaaqa PIR wuxuu ogaadaa dhaqdhaqaaqa isagoo cabbiraya isbeddelada shucaaca infrared-ka. LED-ka ama buzzer-ku wuxuu bixiyaa digniin muuqaal ah ama maqal ah marka dhaqdhaqaaq la ogaado.
ESP32 wuxuu ku qalabaysan yahay Wi-Fi iyo Bluetooth, taasoo u oggolaanaysa hawlo dheeri ah sida ku xirnaanta daruuraha. Dareemaha PIR wuxuu ka kooban yahay lens ku xooga saaraya iftiinka infrared-ka ee dareemaha pyroelectric, kaasoo soo saara calaamad danab ah marka uu ogaado isbeddelada heerarka infrared-ka, taasoo muujinaysa dhaqdhaqaaq.
Faahfaahinta Xogta
| Soo saaraha | SunFounder |
|---|---|
| Nambarka qaybta | Qaybta Dareemaha PIR |
| Danabka Logic/IO | 3.3 V |
| Danabka sahayda | 3.3 V |
| Qulqulka wax soo saarka (kanaal kasta) | 20 mA ugu badnaan |
| Qulqulka ugu sarreeya (kanaal kasta) | 50 mA ugu badnaan |
| Hagaha soo noqnoqoshada PWM | Ma jiro |
| Heerarka caqabadaha gelinta | 0.3 V (hoose), 2.0 V (sare) |
| Hoos u dhaca danabka / RDS(on) / dheregsanaanta | Ma jiro |
| Xadka kuleylka | 0 ilaa 70 °C |
| Baakad | Qayb |
| Qoraallo / noocyo kale | Xasaasiyad iyo dib u dhac la hagaajin karo |
- Hubi sahayda danabka saxda ah (3.3 V) si looga fogaado waxyeello.
- Isticmaal resistor LED si loo xaddido qulqulka.
- Ilaali fiilooyinka saxda ah si looga hortago wareegyada gaaban.
- Hagaaji qabsada dareemaha PIR ee xasaasiyadda iyo dib u dhaca sida loo baahdo.
- Tijaabi dareemaha jawi kala duwan si loo helo waxqabadka ugu fiican.
Tilmaamaha Fiilooyinka

Si aad ugu xidho dareemaha dhaqdhaqaaqa PIR iyo LED-ka ESP32, ka bilow adigoo ku xidhaya pin-ka VCC ee dareemaha PIR ee wax soo saarka 3.3 V ee ESP32. Marka xigta, ku xidh pin-ka dhulka ee dareemaha PIR ee pin-ka dhulka ee ESP32. Pin-ka calaamadda (oo badanaa lagu calaamadeeyo S) ee dareemaha PIR waa in lagu xidhaa GPIO pin 14 ee ESP32.
LED-ka, ku xidh lugta dheer (anode) ee GPIO pin 26 iyada oo loo marayo resistor 220 Ohm, oo ku xidh lugta gaaban (cathode) dhulka. Hubi in dhammaan xiriirada ay adag yihiin si loo hubiyo shaqeynta saxda ah. Haddii aad isticmaalayso buzzer halkii LED, ku xidh hal pin oo buzzer-ka ah GPIO pin 26 iyo kan kale dhulka, isagoo beddelaya qaabka LED-ka.
Tusaalooyinka Koodhka & Sharaxaadda
Koodhka, waxaan ku qeexaynaa nambarraada pin-ka ee dareemaha PIR iyo LED-ka. Waxaan isticmaalaynaa const int pirPin = 14; si loo dejiyo pin-ka PIR iyo const int ledPin = 26; ee pin-ka LED. Constants-yadani waxay hubiyaan in nambarraada pin-ka aysan isbeddelin inta lagu jiro fulinta barnaamijka.
const int pirPin = 14; // nambarka pin-ka pir
const int ledPin = 26; // pin-ka LED
Qaybtani waxay bilaabaysaa pin-yada aan isticmaali doono. Shaqada setup(), waxaan u qaabaynaynaa pin-ka PIR sida gelin iyo pin-ka LED sida soo saar. Qaabayntani waxay muhiim u tahay akhrinta xaaladda dareemaha iyo xakamaynta LED-ka.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // u bilaab pin-ka pir sida gelin
pinMode(ledPin, OUTPUT); // u bilaab pin-ka LED sida soo saar
}
Shaqada loop(), waxaan si joogto ah u akhrinaynaa xaaladda dareemaha PIR iyadoo la isticmaalayo digitalRead(pirPin);. Haddii dareemuhu ogaado dhaqdhaqaaq (oo lagu muujiyo xaalad sare), waxaan shidaynaa LED-ka iyadoo la isticmaalayo digitalWrite(ledPin, HIGH);. Haddii kale, waxaan damiynaa LED-ka.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // shid LED
} else {
digitalWrite(ledPin, LOW); // dami LED
}
Mantaqani wuxuu u oggolaanayaa LED-ka inuu ka jawaabo dhaqdhaqaaqa uu ogaado dareemaha PIR. Hubi inaad soo geliso koodhka buuxa ee lagu bixiyay hoosta maqaalka si loo helo shaqeynta buuxda.
Muuujin / Waxa Laga Filan Karo
Marka dhammaan waxyaabaha la dejiyo oo koodhka la soo geliyo, LED-ku wuxuu shidi doonaa marka dhaqdhaqaaq uu ogaado dareemaha PIR. Waxaad tijaabin kartaa dareemaha adigoo ku dhaqaaqaya hortiisa; LED-ku waa inuu isla markiiba shidaa. Haddii dareemaha lagu dejiyo dib u dhac, wuxuu ku sii jiri doonaa wakhtiga la cayimay ka hor inta uusan mar kale damin (fiidiyowga 12:15).
Khaladaadka caadiga ah waxaa ka mid ah fiilooyinka qaldan, kuwaas oo ka hor istaagi kara shaqeynta sensor-ka. Hubi in sensor-ka PIR si habboon loo koronto siiyo iyo in pin-ka signal-ka uu ku xiran yahay pin-ka GPIO ee saxda ah ee ESP32. Hagaajinta xasaasiyadda iyo knob-yada dib u dhaca ee sensor-ka PIR waxay kaloo kaa caawin kartaa hagaajinta waxqabadka iyadoo lagu salaynayo deegaankaaga.
Waqtiyada Fiidiyowga
- 00:00 Bilow
- 1:54 Hordhac ku saabsan Sensor-ka PIR
- 6:38 Fiilooyinka oo la sharaxay
- 10:21 Koodhka Arduino oo la sharaxay
- 12:45 Doorashada board-ka ESP32 iyo COM port-ka ee Arduino IDE
- 14:27 Tusaale iyo hagaajinta sensor-ka 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
Kheyraadka & Tixraacyada
Wali wax kaydsan ah oo weli ma jiro.
Faylasha📁
Waraaqa xogta (pdf)
-
RE200B_PRI motion sensor datasheet
RE200B_PRI_datasheet.pdf0.02 MB -
BISS0001 motion sensor chip datasheet
BISS0001_datasheet.pdf0.16 MB
Faylal kale
-
HC-SR501 dareemaha dareemaha isticmaalaha
robojax-HC-SR501-motion-manual.pdf0.83 MB