Advertisement
ariefhendra

MQTT Subscriber

Jul 2nd, 2025
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 1.88 KB | Source Code | 0 0
  1. #include <WiFi.h>
  2. #include <PubSubClient.h>
  3.  
  4. const char* ssid = "Wokwi-GUEST";
  5. const char* password = "";
  6. const char* mqtt_server = "test.mosquitto.org";
  7. const char* topic_temp = "DHT22/suhu";
  8. const char* topic_hum = "DHT22/kelembapan";
  9.  
  10. WiFiClient espClient;
  11. PubSubClient client(espClient);
  12.  
  13. void setup_wifi()
  14. {
  15.   Serial.println();
  16.   Serial.print("Connecting to ");
  17.   Serial.println(ssid);
  18.  
  19.   WiFi.mode(WIFI_STA);
  20.   WiFi.begin(ssid, password);
  21.  
  22.   while (WiFi.status() != WL_CONNECTED)
  23.   {
  24.     delay(500);
  25.     Serial.print(".");
  26.   }
  27.  
  28.   Serial.println("");
  29.   Serial.println("WiFi connected");
  30.   Serial.println("IP address: ");
  31.   Serial.println(WiFi.localIP());
  32. }
  33.  
  34. void callback(char* topic, byte* payload, unsigned int length)
  35. {
  36.   Serial.print("Message arrived in topic: ");
  37.   Serial.println(topic);
  38.  
  39.   Serial.print("Message:");
  40.   for (int i = 0; i < length; i++)
  41.   {
  42.     Serial.print((char)payload[i]);
  43.   }
  44.  
  45.   Serial.println();
  46.   Serial.println("-----------------------");
  47. }
  48.  
  49. void reconnect()
  50. {
  51.   while (!client.connected())
  52.   {
  53.     Serial.print("Attempting MQTT connection...");
  54.     // Create a random client ID
  55.     String clientId = "mqtt-explorer-584bcd18";
  56.     clientId += String(random(0xffff), HEX);
  57.     // Attempt to connect
  58.     if (client.connect(clientId.c_str()))
  59.     {
  60.       Serial.println("Connected");
  61.       client.subscribe(topic_temp);
  62.       client.subscribe(topic_hum);
  63.     }
  64.     else
  65.     {
  66.       Serial.print("failed, rc=");
  67.       Serial.print(client.state());
  68.       Serial.println(" try again in 5 seconds");
  69.       // Wait 5 seconds before retrying
  70.       delay(5000);
  71.     }
  72.   }
  73. }
  74.  
  75. void setup()
  76. {
  77.   Serial.begin(115200);
  78.     setup_wifi();
  79.   client.setServer(mqtt_server, 1883);
  80.   client.setCallback(callback);  
  81. }
  82.  
  83. void loop()
  84. {
  85.  
  86.   if (!client.connected())
  87.   {
  88.     reconnect();
  89.   }
  90.   client.loop();
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement