作者:安徽师范大学 葛文婧 郭俊 程金凤
指导教师:陈付龙 左开中
作品简介
(2)传输子系统(主机):由负责数据转发的STC15单片机、连接PC机的USB模块和无线数据收发模块nrf24L01组成。
(3)终端子系统(从机):由无线数据收发模块nrf24L01、温湿度采集模块DHT11、报警装置(蜂鸣器)、显示模块LCD1602、调控装置(通风机、空调机、干燥机)和STC15单片机组成。
1. 功能与使用说明
(1)温湿度监测
各终端子系统在单片机控制下,通过nrf24L01无线接收模块,将DHT11温湿度采集模块采集到的仓库各储藏间温湿度数据发送给传输子系统,并通过USB串口发送至监测子系统,在Web页面上显示,供管理员分析和监控。管理员在PC端打开Web页面进入数据查看,可查看各储藏间温湿度动态折线图,并可下载所有历史数据到Excel表格中。管理员也可进入数据分析页面,查看温湿度的最小值、平均值和最大值,从而实时监测到温湿度的相关信息。
(2)温湿度控制
管理员在PC端可进入参数设置页面,对系统串口参数、温度上下限和湿度上下限进行相关设置,并通过传输子系统向终端子系统发送指令,以便温湿度异常时执行报警,驱动空调、风扇和干燥机调控温湿度,从而实现仓库各储藏间温湿度数据的实时控制。
2. 作品特色
(1)功能特点:具有温湿度自动监测、报警和调控功能,可通过Web页面进行无线实时监控。
(2)结构特点:利用物联网技术,建立监控、传输、终端三层架构,易扩展,且监控端将来易移植至移动客户端(如手机)。
平台选型说明
选择以IAP15F2K61S2芯片为控制核心的单片机开发板,DHT11温湿度传感器用于温湿度采集,nrf24L01无线通信模块用于下位机(主机和从机)间通信,上位机(PC机)以ASP.NET为开发平台。
(1)IAP15F2K61S2是1T的增强型8051 CPU,可以进行在线编程,具有双串口、三个定时器、高速10位AD等模块,方便进行系统开发。
(2)DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,响应快,抗干扰能力强,易于采集到各地的温湿度。
(3)nrf24L01无线传输模块是一款无线通信芯片,采用 FSK调制方式,可以实现点对点或是一对多的无线通信,无线通信速度可以达到 2Mb/s。
(4)ASP.NET是一个统一的Web开发模型,也是 Microsoft .NET Framework 的一部分,基于ASP.NET的Web设计简单明了方便。
设计说明
1.系统结构原理图
图2 系统结构原理图
2.设计原理
2.1 系统工作流程
系统工作流程如图3 所示。
图3 系统工作流程图
2.2 工作原理
首先用户使用DHT11模块对温湿度进行采集并在LCD1602显示当前的温湿度,然后通过无线传输模块nrf24L01将数据发送出去,接收端同样使用无线传输模块nrf24L01进行接收数据并通过串口通信将接收到的数据传到PC机上。用户可以访问服务器查看采集到的温湿度信息,管理员可以通过访问服务器发现温湿度出现异常,进入仓库手动调节。管理员也可以通过Web下达温湿度上下限指令到各从机,从机通过判断启动调控装置以及报警装置,从而实现对温湿度的监控。
3.设计方案
该系统包括监控、传输和终端三个子系统。
3.1 监控子系统
监控子系统是ASP.NET为基础编写的具有交互和通信能力的平台,运行在PC机上。该系统可以定时获取多个温湿度结点的温湿度数据,并存入数据库中,用户可以浏览实时和历史的温湿度数据(图4),同时用户也可以进行自行设定仓库的温湿度上下限(图5)、根据需要设置传感器的数据发送频率等对下位机(主机)的操作。上位机(PC机)与下位机的通信是通过串行通讯SerialPort类来实现的。
图4 PC端数据查看界面
图5 PC端参数设置界面
3.2 传输子系统
传输子系统为主机,由STC15开发板、nrf24L01无线通信模块组成,可通过串口模块与PC机通信,负责接收来自PC机的指令并通过无线通信模块转发给各终端子系统,接收来自各终端子系统的温湿度数据并通过串口模块转发给PC机。
3.3 终端子系统
图6 温湿度采集、显示和发送
终端子系统为从机,具有唯一的地址(标识),由单片机最小系统、温湿度传感器模块、nrf24L01无线通信模块、LCD1602模块、温湿度调节装置(通风机、空调机、干燥机或除湿机)和报警模块(蜂鸣器)构成,负责温湿度采集、显示和发送。
(1)单片机最小系统
IAP15F2K61S2是1T的增强型8051 CPU,,此芯片构成的最小系统稳定、可靠。如图7所示,IAP15F2K61S2最小系统较简单。
图7 IAP15F2K61S2最小系统
(2)温湿度传感器模块
DHT11是数字型温湿度传感器,其典型连接方式如图8所示,为4针单排引脚封装,引脚1供电,接3~5.5V电源,引脚2用于DATA 串行数据,是单总线传输,引脚3为空脚,悬空即可,引脚4接地即电源负极,引脚2上拉一电阻接到电源上。
图8 DHT11典型连接
微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。数据格式如下:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。数据传送正确时校验和数据等于上述前4个8bit之和所得结果的末8位。例如湿度为53%RH,温度为24℃,此时的40bit数据如表1所示。
表1 数据表
数据 |
二进制 |
十进制 |
8bit湿度整数数据 |
0011 0101 |
53.00 |
8bit湿度小数数据 |
0000 0000 |
|
8bit温度整数数据 |
0001 1000 |
23.00 |
8bit温度小数数据 |
0000 0000 |
|
8bit校验和 |
0100 1101 |
|
DHT11的数据时序图如图9所示。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。
图9 DATA数据通信时序图
(3)nrf24L01模块
nrf24L01是一款新型单片射频收发器件,工作于2.4GHz~2.5GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。其接口如图10所示。
图10 nrf24L01接口
发射数据时,首先将nrf24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nrf24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nrf24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便再次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nrf24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。
接收数据时,首先将nrf24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nrf24L01进入空闲模式1。
(4)温湿度调节与报警模块
温湿度调节模块主要根据上位机发送过来的温湿度上下限对直流电机控制的通风机、风扇和继电器控制的干燥机、除湿机、空调机、电热器选择启动还是停止。报警模块是当温湿度超出范围过大时进行蜂鸣器报警。两个模块原理图如图11所示。
图11 温湿度调节与报警原理图
(5)LCD1602模块
LCD1602字符型液晶显示的内容为16x2,即可以显示两行,每行16个字符(显示字符和数字)。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出数字。 LCD1602的原理图如图12所示。
图12 LCD1602原理图