ESP32 Упатство 21/55 - Детектирање на човек со PIR сензор за движење | SunFounder's ESP32 IoT комплет за учење
Во ова упатство, ќе научиме како да користиме PIR сензор за движење со ESP32 за да детектираме присуство на луѓе. ESP32 е моќен микроконтролер кој нуди и Wi-Fi и Bluetooth можности, што го прави идеален за IoT проекти. Со интегрирање на PIR сензор, можеме да изградиме систем кој активира LED или зумер секогаш кога ќе се детектира движење, обезбедувајќи едноставен но ефикасен начин за следење на човечка активност.
PIR (Пасивен инфрацрвен) сензорот детектира движење со чувствување на инфрацрвеното зрачење емитирано од објекти, особено од оние со топло тело како луѓето. Кога ќе се детектира движење, сензорот испраќа сигнал до ESP32, кој потоа може да активира излез, како што е палење на LED или огласување на зумер. Ова упатство ќе ве води низ поставувањето на хардверот, поврзувањето и кодот потребни за системот да функционира правилно (во видео на 00:45).
Објаснување на хардверот
Овој проект вклучува неколку клучни компоненти. Микроконтролерот ESP32 служи како мозок на операцијата, обработувајќи ги податоците од сензорот и контролирајќи ги излезите. PIR сензорот за движење детектира движење со мерење на промените во инфрацрвеното зрачење. LED или зумерот обезбедува визуелно или звучно предупредување кога ќе се детектира движење.
ESP32 е опремен со Wi-Fi и Bluetooth, овозможувајќи проширени функционалности како што е поврзување со облак. PIR сензорот содржи леќа која го фокусира инфрацрвеното светло врз пироелектричен сензор, кој генерира напонски сигнал кога детектира промени во нивоата на инфрацрвено зрачење, што укажува на движење.
Детали од листот со податоци
| Производител | SunFounder |
|---|---|
| Број на дел | PIR сензор модул |
| Логички/IO напон | 3.3 V |
| Напон на напојување | 3.3 V |
| Излезна струја (по канал) | 20 mA макс. |
| Врвна струја (по канал) | 50 mA макс. |
| Насоки за PWM фреквенција | Н/П |
| Прагови на влезна логика | 0.3 V (ниско), 2.0 V (високо) |
| Пад на напон / RDS(on) / заситување | Н/П |
| Термички граници | 0 до 70 °C |
| Пакет | Модул |
| Белешки / варијанти | Прилагодлива чувствителност и доцнење |
- Обезбедете соодветно напојување (3.3 V) за да избегнете оштетување.
- Користете отпорник за LED за да ја ограничите струјата.
- Одржувајте правилно поврзување за да спречите кратки споеви.
- Прилагодете ги копчињата на PIR сензорот за чувствителност и доцнење по потреба.
- Тестирајте го сензорот во различни средини за оптимални перформанси.
Инструкции за поврзување

За да го поврзете PIR сензорот за движење и LED со ESP32, започнете со поврзување на VCC пинот на PIR сензорот со 3.3 V излезот на ESP32. Потоа, поврзете го пинот за заземјување на PIR сензорот со пин за заземјување на ESP32. Сигналниот пин (често означен како S) од PIR сензорот треба да се поврзе со GPIO пин 14 на ESP32.
За LED, поврзете ја подолгата нога (анода) на GPIO пин 26 преку отпорник од 220 Ом, и поврзете ја пократката нога (катода) на заземјување. Осигурете се дека сите врски се цврсти за да се обезбеди правилна функционалност. Ако користите зумер наместо LED, поврзете еден пин од зумерот на GPIO пин 26, а другиот на заземјување, заменувајќи го LED поставувањето.
Примери на код и објаснување
Во кодот, ги дефинираме броевите на пиновите за PIR сензорот и LED. Користиме const int pirPin = 14; за да го поставиме PIR пинот и const int ledPin = 26; за LED пинот. Овие константи осигуруваат дека броевите на пиновите остануваат непроменети во текот на извршувањето на програмата.
const int pirPin = 14; // бројот на pir пинот
const int ledPin = 26; // LED пин
Овој фрагмент ги иницијализира пиновите што ќе ги користиме. Во функцијата setup(), го конфигурираме PIR пинот како влез и LED пинот како излез. Ова поставување е клучно за читање на состојбата на сензорот и контролирање на LED.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // иницијализирај го pir пинот како влез
pinMode(ledPin, OUTPUT); // иницијализирај го LED пинот како излез
}
Во функцијата loop(), континуирано ја читаме состојбата на PIR сензорот користејќи digitalRead(pirPin);. Ако сензорот детектира движење (означено со HIGH состојба), го вклучуваме LED со користење на digitalWrite(ledPin, HIGH);. Во спротивно, го исклучуваме LED.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // вклучи LED
} else {
digitalWrite(ledPin, LOW); // исклучи LED
}
Оваа логика овозможува LED да реагира на движење детектирано од PIR сензорот. Осигурете се да го поставите целосниот код даден подолу во статијата за целосна функционалност.
Демонстрација / Што да очекувате
Откако сè е поставено и кодот е поставен, LED ќе светне кога PIR сензорот ќе детектира движење. Можете да го тестирате сензорот со движење пред него; LED треба веднаш да светне. Ако сензорот е поставен со доцнење, тој ќе остане вклучен за одреденото време пред повторно да се исклучи (во видео на 12:15).
Вообичаени грешки вклучуваат неправилно поврзување, што може да го спречи сензорот да функционира. Осигурајте се дека PIR сензорот е правилно напојуван и дека сигналниот пин е поврзан со точниот GPIO пин на ESP32. Прилагодувањето на копчињата за чувствителност и доцнење на PIR сензорот исто така може да помогне во оптимизирање на перформансите во зависност од вашата околина.
Временски ознаки на видеото
- 00:00 Почеток
- 1:54 Вовед во PIR сензорот
- 6:38 Објаснување на поврзувањето
- 10:21 Објаснување на Arduino кодот
- 12:45 Избор на ESP32 плоча и COM порт во Arduino IDE
- 14:27 Демонстрација и калибрација на 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
Resources & references
No resources yet.
Files📁
Datasheet (pdf)
-
RE200B_PRI motion sensor datasheet
RE200B_PRI_datasheet.pdf0.02 MB -
BISS0001 motion sensor chip datasheet
BISS0001_datasheet.pdf0.16 MB
Other files
-
HC-SR501 motion Sensor User's Manual
robojax-HC-SR501-motion-manual.pdf0.83 MB