Guest User

Untitled

a guest
Dec 8th, 2024
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.61 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <WiFiClientSecure.h>
  3. #include <PubSubClient.h>
  4. // mosquitto_sub -h 10.0.0.89 -p 8883 -u bblp -P 13003498
  5.  
  6. // WiFi settings
  7. const char *ssid = "Neangerang";            // Replace with your WiFi name
  8. const char *password = "Forest3736alley!";  // Replace with your WiFi password
  9.  
  10. // MQTT Broker settings
  11. const char *mqtt_broker = "10.0.0.89";    // EMQX broker endpoint
  12. const char *mqtt_topic = "#";  // MQTT topic
  13. const char *mqtt_username = "bblp";       // MQTT username for authenticatbion
  14. const char *mqtt_password = "13003498";   // MQTT password for authentication
  15. const int mqtt_port = 8883;               // MQTT port (TCP)
  16.  
  17. WiFiClientSecure espClient;
  18. PubSubClient mqtt_client(espClient);
  19.  
  20. void connectToWiFi();
  21.  
  22. void connectToMQTTBroker();
  23.  
  24. void mqttCallback(char *topic, byte *payload, unsigned int length);
  25.  
  26. void setup() {
  27.   Serial.begin(115200);
  28.   connectToWiFi();
  29.   mqtt_client.setServer(mqtt_broker, mqtt_port);
  30.   mqtt_client.setCallback(mqttCallback);
  31.   connectToMQTTBroker();
  32. }
  33.  
  34. void connectToWiFi() {
  35.   espClient.setInsecure();
  36.   WiFi.begin(ssid, password);
  37.   Serial.print("Connecting to WiFi");
  38.   while (WiFi.status() != WL_CONNECTED) {
  39.     delay(500);
  40.     Serial.print(".");
  41.   }
  42.   Serial.println("\nConnected to the WiFi network");
  43. }
  44.  
  45. void connectToMQTTBroker() {
  46.   while (!mqtt_client.connected()) {
  47.     String client_id = "esp8266-client-" + String(WiFi.macAddress());
  48.     Serial.printf("Connecting to MQTT Broker as %s.....\n", client_id.c_str());
  49.     if (mqtt_client.connect(client_id.c_str(), mqtt_username, mqtt_password)) {
  50.       Serial.println("Connected to MQTT broker");
  51.       Serial.printf("connectToMQTTBroker connected: %d\n", mqtt_client.connected());
  52.       Serial.printf("connectToMQTTBroker state: %d\n", mqtt_client.state());
  53.       mqtt_client.subscribe("#");
  54.       break;
  55.     } else {
  56.       Serial.print("Failed to connect to MQTT broker, rc=");
  57.       Serial.print(mqtt_client.state());
  58.       Serial.println(" try again in 5 seconds");
  59.       delay(5000);
  60.     }
  61.   }
  62. }
  63.  
  64. void mqttCallback(char *topic, byte *payload, unsigned int length) {
  65.   Serial.print("Message received on topic: ");
  66.   Serial.println(topic);
  67.   Serial.print("Message:");
  68.   for (unsigned int i = 0; i < length; i++) {
  69.     Serial.print((char)payload[i]);
  70.   }
  71.   Serial.println();
  72.   Serial.println("-----------------------");
  73. }
  74.  
  75. void loop() {
  76.   Serial.printf("Loop connected: %d\n", mqtt_client.connected());
  77.   Serial.printf("Loop state: %d\n", mqtt_client.state());
  78.   if (!mqtt_client.connected()) {
  79.     connectToMQTTBroker();
  80.   }
  81.   mqtt_client.loop();
  82. }
Advertisement
Add Comment
Please, Sign In to add comment