Samouczek ESP32 21/55 — Wykrywanie człowieka za pomocą czujnika ruchu PIR | Zestaw do nauki IoT ESP32 od SunFounder
W tym samouczku nauczymy się, jak używać czujnika ruchu PIR z ESP32 do wykrywania obecności człowieka. ESP32 to wydajny mikrokontroler oferujący zarówno łączność Wi-Fi, jak i Bluetooth, co czyni go idealnym do projektów IoT. Integrując czujnik PIR, możemy zbudować system, który aktywuje diodę LED lub brzęczyk za każdym razem, gdy wykryty zostanie ruch, zapewniając prosty, ale skuteczny sposób monitorowania ludzkiej aktywności.
Czujnik PIR (pasywna podczerwień) wykrywa ruch, rejestrując promieniowanie podczerwone emitowane przez obiekty, szczególnie te o ciepłym ciele, takie jak ludzie. Gdy wykryty zostanie ruch, czujnik wysyła sygnał do ESP32, który może następnie wyzwolić wyjście, takie jak zapalenie diody LED lub uruchomienie brzęczyka. Ten samouczek przeprowadzi Cię przez konfigurację sprzętu, okablowanie i kod potrzebne do prawidłowego działania systemu (na filmie w 00:45).
Objaśnienie sprzętu
Ten projekt obejmuje kilka kluczowych komponentów. Mikrokontroler ESP32 służy jako mózg operacji, przetwarzając dane z czujników i sterując wyjściami. Czujnik ruchu PIR wykrywa ruch, mierząc zmiany w promieniowaniu podczerwonym. Dioda LED lub brzęczyk zapewnia wizualne lub dźwiękowe ostrzeżenie po wykryciu ruchu.
ESP32 jest wyposażony w Wi-Fi i Bluetooth, co pozwala na rozszerzone funkcje, takie jak łączność z chmurą. Czujnik PIR zawiera soczewkę, która skupia światło podczerwone na czujniku piroelektrycznym, który generuje sygnał napięcia, gdy wykryje zmiany poziomów podczerwieni, wskazujące na ruch.
Szczegóły z karty katalogowej
| Producent | SunFounder |
|---|---|
| Numer części | Moduł czujnika PIR |
| Napięcie logiki/IO | 3,3 V |
| Napięcie zasilania | 3,3 V |
| Prąd wyjściowy (na kanał) | 20 mA maks. |
| Prąd szczytowy (na kanał) | 50 mA maks. |
| Zalecana częstotliwość PWM | Nie dotyczy |
| Progi logiki wejściowej | 0,3 V (niski), 2,0 V (wysoki) |
| Spadek napięcia / RDS(on) / nasycenie | Nie dotyczy |
| Ograniczenia termiczne | 0 do 70 °C |
| Obudowa | Moduł |
| Uwagi / warianty | Regulowana czułość i opóźnienie |
- Zapewnij prawidłowe zasilanie (3,3 V), aby uniknąć uszkodzeń.
- Użyj rezystora dla diody LED, aby ograniczyć prąd.
- Zachowaj prawidłowe okablowanie, aby zapobiec zwarciom.
- Wyreguluj pokrętła czujnika PIR pod kątem czułości i opóźnienia w razie potrzeby.
- Przetestuj czujnik w różnych środowiskach, aby uzyskać optymalną wydajność.
Instrukcje okablowania

Aby podłączyć czujnik ruchu PIR i diodę LED do ESP32, zacznij od połączenia pinu VCC czujnika PIR z wyjściem 3,3 V na ESP32. Następnie podłącz pin masy czujnika PIR do pinu masy na ESP32. Pin sygnałowy (często oznaczony jako S) z czujnika PIR powinien być podłączony do pinu GPIO 14 na ESP32.
Dla diody LED podłącz dłuższą nóżkę (anodę) do pinu GPIO 26 przez rezystor 220 omów, a krótszą nóżkę (katodę) do masy. Upewnij się, że wszystkie połączenia są pewne, aby zapewnić prawidłowe działanie. Jeśli używasz brzęczyka zamiast diody LED, podłącz jeden pin brzęczyka do pinu GPIO 26, a drugi do masy, zastępując konfigurację z diodą LED.
Przykłady kodu i omówienie
W kodzie definiujemy numery pinów dla czujnika PIR i diody LED. Używamy const int pirPin = 14; aby ustawić pin PIR i const int ledPin = 26; dla pinu diody LED. Te stałe zapewniają, że numery pinów pozostaną niezmienione podczas wykonywania programu.
const int pirPin = 14; // numer pinu PIR
const int ledPin = 26; // pin diody LED
Ten fragment inicjalizuje piny, których będziemy używać. W funkcji setup() konfigurujemy pin PIR jako wejście, a pin diody LED jako wyjście. Ta konfiguracja jest kluczowa do odczytu stanu czujnika i sterowania diodą LED.
void setup() {
Serial.begin(115200);
pinMode(pirPin, INPUT); // inicjalizacja pinu PIR jako wejście
pinMode(ledPin, OUTPUT); // inicjalizacja pinu diody LED jako wyjście
}
W funkcji loop() ciągle odczytujemy stan czujnika PIR za pomocą digitalRead(pirPin);. Jeśli czujnik wykryje ruch (wskazywany przez stan WYSOKI), włączamy diodę LED za pomocą digitalWrite(ledPin, HIGH);. W przeciwnym razie wyłączamy diodę LED.
if (pirState == HIGH) {
digitalWrite(ledPin, HIGH); // włącz diodę LED
} else {
digitalWrite(ledPin, LOW); // wyłącz diodę LED
}
Ta logika pozwala diodzie LED reagować na ruch wykryty przez czujnik PIR. Upewnij się, że wgrałeś pełny kod podany poniżej artykułu, aby uzyskać pełną funkcjonalność.
Demonstracja / Czego się spodziewać
Po skonfigurowaniu wszystkiego i wgraniu kodu dioda LED zaświeci się po wykryciu ruchu przez czujnik PIR. Możesz przetestować czujnik, poruszając się przed nim; dioda LED powinna zapalić się natychmiast. Jeśli czujnik jest ustawiony z opóźnieniem, pozostanie włączony przez określony czas, zanim zgaśnie ponownie (na filmie w 12:15).
Typowe pułapki obejmują nieprawidłowe podłączenie, które może uniemożliwić działanie czujnika. Upewnij się, że czujnik PIR jest prawidłowo zasilany, a pin sygnałowy jest podłączony do właściwego pinu GPIO na ESP32. Dostosowanie pokręteł czułości i opóźnienia na czujniku PIR może również pomóc zoptymalizować działanie w zależności od środowiska.
Znaczniki czasowe wideo
- 00:00 Start
- 1:54 Wprowadzenie do czujnika PIR
- 6:38 Wyjaśnienie podłączenia
- 10:21 Wyjaśnienie kodu Arduino
- 12:45 Wybór płyty ESP32 i portu COM w Arduino IDE
- 14:27 Demonstracja i kalibracja czujnika 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
Zasoby i odniesienia
Brak zasobów.
Pliki📁
Karta katalogowa (pdf)
-
RE200B_PRI motion sensor datasheet
RE200B_PRI_datasheet.pdf0.02 MB -
BISS0001 motion sensor chip datasheet
BISS0001_datasheet.pdf0.16 MB
Inne pliki
-
Podręcznik użytkownika czujnika ruchu HC-SR501
robojax-HC-SR501-motion-manual.pdf0.83 MB