mqtt_pub.ino 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #include <ESP8266WiFi.h>
  2. #include <MQTT.h>
  3. void myDataCb(String& topic, String& data);
  4. void myPublishedCb();
  5. void myDisconnectedCb();
  6. void myConnectedCb();
  7. #define CLIENT_ID "client1"
  8. // create MQTT object
  9. MQTT myMqtt(CLIENT_ID, "192.168.0.1", 1883);
  10. //
  11. const char* ssid = "ssid";
  12. const char* password = "ssid_password";
  13. //
  14. void setup() {
  15. Serial.begin(115200);
  16. delay(1000);
  17. Serial.println();
  18. Serial.println();
  19. Serial.print("Connecting to ");
  20. Serial.println(ssid);
  21. WiFi.begin(ssid, password);
  22. while (WiFi.status() != WL_CONNECTED) {
  23. delay(500);
  24. Serial.print(".");
  25. }
  26. Serial.println("");
  27. Serial.println("WiFi connected");
  28. Serial.println("IP address: ");
  29. Serial.println(WiFi.localIP());
  30. Serial.println("Connecting to MQTT server");
  31. // setup callbacks
  32. myMqtt.onConnected(myConnectedCb);
  33. myMqtt.onDisconnected(myDisconnectedCb);
  34. myMqtt.onPublished(myPublishedCb);
  35. myMqtt.onData(myDataCb);
  36. Serial.println("connect mqtt...");
  37. myMqtt.connect();
  38. delay(10);
  39. }
  40. //
  41. void loop() {
  42. int value = analogRead(A0);
  43. String topic("/");
  44. topic += CLIENT_ID;
  45. topic += "/value";
  46. String valueStr(value);
  47. // publish value to topic
  48. boolean result = myMqtt.publish(topic, valueStr);
  49. delay(1000);
  50. }
  51. /*
  52. *
  53. */
  54. void myConnectedCb()
  55. {
  56. Serial.println("connected to MQTT server");
  57. }
  58. void myDisconnectedCb()
  59. {
  60. Serial.println("disconnected. try to reconnect...");
  61. delay(500);
  62. myMqtt.connect();
  63. }
  64. void myPublishedCb()
  65. {
  66. //Serial.println("published.");
  67. }
  68. void myDataCb(String& topic, String& data)
  69. {
  70. Serial.print(topic);
  71. Serial.print(": ");
  72. Serial.println(data);
  73. }