本帖最后由 linyu0395 于 2020-12-17 16:37 编辑
现在智能家居开始盛行,功能上免不了要通过外网控制家庭内部的各种设备,包括开关、窗帘、电视、空调以及各种传感器的设备等。我通过学习了“阿里云IOT平台及配套视频教程”,在此分享一下学习心得。
学习的链接为:https://bbs.21ic.com/icview-3050406-1-4.html
学习的主题为:阿里云IOT平台及配套视频教程
首先,我通过“STM32 云接入培训_2_物联网通信协议——MQTT协议介绍”,学习到了MQTT的基本组成架构,了解到MQTT是轻量级通信协议,适用资源受限设备,低带宽,高延时,不稳定网络中进行消息传输,采用客户端/服务器模式,采用发布/订阅消息模式,提供一对多消息分发的方式来通讯。其中包括三个角色: Broker(Server), 发布消息客户端, 订阅消息客户端。MQTT定义了3种QoS级别,分别是QoS0(最多一次)、QoS1(至少一次)
QoS2(只有一次),所以要根据终端设备的数据内容要求来选择Qos的等级,如果对数据内容的丢失不是很敏感,比如间隔某段时间传输一次传感器的数据,就可以用Qos1或者Qos2,其余的,建议用Qos0。
单片机采用MQTT协议,看了文档,比较推荐使用Paho MQTT代码库,大家可以通过https://github.com/eclipse/paho.mqtt.c来下载测试。当然,如果大家采用乐鑫或者庆科等自带IOT功能的WIFI模块,里面的MQTT通讯协议已经封装好了,通过串口指令就可以控制。
通过“STM32 云接入培训_3.2_使用Paho MQTT客户端协议栈直连阿里云IoT平台”,学习到了基于STM32的软硬件开发环境的搭建,并通过Paho Mqtt客户端协议直连阿里云IoT,其中的项目例程流程图简单明了易懂。
IAR的工程项目文件结构图
项目例程流程图:
通过阿里云IoT平台,可以清楚看到所以设备的连接状态和提交的数据信息:
以及应用服务侧的运行效果:
在此,我对改方案有如下几点建议: 1、 通过阿里云架设MQTT服务器固然快捷方便,当时对于初学者来讲,系统有点庞大,我建议可以通过第三方工具来自行架设内网服务器, 比如emqx或者mosquitto 等,这样测试也方便,是否可以用适当的**来介绍一下内网MQTT服务器的搭建流程。 2、 作为ST主导的方案,是否可以结合ST MCU的开发板,发布关于IOT的活动项目让大家更积极地参与其中,毕竟智能家居的时候已经到来。
通过IoT,让我们的生活和智能息息相关,方便了我们的生活,小到普通的灯控开关,大到空调、冰箱等,还可以结合各种传感器来丰富我们的生活。 户外下雨了,传感器感知到可以自动关闭窗户;家人回到家,灯光自动亮起来,营造温馨的氛围; 夏天开车回来的路上,可以预先开启家里的空调降降温……
创意无极限,全部靠大家!
最后附上所学习的文档
1_Cloud_and_IoT_Introduction.pdf
(593.13 KB)
2_IoT_protocols.pdf
(1.15 MB)
3.2_Paho_MQTT_protocol.pdf
(3.7 MB)
|