Minggu, 12 Juli 2026

Membuat ogo ogo Sembayat Barat RT 3

Ogoh-Ogoh Sembayat Barat RT 3 - ESP8266 Remote Control

๐Ÿ‘️ OGOH-OGOH REMOTE CONTROL

SEMBAYAT BARAT RT 3
ESP8266 • WiFi Control • 2 Servo • Relay Blink • Record & Playback
๐Ÿ“… Juli 2024 | ๐Ÿ•’ Update Terakhir: 13 Juli 2024

๐Ÿ“– 1. PENDAHULUAN

Proyek ini dibuat untuk mengontrol mata Ogoh-Ogoh Sembayat Barat RT 3 secara wireless menggunakan smartphone. Sistem menggunakan ESP8266 sebagai otak, 2 servo MG996R untuk gerakan mata (kiri-kanan & atas-bawah), dan relay untuk efek kedip mata natural.

๐Ÿ†• Fitur Unggulan: Playback tetap berjalan meskipun layar HP mati! Data rekaman disimpan dan dijalankan langsung di ESP8266.

Spesifikasi:

  • Microcontroller: ESP8266 NodeMCU
  • Komunikasi: WiFi 2.4GHz (Access Point / Hotspot)
  • Servo: 2x MG996R (Metal Gear, High Torque)
  • Range Gerak: Customizable (default ±45° horizontal, ±40° vertikal)
  • Blink System: Relay dengan timing natural (tutup 80ms, buka 300ms)
  • Record & Playback: Disimpan di ESP8266 (maks 500 frame)
  • Loop Mode: Pengulangan otomatis
  • Power: 6V/5A eksternal untuk servo

๐Ÿ›’ 2. DAFTAR KOMPONEN

NoKomponenJumlahEstimasi HargaKeterangan
1ESP8266 NodeMCU1Rp 25.000Board utama
2Servo MG996R2Rp 60.000Metal gear, high torque
3Relay 1 Channel 5V1Rp 12.000Untuk kedip mata
4Power Supply 6V/5A1Rp 45.000Eksternal untuk servo
5Powerbank 5V1Rp 50.000Untuk ESP8266
6Kabel Jumper10Rp 10.000Male to Female
7Kapasitor 1000ยตF/16V1Rp 3.000Anti noise servo
TOTAL ESTIMASIRp 205.000
⚠️ PENTING: Servo MG996R TIDAK BOLEH langsung ke 5V ESP8266! Arus peak 2.5A bisa merusak board. Gunakan power supply eksternal 6V/5A!

๐Ÿ”Œ 3. WIRING DIAGRAM

3.1 Skema Lengkap

╔═══════════════════════════════════════════════════╗ ║ WIRING OGOH-OGOH ║ ╠═══════════════════════════════════════════════════╣ ║ ║ ║ POWER 6V/5A (EKSTERNAL) ║ ║ ┌──────────────────┐ ║ ║ │ (+) 6V ──┬── SERVO 1 MERAH ║ ║ │ └── SERVO 2 MERAH ║ ║ │ (-) GND ──┬── SERVO 1 COKLAT ║ ║ │ ├── SERVO 2 COKLAT ║ ║ │ └── ESP8266 GND ║ ║ └──────────────────┘ ║ ║ ║ ║ POWERBANK 5V (USB) ║ ║ └── ESP8266 USB ║ ║ ║ ║ ESP8266 ║ ║ ┌──────────────────┐ ║ ║ │ D5 (GPIO14) ──── SERVO 1 ORANYE ║ ║ │ D6 (GPIO12) ──── SERVO 2 ORANYE ║ ║ │ D7 (GPIO13) ──── RELAY IN ║ ║ │ GND ──────────── RELAY GND ║ ║ │ VIN ──────────── RELAY VCC (5V) ║ ║ └──────────────────┘ ║ ║ ║ ║ RELAY ║ ║ ┌──────────────────┐ ║ ║ │ COM ─── LAMPU/LED (+) ║ ║ │ NO ─── POWER LAMPU (+) ║ ║ └──────────────────┘ ║ ║ ║ ╚═══════════════════════════════════════════════════╝

3.2 Tabel Pin

KomponenKabelESP8266
Servo 1 (Kiri-Kanan)Coklat, Merah, OranyeGND, 6V Ext, D5
Servo 2 (Atas-Bawah)Coklat, Merah, OranyeGND, 6V Ext, D6
Relay (Kedip)GND, VCC, INGND, VIN(5V), D7

⚡ 4. SKEMA TEGANGAN

4.1 Perhitungan Power

