Intel Edison与MQTT在物联网开发中的应用

Intel® Edison开发板不仅仅是一个兼容Arduino*的开发板,它还是一个运行Linux*的单板计算机,可以为Arduino草图提供完整的Linux功能。本文将探讨如何将Linux功能集成到Arduino草图中,以及如何利用现有代码简化物联网开发。

将从构建一个包含温度传感器、光传感器、LED和开关的简单传感器节点开始,然后将数据发布到互联网上使用MQTT。通过Node-Red展示一些基本的数据分析,触发事件并将命令发送回传感器节点。

Edison板附带的Linux发行版源自Yocto项目,这是一个为资源有限的嵌入式系统设计的小型Linux内核。

MQTT简介

MQTT是一个轻量级的协议,用于机器对机器(M2M)通信。MQTT使用基于TCP/IP协议的发布/订阅消息转发模型。MQTT协议的核心是一个MQTT服务器或代理,可供发布者和订阅者访问。使用MQTT,可以构建一个传感器网络,其中各种传感器可以以消息的形式发布它们的传感器值,这些消息对每个传感器都是唯一的。执行器可以订阅不同的消息并据此采取行动。MQTT代理将负责将消息从发布者转发给订阅者。

例如:微控制器A可以读取开关的状态,并将开关的状态作为消息"switch = on"发布到MQTT服务器。互联网上的微控制器B订阅了MQTT消息"switch"。现在,每当用户按下开关时,微控制器A就会向MQTT代理发布消息。代理将消息转发给一系列订阅者。当微控制器B收到消息时,它可以解析内容,确定开关的状态,并相应地打开或关闭灯。

在Edison上构建Mosquitto

假设读者已经设置了他们的Edison板,并且熟悉标准的Linux操作。在Edison上构建Mosquitto相当直接。以下是在Edison上构建Mosquitto的步骤:

  1. 从mosquitto.org下载Mosquitto
  2. $> wget http://mosquitto.org/files/source/mosquitto-1.3.5.tar.gz
  3. 解压缩归档文件
  4. $> tar xzf mosquitto-1.3.5.tar.gz
  5. 进入解压后的文件夹
  6. $> cd mosquitto-1.3.5
  7. 构建
  8. $> make WITH_SRV=no
  9. 测试并安装Mosquitto编译
  10. # 创建用户mosquitto $> adduser mosquitto
  11. 测试
  12. $> cd test/broker $> make test $> cd ../../
  13. 安装
  14. $> cp client/mosquitto_pub /usr/bin $> cp client/mosquitto_sub /usr/bin $> cp lib/libmosquitto.so.1 /usr/lib $> cp src/mosquitto /usr/bin

Mosquitto根目录中还有一个测试目标。然而,这个目标需要Python3,而Edison OS上没有Python3,一些后续测试将会失败。test/broker目录中的目标不需要Python3,将覆盖所有基本的MQTT操作。

测试Mosquitto客户端和服务器

Edison OS配置为自动启动rsmb代理。因此,默认的TCP端口1883已经被rsmb使用。将使用默认的MQTT端口测试Mosquitto客户端针对运行在Edison上的rsmb代理。稍后,将配置Mosquitto代理在不同的端口上运行,并进行测试。

要测试客户端,请打开两个到Edison的SSH连接。在第一个连接中,运行一个订阅本地Edison上运行的rsmb代理的'test'主题的mosquitto_sub客户端。

在第二个SSH连接中,向同一本地服务器上的'test'主题发布一条消息'Hello World!'。

应该会在运行mosquitto_sub程序的窗口中看到消息。请注意,mosquitto_sub客户端是持久的,并且会继续监听服务器的新消息,直到被终止。

上述测试表明,构建的mosquitto_sub和mosquitto_pub客户端可以正确地与本地rsmb MQTT服务器一起工作。

可以使用相同的命令,但使用带有-p 1993参数的mosquitto_sub和mosquitto_pub,测试在端口1993上运行的mosquitto代理。

Intel Edison上构建并运行了mosquitto服务器和客户端。在随后的文章中,将开始开发利用刚刚构建的MQTT客户端的Arduino草图。

Mosquitto文档可以在找到。

关于Intel Edison板的详细信息可以在找到。

Intel® IoT Developer Program提供了知识、工具、套件和专家社区,帮助快速轻松地将创新想法转化为物联网解决方案。

立即开始使用Intel® IoT Developer Kit for Intel® Edison和Intel® Galileo平台。这些套件是多功能的、性能优化的、完全集成的端到端物联网解决方案,支持多种编程环境、工具、安全性、云连接和硬件。

要获取更多资源并了解新的Intel® IoT Developer Kit v1.0如何帮助简化物联网项目,请下载。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485