#include <WiFi.h>
#include <PubSubClient.h>
// Setting Awal MQTT
char* mqttServer = "broker.emqx.io";
int mqttPort = 1883;
String myClientID = "Radz";
String Topic_1 = "radz/iot/2024";
String Topic_2 = "blk/test/radz";
//Membuat Object MQTT Client dan Jenis Koneksi
WiFiClient wifi;
PubSubClient mqttClient(wifi);
char* ssid = "Wokwi-GUEST";
char* pass = "";
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
WiFi.mode(WIFI_STA); // Agar ESP32 menjadi mode Station
WiFi.begin(ssid,pass); // Meminta ESP untuk connect
while(WiFi.status() != WL_CONNECTED){
delay(100);
Serial.println("Try Again..");
}
Serial.println("ESP 32 Connected Successfully");
// Memerintahkan ESP untuk tahu alamat broker
init_to_broker(mqttServer, mqttPort);
// Memerintahkan untuk Connect ke Broker
connect_to_broker(myClientID);
}
void loop() {
// put your main code here, to run repeatedly:
int infoInt = 420;
float infoFloat = 69.69;
mqtt_publish(Topic_1, "Ini adalah pesan dalam bentuk string");
mqtt_publish(Topic_1, "Pesan lain dalam bentuk string");
char message[] = "Contoh pesan dalam bentuk char array";
mqtt_publish(Topic_1, message);
mqtt_publish(Topic_1, infoInt);
mqtt_publish(Topic_1, infoFloat);
delay(1000); // this speeds up the simulation
}
void init_to_broker(char* myMqttServer, int myMqttPort) {
mqttClient.setServer(myMqttServer, myMqttPort); // Mengatur detail broker target yang digunakan
// jika kita ingin menerima pesan untuk langganan yang dibuat oleh klien sebagai subscriber
// mqttClient.setCallback(callback);
}
void connect_to_broker(String clientName) {
Serial.println("Connecting to MQTT Broker...");
String clientId = "ESP32Client-" + clientName;
mqttClient.connect(clientId.c_str()); // Connecting to Broker
while (!mqttClient.connected()) {
Serial.print("failed, rc=");
Serial.println(mqttClient.state());
Serial.println("Reconnecting to MQTT Broker..");
delay(1000);
}
Serial.print(clientId);
Serial.println(" Device to Broker Connected.");
}
void mqtt_publish(String yourTopic, const char* yourPayload){
mqttClient.publish(yourTopic.c_str(), yourPayload);
Serial.print(yourTopic);
Serial.print(" ==> ");
Serial.println(yourPayload);
}
void mqtt_publish(String yourTopic, int yourPayload) {
char temp[10];
itoa(yourPayload, temp, 10);
mqttClient.publish(yourTopic.c_str(), temp);
Serial.print(yourTopic);
Serial.print(" ==> ");
Serial.println(yourPayload);
}
void mqtt_publish(String yourTopic, float yourPayload) {
char temp[10];
dtostrf(yourPayload, 4, 2, temp);
mqttClient.publish(yourTopic.c_str(), temp);
Serial.print(yourTopic);
Serial.print(" ==> ");
Serial.println(yourPayload);
}
Loading
esp32-devkit-v1
esp32-devkit-v1