目录

  • 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 讨论
任务5 传感数据汇聚
  • 1 知识介绍
  • 2 PPT
  • 3 学习视频
  • 4 讨论
  • 5 大国重器

案例介绍

本次课将讲解第五单元基于BasicRF的通信应用当中的第五个任务,传感数据汇聚。通过对仓储环境监测系统进行分解得到四个子任务,本任务将要完成第四个子任务每隔2s将采集的传感器数据通过无线网络传给汇聚节点模块任务的实现。

仓储环境监测系统子任务如下:

(1) 采用温湿度传感器模块和通信模块组成数字量采集节点A

(2) 火焰传感器模块和通信模块组成开关量采集节点B

(3) A、B两个节点实时采集传感器的数据

(4) 每隔2s将采集的传感器数据通过无线网络传给汇聚节点模块


案例分析

通过对案例的任务进行分析,得到需要实现的具体关键点如下:     

(1)在定义宏CC2530_DEBUG的情况下,汇聚节点接收到自定义协议后,对协议数据进行解析将数据显示在PC机串口调试助手上。

(2)温度显示格式:“当前温度:xx℃”。湿度显示格式:“当前相对湿度:xx %”,火焰显示格式:“当前红外线(火焰)强度:xxmV”。

(3)汇聚节点与串口调试助手的波特率是115200,8位数据位,1位停止位。当关闭宏定义CC2530_DEBUG的情况下,汇聚节点将数据透传到串口上。

知识储备

一、CC2530串行通信相关知识介绍—串行通信概述

在本任务中需要用到串行接口,所以先介绍一下CC2530 串行通信相关的知识。

图片5-54


5-80CC2530 芯片接口



图 5-80所示,CC2530 芯片共有 USART0 和 USART1 两个串行通信接口,它能够运行于异步模式(UART) 或者同步模式(SPI)。两个 USART 具有同样的功能,可以设置单、

表 5-13表 5-14表 5-15表 5-16表 5-17表 5-18所示为串口通信接口相关寄存器。

5-13串行通信接口寄存器1/6

UxCSR -USART x 控制和状态(USART x Control and Status)

名称

复位

读/写

描述

7

MODE

0

R/W

USART模式选择。  0:SPI模式;  1:UART模式

6

RE

0

R/W

UART接收器使能。注意在UART完全配置之前不使能接收。0:禁用接收器; 1:接收器使能

5

SLAVE

0

R/W

SPI主或者从模式选择0:SPI主模式;  1:SPI从模式

4

FE

0

R/W0

UART帧错误状态0:无帧错误检测; 1:字节收到不正确停止位级别

3

ERR

0

R/W0

UART奇偶错误状态0:无奇偶错误检测; 1:字节收到奇偶错误

5-14串行通信接口寄存器2/6

UxCSR -USART x 控制和状态(USART x Control and Status)

名称

复位

读/写

描述

2

RX_BYTE

0

R/W0

接收字节状态。URAT模式和SPI从模式。当读U0DBUF时,该位自动清除;也可以通过写0清除它,都可有效丢弃U0DBUF中的数据。0:没有收到字节; 1:准备好接收字节

1

TX_BYTE

0

R/W0

传送字节状态。URAT模式和SPI主模式0:字节没有被传送1:写到数据缓存寄存器的最后字节被传送

0

ACTIVE

0

R

USART传送/接收主动状态。在SPI从模式下,该位等于从模式选择位。0:USART空闲; 1:在传送或者接收模式USART忙碌

5-15串行通信接口寄存器3/6

UxUCR–USART x UART 控制(USART x UART Control)

名称

复位

读/写

描述

7

FLUSH

0

R0/W1

清除单元。当设置时,该事件将会立即停止当前操作并且返回单元的空闲状态。

6

FLOW

0

R/W

UART硬件流使能。用RTS和CTS引脚选择硬件流控制的使用。0:流控制禁止; 1:流控制使能

5

D9

0

R/W

UART奇偶校验位。当使能奇偶校验,写入D9的值决定发送的第9位的值,如果收到的第9位不匹配收到字节的奇偶校验,接收时报告ERR。如果奇偶校验使能,那么该位设置以下奇偶校验级别。0:奇校验; 1:偶校验

5-16串行通信接口寄存器4/6

UxUCR–USART x UART 控制(USART x UART Control)

名称

复位

读/写

描述

4

BIT9

0

R/W

UART 9位数据使能。当该位是1时, 使能奇偶校验位传输(即第9位)。如果通过PARITY使能奇偶校验,第9位的内容是通过D9给出的。0:8位传送; 1:9位传送

3

PARITY

0

R/W

