💡 7 Ide Proyek NodeMCU ESP8266 dengan OLED Display
📖 Daftar Isi
NodeMCU ESP8266 adalah salah satu mikrokontroler favorit di kalangan penghobi IoT karena harganya yang terjangkau, memiliki WiFi terintegrasi, dan mudah diprogram dengan Arduino IDE. Ketika dipadukan dengan OLED display 0.96 inci berbasis SSD1306, potensi proyek yang bisa dibuat menjadi sangat luas. Artikel ini menyajikan 7 ide proyek menarik yang bisa Anda bangun sendiri, lengkap dengan tingkat kesulitan, komponen yang dibutuhkan, serta konsep kode sederhana. Semua proyek telah diuji coba dan aman untuk dipraktikkan.
🎯 Ringkasan Proyek
| No | Nama Proyek | Tingkat | Fitur Utama |
|---|---|---|---|
| 1 | Weather Station | ⭐️⭐️ Menengah | Cuaca real-time, suhu, kelembaban |
| 2 | WiFi Scanner Tool | ⭐️ Pemula | Scan & tampilkan jaringan WiFi sekitar |
| 3 | Pesan dari Cloud | ⭐️⭐️ Menengah | Tampilkan pesan via web/cloud |
| 4 | Desktop Pet | ⭐️⭐️⭐️ Mahir | Animasi ekspresi lucu interaktif |
| 5 | GPS Tracker | ⭐️⭐️⭐️ Mahir | Tampilkan posisi real-time |
| 6 | News Ticker | ⭐️⭐️ Menengah | Berita bergulir dari internet |
| 7 | Countdown Timer | ⭐️ Pemula | Hitung mundur acara spesial |
🌤️ 1. Weather Station (Stasiun Cuaca)
Tampilkan informasi cuaca terkini dari internet menggunakan API OpenWeatherMap. Layar OLED menampilkan suhu, kelembaban, kondisi cuaca, dan ikon sederhana (cerah, hujan, mendung). Proyek ini cocok untuk meja kerja atau sebagai informasi cuaca di ruang keluarga.
Komponen: NodeMCU, OLED 0.96", kabel jumper, power bank atau USB.
Fitur: Update data setiap 10 menit, tampilan ikon grafis, suhu dalam Celsius/Fahrenheit, kecepatan angin (opsional).
Konsep kode: HTTP GET ke API, parsing JSON, menampilkan data ke OLED dengan fungsi display.
// Contoh parsing JSON cuaca
DynamicJsonDocument doc(2048);
deserializeJson(doc, http.getString());
float suhu = doc["main"]["temp"];
String kondisi = doc["weather"][0]["main"];
Pengembangan: Tambahkan sensor DHT11 untuk membaca suhu lokal, simpan data ke database, tampilkan grafik tren suhu.
📡 2. WiFi Scanner Tool
Buat alat portable yang bisa menampilkan semua jaringan WiFi di sekitar Anda, lengkap dengan kekuatan sinyal (RSSI) dan jenis enkripsi. Sangat berguna untuk survey jaringan, troubleshooting, atau sekadar eksplorasi lingkungan.
Komponen: NodeMCU, OLED, power bank (portabel).
Fitur: Scan otomatis setiap 10 detik, tampilan SSID, bar sinyal visual, enkripsi (WPA2, WPA, Open). Scrolling manual menggunakan tombol.
#include <ESP8266WiFi.h>
int jumlah = WiFi.scanNetworks();
for(int i=0; i<jumlah; i++) {
String ssid = WiFi.SSID(i);
int rssi = WiFi.RSSI(i);
// tampilkan di OLED
}
Pengembangan: Filter berdasarkan kekuatan sinyal, simpan hasil ke file, deteksi jaringan tidak aman.
💬 3. Pesan dari Cloud / IoT Text Display
Kirim pesan dari smartphone atau komputer ke OLED display melalui cloud. Cocok untuk papan pengumuman digital di rumah, pesan untuk anggota keluarga, atau notifikasi dari aplikasi eksternal.
Komponen: NodeMCU, OLED.
Fitur: Mode AP (langsung) atau Station (via router), scroll teks panjang, multiple pesan, penyimpanan pesan terakhir di EEPROM.
// ESP8266 sebagai web server
server.on("/send", [](){
String msg = server.arg("message");
tampilkanDiOLED(msg);
server.send(200, "text/plain", "OK");
});
Pengembangan: Integrasi dengan Blynk, notifikasi dari Google Forms, tampilan animasi saat pesan baru tiba.
🐾 4. Desktop Pet (Hewan Peliharaan Desktop)
Buat karakter lucu di OLED yang bereaksi terhadap waktu, interaksi tombol, atau bahkan cuaca. Mirip dengan Tamagotchi versi modern — bisa diberi makan, diajak bermain, dan tidur.
Komponen: NodeMCU, OLED, 2-3 tombol push button, buzzer (opsional).
Fitur: 5+ ekspresi (senang, sedih, lapar, tidur, marah), perubahan berdasarkan waktu nyata (pagi/siang/malam), interaksi tombol, status "kesehatan" dan "kebahagiaan".
// Ekspresi berdasarkan jam
if (jam >= 6 && jam < 11) expression = HAPPY;
else if (jam >= 22 || jam < 5) expression = SLEEP;
else expression = NORMAL;
Pengembangan: Integrasi dengan WiFi untuk update cuaca (karakter pakai jas hujan jika hujan), penyimpanan status ke EEPROM, multi karakter.
📍 5. GPS Tracker
Tampilkan posisi GPS real-time di OLED. Sangat berguna untuk proyek navigasi, pelacakan kendaraan, atau data logger lokasi. Modul GPS NEO-6M yang murah sudah cukup akurat untuk keperluan hobi.
Komponen: NodeMCU, OLED, modul GPS NEO-6M (atau NEO-7M/8M).
Fitur: Tampilkan koordinat Latitude/Longitude, kecepatan (km/h), arah (course), jumlah satelit, ketinggian. Update setiap 1 detik.
Koneksi GPS: VCC ke 5V, GND ke GND, TX ke RX (D3/GPIO0).
#include <TinyGPS++.h>
TinyGPSPlus gps;
while (Serial.available()) {
gps.encode(Serial.read());
if (gps.location.isUpdated()) {
float lat = gps.location.lat();
float lng = gps.location.lng();
}
}
Pengembangan: Kirim data lokasi ke server (tracking online), tampilkan peta sederhana dengan titik-titik, simpan track log ke SD card.
📰 6. News Ticker
Tampilkan berita terbaru dari RSS feed atau API news secara bergulir (scrolling) di OLED. Cocok untuk meja kerja agar tetap update dengan berita tanpa harus membuka HP.
Komponen: NodeMCU, OLED.
Fitur: Scroll teks horizontal, update setiap 15 menit, support RSS feed Indonesia (detik, kompas, tempo), efek transisi antar berita.
void scrollText(String text, int y) {
for (int i = 0; i <= text.length() * 6; i++) {
display.clearDisplay();
display.setCursor(-i, y);
display.print(text);
display.display();
delay(40);
}
}
Pengembangan: Pilih kategori berita (olahraga, teknologi, politik), integrasi dengan Google News RSS, tampilkan waktu update terakhir.
⏰ 7. Countdown Timer / Event Reminder
Tampilkan hitung mundur menuju acara spesial seperti ulang tahun, liburan, atau hari raya. Dengan koneksi internet, waktu akan selalu sinkron sehingga countdown tetap akurat.
Komponen: NodeMCU, OLED, buzzer (opsional untuk alarm).
Fitur: Hitung mundur dalam hari, jam, menit, detik, ambil waktu dari NTP server, progress bar visual, ganti ekspresi mata sesuai waktu tersisa.
#include <NTPClient.h>
unsigned long target = 1704067200; // 1 Jan 2025
unsigned long now = timeClient.getEpochTime();
unsigned long selisih = target - now;
int hari = selisih / 86400;
int jam = (selisih % 86400) / 3600;
Pengembangan: Multiple event, penyimpanan target di EEPROM, alarm dengan buzzer saat countdown habis, tampilan grafis balon atau kue ulang tahun.
🔌 Panduan Koneksi OLED ke NodeMCU
Semua proyek di atas menggunakan protokol I2C yang sama. Berikut adalah skema koneksi standar:
| OLED Pin | NodeMCU Pin |
|---|---|
| GND | GND |
| VCC | 3.3V |
| SDA | D2 (GPIO4) |
| SCL | D1 (GPIO5) |
0x3C atau 0x3D saat inisialisasi display. Gunakan scanner I2C untuk mendeteksi alamat yang benar.
📝 Kesimpulan
Ketujuh ide proyek di atas membuktikan bahwa kombinasi NodeMCU ESP8266 dan OLED display sangat powerful untuk berbagai aplikasi IoT. Mulai dari yang sederhana seperti WiFi scanner hingga yang kompleks seperti desktop pet atau GPS tracker, semuanya bisa Anda bangun dengan biaya terjangkau. Kunci sukses adalah memahami dasar-dasar pemrograman Arduino, penggunaan library, dan koneksi hardware. Jangan ragu untuk memodifikasi dan mengembangkan proyek-proyek ini sesuai kreativitas Anda. Selamat berkarya dan terus belajar IoT!
Jika ada pertanyaan atau ingin berbagi hasil proyek Anda, silakan tinggalkan komentar di bawah. Saya, Pidin Saripudin, S.Kom, akan dengan senang hati membantu.