基于嵌入式无线传感网络的远程照明控制实验
实验题目:基于嵌入式无线传感网络的远程照明控制实验
课程简要信息
课程名称:电子系统设计实验
课程学时:32学时
项目学时:课内8学时
适用专业:电子信息类专业
学生年级:二年级
实验内容与任务
基于嵌入式无线传感网络的远程照明控制实验是建立在嵌入式技术、传感器数据采集及处理技术、无线网络通信技术等融合在一起的综合实验。实验采用Arduino BLE-Uno开发板的ATmega328微控制芯片作为主控MCU,各类传感器作为末梢结点,并采用Bluetooth、2.4G WiFi技术搭建无线传感网络,实现对多种环境信息的检测,并通过Android终端进行控制。通过结合理论知识与实践操作,学生可以掌握用传感器采集环境信息数据并处理的方法、丰富和拓宽有关无线通信方面的知识应用等。而且还可以在实验平台上拓展自主性设计实验,培养学生的探索精神、科学思维、工程意识、创新意识等。
1)掌握Arduino BLE-Uno开发板与各模块的连接方式;
2)采用HC-SR505小型人体感应模块实现近距离控制功能;
3)采用GY-30光强传感器采集光线强度并分析计算;
4)利用Arduino BLE-Uno开发板自带的蓝牙功能实现稍远距离无线通信;
5)采用外接DT-6TTL-WiFi模块实现远程无线通信功能。
培养学生具有初步搭建嵌入式无线传感网络系统平台的能力;培养学生能正确分析实验中所发生的现象及排除故障的能力。
实验过程及要求
1)学习了解不同传感器的精度要求,以及数据采集、分析、处理的方法;
2)通过查找满足实验要求的相关传感器,进行传感器指标的对比,分析其类型、测量范围和测量精度等特征参数;
3)选择将光强信号转换为数字信号的方法,并将其以数字的形式显示出来;
4)通过学习蓝牙、WiFi无线通信协议,掌握其相关信号传输的软硬件系统设计;
5)构思光强传感器与人体感应传感器二者数据融合的方式与方法,设计融合算法并调试;
6)学习了解嵌入式MCU的控制及操作方法;
7)考察传感器测量结果与参考值之间的误差,并设计相关误差补偿方法提高精度;
8)撰写设计总结报告,并通过分组答辩,学习交流不同解决方案的特点。
相关知识及背景
这是一个运用嵌入式技术,传感器数据采集、分析、处理技术,无线网络通信技术解决现实生活和工程实际问题的典型案例,需要运用微控制器、多传感器数据融合方法、通信协议调试、嵌入式软件编程以及系统集成与调试,远程控制等概念与方法解决复杂工程问题,培养学生从模块调试到系统设计的工程思维。
实验环境条件
软件环境:Arduino IDE,App Inventor2等
硬件环境:PC机,Arduino BLE-Uno开发板(扩展板)
实验模块:小型人体感应模块、光强传感器模块、WiFi模块等
教学目标与目的
在工程项目实现过程中,引导学生掌握用传感器采集环境信息数据并处理的方法,丰富和拓宽有关无线通信方面的知识应用等。掌握WiFi无线通信、Bluetooth无线通信等方式,以及无线模块接入系统进行数据传输、记录等方法,引导学生根据需要设计电路、选择模块与器件,构建测试环境与条件,并通过测试与分析对项目作出技术评价。
教学设计与实施进程
本实验是综合性设计实验,实现过程包括:课前预习、课堂讲解、方案探讨、系统搭建、软件设计、综合调试、撰写报告、总结答辩等。将从以下几个方面加强对学生理论和实践知识的引导:
1)以教学视频、PPT教案、讲义等资源作为预习,通过预习题库学习嵌入式软件编程、单片机应用、无线通讯技术等知识点;
2)通过模块化进行软件编程的方式,使学生系统学习了如何进行软硬件的需求分析、设计、实现和测试等多个环节。
3)然后将各个分模块联合调试,引导学生将分模块形成系统的思维方式方法。
4)以学术论文的格式要求学生撰写实验报告,教师批阅评分后,成绩返回给学生。
5)拓展应用的引导,在多传感器融合的基础上,面向社会应用,创新性地与其他模块和平台组合,研制新的应用系统。
实验原理及方案
8.1 实验原理
1)系统整体结构
基于嵌入式无线传感网络的远程照明控制系统整体结构如图1所示,通过光强传感器采集光线强度,通过人体感应传感器采集人员信息,传送给MCU进行分析和处理,并通过蓝牙和WiFi传送给上位机,上位机根据具体情况发出命令给MCU,由其控制LED的亮灭和强弱。
图1 基于嵌入式无线传感网络的远程照明控制系统整体结构图
2)主控模块
本实验采用自带蓝牙功能的Arduino BLE-Uno开发板,用户可以通过串口和蓝牙芯片进行通信,串口使用Micro-USB数据线,波特率支持9600,19200,38400,57600,115200。串口默认波特率为9600bps,工作频段为2.4Ghz范围,开发板支持用户通过AT命令修改查看设备名、服务UUID、发射功率、配对密码等指令,并且在BLE-Uno开发板上添加了与Arduino兼容的扩展板、传感器、无线通讯模块等。Arduino BLE-Uno控制系统的电路原理图如图2所示:

