当前位置:   article > 正文

esp8266的Arduino之MQTT客户端、Websocket客户端demo_websocket ws:// 8266

websocket ws:// 8266

一、参考连接

https://github.com/tuanpmt/ESP8266MQTTClient

二、食用方法

1、打开arduino,然后点击项目--加载库--添加.zip库,找到你下载的zip包,然后选中即可,这里需要更新为V1.0.4版本,在项目--加载库--管理库中,找到你刚刚安装的库,选择类型--已安装,目前下载安装的是V1.0.5版本,有点问题,需要安装V1.0.4版本的

2、解压刚刚的zip文件,找到examples里面的MQTTClient打开里面.ino文件,然后这里需要进行更改一下,添加wifi连接的部分代码,设置为你自己的Wifi,还有最下面的mqtt服务器的ip和port也要更改,参考代码如下:

  1. //https://github.com/tuanpmt/ESP8266MQTTClient
  2. #include <ESP8266MQTTClient.h>
  3. #include <ESP8266WiFi.h>
  4. MQTTClient mqtt;
  5. void setup() {
  6. Serial.begin(115200);
  7. WiFi.mode(WIFI_STA); //设置esp8266 工作模式
  8. WiFi.begin("WIFI", "PWD");
  9. WiFi.setAutoConnect(true);
  10. while (WiFi.status() != WL_CONNECTED) {
  11. delay(500);
  12. Serial.print(".");
  13. }
  14. //topic, data, data is continuing
  15. mqtt.onData([](String topic, String data, bool cont) {
  16. Serial.printf("Data received, topic: %s, data: %s\r\n", topic.c_str(), data.c_str());
  17. //mqtt.unSubscribe("/qos0");
  18. });
  19. mqtt.onSubscribe([](int sub_id) {
  20. Serial.printf("Subscribe topic id: %d ok\r\n", sub_id);
  21. mqtt.publish("esp32", "GONEPOO", 0, 0);
  22. });
  23. mqtt.onConnect([]() {
  24. Serial.printf("\r\nMQTT: Connected\r\n");
  25. Serial.printf("Subscribe id: %d\r\n", mqtt.subscribe("esp32", 0));
  26. //mqtt.subscribe("esp32", 1);
  27. //mqtt.subscribe("esp32", 2);
  28. });
  29. mqtt.begin("mqtt://175.175.175.175:1883");
  30. // mqtt.begin("mqtt://test.mosquitto.org:1883", {.lwtTopic = "hello", .lwtMsg = "offline", .lwtQos = 0, .lwtRetain = 0});
  31. // mqtt.begin("mqtt://user:pass@mosquito.org:1883");
  32. // mqtt.begin("mqtt://user:pass@mosquito.org:1883#clientId");
  33. }
  34. void loop() {
  35. mqtt.handle();
  36. }

3、刷入程序后,在工具--串口监视器里面可以看到已经连上了mqtt服务器了,用paho订阅测试一下就好了,paho的下载地址如下http://www.eclipse.org/paho/components/tool/

4、同理,websocket客户端的代码也大同小异,只需要更改一下,刷入即可,需要更改的是下面的websocket的ip和端口号,参考代码如下:

  1. //https://github.com/tuanpmt/ESP8266MQTTClient
  2. #include <ESP8266MQTTClient.h>
  3. #include <ESP8266WiFi.h>
  4. MQTTClient mqtt;
  5. void setup() {
  6. Serial.begin(115200);
  7. WiFi.mode(WIFI_STA); //设置esp8266 工作模式
  8. WiFi.begin("WIFI", "PWD");
  9. WiFi.setAutoConnect(true);
  10. while (WiFi.status() != WL_CONNECTED) {
  11. delay(500);
  12. Serial.print(".");
  13. }
  14. //topic, data, data is continuing
  15. mqtt.onData([](String topic, String data, bool cont) {
  16. Serial.printf("Data received, topic: %s, data: %s\r\n", topic.c_str(), data.c_str());
  17. //mqtt.unSubscribe("/qos0");
  18. });
  19. mqtt.onSubscribe([](int sub_id) {
  20. Serial.printf("Subscribe topic id: %d ok\r\n", sub_id);
  21. mqtt.publish("esp32", "gaojing", 0, 0);
  22. });
  23. mqtt.onConnect([]() {
  24. Serial.printf("\r\nMQTT: Connected\r\n");
  25. Serial.printf("Subscribe id: %d\r\n", mqtt.subscribe("esp32", 0));
  26. //mqtt.subscribe("esp8266", 1);
  27. //mqtt.subscribe("arduino", 2);
  28. });
  29. mqtt.begin("ws://175.175.175.175:9001");
  30. //mqtt.begin("ws://test.mosquitto.org:8080", {.lwtTopic = "hello", .lwtMsg = "offline", .lwtQos = 0, .lwtRetain = 0});
  31. //mqtt.begin("ws://user:pass@mosquito.org:8080");
  32. //mqtt.begin("ws://user:pass@mosquito.org:8080#clientId");
  33. }
  34. void loop() {
  35. mqtt.handle();
  36. }

三、最后感言

我只是代码的搬运工,感谢那些分享代码的各位大神

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/196332
推荐阅读
相关标签
  

闽ICP备14008679号