UART奇偶校验使能。除了为奇偶校验设置该位用于计算,必须使能9位模式。0:禁用奇偶校验; 1:奇偶校验使能

2

SPB

0

R/W

UART停止位的位数。选择要传送的停止位的位数0:1位停止位; 1:2位停止位

1

STOP

1

R/W

UART停止位的电平必须不同于开始位的电平0:停止位低电平; 1:停止位高电平

0

START

0

R/W

UART起始位电平。闲置线的极性采用选择的起始位级别的电平的相反的电平。0:起始位低电平; 1:起始位高电平

5-17串行通信接口寄存器5/6

U0GCR–USART x 通用控制(USART x Generic Control)

名称

复位

读/写

描述

7

CPOL

0

R/W

SPI 的时钟极性。0:负时钟极性; 1:正时钟极性

6

CPHA

0

R/W

SPI 时钟相位0:当 SCK从CPOL倒置到CPOL时,数据输出到MOSI端口;当 SCK从CPOL到CPOL倒置时,对MISO端口数据采样输入。1:当SCK从CPOL到CPOL倒置时,数据输出到MOSI端口;当 SCK从CPOL倒置到CPOL时,对MISO端口数据采样输入。

5

ORDER

0

R/W

传送位顺序。0:LSB 先传送;1:MSB 先传送

4:0

BAUD_E[4:0]

00000

R/W

波特率指数值。BAUD_E 和 BAUD_M决定了UART波特率和SPI 的主SCK时钟频率。

5-18串行通信接口寄存器6/6

UxDBUF– USART x 接收/传送数据缓存(USART x Receive/Transmit Data Buffer)

名称

复位

读/写

描述

7:0

DATA[7:0]

0x00

R/W

USART接收和传送数据。当写这个寄存器的时候数据被写到内部,传送数据寄存器。当读取该寄存器的时候,数据来自内部读取的数据寄存器。

UxBAUD– USART x 波特率控制(USART x Baud-Rate Control)

名称

复位

读/写

描述

7:0

BAUD_M[7:0]

0x00

R/W

波特率小数部分的值。 BAUD_E和 BAUD_M决定了UART的波特率和SPI的主SCK时钟频率。


二、波特率

(1)如图 5-81所示,当运行在 UART 模式时,内部的波特率发生器设置 UART 波特率。

图片5-56


5-81UART 模式内部波特率变化


(2)如图 5-82所示,当运行在 SPI 模式时, 内 部 的 波 特 率 发 生 器 设 置 SPI 主 时 钟 频 率 。

图片5-57


5-82SPI模式内部波特率变化


(3)由 寄 存 器 UxBAUD.BAUD_M[7 : 0] 和 UxGCR.BAUD_E[4:0]定义波特率。该波特率用于 UART 传送,也用于 SPI 传送的串行时钟速率。

波特率由下式给出:

式中:是系统时钟频率,等于 16 MHz RCOSC 或者 32 MHz XOSC。

标准波特率所需的寄存器值如表 5-19所列。该表适用于典型的 32MHz 系统时钟。真实波特率与标准波特率之间的误差,用百分数表示。

5-1932MHz系统时钟常用的波特率设置

波特率 (bps)

UxBAUD.BAUD_M

UxGCR.BAUD_E

误差(%)

2400

59

6

0.14

4800

59

7

0.14

9600

59

8

0.14

14400

216

8

0.03

19200

59

9

0.14

28800

216

9

0.03

38400

59

10

0.14

57600

216

10

0.03

76800

59

11

0.14

115200

216

11

0.03

230400

216

12

0.03


任务实施

任务的实施过程主要有编写程序、系统测试、数据上报云平台三个步骤。

一、编写程序

(一)第一步编写代码

打开创建的工程,打开collect.c的源码。

(二)在collect.c的合适位置新增通讯协议相关的宏定义

图 5-83为collect.c源码中的宏定义。

图片5-58


5-83collect.c源码中的宏定义


(三)在collect.c新增计算校验和函数CheckSum()

图 5-84为CheckSum()函数的源码。

图片5-59


5-84函数CheckSum()


汇聚节点的 collect.c 文件中的 main()函数,该函数新增数据解析和输出到串口代码,主要完成数据解析和显示功能。

汇聚节点接收到无线数据后,对协议数据进行解析,温度显示格式为:“当前温度:xx℃”。 湿度显示格式为:“当前相对湿度:xx %”,火焰显示格式为:“当前红外线(火焰)强度:xxmV”。 当关闭宏定义 CC2530_DEBUG 后,无线数据透传到串口。

(四)代码分析

图 5-85所示,第47行,调用CheckSum计算接收数据的校验和。

