3889| 1
|
[入门教程] 【MQTT教程】慧编程:光环板--MQTT扩展使用说明 |
慧编程:光环板--MQTT扩展使用说明一、前言前几天为光环板写了一个MQTT的扩展(ps:不得不说:慧编程(mblock)的开发者平台真的很不错(https://ext.makeblock.com):简单,方便,入手快![表情][表情][表情])。今天从慧编程的产品那里得知:有很多用户对光环板的MQTT协议还不知道如何使用!为了让更多的用户能够学会使用MQTT扩展,于是写下了这篇MQTT的教程! 二、加载MQTT协议首先,先添加我们的光环板设备 在用到我们的MQTT功能之前首先你要有一个物联网平台的账户,扩展默认的物联网平台是(iot.dfrobot.com.cn)当然也可以使用本地物联网平台。
为了稍后编程需要,记下相关账号: iot_id: iot_pwd: topic: 三、mqtt积木块的使用说明<u>mqtt扩展必须在光环板联网的情况请款下才能使用!</u> 1、mqtt初始化设置 这里的clientID和server 是确定的(当然可以跟你自己连接不同的服务器进行更改),iot_id和iot_pwd是我们自己的物联网用户明和密码(也就是我们刚才需要记下的那串字符)。 2、发布消息到主题上 向物联网设备(topic)发送消息(eg可以把语音识别的内容发送到我们的物联网平台,字符串、变量值)! 3、连接mqtt
通过mqtt协议连接到物联网平台。 4、订阅主题
订阅的消息通过回调传递。这是为了避免对已订阅的消息使用队列,否则可能随时收到消息(包括客户端期望其他类型的服务器响应时,因此有两种选择:要么通过回调立即传递它们,要么一直排队直到“预期”响应到达)。请注意,不需要队列是一种迷惑:在这种情况下,运行时调用堆栈形成一个隐式队列。而且与显式队列不同,它很难控制。之所以选择这种设计,是因为在通常情况下,处理订阅的消息是最有效的。但是,如果在订阅回调中发布了QoS> 0的新消息,则可能导致深度递归或无限递归(后者意味着应用程序将以 我们在使用此积木块时,可以设置一个变量来代替订阅的消息。然后用逻辑判断不同的消息值来做相应的想要操作 5、等待服务器状态
请注意,如果您仅发布消息,而无需 6、断开连接 断开与服务器的连接,释放资源。 7、设置主线的离线消息 设置MQTT“最后的意愿”消息。应该在 connect()之前调用 。 四、样例程序一、发送消息到服务器端在样例一的程序中,当我们给光环板供电时,它先连接wifi,通过mqtt协议来连接到我们的物联网平台(mqtt_server)最后发送消息(hello)到物联网平台。我们打开物联网平台选择相应的设备就可以看到我们刚才发送过来的消息了,效果如下图所示: 二、从服务器端订阅消息在样例二中,通过mqtt平台给光环板发送消息,光环板订阅服务器端发来的消息,然后来做开灯关灯相关操作,演示效果如下: |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed