ESP32 Оқулық 21/55 - PIR қозғалыс сенсорымен адамды анықтау | SunFounder компаниясының ESP32 IoT оқу жиынтығы
Бұл оқулықта біз ESP32-мен PIR қозғалыс сенсорын адамның болуын анықтау үшін қалай пайдалану керектігін үйренеміз. ESP32 - бұл Wi-Fi және Bluetooth мүмкіндіктерін ұсынатын қуатты микроконтроллер, бұл оны IoT жобалары үшін өте қолайлы етеді. PIR сенсорын біріктіру арқылы біз қозғалыс анықталған кезде жарықдиодты немесе дыбыстық сигналды іске қосатын жүйені құра аламыз, бұл адам белсенділігін бақылаудың қарапайым әрі тиімді тәсілін қамтамасыз етеді.
PIR (Пассивті инфрақызыл) сенсоры қозғалысты заттардан, әсіресе адамдар сияқты жылы қандылардан шығатын инфрақызыл сәулеленуді сезу арқылы анықтайды. Қозғалыс анықталған кезде сенсор ESP32-ге сигнал жібереді, ол содан кейін жарықдиодты жағу немесе дыбыстық сигналды қосу сияқты шығысты іске қоса алады. Бұл оқулық жүйенің дұрыс жұмыс істеуі үшін қажетті аппараттық құралдарды орнату, сымдарды жалғау және код арқылы сізді бағыттайды (бейнеде 00:45).
Аппараттық құралдар түсіндірмесі
Бұл жоба бірнеше негізгі компоненттерді қамтиды. ESP32 микроконтроллері операцияның миы ретінде қызмет етеді, сенсор деректерін өңдейді және шығыстарды басқарады. PIR қозғалыс сенсоры инфрақызыл сәулеленудегі өзгерістерді өлшеу арқылы қозғалысты анықтайды. Жарықдиод немесе дыбыстық сигнал қозғалыс анықталған кезде көрнекі немесе естілетін ескертуді қамтамасыз етеді.
ESP32 Wi-Fi және Bluetooth-пен жабдықталған, бұл бұлттық байланыс сияқты кеңейтілген функцияларға мүмкіндік береді. PIR сенсорында инфрақызыл жарықты пироэлектрлік сенсорға шоғырландыратын линза бар, ол инфрақызыл деңгейлердегі өзгерістерді анықтаған кезде кернеу сигналын жасайды, бұл қозғалысты көрсетеді.
Деректер парағының мәліметтері
| Өндіруші | SunFounder |
|---|---|
| Бөлшек нөмірі | PIR сенсор модулі |
| Логика/IO кернеуі | 3.3 В |
| Қоректендіру кернеуі | 3.3 В |
| Шығыс тогы (арнаға) | макс. 20 мА |
| Ең жоғары ток (арнаға) | макс. 50 мА |
| PWM жиілігі бойынша нұсқау | Жоқ |
| Кіріс логикалық шектері | 0.3 В (төмен), 2.0 В (жоғары) |
| Кернеудің төмендеуі / RDS(on) / қанығу | Жоқ |
| Жылулық шектер | 0-ден 70 °C-қа дейін |
| Қаптама | Модуль |
| Ескертулер / нұсқалар | Реттелетін сезімталдық және кідіріс |
- Зақымдануды болдырмау үшін дұрыс қоректендіруді (3.3 В) қамтамасыз етіңіз.
- Токты шектеу үшін жарықдиод үшін резисторды қолданыңыз.
- Қысқа тұйықталуды болдырмау үшін сымдарды дұрыс жалғаңыз.
- Қажетінше сезімталдық пен кідіріс үшін PIR сенсорының тұтқаларын реттеңіз.
- Оңтайлы өнімділік үшін сенсорды әртүрлі орталарда сынаңыз.
Сымдарды жалғау нұсқаулары

