Display ESP32
Setelah membahas eksternal sensor, sekarang akan membahas tentang display. Display sendiri merupakan suatu komponen tang berguna untuk menyampaikan informasi, seperti tulisan atau gambar. pada kali ini, aku akan berbagi pengalaman menggunakan OLED (salah satu jenis komponen display).
sebelumnya, ada beberapa yang harus dipersiapkan :
- OLED
- ESP 32
- jumper wires
- laptop
- microUSB
- breadboard
- BME280 (hanya untuk variasi pengaplikasian)
setelah menyediakan beberapa hal tersebut, aku harus menginstal beberapa library agar beberapa code khusus untuk display dapat dijalankan. cara untuk menginstal adalah klik Sketch > Include Library > Manage Libraries (lalu masukkan yang akan diinstal). berikut beberapa yang harus diinstal :
setelah menginstal beberapa library tersebut, barulah aku mulai permainan. Seperti biasa, aku merakit beberapa komponen pada breadboard. rakitlah komponen seperti gambar di bawah ini.
setelah selesai merakit, aku mulai untuk memasukkan coding hello world (sebagai pemanasan dan pengecekan apakah komponen berjalan dengan baik). di bawah ini adalah code yang aku gunakan.
/*********
Rui Santos
Complete project details at https://randomnerdtutorials.com
*********/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 10);
// Display static text
display.println("Hello, world!");
display.display();
}
void loop() {
}
setelah melakukan pengecekan, selanjutnya aku mengombinasikan antara BME280 dan OLED. seperti biasa, rangkai komponen terlebih dahulu seperti gambar di bawah.
setelah merangkai, aku mulai memasukkan coding berikut sehingga display dapat memunculkan hasil dari sensor (sehingga bila ingin mengetahui hasil dari sensor bisa langsung lewat display tanpa menggunakan serial monitor)
/*
Rui Santos
Complete project details at https://RandomNerdTutorials.com/esp32-i2c-communication-arduino-ide/
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
*/
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_BME280 bme;
void setup() {
Serial.begin(115200);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
bool status = bme.begin(0x76);
if (!status) {
Serial.println("Could not find a valid BME280 sensor, check wiring!");
while (1);
}
delay(2000);
display.clearDisplay();
display.setTextColor(WHITE);
}
void loop() {
display.clearDisplay();
// display temperature
display.setTextSize(1);
display.setCursor(0,0);
display.print("Temperature: ");
display.setTextSize(2);
display.setCursor(0,10);
display.print(String(bme.readTemperature()));
display.print(" ");
display.setTextSize(1);
display.cp437(true);
display.write(167);
display.setTextSize(2);
display.print("C");
// display humidity
display.setTextSize(1);
display.setCursor(0, 35);
display.print("Humidity: ");
display.setTextSize(2);
display.setCursor(0, 45);
display.print(String(bme.readHumidity()));
display.print(" %");
display.display();
delay(1000);
}
beberapa pengalaman yang aku dapat adalah jangan sampai salah menancapkan jumper wires ke pin (karena bila salah, program tidak akan berjalan). serta jangan lupa juga untuk mengece code pemrograman apakah sudah benar atau belum. hubungan antara sensor dan display adalah paralel dan pastikan pin sudah benar. karena dicombinasi dengan sensor, jangan lupa instal library yang dibutuhkan.