图2 Arduino BLE-Uno控制系统的电路原理图
3)人体感应传感器模块:HC-SR505小型人体感应传感器是一种基于红外线技术的自动控制产品,具有高灵敏度和高可靠性的特点,尺寸较小,并且具有超低电压的工作模式。它被广泛应用于各种自动感应电器设备。

图3 HC-SR505小型人体感应传感器
该模块主要具有以下两个功能:
全自动感应:当它检测到有人靠近时,会输出高电平,当人离开检测区后,输出低电平,并且自动延时关闭高电平。
可重复触发:如果已经检测到有人靠近并且输出高电平后,在延时时间段内再次检测到有人活动,则继续保持输出高电平,直到人离开。人离开后自动延时关闭高电平(检测模块在检测到每次人类活动后将自动延迟时间段,以最后一次活动的时间作为延迟时间段的起点)。
HC-SR505小型人体感应模块技术参数如表1所示。
表1 HC-SR505小型人体感应模块技术参数
| 工作电压范围 | DC4.5-20V |
|---|---|
| 静态电流 | <60μA |
| 电平输出 | 高3.3V;低0V |
| 触发方式 | 可重复触发 |
| 延时时间 | 8S+-30% |
| 电路板尺寸 | 10mm*23mm |
| 感应角度 | <100度锥角 |
| 感应距离 | 3m |
| 工作温度 | -20-+80℃ |
| 感应透镜尺寸 | 直径:10mm |
4)光强传感器模块
光强传感器常用于光线强度测量,将光强信号转换成电压来进行测试,广泛应用于各种光控电路,比如控制和调节灯以及光开关。光强传感器模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等。其实物如图4所示,引脚功能如表2所示。
表2 GY-30引脚功能
| 引脚名称 | 描述 |
|---|---|
| VCC | 供给电压3-5V |
| SCL | IIC总线时钟线 |
| ADDR | IIC地址引线 |
| GND | GND |
| GND | 电源电 |
图4 GY-30光强传感器模块
5)Wi-Fi模块
本实验采用DT-6 TTL-Wi-Fi(如图5所示)。TTL-Wi-Fi模块以ESP-M2 Wi-Fi模块为基础研发,引出串口TTL、EN、STATE等引脚。该产品内置了最新版本的串口透传固件,可实现从设备TTL端口到Wi-Fi云的数据实时透传,并且具备低功耗控制和状态指示等功能。本模块可以直接取代原有的有线串口,实现嵌入式设备的数据采集和控制。

图5 DT-6 TTL-Wi-Fi模块

