机器人与人工智能爱好者论坛

 找回密码
 立即注册
查看: 5146|回复: 0
打印 上一主题 下一主题

物联网协议MQTT Arduino代码例子

[复制链接]

257

主题

279

帖子

1655

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1655
跳转到指定楼层
楼主
发表于 2015-12-7 22:23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
物联网协议MQTT Arduino代码例子

时间:2015-12-06 20:08

  MQTT Arduino        开始之前

        需要的东西有:


  •                 Arduino
  •                 Arduino Ethernet
  •                 MQTT服务

        假设我们已经满足了上面的条件。

        Arduino Pubsubclient 示例

        引用官方的示例

  1. #include <SPI.h>
  2. #include <Ethernet.h>
  3. #include <PubSubClient.h>

  4. byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
  5. byte server[] = { 192, 168, 168, 78 }; // MQTT服务地址
  6. byte ip[]     = { 192, 168, 168, 250 }; // 设备IP

  7. void callback(char* topic, byte* payload, unsigned int length) {
  8.   // handle message arrived
  9. }

  10. EthernetClient ethClient;
  11. PubSubClient client(server, 1883, callback, ethClient);

  12. void setup()
  13. {
  14.   Ethernet.begin(mac, ip);
  15.   if (client.connect("arduinoClient")) {
  16.     client.publish("outTopic","hello world");
  17.     client.subscribe("inTopic");
  18.   }
  19. }

  20. void loop()
  21. {
  22.   client.loop();
  23. }
复制代码

运行,接着报了各种服务错误。。。

  1. { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
  2. { [Error: read ECONNRESET] code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }
复制代码

  打开一看,发现是限定了传进来的格式要是JSON的。


        于是:

  1. client.publish("outTopic","{'hello': 'true'}");
复制代码

  It Works。

        其他

        这里的测试环境是在本地,不知何原因无法使用服务器,是否是因为DNS缓存?




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|陕ICP备15012670号-1    

GMT+8, 2024-4-28 00:18 , Processed in 0.055094 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表