mqtt_sub.ino 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #include <ESP8266WiFi.h>
  2. #include <TasmotaMqtt.h>
  3. // This needs testing
  4. void myDataCb(char* topic, uint8_t* data, unsigned int data_len);
  5. void myPublishedCb();
  6. void myDisconnectedCb();
  7. void myConnectedCb();
  8. #define CLIENT_ID "client3"
  9. #define TOPIC "/client1/value"
  10. // create MQTT
  11. TasmotaMqtt myMqtt();
  12. const char* ssid = "ssid";
  13. const char* password = "ssid_password";
  14. //
  15. void setup() {
  16. Serial.begin(115200);
  17. delay(1000);
  18. Serial.println();
  19. Serial.println();
  20. Serial.print("Connecting to ");
  21. Serial.println(ssid);
  22. WiFi.begin(ssid, password);
  23. while (WiFi.status() != WL_CONNECTED) {
  24. delay(500);
  25. Serial.print(".");
  26. }
  27. Serial.println("");
  28. Serial.println("WiFi connected");
  29. Serial.println("IP address: ");
  30. Serial.println(WiFi.localIP());
  31. Serial.println("Connecting to MQTT server");
  32. myMqtt.InitConnection("192.168.0.1", 1883);
  33. myMqtt.InitClient(CLIENT_ID, "", "");
  34. myMqtt.InitLWT("/lwt", "offline");
  35. // setup callbacks
  36. myMqtt.OnConnected(myConnectedCb);
  37. myMqtt.OnDisconnected(myDisconnectedCb);
  38. myMqtt.OnPublished(myPublishedCb);
  39. myMqtt.OnData(myDataCb);
  40. Serial.println("connect mqtt...");
  41. myMqtt.Connect();
  42. Serial.println("subscribe to topic...");
  43. myMqtt.Subscribe(TOPIC);
  44. delay(10);
  45. }
  46. //
  47. void loop() {
  48. }
  49. /*
  50. *
  51. */
  52. void myConnectedCb()
  53. {
  54. Serial.println("connected to MQTT server");
  55. }
  56. void myDisconnectedCb()
  57. {
  58. Serial.println("disconnected. try to reconnect...");
  59. delay(500);
  60. myMqtt.Connect();
  61. }
  62. void myPublishedCb()
  63. {
  64. //Serial.println("published.");
  65. }
  66. void myDataCb(char* topic, uint8_t* data, unsigned int data_len)
  67. {
  68. Serial.print(topic);
  69. Serial.print(": ");
  70. Serial.println(data);
  71. }