Search Code

ESP32 Оқулық 21/55 - PIR қозғалыс сенсорымен адамды анықтау | SunFounder компаниясының ESP32 IoT оқу жиынтығы

ESP32 Оқулық 21/55 - PIR қозғалыс сенсорымен адамды анықтау | SunFounder компаниясының ESP32 IoT оқу жиынтығы

Бұл оқулықта біз ESP32-мен PIR қозғалыс сенсорын адамның болуын анықтау үшін қалай пайдалану керектігін үйренеміз. ESP32 - бұл Wi-Fi және Bluetooth мүмкіндіктерін ұсынатын қуатты микроконтроллер, бұл оны IoT жобалары үшін өте қолайлы етеді. PIR сенсорын біріктіру арқылы біз қозғалыс анықталған кезде жарықдиодты немесе дыбыстық сигналды іске қосатын жүйені құра аламыз, бұл адам белсенділігін бақылаудың қарапайым әрі тиімді тәсілін қамтамасыз етеді.

PIR СЕНСОРЫ RE 200B

PIR (Пассивті инфрақызыл) сенсоры қозғалысты заттардан, әсіресе адамдар сияқты жылы қандылардан шығатын инфрақызыл сәулеленуді сезу арқылы анықтайды. Қозғалыс анықталған кезде сенсор ESP32-ге сигнал жібереді, ол содан кейін жарықдиодты жағу немесе дыбыстық сигналды қосу сияқты шығысты іске қоса алады. Бұл оқулық жүйенің дұрыс жұмыс істеуі үшін қажетті аппараттық құралдарды орнату, сымдарды жалғау және код арқылы сізді бағыттайды (бейнеде 00:45).

ESP32-21_қозғалыс_сенсоры-схемасы

Аппараттық құралдар түсіндірмесі

Бұл жоба бірнеше негізгі компоненттерді қамтиды. 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 сенсорының тұтқаларын реттеңіз.
  • Оңтайлы өнімділік үшін сенсорды әртүрлі орталарда сынаңыз.

Сымдарды жалғау нұсқаулары

ESP32-21_motion_sensor-wiring

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 сенсорын демонстрациялау және калибрлеу

Суреттер

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
Тіл: 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);
  }
}

Ресурстар мен сілтемелер

Әлі ресурстар жоқ.

Файлдар📁

Техникалық сипаттама (pdf)

Басқа файлдар