目录

  • 1 课程简介
    • 1.1 课程简介
    • 1.2 课程标准
    • 1.3 职业证书对接
    • 1.4 课程分工
  • 2 数据采集
    • 2.1 数据采集之数字量传感数据采集
    • 2.2 数据采集之模拟量传感数据采集
    • 2.3 数据采集之模拟量转换为数字量
    • 2.4 数据采集之开关量传感数据采集
  • 3 STM32微控制器基本外设应用开发
    • 3.1 STM32基础知识
    • 3.2 任务1 开发环境搭建和工程建立
    • 3.3 任务2 LED流水灯应用开发
    • 3.4 任务3 按键控制LED灯亮灭
    • 3.5 任务4 串行通信控制LED流水灯应用开发
    • 3.6 任务5 电池电量检测应用开发
  • 4 RS-485总线通信应用
    • 4.1 RS-485基本知识
    • 4.2 RS-485通信协议及网关通信协议
    • 4.3 Modbus通信协议
    • 4.4 任务1 案例分析及工程代码编写
    • 4.5 任务2 系统搭建及云平台项目创建
  • 5 CAN总线通信应用
    • 5.1 CAN总线基本知识
    • 5.2 CAN通信帧
    • 5.3 CAN控制器和收发器
    • 5.4 任务1 案例分析及工程代码编写
    • 5.5 任务2 系统搭建及云平台项目创建
    • 5.6 任务3 CAN通信数据抓包与解析
  • 6 BasicRF的无线通信应用
    • 6.1 BasicRF基础知识
    • 6.2 任务1创建工程项目
    • 6.3 任务2 温湿度节点数据采集
    • 6.4 任务3 火焰节点数据采集
    • 6.5 任务4 传感器节点组网
    • 6.6 任务5 传感数据汇聚
  • 7 WiFi数据通信
    • 7.1 WI-FI基础知识
    • 7.2 使用AT指令配置WI-FI工作模式
    • 7.3 WI-FI接入云平台
  • 8 NB-IoT联网通信
    • 8.1 NB-IoT技术简介
    • 8.2 利尔达NB-IoT模组介绍
    • 8.3 任务1 “智慧路灯”AT指令代码编写
    • 8.4 任务2.烧写智能路灯
    • 8.5 任务3NB-IoT接入云平台
  • 9 LoRa 通信技术
    • 9.1 基础知识
    • 9.2 项目分析与LoRa驱动移植
    • 9.3 任务2 LoRa温湿度传感器节点应用程序开发
    • 9.4 任务3 LoRa光照传感器节点数据采集
    • 9.5 任务4 LoRa网关节点汇聚传感器数据
    • 9.6 讨论
任务1 “智慧路灯”AT指令代码编写
  • 1 1  知识...
  • 2 2  PPT
  • 3 3  学习...
  • 4 4  讨论
  • 5 5  扩展...
  • 6 十三个方面成就

一、 案例介绍

在建设品质城市的大背景下,按照智慧城市、智慧交通顶层设计的总体要求,结合街道功能定位,项目应用视频识别、多源数据融合等高新技术,完善道路智能感知与服务设施,预留车路协同基础设施,为交通参与者提供美好的出行体验,为交通管理者提供精细的治理手段,打造城市智慧道路创新示范工程。智能路灯任务如图 7-18所示。

智能路灯任务


7-18智能路灯任务图


智能路灯的工作流程:

(1)由传感器采集光照的强度。

(2)通过ADC将光照传感器采集到的数据转换成数字量,由MCU来进行处理判断,通过光照的阈值来控制继电器控制灯的点亮和熄灭。

(3)通过模块上led屏显示当前的信息。

(4)将采集到的数据组帧上传到云平台,方便远程查看及控制。

工作流程图如图 7-19所示。

智慧路灯工作流程


7-19智能路灯工作流程图


二、 案例分析

通过对任务进行分析,得到需要解决的任务点如下:

(1)光照传感器采集的模拟量转换为数字量(ADC)

(2)MCU判定控制灯开关

(3)led屏信息显示

(4)将数据组帧,数据上传云平台

三、 知识储备

(一) NB-IoT模块

图 7-20为NB-IoT模块的实物图,图中左上角部分为传感器对接部分,这里传感器可以为其它传感器。右上角是利尔达NB86系列模块,此模块主要是作为通信关键部件。中部左边是led显示屏,用来显示信息;正中间是串口通道选择,做了快接设计,可以通过开关来控制;中部右边是NB串口拨码开关,主要作用为控制MCU和利尔达NB86系列模块之间的通信。图中其余部分为一些常用的开关按键。

