Пребарување код

ESP32 Упатство 21/55 - Детектирање на човек со PIR сензор за движење | SunFounder's ESP32 IoT комплет за учење

ESP32 Упатство 21/55 - Детектирање на човек со PIR сензор за движење | SunFounder's ESP32 IoT комплет за учење

Во ова упатство, ќе научиме како да користиме PIR сензор за движење со ESP32 за да детектираме присуство на луѓе. ESP32 е моќен микроконтролер кој нуди и Wi-Fi и Bluetooth можности, што го прави идеален за IoT проекти. Со интегрирање на PIR сензор, можеме да изградиме систем кој активира LED или зумер секогаш кога ќе се детектира движење, обезбедувајќи едноставен но ефикасен начин за следење на човечка активност.

PIR СЕНЗОР RE 200B

PIR (Пасивен инфрацрвен) сензорот детектира движење со чувствување на инфрацрвеното зрачење емитирано од објекти, особено од оние со топло тело како луѓето. Кога ќе се детектира движење, сензорот испраќа сигнал до ESP32, кој потоа може да активира излез, како што е палење на LED или огласување на зумер. Ова упатство ќе ве води низ поставувањето на хардверот, поврзувањето и кодот потребни за системот да функционира правилно (во видео на 00:45).

ESP32-21_сензор_за_движење-шема

Објаснување на хардверот

Овој проект вклучува неколку клучни компоненти. Микроконтролерот 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 сензорот за чувствителност и доцнење по потреба.
  • Тестирајте го сензорот во различни средини за оптимални перформанси.

Инструкции за поврзување

ESP32-21_motion_sensor-wiring

За да го поврзете 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 сензорот

Слики

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)

Други датотеки