KomponenTeganganArusDaya
ESP82665V~80mA0.4W
Servo MG996R (2x)6V~2.5A peak15W
Relay5V~75mA0.4W
TOTAL~16W
✅ REKOMENDASI: Power supply 6V/5A (30W) memberikan headroom yang aman.

4.2 Opsi Power Supply

OpsiKomponenCocok Untuk
1Adaptor 6V/5AIndoor / Permanen
2Baterai Lipo 2S 7.4V + UBEC 6VOutdoor / Portable
3Powerbank 5V + Boost Converter 6VDarurat

๐Ÿ’ป 5. KODE PROGRAM ESP8266

๐Ÿ“ Catatan: Kode di bawah adalah versi final dengan semua fitur: Record, Playback di ESP8266, Loop, Blink Natural, dan Konfigurasi Derajat.

5.1 Kode Arduino (ESP8266)

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Servo.h>

const char* ssid = "shereen";
const char* password = "87654321";
ESP8266WebServer server(80);

Servo servo1;
Servo servo2;

const int servoPin1 = 14;  // D5 - Mata Kiri-Kanan
const int servoPin2 = 12;  // D6 - Mata Atas-Bawah
const int relayPin  = 13;  // D7 - Relay Kedip

int angle1Max = 45;  // Max derajat horizontal
int angle2Max = 40;  // Max derajat vertikal

// Record & Playback
#define MAX_FRAMES 500
int record1[MAX_FRAMES];
int record2[MAX_FRAMES];
int recordCount = 0;
bool isPlayingESP = false;
int playIndexESP = 0;
unsigned long lastPlayTime = 0;
int playSpeed = 50;
bool loopModeESP = false;

// Blink
bool blinkMode = false;
unsigned long lastBlink = 0;
int blinkPhase = 0;

void setup() {
    Serial.begin(115200);
    servo1.attach(servoPin1);
    servo2.attach(servoPin2);
    pinMode(relayPin, OUTPUT);
    digitalWrite(relayPin, LOW);
    servo1.write(90);
    servo2.write(90);
    
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) delay(500);
    Serial.println(WiFi.localIP());
    
    // Web server code (HTML/CSS/JS di sini)
    // ... (lengkap di kode full)
    
    server.begin();
}

void loop() {
    server.handleClient();
    
    // Playback di ESP8266 (tetap jalan meski HP mati)
    if (isPlayingESP && recordCount > 0) {
        if (millis() - lastPlayTime >= playSpeed) {
            lastPlayTime = millis();
            servo1.write(constrain(record1[playIndexESP], 90-angle1Max, 90+angle1Max));
            servo2.write(constrain(record2[playIndexESP], 90-angle2Max, 90+angle2Max));
            playIndexESP++;
            if (playIndexESP >= recordCount) {
                if (loopModeESP) playIndexESP = 0;
                else { isPlayingESP = false; playIndexESP = 0; }
            }
        }
    }
    
    // Blink natural (tutup 80ms, buka 300ms)
    if (blinkPhase == 1) { digitalWrite(relayPin, HIGH); if (millis()-lastBlink>80) { blinkPhase=2; lastBlink=millis(); } }
    if (blinkPhase == 2) { digitalWrite(relayPin, LOW); if (millis()-lastBlink>300) { blinkPhase=0; lastBlink=millis(); } }
    
    delay(2);
}
๐Ÿ’ก Download kode lengkap: GitHub Gist - ogoh-ogoh-esp8266.ino (coming soon)

๐ŸŽฎ 6. FITUR LENGKAP

FiturDeskripsiRange
๐ŸŽฏ Joystick HorizontalMata kiri-kananCustom (±45° default)
๐ŸŽฏ Joystick VertikalMata atas-bawahCustom (±40° default)
⚙️ Konfigurasi DerajatInput max derajat custom5° - 90°
๐Ÿ”ด RecordRekam gerakanMaks 500 frame
▶ PlayPutar rekaman (di ESP8266)Tetap jalan saat HP mati
๐Ÿ” LoopUlangi playback terusON/OFF
๐Ÿ˜‰ Blink NaturalKedip mata realistikTutup 80ms, Buka 300ms
๐Ÿ”„ Auto BlinkKedip otomatisInterval 1-10 detik
๐Ÿ‘️ Single BlinkKedip sekaliManual
๐Ÿ“ฑ Responsive UITampilan mobile-friendlyDark theme + glow effect

๐Ÿ“ฑ 7. CARA PENGGUNAAN

7.1 Setup Awal

  1. Upload kode ke ESP8266 menggunakan Arduino IDE / Arduino CLI
  2. Pasang wiring sesuai diagram
  3. Nyalakan hotspot HP dengan SSID shereen password 87654321
  4. Nyalakan ESP8266 (colok powerbank)
  5. Buka Serial Monitor (115200 baud) untuk melihat IP Address
  6. Buka IP tersebut di browser HP