nbiot模块实物


7-20NB-IoT模块实物图


(二) 开发工具介绍

开发环境主要包括以下两种:

(1)keil软件,主要完成编码、编译、调试程序。

(2)Newlab平台,用于完成供电、通讯及测量工作。

NEWLab实验平台具备8个通用的实验模块插槽,可支持单个模块实验,也可支持最多8个实验模块联动的实验。

平台内集成通信、供电与测量等功能,为实验提供环境保障和支撑。实验平台还内置了一块标准尺寸的面包板及独立电源,可用于电路搭建实验。

图 7-21为NewLab实验平台底板接口图,图 7-22为NewLab实验平台背部接口图。

NEWLab实验平台底板接口


7-21NewLab实验平台底板接口图NEWLab实验平台背部接口


7-22NewLab实验平台背部接口图


(三) AT指令

AT命令是用来控制TE(Terminal Equipment的缩写,即终端设备)和NB-IoT模块之间交互的规则。AT指令图如图 7-23所示。

AT指令


7-23AT指令图


图 7-24是一些常用的AT指令:

常用AT指令


7-24常用AT指令图


(四) NB-IoT终端对接流程

一个完整的NB-IoT终端对接流程具有以下步骤

(1)进行终端上电及复位终端。

(2)关闭NB-IoT通信功能。

(3)设置需要对节IoT平台地址及端口。

(4)打开NB-IoT通信功能,然后设置频段。

(5)设置核心网PAN,执行命令,进行入网。

(6)设置基站连接通知和核心网连接通知。

(7)开启下行数据通知。

(8)查询终端是否获得核心网分配地址。

(9)发送上行数据,查看是否能正常工作。

全部流程如下图 7-25所示。

NB-IoT终端对接流程


7-25NB-IoT终端对接流程图


四、 任务实施

(一) 打开工程并检查工程是否完整

打开资源包:..\NB-IoT智能路灯工程\NBIOT-lamp\MDK-ARM\NBIOT-lamp.uvprojx。打开工程后,先要对工程进行编译,若编译通过,则表示工程可用,若编译失败请参照“开发环境搭建”先完成开发环境的搭建及测试。单击编译按钮开始编译,若0个错误表示编译通过。如图 7-26所示。

检查工程完整7-26检查工程完整

(二) 完善连接 NB-IoT 网络的 AT 指令代码

本项目用到的NB-IoT模块的NB模组是利尔达的NB05-01,电信运营商是中国电信。NB-IoT模块使用到了两个串口,NB-IoT模块中的NB05-01模组通过USART2串口连接到MCU,MCU通过USART2串口发送AT指令,控制NB05-01模组连接中国电信的NB-IoT网络,并且AT指令的执行结果返回到USART2后再传到USART1上,所以串口助手所连接的USART1可以看到返回的AT指令的执行结果。注意USART1的波特率是115200,USART2的波特率是9600。

因为NB05-01模组使用AT指令,所以在“智能路灯”工程中,需要在代码中添加相关的AT指令实现将NB05-01模组接入云平台并上传光照传感器数据和接收云平台下发的控制指令实现灯的控制。如图 7-27所示。

网络代码结构7-27网络代码结构

当NB05-01模组启动成功,会返回“OK”,因为NB05-01模组通过串口USART2与MCU相连接,方法wait_answer(char *str)用于解析USART2接收到的AT指令的执行结果回应。如果AT指令的执行结果回应是“OK”则说明NB05-01模组启动成功,否则调用nb_reset()使NB05-01模组复位并一直等待到NB05-01模组启动成功,方法wait_nbiot_start()才执行结束。在user_cloud.c文件中找到void wait_nbiot_start(void)方法,填写代码如下图 7-28所示。

网络AT代码7-28网络AT代码

(三) 完善nbiot_config()用于配置NB

在user_cloud.c文件中找到void nbiot_config(void)函数,遵循中国电信NB-IoT终端对接流程,填写代码如下图 7-29所示。

配置NB7-29配置NB

(四) 完善 link_server()用于连接服务器

在user_cloud.c文件中找到void link_server(void),填写需要连接的IoT平台的地址IP和CoAP协议端口5683,如图 7-30所示。

完善link_server


7-30完善link_server()


(五) 通信协议

上报到云平台的数据要遵循上报数据的格式,上报数据的格式在IoT平台上有明确的规定。设备定时上报平台的数据格式如图 7-31所示。

上报格式7-31上报格式

通信的规则如下图 7-32所示。

通信规则


7-32通信规则图