App Inventor 2 MQTT拓展入门(保姆级教程)

图片

本文通过一个零门槛的MQTT入门级测试案例,带大家熟悉一下MQTT的开发步骤,让大家对MQTT通信模型有一个比较直观的认识。

准备工作

  • APPINVENTOR测试平台:AppInventor2中文网(https://www.fun123.cn

  • MQTT拓展下载:MQTT中文文档页面进行下载。

  • MQTT测试平台:

    • 中文平台推荐:bemfa.com 界面简洁,对入门者友好。当然也可以选择稍复杂的,大厂平台如:阿里云、华为云、中国移动OneNET平台等都提供物联网云平台。
    • 英文平台推荐:HiveMQ(HiveMQ Dashboard)、EMQX(broker.emqx.io) 等。有一定基础的可以考虑用英文平台。

      其实,使用哪个平台都可以,甚至自己搭建MQTT服务器,使用自己的平台。不过初学者还是建议用国内中文平台进行测试,熟悉之后可以研究一下其他的或者自己搭建。

    这里以 bemfa.com 为例,账号注册请自行完成,如果看到的是TCP云,请切换到MQTT云:

    mqtt

    输入名称(例如:APPMQTT),新建一个订阅主题:

    mqtt

  • MQTT客户端测试工具,下载地址:MQTTX 下载

    启动MQTTX客户端测试工具,设置语言为中文:

    mqtt

    配置和App一样的连接参数:

    mqtt

    往指定主题发布一个测试消息,效果如下:

    mqtt

App设计及代码

服务器地址:bemfa.com
端口:9501
客户端ID:(MQTT云控制台获取)
订阅主题:APPMQTT

新建项目,导入MQTT拓展,可在“界面设计”的拓展属性中进行服务器通信基本设置:

mqtt

也可以在“程序设计”视图中,屏幕初始化时使用代码块进行设置:

mqtt

完整代码如下:

mqtt

测试效果

App端测试发布消息,效果如下:

mqtt

App与测试客户端联动测试,效果如下:

mqtt

云平台服务器端可以查看订阅设备的数量,以及消息的发送历史:

mqtt

注意:由于订阅了同一个主题,客户端发布消息时也会收到自己发出的消息。因为MQTT服务器会将消息转发给所有订阅这个主题的客户端。有两种解决办法:

(1)添加标识,比如添加客户端前缀,再根据前缀进行过滤。

(2)订阅两个主题,一个专门用于接收,一个专门用于发布。

IoT物联网

以上演示的是App和一个测试客户端进行消息交互的案例,实际应用中,我们的测试客户端可以看着是任意的、支持MQTT协议的硬件,通过订阅及发布消息,联网硬件与我们的App进行双向数据通信,以实现万物互联的智能控制效果。

.aia 源码下载

原文:App Inventor 2 MQTT拓展入门(保姆级教程) · App Inventor 2 中文网

### 如何在App Inventor中集成MQTT协议 为了实现在App Inventor中集成MQTT协议的功能,可以采用扩展组件的方式。具体来说,通过使用由社区开发并维护的第三方MQTT客户端库来实现这一目标。 #### 使用MQTT Extension Component 1. **下载MQTT扩展** 需要先从可靠的资源获取适用于App InventorMQTT扩展文件(通常为`.aix`格式)。这些文件可以从GitHub或其他开源平台找到[^1]。 2. **导入MQTT扩展至项目** 打开App Inventor设计视图,在“媒体”标签页点击上传按钮并将之前下载好的MQTT扩展文件加载进来。成功添加后可以在设计师界面看到新的MQTT组件选项。 3. **配置MQTT连接参数** 利用新加入的MQTT组件设置必要的属性,比如服务器地址、端口号以及认证信息等。确保所填写的信息与实际使用的MQTT代理服务相匹配。 4. **编写逻辑处理程序** 进入块编辑器定义当应用程序尝试建立连接时的行为模式;例如订阅特定主题的消息监听事件,并指定接收到消息后的响应动作。同样地,也需要设定发布消息给其他设备的方法。 ```blockly when Screen1.Initialize call MQTTClient.Connect "mqtt.example.com", 1883, "username", "password" end when MQTTClient.Connected call MQTTClient.Subscribe "/topic/test" end when MQTTClient.MessageArrived topic message set Label1.Text to joinTexts ["Received Message:", message] end when ButtonSend.Click call MQTTClient.Publish "/topic/test", TextBoxMessage.Text end ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI2中文网

真诚赞赏,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值