PIR қозғалыс сенсоры мен жарықдиодты ESP32-ге жалғау үшін алдымен PIR сенсорының VCC түйреуішін ESP32-дегі 3.3 В шығысына қосыңыз. Әрі қарай, PIR сенсорының жер түйреуішін ESP32-дегі жер түйреуішіне қосыңыз. PIR сенсорының сигнал түйреуіші (көбінесе S деп белгіленеді) ESP32-дегі GPIO 14 түйреуішіне қосылуы керек.
Жарықдиод үшін ұзын аяғын (анод) 220 Ом резистор арқылы GPIO 26 түйреуішіне қосыңыз, ал қысқа аяғын (катод) жерге қосыңыз. Дұрыс жұмыс істеуін қамтамасыз ету үшін барлық қосылымдардың сенімді екеніне көз жеткізіңіз. Жарықдиодтың орнына дыбыстық сигналды қолдансаңыз, дыбыстық сигналдың бір түйреуішін GPIO 26-ға, ал екіншісін жерге қосыңыз, жарықдиод қондырғысын ауыстырыңыз.
Код мысалдары және түсіндірме
Кодта біз PIR сенсоры мен жарықдиод үшін түйреуіш нөмірлерін анықтаймыз. Біз PIR түйреуішін орнату үшін const int pirPin = 14; және жарықдиод түйреуіші үшін const int ledPin = 26; қолданамыз. Бұл тұрақтылар бағдарламаның орындалуы кезінде түйреуіш нөмірлерінің өзгеріссіз қалуын қамтамасыз етеді.
const int pirPin = 14; // pir түйреуішінің нөмірі
const int ledPin = 26; // жарықдиод түйреуіші
Бұл үзінді біз қолданатын түйреуіштерді инициализациялайды. setup() функциясында біз PIR түйреуішін кіріс ретінде және жарықдиод түйреуішін шығыс ретінде конфигурациялаймыз. Бұл орнату сенсордың күйін оқу және жарықдиодты басқару үшін өте маңызды.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // pir түйреуішін кіріс ретінде инициализациялау
pinMode(ledPin, OUTPUT); // жарықдиод түйреуішін шығыс ретінде инициализациялау
}
loop() функциясында біз digitalRead(pirPin); көмегімен PIR сенсорының күйін үздіксіз оқимыз. Егер сенсор қозғалысты анықтаса (жоғары күймен көрсетіледі), біз digitalWrite(ledPin, HIGH); қолданып жарықдиодты қосамыз. Әйтпесе, жарықдиодты өшіреміз.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // жарықдиодты қосу
} else {
digitalWrite(ledPin, LOW); // жарықдиодты өшіру
}
Бұл логика жарықдиодтың PIR сенсоры анықтаған қозғалысқа жауап беруіне мүмкіндік береді. Толық функционалдылық үшін мақаланың астында берілген толық кодты жүктеп салыңыз.
Демонстрация / Не күтуге болады
Барлығы орнатылып, код жүктелгеннен кейін PIR сенсоры қозғалысты анықтаған кезде жарықдиод жанып тұрады. Сенсорды оның алдында қозғалу арқылы сынай аласыз; жарықдиод бірден жанып кетуі керек. Егер сенсор кідіріске орнатылған болса, ол қайта өшірілмей тұрып белгіленген уақыт бойы қосулы тұрады (бейнеде 12:15).
Жиі кездесетін қателіктерге дұрыс емес сым жалғау жатады, бұл сенсордың жұмыс істеуіне кедергі келтіруі мүмкін. PIR сенсорының дұрыс қоректендірілгеніне және сигнал түйреуішінің ESP32-дегі дұрыс GPIO түйреуішіне қосылғанына көз жеткізіңіз. PIR сенсорындағы сезімталдық пен кідіріс тетіктерін реттеу де қоршаған ортаға байланысты өнімділікті оңтайландыруға көмектеседі.
Бейне уақыт белгілері
- 00:00 Бастау
- 1:54 PIR сенсорына кіріспе
- 6:38 Сым жалғау түсіндірілді
- 10:21 Arduino коды түсіндірілді
- 12:45 Arduino IDE-де ESP32 платасын және COM портын таңдау
- 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
Ресурстар мен сілтемелер
Әлі ресурстар жоқ.
Файлдар📁
Техникалық сипаттама (pdf)
-
RE200B_PRI motion sensor datasheet
RE200B_PRI_datasheet.pdf0.02 MB -
BISS0001 motion sensor chip datasheet
BISS0001_datasheet.pdf0.16 MB
Басқа файлдар
-
HC-SR501 қозғалыс сенсорының пайдаланушы нұсқаулығы
robojax-HC-SR501-motion-manual.pdf0.83 MB