Langsung ke konten utama

Langkah-langkah untuk membuat saklar ON/OFF NodeMCU ESP8266 yang dapat dikontrol dari jarak jauh secara online

 

Alat dan Bahan yang Dibutuhkan:

  1. NodeMCU ESP8266

  2. Relay module (misalnya 1-channel relay)

  3. Kabel jumper

  4. Power supply (USB atau adaptor)

  5. Perangkat elektronik yang ingin dikontrol (lampu, kipas, dll.)

  6. 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)

  1. Instal Blynk App di smartphone (iOS/Android).

  2. Buat proyek baru, pilih ESP8266 dan dapatkan Auth Token.

  3. Tambahkan Button Widget dan atur ke mode Switch.

  4. Hubungkan ke Virtual Pin (misal V0).

B. Menggunakan Firebase (Lebih Fleksibel)

  1. Buat proyek di Firebase Console.

  2. Tambahkan Realtime Database dan atur rules menjadi:

    json

    {
      "rules": {
        ".read": true,
        ".write": true
      }
    }
  3. Catat Database URL dan Secret Key (jika perlu).

C. Menggunakan MQTT (Broker seperti Adafruit IO/RabbitMQ)

  1. Daftar di Adafruit IO atau gunakan broker MQTT lain.

  2. Buah Feed baru (misal: onoff_switch).

3. Program NodeMCU (Contoh menggunakan Blynk)

cpp

#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

  1. Upload kode ke NodeMCU via Arduino IDE.

  2. Buka Blynk App, tekan tombol untuk mengontrol relay.

Alternatif Kode Firebase

Jika menggunakan Firebase, contoh kodenya:

cpp

#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! 

Komentar

Postingan populer dari blog ini

Cara Mengkonversi File Python (.py) ke Executable (.exe) di Linux

  Berikut adalah panduan lengkap untuk mengkonversi script Python ke file .exe yang bisa dijalankan di Windows, meskipun Anda menggunakan Linux sebagai sistem operasi pengembangan. Persyaratan Python 3.x terinstall di Linux Virtual environment (direkomendasikan) Wine (untuk build Windows executable dari Linux) Langkah 1: Persiapan Install Wine (untuk build Windows executable dari Linux) bash Copy Download sudo apt update sudo apt install wine Buat dan aktifkan virtual environment bash Copy Download python3 -m venv myenv source myenv/bin/activate Langkah 2: Install PyInstaller dan Dependencies bash Copy Download pip install pyinstaller pip install PyQt5 mysql-connector-python psutil # atau dependencies proyek Anda Langkah 3: Konversi ke .exe Untuk aplikasi console biasa: bash Copy Download pyinstaller --onefile --clean --name MyApp script_anda.py Untuk aplikasi GUI (seperti PyQt5): bash Copy Download pyinstaller --onefile --windowed --clean --name MyApp script_anda....

Cara Install XAMPP di Windows: Pengertian, Kegunaan, dan Langkah-Langkahnya

Daftar Isi Apa Itu XAMPP? Kegunaan XAMPP Persiapan Sebelum Menginstall XAMPP Langkah-Langkah Install XAMPP di Windows Cara Menjalankan XAMPP Menguji XAMPP Berhasil Terinstall Masalah Umum dan Solusi Saat Install XAMPP Kesimpulan Apa Itu XAMPP? XAMPP  adalah sebuah paket perangkat lunak ( software stack ) yang digunakan untuk mengembangkan aplikasi web berbasis PHP, MySQL, dan Apache. XAMPP merupakan singkatan dari: X  (Cross-platform, bisa digunakan di Windows, Linux, dan macOS) A  (Apache – web server) M  (MySQL/MariaDB – database management system) P  (PHP – bahasa pemrograman server-side) P  (Perl – bahasa scripting tambahan) XAMPP dikembangkan oleh  Apache Friends  dan menyediakan lingkungan pengembangan ( local server ) yang memudahkan developer untuk membuat, menguji, dan menjalankan aplikasi web sebelum di- upload  ke server online. Kegunaan XAMPP XAMPP memiliki beberapa fungsi utama, di antaranya: Membuat Server Lokal Memungkinkan pen...

Membuat Halaman Login Sederhana untuk Pemula

Halaman login adalah salah satu komponen penting dalam pengembangan website yang membutuhkan autentikasi pengguna. Dalam tutorial ini, kita akan membangun sistem login sederhana menggunakan PHP dan MySQL. Sistem ini akan membedakan akses antara   admin   dan   user biasa , sehingga dapat digunakan sebagai dasar pengembangan aplikasi berbasis role (hak akses). Untuk Files Lengkap ada di Akhir Artikel ini Proyek ini cocok untuk pemula yang ingin memahami: Koneksi database MySQL dengan PHP Proses login dan logout Pembagian hak akses (admin & user) Keamanan dasar dalam autentikasi Kita akan membuat struktur folder dengan file-file berikut: login.php   → Halaman login logout.php   → Proses logout dashboard.php   → Halaman admin user_dashboard.php   → Halaman user biasa config.php   → File koneksi database users.sql   → Struktur tabel untuk menyimpan data login 1. Persiapan Database (users.sql) Sebelum memulai, kita perlu menyiapkan database (...