Petunjuk Penggunaan CoreX
  • Perkenalan
    • Proyek
    • Halaman
    • Widget
    • Auth Project
    • Skema Penggunaan Dashboard
  • 😍Cara Memulai Proyek
    • Buat Proyek Pertama Kamu
      • Membuat proyek mengendalikan LED
      • Membuat halaman
      • Menambah token proyek
      • Menambah widget
        • Hasil Akhir
    • Deploy
    • Membuat Kode Program
      • Install Library
      • Mengirim data ke Dashboard
      • Menerima data dari Dashboard
      • Publish dan Subscribe sekaligus
  • 🎇Aksi
    • Mengatur proyek
    • Membuat halaman
    • Mengatur Widget
    • Kolaborasi
  • 🦊Jenis Widget
    • Kotak
    • Info
    • Tombol Switch
    • Slider
    • Info Level
  • Token
    • Menambah Token
    • Transfer Token
  • 😎Pelajari MQTT
    • MQTT dan HTTP
    • Cara Kerja MQTT
      • Broker
      • Publish dan Subscribe
      • Topic
        • Single Level Wildcard
        • Multi Level Wildcard
      • QoS (Quality of Service)
Powered by GitBook
On this page
  1. Cara Memulai Proyek
  2. Membuat Kode Program

Publish dan Subscribe sekaligus

Kamu tentu dapat melakukan publish dan subscribe sekaligus tanpa harus memisahkan kode program.

#include <ESP8266WiFi.h>
#include <Dashboard.h>
#include "Connection.h"

DashboardTimer timer;                   // Gunakan timer agar dapat mengeksekusi perintah setiap sekian milidetik tanpa blocking.

// Ubah nilai berikut sesuai jaringan Anda.
const char ssid[] = "......";
const char pass[] = "......";
const char server[] = "broker.emqx.io";
const String authProject = "......";
// Atur Client ID dengan nomor acak. Anda bisa menggantinya dengan Client ID apapun.
// String CleintId = "YourClientId";
const String clientId = "Nusabot-" + String(random(0xffff), HEX);

void subscribe(String &topic, String &message) {
  Serial.println("data masuk: \n" + topic + " - " + message);

  if(topic == authProject + "/data/led"){
    digitalWrite(BUILTIN_LED, message.toInt());
    
    if(message == "0"){
      Serial.println("LED ON");
    } else {
      Serial.println("LED OFF");
    }
  }
}

void publish() {
  dashboard.publish(authProject, "percobaan/data", "Halo");     // Publish ke topik "authproject/data/hello" dengan pesan/payload "world".
}

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, pass);
  dashboard.begin(server, net);

  timer.setInterval(1000, publish);     // Lakukan publish setiap 1000 milidetik.
  dashboard.onMessage(subscribe);       // Lakukan subscribe pada fungsi subscribe()
  
  setupDashboard(authProject, clientId);
}

void loop() {
  dashboard.loop();
  //delay(10);                          // Hapus komentar untuk memberikan delay 10 milidetik jika terjadi kendala pada stabilitas WiFi.
  timer.run();                          // Jalankan timer.

  // Periksa apakah perangkat masih terhubung.
  if (!dashboard.connected()) {
    setupDashboard(authProject, clientId);
  }

  //==LETAKAN KODE PROGRAM DISINI UNTUK DILAKUKAN PROSES==//
}

Akan datang.

Last updated 2 years ago

😍