开发者学堂课程【基于STM32的端到端物联网全栈开发:LinkKit SDK 接入阿里云物联网平台(1)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/574/detail/7941
LinkKit SDK 接入阿里云物联网平台(1)
基于 STM32的节点设备接入阿里云 loT 平台
使用 Linkkit C-SDK 和 TLS 通过 MQTT 协议直连阿里云 loT 平台
#适用于资源丰富的节点设备
第二节着重的介绍了如何把节点设备连接到阿里云 loT 平台打通数据的前半程路径,在节点端使用的是开源社区广泛使用的 paho MQTT 客户端协议栈,对上是配阿里云 loT 平台自定义的连接参数,对下是配到提供的网络通道管理层,最终通过底层的 wifi 驱动实现物理通道层面的通行。这种方式方便灵活,可以使用这种方式连接到任意 MQTT 服务器。
第三节会使用另一种方式连接到阿里云 loT 平台,即在节点端运行由阿里云 loT 平台开发的并发布给用户的针对嵌入式终端的 C 语言版本的 Linkkit C-SDK,并且在该连接方式上还加入了 TLS 协议栈,来保证节点和阿里云 loT 平台间的安全双向通信。
基于阿里 Linkkit C-SDK 通过 MQTT 直连阿里云 loT 平台
内容简介
1. 项目例程演示
(1)项目例程流程图
(2)演示视频
2.Linkkit C-SDK 介绍
(1)Linkkit C-SDK
(2)Linkkit C-SDK 如何适配到 STM32平台
(3)Linkkit C-SDK 的使用
3.项目例程介绍
(1)软件包和项目结构
(2)使用 CubeMX 生成系统初始化框架和代码
(3)网络通信的管理(网络通信抽象层和wifi驱动)
(4)使用 Linkkit C-SDK 连接阿里云 loT 平台
(5)例程参数的存储及 Sensor 数据的读取
首先会观察 demo 的运行,项目所实现的功能在用户服务器侧与第二节的项目基本没有区别,在阿里云 loT 平台侧会看到该设备是基于高级版的物管理,改观上最大的区别是在节点端的串口打印信息,大部分的打印信息是 SDK 中自带的,详细的展示了设备认证 TLS 建立连接的过程。
Linkkit C-SDK 在项目中的作用对应于 paho MQTT 客户端协议栈和 ST 的网络管理层两者结合。本例程中还使用了TLS 协议栈,用户会看到来自阿里和ST的软件组件如何有机粘合在一起,配合工作。使用 CubeMX 生成系统初始化框架和代码,与上一节比较有新的操作增加,如中间件的使能和配置。
课程场景:
1.每5秒上报温湿度值,闪烁绿灯
2.温度超过【阈值】亮红灯,并在每10秒向用户服务器报警,直到温度恢复【阈值】以下或者收到警报解除消息
3.收到警报解除信息后红灯闪烁
4.温度恢复到【阈值】以下灭红灯
1.湿度值被阿里云 loT 转发到用户服务器,进行数据库存储,同时在 web 端显示近期温湿度数据曲线
2.报警消息被阿里云 loT 转发到用户服务器,在 web 端显示
3.用户通过 web 端页面解除报警
4.用户通过 web 端页面设置【阈值】参数
运行效果-节点端串口打印
连接准备:
整个系统的运行效果
1.
Push the User button (Blue) within in next 5 seconds if you want to update the WIFI network conf iguration.
Your WIFI parameters need to be entered to proceed.
Enter SSID:****
//若要重新配置 wifi 热点,需要5秒内按下 user 键
Enter password:****
//输入热点名称和密码
2.
Push the User button (Blue) within the next 5 seconds if you want to update the device security parameters or credentials.
Enter Product Key : (example:a1b05Uexxxx)
a1zPqJ3NYxJ
read:-->
a1zPqJ3NYxJ
<--
//输入 product key
Enter device name: (example:mydevicename)
2019CY case2_node001
read:-->
2019CT_case2_node001
<--
//输入 device name
2019CT_case2_node001
Enter device secret: (example:7o7GJ3odUE7pPnie07dzxxxxxxxxxx)
IVDt2s7hUyZVL62oS9VXgT6mnjjRo0Ci
read:-->
//输入 device secret
//根据设备三元组,Linkkit SDK 进行设备认证
//TLS 建立 by mbedTLS
订阅量两个主题
//Linkkit SDK 自带的发布三条消息,用于设备信息统计
//两条订阅消息包
//定时发布温度(25.xx)、温度(28)和温度报警阈值(38)
设备上线,发布消息:
loT 平台收到设备上报的数据后,会通过 http 协议推送到用户的应用服务器上,后端应用把数据写入到数据库中,前端应用可以看到设备的信息。
用户修改温度报警阈值:
1.修改“温度报警阈值”—》18,并下发
在 web 前端页面能看到红色的图标从正常切换到报警
温度阈值被改变,触发节点端报警行为
//收到订阅的主题的消息
//设局负载遵循 Alink 协议:温度阈值—》18
//节点设备发送“报警”事件给 loT 平台
网页操作:
首先进入到阿里云管理控制台,点击左侧设备管理,点击产品:
进入高级产品,点击功能定义,添加模型属性
创建成功后可以查看到属性
点击设备,建立一个新的设备:
连接到设备:
上线成功后可以看到设备的信息:
点击服务端订阅,打开 http 推送,可以看到当前设备状态。