Spis treści:
Kolejny poradnik z serii ESP32, tym razem podłączymy do niego czujnik ruchu PIR oraz wyświetlacz OLED. Czujnik ruchu możemy z powodzeniem wykorzystywać jako element mający za zadanie np. włączyć światło lub załączyć alarm po wykryciu ruchu. Wykorzystamy również wyświetlacz OLED, którego używaliśmy również w poprzednich artykułach, na którym wyświetlimy informację po wykryciu ruchu. W tym artykule użyjemy również diody LED, która będzie załączana po wykryciu ruchu przez czujnik PIR SR501.
Co będzie potrzebne do stworzenia projektu?
Do wykonania projektu potrzebować będziemy modułu ESP32, czujnika PIR SR501, diody LED oraz wyświetlacza OLED. Wszystkie niezbędne akcesoria znaleźć można również w przygotowanym przez nas zestawie z modułem ESP32.
Pełna lista wykorzystanych elementów znajduje się poniżej:
Podłączenie elementów
Czujnik ruchu PIR SR501 ze względu na swoją konstrukcję nie może zostać wpięty w płytkę stykową, dlatego połączyliśmy go z ESP32 za pomocą przewodów żeńsko-męskich. PIR komunikuje się poprzez pin cyfrowy. Zasilany jest napięciem 5 V, jednak może być zasilany również przez pin na zworce, do którego podciągnięty został regulator napięcia 3,3 V. Czujnik podłączamy do pinu 4. Diodę LED należy połączyć z wykorzystaniem rezystora 330 Ω do pinu 2, natomiast wyświetlacz do pinów I2C: 21 oraz 22.
Wymagane biblioteki
W tym projekcie wymagane są jedynie biblioteki do poprawnego działania wyświetlacza OLED ze sterownikiem SH1106:
Biblioteki pobrane w formie paczki .zip instalujemy w środowisku Arduino IDE.
Pojawi się okno, gdzie należy wyszukać lokalizację pobranych paczek, a następnie wybrać bibliotekę .zip i wybrać przycisk Otwórz.
Program dla modułu ESP32
Po poprawnym podłączeniu modułów do ESP32 i wgraniu bibliotek dla wyświetlacza OLED można przystąpić do programowania układu.
Poniższy kod sprawi, że po wykryciu ruchu zostanie zaświecona dioda LED oraz pojawi się odpowiedni komunikat na ekranie OLED.
#include
#include
#include
#include
//definiujemy piny I2C, do których podłączony został wyświetlacz
#define OLED_SDA 21
#define OLED_SCL 22
int inputPin = 4; //definiujemy pin, do którego podłączony został czujnik ruchu
Adafruit_SH1106 display(21, 22); //definiujemy piny, do których podłączony został wyświetlacz
void setup() {
pinMode(inputPin, INPUT); //deklarujemy pin 4 jako INPUT
pinMode(2, OUTPUT); //definiujemy pin, do którego podłączona została dioda LED i ustawiamy go na OUTPUT
display.begin(SH1106_SWITCHCAPVCC, 0x3C); //definiujemy rodzaj użytego wyświetlacza oraz adres I2C
}
void loop() {
int val = digitalRead(inputPin);
//gdy na pinie 4 pojawi się stan wysoki, pin 2 przejdzie w stan wysoki i na ekranie pojawi się stosowny komunikat
if (val == HIGH) {
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Wykryto ruch!");
display.display();
display.clearDisplay();
digitalWrite(2, HIGH);
}
//gdy na pinie 4 pojawi się stan niski, pin 2 przejdzie w stan niski i na ekranie pojawi się stosowny komunikat
else {
display.setTextColor(WHITE);
display.setCursor(0, 0);
display.println("Nie wykryto ruchu!");
display.display();
display.clearDisplay();
digitalWrite(2, LOW);
}
delay(1000);
}
Efekt końcowy:
Zapraszamy również do pozostałych artykułów na naszym blogu!
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.3 / 5. Liczba głosów: 3
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.
Jedna odpowiedź
Wszystko fajnie poza tym, że w poradniku nie ma mowy o lutowaniu zworki na czujniku ruchu co jest niestety konieczne, bo dostępna w sklepie bootland wersja czujnika nie posiada wlutowanych bocznych styków (są tylko pola lutownicze).