图片5-60


5-85第47行代码


图 5-86所示,第48行,判断帧头和校验和的合法性检查,只有通过检查才进行后续处理。

图片5-61


5-86第48行代码


图 5-87图 5-88图 5-89所示,第50-100行,解析火焰传感器、温湿度传感器采集到的数据,并将数据打印到串口上。

图片5-62


5-8750-65行源码图片5-62-1


5-8866-79行源码
图片5-63


5-8980-88行源码
图片5-64


5-9089-100行源码


二、系统测试

(一) 系统测试——搭建好硬件环境

首先按照图 5-91所示安装连接设备,然后将NEWLab平台的通信模开关按钮旋转到通信模式,给 NEWLab 平台通电。

图片5-65


5-91NEWLab平台



(二)系统测试——配置好串口调试工具

将汇聚节点的串口连接到 PC 上,打开串口调试软件,将串口的波特率设置为 “115200”。并单击“连接”按钮进行连接,如图 5-92所示。

图片5-66


5-92串口调试软件


(三)系统测试——查看运行结果

在 PC 的串口调试软件上会定时显示接收到温湿度传感器的数据和火焰传感器的电压信息,运行效果如图 5-93所示。

图片5-67


5-93串口调试助手



三、数据上报云平台

(一)数据上报云平台——预编译设置

图 5-94所示,在 IAR 工 程 中 选 择 汇 聚 节 点 的 工 程 源 码 , 在预编译中可以看到定义了符号 “CC2530_DEBUG”。

图片5-68


5-94工 程 源 码


图 5-95所示,若定义了“CC2530_DEBUG”,汇聚节将打印调试信息,方便用户通过串口调试助手观察数据;若将符号“CC2530_DEBUG”改为“xCC2530_DEBUG”,汇聚节将透传传感数据到串口上。

图片5-69


5-95汇聚节


在汇聚节点的工程源码配置中,将预编译宏定义“CC2530_DEBUG”改为“xCC2530_DEBUG”, 重新编译并下载到黑色 ZigBee 模块的板子上。然后将汇聚节点的串口连接到232转485转换器,将转换后的485信号接到物联网网关的 RS485 接口上。


(二)数据上报云平台——物联网网关连接

图 5-96所示将zigbee开发板与中心网关通过232转485转接头连接起来。

图片5-70


5-96 物联网网关连接图


(三)数据上报云平台——云平台新建项目

图 5-97所示,登录云平台后,先点击“开发者中心”按钮,然后点击“新增项目”按钮即可新建一个项目,在弹出的“添加项目”对话框中,可对“项目名称”、“行业类别”以及“联网方案”等信息进行填充。在本案例中,设置“项目名称”为“仓储环境监测”, “行业类别”选择“工业物联”,“联网方案”选择“以太网”。最后点击“下一步”按钮。

图片5-71


5-97云平台开发者中心界面


(四)数据上报云平台——将设备添加到云平台

图 5-98所示,项目新建完毕后,可为其添加设备,设备标识名末尾加一串随机数字,防止和其他人重复,填入设备名称:“仓储环境监测”、勾选通讯协议:“TCP”、设备标识: “BasicRFxxxxx”,最后点击“确定添加设备”。

图片5-72


5-98添加设备流程


图 5-99图 5-100所示,在设备管理界面,记录下设备 ID、设备标识、传输密钥,后续需要用到这三个参数。

图片5-73


5-99填加设备窗口图片5-74


5-100设备管理窗口


(五)数据上报云平台——配置物联网网关接入云平台

图 5-101确认ApiKey是否生成或有效,若未生成ApiKey,则按图生成ApiKey。

图片5-75


5-101生成ApiKye


图 5-102所示,登陆物联网网关系统管理界面 192.168.14.200:8400 (IP 可自行设置+端口号固定)。

图片5-76


5-102物联网网关系统管理界面


将前面记录的设备 ID、设备标识、处传输密钥填入到设备ID、设备标识、传输密钥的对应位置。物联网网关配置参数配置完毕,点击设置按钮,物联网网关系统自动重启,等待20 秒左右,系统初始化完毕。

图片5-77


5-103云平台接入配置界面


(六)数据上报云平台——云平台数据显示

(1)如图 5-104所示,在云平台页面,单击”下发设备“,选择开启网页实时显示数据。

图片5-78


5-104设备传感器页面


(2)如图 5-105所示,在传感器页面,可以看到实时上传上来的数据。

图片5-79


5-105传感器页面


(3)如图 5-106所示,单击“历史数据”,可查看历史数据信息。

图片5-80


5-106历史数据界面