Alat dan Bahan yang Dibutuhkan:
NodeMCU ESP8266
Relay module (misalnya 1-channel relay)
Kabel jumper
Power supply (USB atau adaptor)
Perangkat elektronik yang ingin dikontrol (lampu, kipas, dll.)
Smartphone/PC untuk kontrol
1. Rangkaian Hardware
Hubungkan komponen sebagai berikut:
Pin D1 (GPIO5) NodeMCU → Input Relay (IN)
VIN NodeMCU → VCC Relay (5V)
GND NodeMCU → GND Relay
Output Relay → Perangkat Elektronik (Lampu/Kipas)
2. Platform Online untuk Kontrol (Pilih Salah Satu)
Berikut beberapa opsi platform yang bisa digunakan:
A. Menggunakan Blynk (Sederhana & User-friendly)
Instal Blynk App di smartphone (iOS/Android).
Buat proyek baru, pilih ESP8266 dan dapatkan Auth Token.
Tambahkan Button Widget dan atur ke mode Switch.
Hubungkan ke Virtual Pin (misal V0).
B. Menggunakan Firebase (Lebih Fleksibel)
Buat proyek di Firebase Console.
Tambahkan Realtime Database dan atur rules menjadi:
{ "rules": { ".read": true, ".write": true } }
Catat Database URL dan Secret Key (jika perlu).
C. Menggunakan MQTT (Broker seperti Adafruit IO/RabbitMQ)
Daftar di Adafruit IO atau gunakan broker MQTT lain.
Buah Feed baru (misal:
onoff_switch
).
3. Program NodeMCU (Contoh menggunakan Blynk)
#define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // Ganti dengan kredensial WiFi dan Auth Token Blynk char auth[] = "YourAuthToken"; char ssid[] = "YourWiFiSSID"; char pass[] = "YourWiFiPassword"; // Relay terhubung ke GPIO5 (D1) const int relayPin = D1; void setup() { Serial.begin(115200); pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); // Matikan relay saat awal Blynk.begin(auth, ssid, pass); } // Fungsi untuk kontrol dari Blynk (Virtual Pin V0) BLYNK_WRITE(V0) { int value = param.asInt(); digitalWrite(relayPin, value); } void loop() { Blynk.run(); }
4. Upload Program & Uji Coba
Upload kode ke NodeMCU via Arduino IDE.
Buka Blynk App, tekan tombol untuk mengontrol relay.
Alternatif Kode Firebase
Jika menggunakan Firebase, contoh kodenya:
#include <ESP8266WiFi.h> #include <FirebaseArduino.h> #define FIREBASE_HOST "your-project.firebaseio.com" #define FIREBASE_AUTH "your-secret-key" #define WIFI_SSID "YourWiFi" #define WIFI_PASSWORD "YourPassword" const int relayPin = D1; void setup() { pinMode(relayPin, OUTPUT); digitalWrite(relayPin, LOW); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) delay(500); Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); Firebase.set("switch", 0); // Nilai awal } void loop() { int state = Firebase.getInt("switch"); digitalWrite(relayPin, state ? HIGH : LOW); delay(100); }
Kontrol dengan mengubah nilai switch
di Firebase Realtime Database.
5. Keamanan & Optimasi
Gunakan Auth Token/Password yang kuat.
Jika memakai Firebase, batasi akses dengan Security Rules.
Tambahkan LED indicator untuk status koneksi.
Dengan ini, Anda sudah bisa mengontrol perangkat dari mana saja selama NodeMCU terhubung ke internet!
Tidak ada komentar:
Posting Komentar