Search Code

Mafunzo ya ESP32 21/55 - Kutambua Mwanadamu kwa Sensor ya Mwendo ya PIR | Kifurushi cha Kujifunza cha ESP32 IoT cha SunFounder

Mafunzo ya ESP32 21/55 - Kutambua Mwanadamu kwa Sensor ya Mwendo ya PIR | Kifurushi cha Kujifunza cha ESP32 IoT cha SunFounder

Katika mafunzo haya, tutajifunza jinsi ya kutumia kihisi cha mwendo cha PIR na ESP32 kutambua uwepo wa binadamu. ESP32 ni kidhibiti chenye nguvu kinachotoa uwezo wa Wi-Fi na Bluetooth, na kuifanya kuwa bora kwa miradi ya IoT. Kwa kuunganisha kihisi cha PIR, tunaweza kujenga mfumo unaowasha LED au buzzer wakati wowote mwendo unapogunduliwa, kutoa njia rahisi na yenye ufanisi ya kufuatilia shughuli za binadamu.

KIHISI CHA PIR RE 200B

Kihisi cha PIR (Passive Infrared) hugundua mwendo kwa kuhisi mionzi ya infrared inayotolewa na vitu, hasa vile vyenye joto la mwili kama binadamu. Mwendo unapogunduliwa, kihisi hutuma ishara kwa ESP32, ambayo inaweza kuwasha kituo cha pato, kama kuwasha LED au kupiga buzzer. Mafunzo haya yatakuongoza kupitia usanidi wa vifaa, wiring, na msimbo unaohitajika kufanya mfumo ufanye kazi vizuri (katika video saa 00:45).

ESP32-21_motion_sensor-schematic

Vifaa Vimeelezwa

Mradi huu unahusisha vipengele kadhaa muhimu. Kidhibiti cha ESP32 kinatumika kama ubongo wa operesheni, kushughulikia data ya kihisi na kudhibiti matokeo. Kihisi cha mwendo cha PIR hugundua harakati kwa kupima mabadiliko katika mionzi ya infrared. LED au buzzer hutoa tahadhari ya kuona au kusikia mwendo unapogunduliwa.

ESP32 ina vifaa vya Wi-Fi na Bluetooth, vinavyoruhusu utendaji wa ziada kama muunganisho wa wingu. Kihisi cha PIR kina lenzi inayoelekeza mwanga wa infrared kwenye kihisi cha pyroelectric, ambacho hutoa ishara ya voltage kinapogundua mabadiliko katika viwango vya infrared, kuashiria harakati.

Maelezo ya Datasheet

Mtengenezaji SunFounder
Nambari ya sehemu Moduli ya Kihisi cha PIR
Voltage ya Logic/IO 3.3 V
Voltage ya usambazaji 3.3 V
Mkondo wa pato (kwa kila chaneli) 20 mA max
Mkondo wa kilele (kwa kila chaneli) 50 mA max
Mwongozo wa mzunguko wa PWM N/A
Viwango vya kizingiti cha logic ya kuingiza 0.3 V (chini), 2.0 V (juu)
Kushuka kwa voltage / RDS(on) / kueneza N/A
Mipaka ya joto 0 hadi 70 °C
Kifurushi Moduli
Vidokezo / lahaja Unyeti na ucheleweshaji unaoweza kubadilishwa

 

  • Hakikisha usambazaji sahihi wa nguvu (3.3 V) ili kuepuka uharibifu.
  • Tumia resistor kwa LED ili kupunguza mkondo.
  • Dumisha wiring sahihi ili kuzuia mzunguko mfupi.
  • Rekebisha vifungo vya kihisi cha PIR kwa unyeti na ucheleweshaji inavyohitajika.
  • Jaribu kihisi katika mazingira tofauti kwa utendaji bora.

Maagizo ya Wiring

ESP32-21_motion_sensor-wiring

