目录
一、引言
二、智慧路灯物联网架构介绍
1.感知层:
2.网络层:
3.平台层
4.应用层
三、开发环境
四、开发注意事项
五、学习网站(实践指南)
1.华为云实战训练营教学视频
2.智慧路灯项目实战教学(博主分享)
3.华为云最佳实践项目:基于NB-IoT小熊派开发智慧路灯
本文将介绍利用小熊派物联网开发板开发“智慧路灯”项目的实现方案,并着重介绍整个端管云的物联网实现架构,介绍如何从设备、平台、应用端到端构建一款智慧路灯解决方案样例。并提供相应的小熊派“智慧路灯”项目的学习网站。
即我们使用的小熊派开发板,外接E53_SC1扩展板(光强传感器+高亮LED),用于采集外界环境的光强信息。
网络层,实现数据传输,把数据从感知层传输至平台层。网络层又分为物接入互联网、互联网传输两部分。
在智慧路灯的实现中(物接入互联网):可以选择以下通信技术接入互联网:
这几种通信方式都有对应的小熊派通信模块,都是可以实现连接网络的,这一层的作用是将感知层采集的光强数据通过连接网络后上传至华为云物联网平台。
互联网数据传输:
目前有两种主流的通讯协议:MQTT和CoAP
小熊派设备连接华为云平台还可以采用LWM2M(Light Weight Machine-to-Machine),即轻量型的通信协议,该协议是建立在COAP协议之上的。这里需要说明下:COAP协议和LWM2M协议实际上是应用层的协议,只是COAP协议是负责数据的传输部分,LWM2M协议在此基础上进行了资源定位。有的人把COAP协议看做是传输层的协议也是可以理解的,因为它负责将感知层设备采集的信息传输至物联网平台(数据传输)。
LwM2M协议底层使用CoAP协议传输数据和信令。而在LwM2M协议的架构中,CoAP协议可以运行在UDP或者SMS(短信)之上,通过DTLS(数据报传输层安全)来实现数据的安全传输。
注:MQTT协议、CoAP协议等都是运行在应用层,底层使用TCP协议或者UDP协议进行数据传输,整个协议栈运行在IP网络上。而LoRaWAN等协议则是物理层/数据链路层协议,它解决的是设备如何接入互联网的问题,并不运行在IP网络上。
在华为云物联网平台上创建产品——定义产品模型——开发编解码插件——添加真实设备(小熊派开发板),之后便可在华为云物联网平台上接收感知层设备上报的光强数据,并通过下发命令控制“路灯”(开发板扩展板的LED灯)的开启与关闭,还可以在应用侧添加相应的规则使得“路灯”能够根据采集的光强信息自动选择开启或者关闭灯光,以实现“智慧路灯”。(之所以需要开发编解码插件是因为传输的数据在物联网平台上是JSON格式,而LWM2M协议和COAP协议传输的数据是二进制数据,故在物联网平台上需要开发编解码插件对传输数据进行编码与解码操作)平台层的开发相对简单,因为很多功能是华为云平台封装好的,直接配置调用即可。
可以在华为云物联网平台上开发相应的Web应用“路灯管理”界面以展现感知层采集的信息以及路灯的状态信息。(因为华为云IoT开发者服务(IoT Studio)已经于2021/04/30 退市,故目前无法通过华为云的IOT studio创建应用界面)
画了一个简单的物联网架构图如下:
具体的实践方案:(图源华为云实践文档)
开发板:小熊派开发板(含 NB 卡、NB35-A 通信扩展板、E53_SC1 案例扩展板等)
IDE开发软件:IoT Studio/Liteos Studio/MDK Keilv5/VSCode(安装IOT Link插件)
(使用IoT Studio/Liteos Studio开发时都点击创建IOT Studio或者Liteos Studio工程即可,并使用相应的工程模板即可,若选择导入其他嵌入式工程GCC,里面的代码个人觉得会比较乱,不利于学习和后续云平台的开发)
物联网通信技术:NB-IOT / WI-FI等均可以
物联网通信协议:COAP/ LWM2M/ MQTT均可
平台:华为云平台(需要华为云账号登录,且需完成实名认证)
操作系统:使用的是华为的LiteOS物联网操作系统,提供了丰富的端云互通组件,该组件实现了LwM2M等协议,可以应用该组件实现与华为云平台的IoTDA的对接。
1.小熊派开发板连接后,光敏传感器以及NB-IoT扩展板插入到开发板上,若电源灯被点亮,说明开发板通电成功。但是注意!!有可能开发板的调试灯(图中而定橙色灯)是不会亮的,那么这个时候先不要怀疑是不是硬件出了问题,若烧录程序可以正常烧录(橙色灯闪烁)则证明开发板没有问题,毕竟板子之间存在微小差异,只要不影响功能实现即可。
2.需要将开发板右上角的开关拨至AT-MCU(系统模式),这样才能够让开发板上的通信模块连接网络并将采集的信息传输至云平台。
3.在添加真实设备后,在云平台上需要等待一会才能看到设备从未激活转为在线状态,此时若可以接收到上报的数据则证明云平台可以接收感知层采集的信息数据了(有2-3s的延迟)。
因为这一块的资料比较多,所以这里对一些个人认为比较有价值的资料进行汇总:
小熊派智慧路灯开发项目教学视频https://www.bilibili.com/video/BV1nV411j7PH?p=1&vd_source=3705b01347fc48e3e92d04fc643860ef可以重点看前面的开发板介绍,但后面涉及云平台的教学内容基本没有什么价值(因为华为云网站这两年变化较大,导致视频中的云平台开发内容和实际操作的内容不匹配,没有实战价值)
1 智慧路灯_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1e341177Tj?p=2&vd_source=3705b01347fc48e3e92d04fc643860ef
使用IOT studio软件进行开发,内容较详细且涉及云平台的内容是和实际网站的内容匹配的,强烈推荐。
基于NB-IoT小熊派开发智慧路灯_设备接入 IoTDA_最佳实践_设备接入_华为云 (huaweicloud.com)https://support.huaweicloud.com/bestpractice-iothub/iot_bp_0007.html
使用VScode以插件的形式进行开发,内容极为详细,具有很多扩展内容。