Arduino ESP8266 - Tutorial Pakai OLED

OLED adalah salah satu modul display yang bisa digunakan untuk menampilkan sebuah informasi secara langsung. Pada postingan kali ini, kita akan menggunakan modul display OLED pada kontroler ESP8266. Coding dibangun dengan framework Arduino. Platform yang digunakan untuk compiling adalah Arduino IDE.

Alasan pemilihin modul display OLED adalah karena modul ini hanya membutuhkan 4 pin, yaitu VCC, GND, SDA, dan SCL. Secara jumlah pin, tentunya OLED lebih irit dibandingkan LCD biasa yang menggunakan 16 pin. Sehingga OLED sangat cocok digunakan pada kontroler ESP8266 yang pin nya tidak banyak.

Sebelum masuk ke teknis, saya akan memberikan informasi singkat mengenai alat yang saya gunakan. Saya menggunakan PC dengan OS Windows 10 untuk melakukan compiling firmware. IDE yang digunakan adalah Arduino IDE versi 1.8.9. Dan versi board ESP8266 (versi framework) yang digunakan adalah 2.7.4. Resolusi OLED yang dipakai adalah 128x64.

Di post ini, saya tidak akan memberikan konfigurasi pin karena akan saya anggap teman-teman sekalian sudah bisa melakukan konfigurasinya sendiri tergantung kontroler yang digunakan. Saatnya kita akan mulai mempersiapkan environment dan coding. 

1) Install library yang dibutuhkan

Sebelum memulai coding, kita perlu menginstall 3 library yang digunakan untuk menampilkan data ke OLED. Ketiga library itu adalah: 

  • Adafuit SSD1306 (saya pakai versi 2.5.7)
  • Adafruit GFX Library (saya pakai versi 1.11.7)
  • Adafruit BusIO (saya pakai versi 1.14.1)

2) Coba example library

Selanjutnya kita akan mencoba example dari library yang ada. Untuk membuka example, bisa pilih menu berikut: File > Examples > Adafruit SSD1306 > ssd1306_128x64_i2c

Jika example sudah terbuka, kita bisa upload code tersebut ke board yang kita miliki. Dalam kasus saya, entah kenapa variable SCREEN_ADDRESS perlu diubah menjadi 0x3C agar bisa menampilkan data di OLED. Jika hal ini terjadi juga pada teman-teman, ini tidak masalah. Kita hanya perlu mengingat address OLEDnya saja untuk melakukan coding. Jika display berhasil menampilkan data sesuai coding example, artinya modul display bisa digunakan. 

3) Coding

Kita tinggal ngoding mau mengeluarkan infomasi apa ke display.

 

Di bawah ini adalah contoh coding yang saya buat:


display.ino

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

#define OLED_RESET     -1
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void SetupDisplay(void) {
    if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
}

void Display(String data) {
    display.clearDisplay();
    display.setTextSize(2);
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(0, 0);
    display.println(data);
    display.display();
}


maincode.ino

int i = 0;

void setup() {
    Serial.begin(9600);
    SetupDisplay();
}

void loop() {
    while (i < 1000){
        Display((String) i++);
        delay(100);
    }
}


Coding yang saya buat ini merupakan coding yang tidak bermakna. Berjalan hanya menampilkan angka dari 1 sampai 999. Jika dilihat lebih dalam, saya membagi coding menjadi dua file untuk memisahkan file khusus untuk display (display.ino) dan file khusus untuk main code (maincode.ino).

Sekian pembahasan kali ini tentang cara menggunakan OLED. Nantikan postingan selanjutnya. Selamat membaca dan mencoba.


Salam Share,


Funtastic Share

Komentar