Ili kuunganisha kihisi cha mwendo cha PIR na LED kwa ESP32, anza kwa kuunganisha pini ya VCC ya kihisi cha PIR kwenye pato la 3.3 V kwenye ESP32. Kisha, unganisha pini ya ardhi ya kihisi cha PIR kwenye pini ya ardhi kwenye ESP32. Pini ya ishara (mara nyingi inaitwa S) kutoka kwa kihisi cha PIR inapaswa kuunganishwa kwenye pini ya GPIO 14 kwenye ESP32.

Kwa LED, unganisha mguu mrefu (anode) kwenye pini ya GPIO 26 kupitia resistor ya 220 Ohm, na unganisha mguu mfupi (cathode) kwenye ardhi. Hakikisha miunganisho yote ni salama ili kuhakikisha utendaji sahihi. Ikiwa unatumia buzzer badala ya LED, unganisha pini moja ya buzzer kwenye pini ya GPIO 26 na nyingine kwenye ardhi, ukibadilisha usanidi wa LED.

Mifano ya Msimbo & Maelezo

Katika msimbo, tunafafanua nambari za pini za kihisi cha PIR na LED. Tunatumia const int pirPin = 14; kuweka pini ya PIR na const int ledPin = 26; kwa pini ya LED. Viwango hivi vya mara kwa mara vinahakikisha kwamba nambari za pini hazibadilika wakati wote wa utekelezaji wa programu.

const int pirPin = 14;  // nambari ya pini ya pir
const int ledPin = 26;     // pini ya LED

Sehemu hii inaanzisha pini tutakazotumia. Katika kazi ya setup(), tunasanidi pini ya PIR kama ingizo na pini ya LED kama pato. Usanidi huu ni muhimu kwa kusoma hali ya kihisi na kudhibiti LED.

void setup() {
  Serial.begin(115200);  
  pinMode(pirPin, INPUT);  // anza pini ya pir kama ingizo
  pinMode(ledPin, OUTPUT);  // anza pini ya LED kama pato
}

Katika kazi ya loop(), tunasoma hali ya kihisi cha PIR kila mara kwa kutumia digitalRead(pirPin);. Ikiwa kihisi kinagundua mwendo (kinachoonyeshwa na hali ya HIGH), tunawasha LED kwa kutumia digitalWrite(ledPin, HIGH);. Vinginevyo, tunazima LED.

if (pirState == HIGH) {
    digitalWrite(ledPin, HIGH);  // washa LED
} else {
    digitalWrite(ledPin, LOW);    // zima LED
}

Mantiki hii inaruhusu LED kujibu mwendo unaogunduliwa na kihisi cha PIR. Hakikisha unapakia msimbo kamili uliotolewa chini ya makala kwa utendaji kamili.

Maonyesho / Nini cha Kutarajia

Mara tu kila kitu kimewekwa na msimbo umepakiwa, LED itawaka mwendo unapogunduliwa na kihisi cha PIR. Unaweza kujaribu kihisi kwa kusonga mbele yake; LED inapaswa kuwaka mara moja. Ikiwa kihisi kimewekwa kwenye ucheleweshaji, kitabaki kuwaka kwa muda uliowekwa kabla ya kuzima tena (katika video saa 12:15).

Makosa ya kawaida ni pamoja na wiring isiyo sahihi, ambayo inaweza kuzuia sensor kufanya kazi. Hakikisha kwamba PIR sensor ina nishati ya kutosha na kwamba pin ya ishara imeunganishwa kwenye pin sahihi ya GPIO kwenye ESP32. Kurekebisha vifungo vya usikivu na kuchelewa kwenye PIR sensor kunaweza pia kusaidia kuboresha utendaji kulingana na mazingira yako.

Vidokezo vya Muda wa Video

  • 00:00 Anza
  • 1:54 Utangulizi wa PIR Sensor
  • 6:38 Wiring imeelezewa
  • 10:21 Msimbo wa Arduino umeelezewa
  • 12:45 Kuchagua bodi ya ESP32 na bandari ya COM katika Arduino IDE
  • 14:27 Maonyesho na urekebishaji wa PIR sensor

Bilder

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
Språk: 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);
  }
}

Resurser och referenser

Inga resurser än.

Filer📁

Datablad (pdf)

Andra filer