ESP32 – połączenie z czujnikiem ruchu PIR SR501 i ekranem OLED

Czas czytania: 2 min.

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 <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
//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: 5 / 5. Liczba głosów: 2

Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.

Podziel się:

Picture of Grzegorz Galuba

Grzegorz Galuba

GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.

Zobacz więcej:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Ze względów bezpieczeństwa wymagane jest korzystanie z usługi Google reCAPTCHA, która podlega Polityce Prywatności oraz Warunkom użytkowania.