DT-6
TTL-Wi-Fi的结构示意图如图6所示,接口定义图如图7所示
图6 DT-6 TTL-Wi-Fi的结构示意图 图7 DT-6 TTL-Wi-Fi的接口定义图
DT-6 TTL-Wi-Fi的引脚功能如表3所示,按键功能如表4所示,LED功能如表5所示:
表3 DT-6 TTL-Wi-Fi的引脚功能
| Pin脚名称 | 类型 | 功能 |
|---|---|---|
| STATE | I/O | GPIO4;内置透传固件,指示网络连接状态:STA模式下连上无线路由器,STATE输出低电平 |
| RXD | I/O | GPIO3;模块内部已经串联22Ω的限流电阻,可以外接5V电平;可用作烧写Flash时UARTRx |
| TXD | I/O | GPIO1;模块内部已经串联22Ω的限流电阻,可以外接5V电平;可用作烧写Flash时UARTTx |
| GND | P | GND |
| VCC | P | 模块电源:4.5V-6.0V,推荐使用5.0V |
| EN | I | 芯片使能端,高电平:有效,芯片正常工作; 低电平:芯片关闭 |
表4 DT-6 TTL-Wi-Fi的按键功能
| 类型 | 功能 |
|---|---|
| LED | LED通过上拉电阻接VCC3.3,另一端接模块的GPIO4管脚 |
| SW1 | 连接Wi-Fi模块的GPIO0管脚。配合SW2按键完成固件下载 |
| SW2 | 连接模块的RST管脚。配合SW1完成固件下载 |
表5 DT-6 TTL-Wi-Fi的LED功能
| LED灯指示 | 功能 |
|---|---|
| 常亮 | Wi-Fi模块在STA或者STA+AP模式下,成功连接到无线路由器 |
| 慢闪 | IO口电平1秒钟变化一次,Wi-Fi模块没有成功连接无线路由器;Wi-Fi模块工作在AP模式下 |
通过Wi-Fi实现Arduino BLE-Uno控制板与手机之间的通信,需要解决两端设备通信内容辨别的问题。本协议只进行简单的信息传递,没有涉及安全加密问题。Wi-Fi模块的通信协议如表6所示。
表6 Wi-Fi模块通信协议
| 包头 | 命令字 | 灯1开关 状态 |
灯2开关 状态 |
灯3开关 状态 |
灯1 亮度 |
灯2 亮度 |
灯3 亮度 |
结束符 |
|---|---|---|---|---|---|---|---|---|
| $ | LED, | S1(1/0), | S2(1/0), | S3(1/0), | L1(000-100), | L1(000-100), | L1(000-100), | # |
首先需要明确在Arduino BLE-Uno控制板与手机之间要传输什么数据,因此应该分析双方通信的需求,根据本实验的功能性需求,即要实现手机可以控制LED灯的开关以及亮度,Arduino开发板向手机返回是否成功的指令。还需要加上便于识别的包头和结束符以确保程序可以区分不同的信息。
8.2 实现方案
1)硬件搭建与调试
本实验在硬件搭建过程中需要若干导线进行电路的连接。以及一条USB数据线将Arduino BLE-Uno开发板与计算机连接起来,从而进行串口通信和用计算机给硬件设备供电,为了方便设备的连接,给Arduino BLE-Uno开发板加上一个扩展板,硬件与扩展板端口的连接方式如表7所示。
表7 Arduino BLE-Uno扩展板端口与元件引脚对应表
| 元件 | 扩展板端口 |
|---|---|
| LED灯(G、Y、R) | P15端口(D3、D5、D6) |
| HC-SR505人体感应模块 | P10端口(D4) |
| GY-30光强传感器模块 | A4、A5(IIC) |
| Wi-Fi模块TXD端 | Uart端口(R) |
| Wi-Fi模块RXD端 | Uart端口(T) |
根据端口与元件引脚对应表将LED灯连接至扩展板的P15端口,将人体感应传感器连接至P10端口,将光强传感器连接至IIC端口,将Wi-Fi模块连接至Uart端口。
2)主控程序设计
搭建好硬件后进行Arduino Ble-Uno主控程序设计。软件设计流程如图8所示。

图8 主控程序软件设计流程图
3)传感器数据分析
本系统的软件涉及到人体感应传感器、光强传感器的数据采集、存储、处理。人体感应模块和光强传感模块程序设计:根据人体感应灯原理,当人体感应传感器检测到有人靠近时,并且光的强度小于阈值100时会自动开启LED灯;并且延时五秒钟,LED灯自动关闭;如果没有检测到有人靠近时或者有人靠近时光的强度大于100则LED灯是关闭的。软件设计流程如图9所示。

图9 人体感应及光强检测软件设计流程图
4)蓝牙通讯调试
通过蓝牙远程控制LED灯的开关,首先要进行蓝牙APP的开发。包括APP界面组件设计和APP界面逻辑设计。
①APP界面组件设计
APP界面主要包括蓝牙部分和控制部分。蓝牙部分包括搜索蓝牙、连接蓝牙和断开蓝牙三个按钮以及显示蓝牙连接状态的标签,还包括用来显示搜索到的蓝牙设备的下拉框。控制部分包括控制灯开关的六个按钮以及显示灯开关状态的标签。最后加入BluetoothLE组件,这样就完成了蓝牙控制LED灯的APP界面组件设计。
②APP界面逻辑设计
蓝牙APP逻辑设计的整体思路是扫描蓝牙设备,发送找到的设备地址和名称至下拉框中,然后根据下拉框中获得的蓝牙设备地址进行连接。进行连接后就可以进行数据的读取和发送的操作。APP的界面组件设计和界面逻辑设计完成后,就可以打包生成apk下载到手机上使用。
5)Wi-Fi模块调试
通过微信小程序控制界面点击按钮,发送指令给单片机,单片机检索指令中是否含有“LED”字符串,如果含有则继续检索字符串的第7位、第11位、第15位,判断LED灯的颜色。接着判断所给的指令是否正确,如果正确则提取亮度值,执行指令,控制灯的亮度,如果判断指令错误则返回给手机匹配失败的指令。如果指令不含有“LED”则之间给手机返回匹配失败的指令。具体流程如图10所示。