7.2 Record & Playback

  1. Tekan ๐Ÿ”ด REC → Gerakin joystick → Tekan ๐Ÿ”ด REC lagi
  2. Tekan ▶ PLAY → Gerakan diulang otomatis
  3. Aktifkan ๐Ÿ” Loop untuk pengulangan terus menerus
  4. Layar HP boleh dimatikan → Playback tetap jalan!

7.3 Konfigurasi Derajat

  1. Input max derajat di kolom Max
  2. Klik ๐Ÿ’พ untuk menyimpan
  3. Range otomatis simetris (kiri & kanan sama)

๐Ÿ”ง 8. TROUBLESHOOTING

8.1 Servo Tidak Bergerak

PenyebabSolusi
Power tidak cukupGunakan power supply 6V/5A eksternal. Jangan langsung ke 5V ESP8266!
Kabel longgarCek semua koneksi: Coklat=GND, Merah=6V, Oranye=Signal
Pin salahPastikan D5 (GPIO14) untuk servo 1, D6 (GPIO12) untuk servo 2
Servo rusakCoba servo satu per satu dengan kode test sederhana
GND tidak tersambungGND power servo WAJIB tersambung ke GND ESP8266!

8.2 Tidak Bisa Konek WiFi

PenyebabSolusi
SSID/Password salahCek ulang: SSID="shereen", Pass="87654321"
Hotspot belum nyalaNyalakan hotspot HP dulu, baru ESP8266
Jarak terlalu jauhDekatkan ESP8266 ke HP (max 5 meter)
WiFi 5GHzESP8266 hanya support 2.4GHz!

8.3 Playback Berhenti Saat Layar Mati

PenyebabSolusi
Browser menghentikan JavaScript✅ SUDAH DIATASI! Playback berjalan di ESP8266, bukan di HP
Data tidak terkirimPastikan klik PLAY setelah REC, data akan disimpan di ESP8266

8.4 Kedip Mata Tidak Natural

PenyebabSolusi
Timing tidak pasDefault: Tutup 80ms, Buka 300ms (rasio 1:3.75 seperti manusia)
Relay tidak meresponCek kabel relay: GND→GND, VCC→VIN, IN→D7
Lampu/LED tidak sesuaiGunakan lampu 12V dengan relay COM-NO

8.5 Arduino IDE Error Upload

ErrorSolusi
ledcSetup not declaredGunakan ledcAttach(pin, freq, res) untuk ESP8266
esptool not foundInstall esptool: pip3 install esptool==4.5.1
port busyTutup Serial Monitor & Arduino IDE, lalu upload ulang
Board unknownInstall board: arduino-cli core install esp8266:esp8266

❓ 9. FAQ

Q: Bisa pakai ESP32?
A: Bisa! Ganti pin dan library. ESP32 lebih powerful tapi lebih mahal.

Q: Berapa jarak maksimal WiFi?
A: ±30 meter (terbuka), ±10 meter (dalam ruangan).

Q: Bisa kontrol lewat internet?
A: Bisa dengan port forwarding atau Ngrok, tapi tidak direkomendasikan untuk latency.

Q: Servo cepat panas?
A: Beri jeda setiap 10 menit. Tambah heatsink kecil. Jangan paksa gerak mentok.

Q: Bisa ganti nama WiFi?
A: Edit ssid dan password di kode, lalu upload ulang.

Q: Bisa tambah servo ketiga?
A: Bisa! Tambah servo di pin kosong (D0, D1, D2, dll) dan duplikat logika kontrol.

๐Ÿ’ก 10. TIPS & TRIK

๐Ÿ”– Bookmark IP

Simpan IP ESP8266 di bookmark HP untuk akses cepat tanpa cek Serial Monitor.

๐Ÿ”‹ Power Management

Gunakan powerbank 20000mAh untuk pemakaian seharian outdoor. Baterai Lipo 2S lebih ringan.

๐Ÿ“ฆ Housing

Masukkan ESP8266 ke kotak plastik waterproof. Bungkus servo dengan plastik untuk outdoor.

๐ŸŽจ Kustomisasi CSS

Edit bagian <style> di kode HTML untuk ganti warna, font, atau layout.

๐Ÿ”„ Auto Connect

ESP8266 akan auto-connect ke WiFi yang sudah disimpan saat dinyalakan.

๐Ÿ“Š Monitoring

Buka Serial Monitor (115200 baud) untuk debug real-time dan lihat IP address.

0 komentar:

Posting Komentar