Penulisan kali ini akan menunjukkan bagaimana cara untuk menggunakan paparan OLED jenis SSD1306 bersaiz 0.96 inci yang terbina di atas papan Wemos Lolin32 ESP32 menggunakan Arduino IDE. Kita akan cuba untuk menulis perkataan di atas paparan OLED ini serta melakukan penetapan saiz perkataannya. – Pengenalan –

Oleh Muhammad Ilyasaa dalam Tutorial Arduino
Tahap Kesukaran : Baru Mula Belajar

Ikuti tutorial ini terlebih dahulu >> IoT ESP32 Persediaan Dari Segi Hardware Dan Software.

PERHATIAN : Versi Arduino IDE yang digunakan untuk penulisan tutorial ini adalah Arduino IDE Versi 1.8.4. Kami tidak menjamin penulisan tutorial ini berfungsi pada versi Arduino IDE yang lain.

>> Muat turun Arduino IDE Versi 1.8.4 di sini <<

Kami persembahkan bacaan di laman NADI Eleczone Solutions ini kepada para pelajar, mahasiswa dan peminat teknologi, demi kepentingan perkembangan ilmu teknologi ilmiah dan amaliah di Malaysia tercinta kita.
Semoga diberkahi dan diredhai Allah Subhanahu wa Ta’ala – Amin!

>> PEngenalan <<

Penulisan kali ini akan menunjukkan bagaimana cara untuk menggunakan paparan OLED jenis SSD1306 bersaiz 0.96 inci yang terbina di atas papan Wemos Lolin32 ESP32 menggunakan Arduino IDE. Kita akan cuba untuk menulis perkataan di atas paparan OLED ini serta melakukan penetapan saiz perkataannya.

>> tentang paparan OLED  <<

Paparan OLED yang terbina di atas papan Wemos Lolin32 ini adalah jenis model SSD1306 yang mempunyai satu warna, paparannya bersaiz 0.96 inci dengan 128×64 piksel seperti yang ditunjukkan pada gambar di atas.

Paparan OLED jenis ini tidak memerlukan lampu latar sepertimana LCD 16×2 yang biasa digunakan di luar sana. Oleh itu, warna putih (yang menghasilkan perkataan pada gambar di atas) menampakkan kontras yang sangat baik pada latar bewarna hitam. Selain itu, tenaga hanya digunakan apabila pikselnya dinyalakan (mengeluarkan warna putih). Sedikit piksel yang dinyalakan, sedikitlah tenaga yang digunakan.

Ini bermakna paparan OLED menggunakan lebih sedikit tenaga jika dibandingkan dengan paparan paparan jenis lain.

>> pin OLED pada wemos lolin32 esp32 <<

Seperti yang disebutkan sebelum ini, paparan OLED berkomunikasi dengan ESP32 menggunakan protokol komunikasi I2C. Ia menggunakan pin berikut untuk SDA serta SCL :

  • Pin SDA OLED -> GPIO 5 ESP32
  • Pin SCL OLED -> GPIO 4 ESP32

>> memasang PUSTAKA OLED jenis SSD1306 <<

Terdapat beberapa pustaka (Library) untuk mengawal paparan OLED dengan ESP32 yang boleh didapati di internet. Dalam penulisan ini, kita akan menggunakan dua pustaka yang agak popular dari Adafruit iaitu Adafruit_SSD1306 library dan Adafruit_GFX library.

Buka Arduino IDE dan pergi ke Sketch Include Library > Manage Libraries. Buat carian SSD1306 di kotak carian dan pasang pustaka SSD1306 library from Adafruit.

Selepas memasang pustaka SSD1306 dari Adafruit, buat carian GFX di kotak carian dan pasang pustaka GFX library from Adafruit.

Setelah selesai memasang kedua dua pustaka yang diperlukan, tutup dan buka semula Arduino IDE anda bagi membolehkan pustaka bersedia untuk digunakan.

>> muat naik kod ke papan Wemos Lolin32 <<

Buka perisian Arduino IDE dan copy paste kod di bawah ke Arduino IDE anda.

/* Programmer : Muhammad Ilyasaa Bin Abdul Rahman
 * More info at https://www.nadieleczone.com.my
 */

// Bahagian Pustaka
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Tetapan Paparan OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
const int oledSDA = 5;
const int oledSCL = 4;

void setup() 
{
  // Tetapan untuk OLED
  Wire.begin(oledSDA, oledSCL);
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C, false, false)) 
  {
    Serial.println(F("SSD1306 Tiada Dalam Carian"));
    for(;;);
  }
 
  // Kosongkan Paparan
  display.clearDisplay();
  display.display(); // Arahan dilaksanakan  
  
  // Menetapkan Saiz Perkataan
  display.setTextSize(1);
  display.display(); // Arahan dilaksanakan

  // Menetapkan Warna Perkataan
  display.setTextColor(WHITE);
  display.display(); // Arahan dilaksanakan

  // Menetapkan posisi pixel
  display.setCursor(0, 0);
  display.display(); // Arahan dilaksanakan
  
  // Memaparkan perkataan
  display.println("Program Pertama Saya");
  display.display(); // Arahan dilaksanakan
}
 
void loop() 
{
  
}

Hubungkan papan Wemos Lolin32 ESP32 ke komputer menggunakan wayar USB. Pilih jenis papan ESP32 anda (dalam penulisan ini, jenis papan yang dipilih adalah WEMOS LOLIN32).

