Untitled
unknown
io
6 months ago
2.5 kB
3
Indexable
#include <WiFi.h> #include <PubSubClient.h> // Kredensial WiFi const char* ssid = "Wifi_SB-II"; const char* password = ""; // Alamat server MQTT (IP atau hostname) const char* mqtt_server = "test.mosquitto.org"; // Ganti dengan alamat broker MQTT Anda // Objek WiFi dan MQTT WiFiClient espClient; PubSubClient client(espClient); // Tentukan pin LED const int ledPin = 18; // Ganti pin LED ke pin 18 // Fungsi callback untuk menangani pesan yang diterima void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); // Menyalin payload for (unsigned int i = 0; i < length; i++) { Serial.print((char)payload[i]); } Serial.println(); // Mengubah payload ke string String messageTemp; for (unsigned int i = 0; i < length; i++) { messageTemp += (char)payload[i]; } // Menyalakan atau mematikan LED berdasarkan pesan if (messageTemp == "1") { digitalWrite(ledPin, LOW); // LED ON } else if (messageTemp == "0") { digitalWrite(ledPin, HIGH); // LED OFF } } void setup() { // Inisialisasi serial monitor Serial.begin(115200); // Inisialisasi pin LED pinMode(ledPin, OUTPUT); // Menggunakan pin 18 digitalWrite(ledPin, HIGH); // Default LED OFF // Menghubungkan ke WiFi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("Connecting to WiFi.."); } Serial.println("Connected to the WiFi network"); // Mengatur server MQTT dan callback client.setServer(mqtt_server, 1883); client.setCallback(callback); } void reconnect() { // Loop hingga terhubung kembali while (!client.connected()) { Serial.print("Attempting MQTT connection..."); // Membuat ID klien acak String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); // Mencoba koneksi if (client.connect(clientId.c_str())) { Serial.println("connected"); // Mempublish pesan awal client.publish("polines/trk/data", "hello world"); // Subscribe ke topik client.subscribe("polines/trk/data"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); // Tunggu 5 detik sebelum mencoba lagi delay(5000); } } } void loop() { if (!client.connected()) { reconnect(); } client.loop(); }
Editor is loading...
Leave a Comment