Tutorial, Pendidikan, Media Pembelajaran, Ilmu Pengetahuan.

Friday, October 18, 2024

Belajar IoT-002- Membuat Dashboard Tombol ON-OFF terkoneksi dengan MQTT

 apa itu MQTT ?? baca dulu saya disini

Untuk berkomunikasi secara online dengan MQTT, maka kita membutuhkan antar muka atau dashboard yang menghubungkan pengguna agar dapat berkomunikasi dengan MQTT. salah satunya adalah dengan membuat file html, yang ditampilkan di browser, dimana nanti digunakan untuk memberikan perintah mengirimkan TOPIK tertentu ke MQTT. misal kita buat file HTML dengan tampilan tombol sebagai berikut ;




kode html ini :

1, adalah membuat tombol on off jangan lupa masukan file Css di folder yang sama dengan file html

2. koneksi dengan MQTT

3. memanggil dan mengirim topik ke MQTT 


jalankan file index.html di browser, hasilnya sebagai berikut :

ketika tombol di klik ke posisi ON, maka akan mengirimkan perintah topik :

rokhmad.com/lampu

dan pesannya adalah :

on

ke dalam MQTT, lihat gambar

ketika tombol di klik ke posisi OFF, maka akan mengirimkan perintah topik :

rokhmad.com/lampu

dan pesannya adalah :

off

ke dalam MQTT, lihat gambar



perintah-perintah ini nanti kita gunakan untuk menyalakan dan mematikan lampu secara IoT dari jarak jauh, selama terhubung internet.


next project :-->

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>KONTROL LAMPU</title>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <!-- Label "Terhubung" -->
  <div class="status">
    <p id="status">Terputus</p>
  </div>
    <div class="card">
      <h2>ON-OFF lampu</h2>
      <label class="switch">
        <input type="checkbox" id="lamp-switch" onchange="publishLampu()">
        <span class="slider" id="slider-lamp"></span>
      </label>
    </div>
   
</body>
 <!-- Label "KONEKSI DENGAN MQTT" -->
<script src="https://unpkg.com/mqtt/dist/mqtt.min.js"></script>
    <script>
        const clientId = Math.random().toString(16).substr(2, 8);
        const host = 'wss://broker.emqx.io:8084/mqtt';

        const options = {
          keepalive: 30,
          clientId: clientId,
          protocolId: 'MQTT',
          protocolVersion: 4,
          clean: true,
          reconnectPeriod: 1000,
          connectTimeout: 30 * 1000
        }

        console.log("Menghubungkan ke Broker");
        const client = mqtt.connect(host, options);

        client.on('connect', () => {
          console.log('Terhubung ke broker:' + clientId)
          client.subscribe('rokhmad.com/#', { qos: 1 })
          document.getElementById("status").innerHTML = "Terhubung";
        })
        client.on('message', (topic, message, packet) => {        
          if(topic === "rokhmad.com/lampu"){
            const lampSwitch = document.getElementById("lamp-switch");
            var slider = document.querySelector('.slider');
            if(message.toString() === "on"){
              lampSwitch.checked = true;
              slider.classList.add("on");
            } else {
              lampSwitch.checked = false;
              slider.classList.remove("on");
            }
          }
        })

        function publishLampu(){
          var valueLampu = document.querySelector('#lamp-switch').checked;
          if(valueLampu){
            client.publish("rokhmad.com/lampu", "on", {qos: 1, retain: true});
          }else{
            client.publish("rokhmad.com/lampu", "off", {qos: 1, retain: true});
          }
        }      
    </script>
</html>




Share:

0 comments:

About me

About me
Tentang Saya

www.rokhmad.com

Blog edukasi Tutorial, Pendidikan, Media Pembelajaran, Ilmu Pengetahuan.

toko Online

SKETCH JWSD ESP

VIDEO PERAKITAN JWSD WIFI

Unduh Library Project jws 1000m

kumpulan sketch JWSD 1000 M

kumpulan sketch JWSD 1000 M
kumpulan sketch JWSD 1000 M

Kumpulan Sketch JWSD

JWSD 2 Panel Full Bluetooth

JWSD 2 Panel Full Bluetooth
JWSD 2 Panel Bluetooth

JWSD 3 panel Bluetooth

JWSD 3 panel Bluetooth
JWSD 3 panel Bluetooth

Sketch JWS 4 Panel, Bluetooth Kontrolled

Sketch JWS 4 Panel, Bluetooth Kontrolled
JWSD- 2019 NEW ! !

Sketch Jam Sholat 1 Panel

Sketch Jam Sholat 1 Panel
Jam sholat 1 Panel

Sketch Jam Sholat 2 Panel

Sketch Jam Sholat 2 Panel
Jam dua panel

Sketch Jam Sholat 3 Panel

Sketch Jam Sholat 3 Panel
Sketch Jam Sholat 3 Panel

Sketch Jam Sholat 5 Panel

Sketch Jam Sholat 5 Panel
Jam Sholat 5 Panel

Toko Kami

Daftar isi

Blog Archive

Tryout UNBK

e-learning

e-learning
Belajar mudah, dimana saja

my Edmodo

Buku Digital

Buku Tamu

Komentar Terkini

Live Traffic

Donasi

Donasi
Donasi

Total Pengunjung