ESP32 – podłączenie wyświetlacza OLED

Czas czytania: 2 min.

poprzednim artykule wyjaśniliśmy pokrótce czym jest ESP32 i do czego można go wykorzystać. Nauczyliśmy się również odczytywać dane z czujnika temperatury DS18B20 i wyświetlać wyniki pomiarów na monitorze szeregowym środowiska Arduino IDE, a także, dzięki stworzonemu serwerowi –  w przeglądarce internetowej. Zaprezentowaliśmy również jak prawidłowo skonfigurować środowisko Arduino IDE do poprawnej pracy z modułem ESP32. Dzisiaj pokażemy Wam, jak podłączyć wyświetlacz OLED oraz wyświetlić na nim wartości z poznanego wcześniej czujnika temperatury.

Czego będziemy potrzebować do wykonania projektu?

Do stworzenia projektu potrzebny nam będzie oczywiście sam moduł ESP32 oraz wyświetlacz OLED. My wykorzystaliśmy ekran OLED o przekątnej 1.3″ oparty na sterowniku SH1106. Polecamy stworzony przez nas zestaw z modułem ESP32, w którym można znaleźć wszystkie wymagane elementy.
Pełna lista wykorzystanych elementów poniżej:

Podłączenie wyświetlacza OLED do ESP32

Wyświetlacz komunikuje się z modułem poprzez interfejs I2C, my podłączyliśmy go do pinów 21 (SDA) oraz 22 (SCK). 

Wgranie bibliotek dla wyświetlacza OLED

W celu poprawnej obsługi wyświetlacza ze sterownikiem SH1106 należy zainstalować odpowiednie biblioteki w środowisku Arduino IDE. Wymagane biblioteki można znaleźć pod linkami:

 

Pobrane w formie paczki .zip biblioteki 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.

Programowanie modułu ESP32

Po odpowiednim wgraniu bibliotek dla wyświetlacza OLED możemy przystąpić do programowania modułu ESP32. Poniższy kod wyświetli na ekranie standardowe hasło “Hello World”.

				
					#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

Adafruit_SH1106 display(21, 22);

void setup()   {
  Serial.begin(115200);
  //definiujemy rodzaj użytego wyświetlacza oraz adres I2C
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
  //ustawiamy rozmiar czcionki, kolor, położenie kursora oraz wyświetlany tekst
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println("Hello World!");
  display.display();
}

void loop() {

}
				
			

Kod wgrywamy standardowo, poprzez kliknięcie przycisku “Wgraj”.

Po prawidłowym podłączeniu wyświetlacza i zastosowaniu kodu na ekranie powinien wyświetlić się napis Hello World.

Umieszczenie elementów na ekranie można dowolnie konfigurować poprzez zmianę położenia kursora. W tym celu należy w kodzie dopisać linię:

display.setCursor(X, Y);

gdzie X to położenie w poziomie, a Y w pionie. Wartość startowa / domyślna to (0, 0). 

Poniżej przykładowy kod ze zmienionym położeniem wyświetlanego napisu.

				
					#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

Adafruit_SH1106 display(21, 22);

void setup()   {
  Serial.begin(115200);
  //definiujemy rodzaj użytego wyświetlacza oraz adres I2C
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
  //ustawiamy rozmiar czcionki, kolor, położenie kursora oraz wyświetlany tekst
  display.setTextSize(2);
  display.setTextColor(WHITE);
  display.setCursor(25, 20);
  display.println("Botland");
  display.display();
}

void loop() {

}
				
			

Wyświetlanie danych z czujnika temperatury na ekranie OLED

Do podłączenia wyświetlacza należy wykorzystać elementy oraz biblioteki, z których korzystaliśmy w poprzednim artykule ESP32 – połączenie z czujnikiem temperatury DS18B20. Na schemacie prawidłowe połączenie czujnika DS18B20 oraz wyświetlacza OLED do modułu ESP32.

Poniższy kod pozwala odczytać dane z czujnika temperatury DS18B20 i wyświetlić je na wyświetlaczu OLED. 

Wielkość tekstu można dowolnie modyfikować zmieniając wartości w linii:

display.setTextSize();
				
					#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH1106.h>
#include <OneWire.h>
#include <DallasTemperature.h>
//definiujemy piny I2C, do których podłączony został wyświetlacz
#define OLED_SDA 21
#define OLED_SCL 22
//definiujemy pin, do którego podłączony został czujnik temperatury
const int oneWireBus = 4;

Adafruit_SH1106 display(21, 22);

//Komunikujemy, że będziemy korzysać z interfejsu OneWire
OneWire oneWire(oneWireBus);
//Komunikujemy, że czujnik będzie wykorzystywał interfejs OneWire
DallasTemperature sensors (&oneWire);

void setup()   {
  Serial.begin(115200);
  //definiujemy rodzaj użytego wyświetlacza oraz adres I2C
  display.begin(SH1106_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  display.display();
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();
  //Odczyt w stopniach celsjusza
  float temperatureC = sensors.getTempCByIndex(0);
  //Wypisanie danych na wyświetlaczu
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.setTextSize(1);
  display.println("Temperatura:");
  display.setTextSize(2);
  display.print(temperatureC);
  display.print(" ");
  display.cp437(true);
  display.write(167);
  display.println("C");
  display.display();
  display.clearDisplay();
  //Odczyt temperatury co 5 sekund
  delay(5000);
}
				
			
Podłączenie ESP32

Wkrótce pojawią się dalsze części artykułów związanych z połączeniem innych modułów i czujników wraz z ESP32.

Jak oceniasz ten wpis blogowy?

Kliknij gwiazdkę, aby go ocenić!

Średnia ocena: 4.6 / 5. Liczba głosów: 18

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:

Sandra Marcinkowska

Jak dobrać zasilacz do taśmy LED?

Dokładne obliczenie poboru mocy oraz wybór odpowiedniego zasilacza jest niezbędne, aby instalacja LED działała wydajnie i bezpiecznie. Przeczytaj nasz artykuł i dowiedz się co zrobić, by Twoje oświetlenie zawsze spełniało Twoje oczekiwania!

Mateusz Mróz

Jaki adapter Bluetooth wybrać?

Adapter Bluetooth to mały gadżet, który po podłączeniu do złącza USB komputera, umożliwia mu bezprzewodową komunikację z innymi urządzeniami. Sprawdź na jakie parametry techniczne należy zwrócić szczególną uwagę podczas wyboru konkretnego modelu adaptera Bluetooth.

Sandra Marcinkowska

Jak dobrać zasilacz do taśmy LED?

Dokładne obliczenie poboru mocy oraz wybór odpowiedniego zasilacza jest niezbędne, aby instalacja LED działała wydajnie i bezpiecznie. Przeczytaj nasz artykuł i dowiedz się co zrobić, by Twoje oświetlenie zawsze spełniało Twoje oczekiwania!

Mateusz Mróz

Jaki adapter Bluetooth wybrać?

Adapter Bluetooth to mały gadżet, który po podłączeniu do złącza USB komputera, umożliwia mu bezprzewodową komunikację z innymi urządzeniami. Sprawdź na jakie parametry techniczne należy zwrócić szczególną uwagę podczas wyboru konkretnego modelu adaptera Bluetooth.

Masz pytanie techniczne?
Napisz komentarz lub zapytaj na zaprzyjaźnionym forum o elektronice.

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 i Warunkom użytkowania.