Advertisement
ariefhendra

MQTT Publisher

Jul 2nd, 2025
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 2.02 KB | Source Code | 0 0
  1. #include <WiFi.h>
  2. #include <PubSubClient.h>
  3. #include "DHTesp.h"
  4.  
  5. const char* ssid = "Wokwi-GUEST";
  6. const char* password = "";
  7. const char* mqtt_server = "test.mosquitto.org";
  8. const char* topic_temp = "DHT22/suhu";
  9. const char* topic_hum = "DHT22/kelembapan";
  10.  
  11. WiFiClient espClient;
  12. PubSubClient client(espClient);
  13. unsigned long lastMsg = 0;
  14. #define MSG_BUFFER_SIZE  (50)
  15. float temp = 0;
  16. float hum = 0;
  17. int value = 0;
  18.  
  19. const int DHT_PIN = 15;
  20. DHTesp dhtSensor;
  21.  
  22. void setup_wifi()
  23. {
  24.   Serial.println();
  25.   Serial.print("Connecting to ");
  26.   Serial.println(ssid);
  27.  
  28.   WiFi.mode(WIFI_STA);
  29.   WiFi.begin(ssid, password);
  30.  
  31.   while (WiFi.status() != WL_CONNECTED)
  32.   {
  33.     delay(500);
  34.     Serial.print(".");
  35.   }  
  36.  
  37.   Serial.println("");
  38.   Serial.println("WiFi connected");
  39.   Serial.println("IP address: ");
  40.   Serial.println(WiFi.localIP());
  41. }
  42.  
  43. void reconnect()
  44. {
  45.   while (!client.connected())
  46.   {
  47.     Serial.print("Attempting MQTT connection...");
  48.     String clientId = "MqttDashboard-4720445";
  49.     clientId += String(random(0xffff), HEX);
  50.     if (client.connect(clientId.c_str()))
  51.     {
  52.       Serial.println("Connected");
  53.     }
  54.     else
  55.     {
  56.       Serial.print("failed, rc=");
  57.       Serial.print(client.state());
  58.       Serial.println(" try again in 5 seconds");
  59.       delay(5000);
  60.     }
  61.   }
  62. }
  63.  
  64. void setup()
  65. {
  66.   Serial.begin(115200);
  67.   setup_wifi();
  68.   client.setServer(mqtt_server, 1883);
  69.   dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
  70. }
  71.  
  72. void loop()
  73. {
  74.  
  75.   if (!client.connected())
  76.   {
  77.     reconnect();
  78.   }
  79.  
  80.   client.loop();
  81.  
  82.   unsigned long now = millis();
  83.   if (now - lastMsg > 2000) {
  84.     lastMsg = now;
  85.    
  86.     TempAndHumidity  data = dhtSensor.getTempAndHumidity();
  87.     String temp = String(data.temperature, 2);
  88.     Serial.print("Temperature: ");
  89.     Serial.println(temp);
  90.     client.publish(topic_temp, temp.c_str());
  91.    
  92.     String hum = String(data.humidity, 1);
  93.     Serial.print("Humidity: ");
  94.     Serial.println(hum);
  95.     client.publish(topic_hum, hum.c_str());
  96.   }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement