目录

  • 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 讨论
任务3 火焰节点数据采集
  • 1 知识介绍
  • 2 PPT
  • 3 学习视频
  • 4 讨论
  • 5 大国重器

案例介绍

通过对仓储环境监测系统进行分解,得到需要完成的四个子任务,本节将要完成第二个子任务火焰传感器模块和通信模块组成开关量采集节点B。

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

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

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

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

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

案例分析

通过对子任务3进行分析,得到需要实现的具体关键点如图 5-52所示:

    采用火焰传感器模块和ZigBee模块组成一个开关量传感器采集节点,实现火焰传感器的采集,并将采集数据通过自定义协议无线传输至汇聚节点。发送节点有数据发送时,LED1 亮 100 毫秒。

图片5-25


5-52子任务3具体关键点


知识储备

一、CC2530的ADC模块

CC2530 的 ADC 模块支持最高 14 位二进制的模拟数字转换,具有 12 位的有效数据位。如图 5-53所示,它包括一个模拟多路转换器,具有 8 个各自可配置的通道,以及一个参考电压发生器,转换结果通过 DMA 写入存储器,还具有多种运行模式。

图片5-26


5-53ADC模块结构图


CC2530 的 ADC 模块有如下主要特征:

(1)可选的抽取率,设置分辨率(7 到 12 位)

(2)8 个独立的输入通道,可接收单端或差分信号

(3) 参考电压可选为内部单端、外部单端、外部差分或 AVDD5

(4)转换结束产生中断请求

(5)转换结束时可发出 DMA 触发

(6)可以将片内温度传感器作为输入

(7)电池电压测量功能

对于 CC2530 的 ADC 模块,端口 P0 引脚可以配置为 ADC 输入端,依次为 AIN0~AIN7。此外,输入可以配置为单端或差分输入。在选择差分输入的情况下,差分输入包括输入对 AIN0-AIN1、 AIN2-AIN3、AIN4-AIN5 和 AIN6-AIN7。除了输入引脚 AIN0-AIN7,片上温度传感器的输出也可以选择作为 ADC 的输入用于温度测量。还可以输入一个对应 AVDD5/3 的电压作为一个 ADC 输入,在应用中这个输入可以实现一个电池电压监测器的功能。

二、CC2530相关ADC寄存器

图 5-54所示,CC2530 ADC 包括控制寄存器(ADCCON1、ADCCON2 和 ADCCON3)、转换数据寄存器(ADCH:ADCL)、端口配置寄存器(APCFG)、温度测试寄存器(TR0)、模拟测控制(ATEST)。

图片5-26


5-54CC2530 ADC 寄存器



任务实施

任务实施的过程主要包括新建fire_sensor.c、编写程序、建立配置模块设备和编译与下载程序四个步骤。

一、新建fire_sensor.c

新建fire_sensor.c的流程如图 5-55所示,打开工程,复制 Project 文件夹下的 sensor.c 为副本,并将这个副本重命名为 fire_sensor.c。在 IAR 窗口中,将 fire_sensor.c 添加到 workspace 下的 app 组中。

图片5-27


5-55新建fire_sensor.c流程


二、编写程序

编写程序的三个步骤如图 5-56所示,接下来进行详细介绍。

图片5-28


5-56编写程序的三个步骤


(一)宏定义修改

打开文件 fire_sensor.c,在原温湿度传感器应用程序代码的基础上,修 改 MY_ADDR 为 0xBDCC。

(二)读取 A/D 值函数 get_adc()

该函数读取 A-D 转换的电压值,定义在文件 get_adc.c 中,如图 5-57所示。

图片5-29


5-57get_adc()函数定义


(三)对 fire_sensor.c 文件的主函数 main 进行修改

图 5-58所示,该函数的原有功能是温湿度数据采集,需要改为采集火焰传感器的电压的功能代码。

图片5-30


5-58fire_sensor.c 文件的主函数 main


三、建立配置模块设备

(一)项目配置

选择菜单“Project“菜单下的”Edit Configurations”,弹出项目的配置对话框,系统会检测出项目中存在的模块设备,如图 5-59所示。

图片5-31


5-59Edit Configurations对话框


(二)火焰传感器模块配置

单击“New”按钮,在弹出的对话框中输入模块名称为:“fire_sensor”,基于 Deubg 模块进行配置,然后单击“OK”按钮完成模块设备的建立。在项目配置对话框中就可以自动检测出刚才建立的模块设备“fire _sensor”,如图 5-60所示。

图片5-32


5-60New Configuration窗口


(三)模设置块设备对应的条件编译参数设置

为了给模块设备设置对应的条件编译参数,在此需要进行如下设置: 在项目工作组中选择“fire_sensor”模块,单击右键选择“Options”,在弹出的对话框中选择“C/C++ Compile”类别,在右边的窗口中选择“Preprocessor”选项卡中的 “Defined symbols:”并输入 “CC2530_DEBUG”,具体设置如图 5-61所示,最后点击 OK 保存。

图片5-33


5-61设置模块设备条件编译参数的流程


(四)排除“fire_sensor.c”配置

在 IAR 中,展开 app 组,workspace 下选择“temprh_sensor”,左击选择“fire_sensor.c”,然后右击“fire_sensor.c”,弹出菜单中点击“Option…”。在弹出的窗口中,勾选“Exclude from build”,最后点击 OK 保存,如图 5-62所示。

 

图片5-34


5-62排除“fire_sensor.c”配置


四、编译和下载程序

图 5-63所示为编译和下载程序的流程,首先将插有火焰传感器模块的 ZigBee 模块固定在 NEWLab 平台,选择“fire_sensor”模块, 编译程序无误后,给 NEWLab 平台上电,下载程序到 ZigBee 模块中。

图片5-35


5-63编译和下载程序流程


打开串口调试助手,设置波特率为 115200 后点击“打开” ,可以看到采集到的火焰数据显示出来了,如图 5-64所示。

图片5-36


5-64串口调试助手


验证通过后,需要把条件编译选项中的“CC2530_DEBUG”去掉,变成 “xCC2530_DEBUG”,如图 5-65所示。

图片5-37


5-65条件编译选项