Langsung ke konten utama

Mengontrol NodeMCU ESP8266 menggunakan webserver atau hosting (seperti hosting berbasis PHP/MySQL atau layanan cloud)

 

1. Konsep Kerja

  • NodeMCU mengakses skrip PHP di hosting/server untuk membaca/mengupdate status saklar.

  • Database (MySQL/Firebase) menyimpan status ON/OFF.

  • Antarmuka web (HTML/JS) digunakan untuk kontrol dari browser.


2. Alat & Komponen yang Dibutuhkan

✅ NodeMCU ESP8266
✅ Relay module
✅ Koneksi internet (WiFi)
✅ Hosting/web server (misal: 000webhost, InfinityFree, atau VPS)
✅ Database (MySQL atau Firebase)


3. Setup Database & Hosting

A. Jika Menggunakan MySQL (PHP + MySQL)

  1. Buat database di hosting (misal: db_switch).

  2. Buat tabel:

    sql

    CREATE TABLE `tb_switch` (
      `id` INT AUTO_INCREMENT PRIMARY KEY,
      `status` INT(1) DEFAULT 0
    );
  3. Masukkan data awal:

    sql

    INSERT INTO `tb_switch` (`status`) VALUES (0);

B. Buat Skrip PHP untuk API

Buat file api.php di hosting:

php

<?php
header('Content-Type: application/json');

// Koneksi database
$host = "localhost";
$user = "username_db";
$pass = "password_db";
$db   = "db_switch";
$conn = new mysqli($host, $user, $pass, $db);

// Ambil data dari GET/POST
$action = $_GET['action'];

if ($action == "get") {
    $result = $conn->query("SELECT status FROM tb_switch WHERE id=1");
    $row = $result->fetch_assoc();
    echo json_encode(["status" => $row['status']]);
} 
else if ($action == "set") {
    $status = $_GET['status'];
    $conn->query("UPDATE tb_switch SET status=$status WHERE id=1");
    echo json_encode(["success" => true]);
}
?>

4. Program NodeMCU (HTTP Request ke Server)

cpp

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "WIFI_SSID";
const char* password = "WIFI_PASSWORD";
const char* serverUrl = "http://yourwebsite.com/api.php";

const int relayPin = D1;  // GPIO5

void setup() {
  Serial.begin(115200);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    
    // Ambil status dari server
    http.begin(serverUrl + String("?action=get"));
    int httpCode = http.GET();
    
    if (httpCode == 200) {
      String payload = http.getString();
      int status = payload.substring(12,13).toInt(); // Ambil nilai "status"
      digitalWrite(relayPin, status ? HIGH : LOW);
    }
    http.end();
    
    delay(1000);  // Update setiap 1 detik
  }
}

5. Buat Antarmuka Web untuk Kontrol

Buat file index.html di hosting:

html

<!DOCTYPE html>
<html>
<head>
    <title>Kontrol Saklar Online</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <h1>Saklar NodeMCU</h1>
    <button id="btn-on">ON</button>
    <button id="btn-off">OFF</button>

    <script>
        $("#btn-on").click(function() {
            $.get("api.php?action=set&status=1", function(data) {
                alert("Saklar ON");
            });
        });

        $("#btn-off").click(function() {
            $.get("api.php?action=set&status=0", function(data) {
                alert("Saklar OFF");
            });
        });
    </script>
</body>
</html>

6. Cara Kerja Sistem

  1. NodeMCU melakukan HTTP GET ke api.php?action=get untuk memeriksa status relay.

  2. Website mengirim perintah api.php?action=set&status=1/0 untuk mengubah status.

  3. Database menyimpan status terakhir.

  4. Relay menyala/mati sesuai perintah.


7. Kelebihan Solusi Ini

✔ Bisa diakses dari mana saja via browser.
✔ Tidak perlu app khusus (cukup pakai HTML/JS).
✔ Bisa dipasang di hosting gratis (000webhost, InfinityFree).
✔ Bisa dikembangkan untuk multi-device.


8. Catatan Penting

  • Pastikan hosting mendukung PHP & MySQL.

  • Jika pakai Firebase, ganti api.php dengan Firebase Realtime DB.

  • Untuk keamanan, tambahkan password di API.

Dengan ini, Anda bisa membuat saklar ON/OFF NodeMCU online via website!

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 (...