Kemudian, pilih Port yang betul. Pemilihan Port yang salah akan menyebabkan kod gagal dimuat naik. Jika anda tidak dapat melihat Port COM yang memberi tindak balas kepada papan ESP32 di Arduino IDE anda, anda perlu memasang pemacu CP210x USB to UART Bridge VCP terlebih dahulu. Antara satu komputer dengan komputer yang lain akan memberikan nombor COM yang berbeza atau mungkin sama dengan gambar di bawah.

Tekan butang Upload di Arduino IDE. Selepas menekan butang, kod akan mula di compile dan seterusnya mula untuk dimuat naik ke papan Wemos Lolin32 ESP32 anda.

Jika kesemua proses berjalan dengan lancar, anda akan melihat mesej Done uploading yang menandakan proses memuat naik kod ke papan ESP32 sudah berjaya dan selesai.

Sepatutnya sejurus selesai berjaya memasukkan kod, perkataan Program Pertama Saya akan terus terpapar pada paparan OLED. Jika tiada perkataan yang terpapar, tekan butang EN (untuk reset) yang terdapat pada papan Wemos Lolin32 ESP32. Perkataan Program Pertama Saya akan terpapar pada paparan OLED seperti gambar di bawah.

>> jom kita lihat bagaimana kod berfungsi? <<

Memasukkan Pustaka

Pertama, kita perlu memasukkan pustaka yang diperlukan. Pustaka Wire diperlukan bagi membolehkan komunikasi I2C dilakukan manakala pustaka daripada Adafruit (Adafruit GFX dan Adafruit SSD1306) diperlukan untuk menulis ke paparan OLED.

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

Memulakan Paparan OLED

Pertama kita akan menetapkan pixel paparan OLED yang kita gunakan. Untuk papan Wemos Lolin32 ESP32 ini, paparan OLED yang digunakan adalah 128 × 64 pixel. Tetapan pixel ini akan diletakkan di dalam pemboleh ubah SCREEN_WIDTH dan SCREEN_HEIGHT.

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64

Seterusnya, tetapkan pixel bersama sama protokol komunikasi I2C (&Wire) dilakukan melalui fungsi display().

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

Parameter (-1) di dalam fungsi display() di atas bermaksud bahawa paparan OLED yang berada di atas Wemos Lolin32 ini tidak mempunyai pin RESET.

Di dalam fungsi setup() pula, fungsi Wire.begin() akan dipanggil bagi menetapkan pin komunikasi I2C. Tetapan pin SDA dan SCL boleh dilakukan dengan mengubah pemboleh ubah oledSDA dan oledSCL.

Wire.begin(oledSDA, oledSCL);

Mulakan paparan OLED dengan memanggil fungsi display.begin(). 0x3C di dalam kod dibawah merujuk kepada alamat paparan OLED yang kita gunakan. Terdapat paparan OLED di pasaran yang mempunyai alamat yang berlainan.

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C, false, false)) 
{
  Serial.println(F("SSD1306 Tiada Dalam Carian"));
  for(;;);
}

Setelah paparan OLED dihidupkan dengan menggunakan fungsi di atas, perkara pertama yang perlu kita lakukan adalah untuk memadamkan setiap bit pixel dengan menggunakan arahan clearDisplay().

// Kosongkan Paparan
display.clearDisplay();
display.display(); // Arahan dilaksanakan  

Seterusnya adalah menetapkan saiz perkataan melalui arahan setTextSize().

// Menetapkan Saiz Perkataan
display.setTextSize(1);
display.display(); // Arahan dilaksanakan

Seterusnya adalah menetapkan warna untuk bit pixel melalui arahan setTextColor(). Dalam penulisan ini, papan Wemos Lolin32 ESP32 hanya mempunyai satu warna iaitu putih.

// Menetapkan Warna Perkataan
display.setTextColor(WHITE);
display.display(); // Arahan dilaksanakan

Seterusnya adalah menentukan kedudukan di mana teks bermula menggunakan arahan setCursor(x, y). Dalam kes ini, kita akan menetapkan teks untuk bermula pada koordinat (0,0) iaitu di sudut paling kiri atas.

// Menetapkan posisi pixel
display.setCursor(0, 0);
display.display(); // Arahan dilaksanakan

Akhirnya, kita akan mula menulis perkataan di atas paparan menggunakan kaedah println() seperti berikut.

// Memaparkan perkataan
display.println("Program Pertama Saya");
display.display(); // Arahan dilaksanakan

Jika anda perasan, setiap arahan arahan di atas saya akan sekalikan dengan arahan display(). Ini adalah kerana arahan display() adalah arahan untuk mengaktifkan yang mana akan mengaktifkan arahan yang sebelumnya.

Untuk membesarkan saiz perkataan, anda boleh cuba menetapkan saiz perkataan dari saiz 1 ke saiz 2 menggunakan arahan setTextSize().

>> TAHNIAH, ANDA HEBAT <<

Baca tutorial ESP32 seterusnya di IoT ESP32 Menggunakan Sensor DHT11 DHT22.

Baca artikel tentang Piawaian IoT – Teknologi Radio, Internet Kebendaan Dan Peranti Berkuasa Rendah.

Baca artikel tentang ESP32-S2 Bukan Sebagai Pengganti ESP32.

Kunjungi sekarang kedai Internet of Things ESP32 Pulau Pinang di

Nadi Eleczone Solutions
Lot 1667, Tingkat 1, Jalan Teluk Air Tawar, Taman Air Tawar Indah, 13050 Butterworth, Penang
04 – 351 1802

TINGGALKAN JAWAPAN BALAS ANDA

Sila masukkan ulasan anda!
Sila masukkan nama anda di sini