图10 设计流程图
6)无线传感网络配置
将Wi-Fi模块控制程序上传至Arduino BLE-Uno控制板,看到上传成功字样后说明程序完成烧录。需要注意的是在烧录之前要拔掉Wi-Fi模块上TXD和RXD上的接线,否则会上传失败。在上传成功后需要重新接回TXD和RXD上的线。
完成程序的烧录后,首先对Wi-Fi进行配网操作。因每个Wi-Fi的名称和密码不同,Wi-Fi模块在出厂时没有进行配置,因此需要配置Wi-Fi模块。配置时手机必须连接到当前环境的Wi-Fi网络并能正常访问互联网。需要注意的是Wi-Fi模块仅能识别常规的2.4G-Wi-Fi信号,无法识别5G-Wi-Fi信号。
通过测试可以看出,本设计功能达到预期,可以通过手机Wi-Fi连接MCU,远程控制多个LED灯的有序开关并且改变亮度。
7)多传感器数据融合
多传感器数据融合是指充分利用不同时间与空间的多传感器数据资源,采用计算机技术对按时间序列获得的多传感器观测数据,在一定准则下进行分析、综合、支配和使用,获得对被测对象的一致性解释与描述,进而实现相应的决策和估计,使系统获得比它的各组成部分更充分的信息。加权数据融合是对多源冗余信息进行加权平均,结果作为融合值,是一种直接对数据源进行操作的方法。
本实验利用了光强传感器和人体感应传感器资源,分别测试光线强度和人员距离信息,通过对该信息和数据的合理支配和使用,把两个传感器在空间或时间上的信息和数据依照加权平均的准则进行组合,以获得对被测对象的一致性解释或描述。两个传感器的权重分别是w1、w2,则融合后的状态估计值为和权重满足的条件为

通常选用数学平均式将各个传感器的权重选取得近似相等,设等权重为:

本实验案例旨在引导学生建立多传感器数据融合的概念,除了加权平均的融合算法之外,还有卡尔曼滤波法、决策智能算法等方法,可以作为拓展实验内容让学生在课外进行探索。
实验报告要求
本实验报告需反映:实现方案论证、理论推导计算、实验过程设计、数据测量记录、数据处理分析、实验结果等元素,具体参考如下:
一、引言 二、设计思路(实验原理及说明) 1、 2、 3、…… 三、实验仪器与器材(教师提供器材型号目录) 四、实施步骤与过程 五、应用系统设计: 1)基本命题 2)拓展命题 六、测试与分析 七、心得体会 |
|---|
考核要求与方法
在8学时课内实验完成一周内,提交实验报告并进行实物验收,成绩分为:实物验收成绩占60%,实验报告成绩占40%。具体的标准及考核方法如下:
1)实物验收:光线强度的测量精度,人体感应的控制精度,远程开启LED的响应时间等性能指标及功能的完成程度。
2)实验质量:系统方案设计的合理性,软件程序编写的准确性和可靠性。
3)自主创新:误差补偿的算法设计、光强传感器与人体感应传感器采集数据融合方法的设计,培养学生自主思考与独立实践能力。
4)实验成本:是否充分利用实验室已有条件,材料与元器件选择合理性,成本核算与损耗。
5)实验数据:测试数据的处理方法,测量值与参考值之间的误差程度。
6)实验报告:实验报告的规范性与完整性。
项目特色或创新
1)“模块→系统”的设计思想。搭建本系统的主要功能,将传感器、无线通信等模块的信息及数据在MCU进行处理,构建系统概念。
2)引导学生设计智能算法以提高系统的性能,采用算法补偿误差的设计理念。在此基础上,采用粒子群算法并加以改进运用于光强传感器测量数据的优化,进而提高本系统的测量精度。