DIY Running Text Menggunakan WS2812 Melalui Mikrokontroller ESP2866

by lintangfp35 in Design > Software

105 Views, 0 Favorites, 0 Comments

DIY Running Text Menggunakan WS2812 Melalui Mikrokontroller ESP2866

Screenshot_20251020_081019_Gallery.jpg

Assalamualaikum semuaaa! kalian pasti sering melihat running text kan? Baik di stasiun, di sekolahan, atau bahkan di belakang motor/bus-bus pariwisata...Tapi, pernah nggak sih... Kalian bikin sendiri??? Otodidak gituu...


Nama kelompok :

  1. Amar M. A.
  2. Lintang Fardin P.
  3. Nadila Juliani
  4. Randy Jaya K.
  5. Rani Syalom P. W.

Menyiapkan Alat Dan Bahan

esp8266.jpg
ws2812.jpg

Terdapat beberapa bahan yang sepertinya jika dicari-cari keliling Kota akan membuang banyak waktu, teman-teman. Jadi mimin menyarankan agar membeli bahan-bahannya via toko online (Cth: Shoppee, Tokped) atau ke toko offline yang kamu sudah ketahui menjual peranti elektronika (yang berhubungan dengan IoT tentunya). Contohnya seperti di gambar.

Untuk baterai mimin kira opsional, selama bisa dicolokkan ke listrik melalui stop kontak, maka running text akan terus menyala.

Persiapan (Hardware Dan Software)

Cuplikan layar 2025-10-03 080049.png

Untuk hardware yang sudah teman-teman beli, meliputi WS2812, ESP8266/NodeMCU lain, cable jumper, dan lain sebagainya.

Untuk software, teman-teman dapat menginstal aplikasi Arduino IDE (untuk PC/Laptop) dan Arduino Droid (untuk penggunaan Android/HP). Yang mimin lampirkan di atas itu adalah tampilan/User Interface aplikasi Arduino IDE.

Link Download Arduino IDE: https://www.arduino.cc/en/software

Rangkai ESP8266/NodeMCU Lain

foto esp.jpg
anjay.png
Cuplikan layar 2025-10-03 082331.png

Rangkai ESP dengan kabel micro USB, karena port ESP-nya juga USB (menyesuaikan jenis port dari NodeMCU nya, teman-teman).

Langkah selanjutnya adalah sambungkan kabel tersebut pada perangkat yang akan memprogram/koding baik dari ESP itu sendiri yang nanti akan diteruskan ke Running Text-nya. Ketika sudah terhubung dengan perangkat (mimin ambil contoh di laptop yaaa), teman-teman klik kanan pada ikon Windows dan klik Device Manager. Lalu akan terlihat bahwa kabel tsb. berada pada COM berapa (kalau di laptop mimin, ini ada di COM 7). Lalu buka Arduino IDE, klik Select board, maka akan tertampil pilihan-pilihan board, Pilih Board Generic ESP8266 Module dan Port COM 7/yang tetaut dengan USB.

Setelah itu, instal library yang akan digunakan untuk menampilkan Running Text dengan baik. Caranya: Klik Sketch di pojok kiri atas --> Include Library --> Manage Libraries, setelah itu, di sebelah kiri screen ada banyaaaaaaakkk library, teman-teman tinggal pilih tiga library ini: Adafruit Neopixel, Adafruit Neomatrix, dan Adafruit Graphics.

Rangkai WS2812 Dan Menghubungkan Dengan ESP 8266

board.jpg

Nah, di step ini kita membutuhkan pemeran baru yang namanya cable jumper. Untuk kondisi ini, mimin gunakan jumper male-female, jadi ujung satunya berbentuk lurus, ujung satunya lagi bentuk kotak (ya tau lah ya)...

Untuk memasangkan bagian male ke LED piksel, mimin pakai alat yang namanya solder dan timah. Lalu pasangkan bagian female dengan ESP8266 dengan susunan seperti di gambar (D4, 3V, G). D4 adalah pin masukan sebagai output data digital, 3v sebagai catu daya LED, G untuk ground.

Koding

Untuk Pemograman :

  1. Ubah PIN ke 2 (#define PIN = 2)
  2. Sesuaikan Matrix size dengan ukuran led strip. Dalam konteks ini maka, p = 32 dan l = 8 (all piksel WS2812 = 256 piksel, 8 baris 32 kolom)
  3. Sesuaikan arah matrix memulai. Dalam konteks ini :
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(37, 8, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_RIGHT +
NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG,
NEO_GRB + NEO_KHZ800);

Akan tetapi jika ditulis NEO_MATRIX_ZIGZAG, maka tulisan nya tidak terbaca dan tidak dikenali, maka ditulis NEO_MATRIX_PROGRESSIVE agar terbaca

Selanjutnya, ini adalah kode untuk menuliskan "IWAN SETIAWAN"

#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN 2

// 🔹 Ubah ukuran panel ke 32 x 7
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(32, 7, PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT + // Ubah LEFT jadi RIGHT jika teks kebalik
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_GRB + NEO_KHZ800);

int x; // Posisi X awal teks
int pass = 0; // Ganti warna otomatis

void setup() {
matrix.begin();
matrix.setTextWrap(false);
matrix.setBrightness(40);
matrix.setTextColor(matrix.Color(255, 255, 0)); // Warna kuning

// Hitung posisi awal teks (mulai dari luar layar sebelah kanan)
int16_t x1, y1;
uint16_t w, h;
matrix.getTextBounds(F("IWAN SETIAWAN"), 0, 0, &x1, &y1, &w, &h);
x = matrix.width(); // Mulai dari sisi kanan panel
}

void loop() {
matrix.fillScreen(matrix.Color(0, 34, 138)); // Background biru tua
matrix.setCursor(x, 0); // Posisi teks atas
matrix.print(F("IWAN SETIAWAN"));

// Hitung panjang teks otomatis
int16_t x1, y1;
uint16_t w, h;
matrix.getTextBounds(F("IWAN SETIAWAN"), 0, 0, &x1, &y1, &w, &h);

// Geser teks ke kiri
x--;

// Jika teks sudah keluar layar, reset posisi dari kanan
if (x < -w) {
x = matrix.width();
}

matrix.show();
delay(100); // Kecepatan scroll (semakin kecil = lebih cepat)
}

Sumber

1. Allah SWT

2. Pak Irno Prakosa selaku pembimbing dan pengarah pembelajaran informatika XII 11

3. ChatGPT, Perplexity dan alat alat AI lainnya yang membantu jalannya running text

4. Google, YouTube, dan Autodesk ata codingan dan librarynya

5. Rio Ardian selaku teman yang bisa koding dan melek informatika

Lebih Lanjut

Untuk lebih lanjutnya dapat dilihat di video berikut ini (namun video ini menggunakan jenis Matrix yang berbeda, bukan WS281X)


https://youtu.be/Hs0yb286sTo?si=aapsZrLwcZFsSv7W