实验室温湿度监控系统的设计论文.docx
- 文档编号:30070426
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:61
- 大小:884.34KB
实验室温湿度监控系统的设计论文.docx
《实验室温湿度监控系统的设计论文.docx》由会员分享,可在线阅读,更多相关《实验室温湿度监控系统的设计论文.docx(61页珍藏版)》请在冰豆网上搜索。
实验室温湿度监控系统的设计论文
实验室温湿度监控系统设计
摘要
温湿度是检验实验室安全的一个重要的指标,因此实时监控温湿度有很重要的意义。
本系统基于STM8单片机,分为上位机和下位机,下位机由STM8单片机最小系统、NRF24L01无线模块和DHT11温湿度传感器组成。
上位机的数据提取部分由STM8单片机最小系统和NRF24L01无线模块组成,上位机界面由C#语言编写,把采集到的温湿度数据显示在PC机的界面上。
关键词:
温湿度无线传输STM8单片机
ABSTRACT
Temperatureandhumidityisanimportantindexfortestinglaboratorysafety,sothereal-timemonitoringoftemperatureandhumidityhaveimportantmeaning.ThissystembasedonSTM8microcontroller,dividedintotheuppermachineandlowermachine,amachineunderminimumsystemcontrolledbySTM8,NRF24L01wirelessmoduleandDHT11temperatureandhumiditysensors.DataextractionpartoftheuppermachineofminimumsystemcontrolledbySTM8andNRF24L01wirelessmodule,PCinterfacebyc#language,thedisplayofthetemperatureandhumiditydatacollectedonthePCinterface.
Keywords:
temperatureandhumidityWirelesstransmissionSTM8-MCU;
一、引言……………………………………………………………………1
二、系统结构框图及基本原理………………………………………2
(1)系统结构…………………………………………………………2
(2)数据采集节点结构…………………………………………………3
(3)数据接收端结构…………………………………………………3
三、硬件电路设计………………………………………………………4
(一)CPU芯片(STM8S003F3P6)………………………………………4
(二)电源模块……………………………………………………………5
(三)无线模块(NRF24L01)……………………………………………5
(四)复位电路…………………………………………………………7
(五)发射指示电路……………………………………………………7
(六)温湿度采集模块……………………………………………………8
(七)USB转串口模块……………………………………………8
四、系统软件设计……………………………………………………8
(一)程序设计总体思路………………………………………………8
(二)温湿度传感器软件设计……………………………………………10
1.DHT11通信协仪……………………………………………………13
2.DHT11程序设计……………………………………………………13
(三)无线通信模块RF24L01软件设计………………………………14
1.发射部分子程序设计………………………………………………15
2.接收部分子程序设计………………………………………………16
(四)上位机部分软件设计………………………………………17
五、结论…………………………………………………………………18
参考文献………………………………………………………………20
致谢……………………………………………………………………19
附录……………………………………………………………………30
一、引言
随着现代电子技术的发展,计算机数量及其配套的环境设备与日俱增,实验室已经成为信息系统的重要组成部分。
由于实验室的特殊性,实验室里的设备一般都是7*24小时全天候运行的,因此实验室对温湿度较敏感。
温湿度是检验实验室安全的一个重要的指标,如果实验室内的温湿度超过一定值会对设备运行有影响。
因此,测量温度并给出相应的信息对实验室有一定意义。
本文设计了一个基于STM8单片机的无线温度采集系统,可以实现对实验室温湿度的采集与无线传输功能。
整个系统分为上位机和下位机两部分,单片机使用C语言为开发语言,KEIL软件为编程工具。
PC端采用C#语言作为开发语言。
二、系统结构框图及基本原理
(一)系统结构框图
数据接收系统
数据发送系统
图2-1系统原理结构图
如图2-1所示为系统原理结构图。
整个系统由数据采集节点和数据接收端以及上位机组成。
数据采集节点工作在各个测温地点,进行温度数据采集和数据无线发送。
数据接收端收到数据后,通过RS232串口将此数据送到C#编写的上位机进行显示。
(二)数据采集节点结构
图2-2(a)数据采集节点结构框图
数据采集系统由以下几部分组成:
CPU芯片:
采用STM8S003F3P6单片机。
复位电路:
由一个10K电阻和一个0.1uf的电容组成。
无线模块:
使用NRF24L01无线收发模块。
温度传感器模块:
使用DHT11温湿度传感器芯片。
状态指示电路:
由一个LED灯和一个1K的电阻组成
(三)数据接收端结构
图2-2(b)数据接收端结构框图
该系统由以下几部分组成:
CPU芯片:
采用STM8S003F3P6单片机。
复位电路:
由一个10K电阻和一个0.1uf的电容组成。
电源电路:
由一个AMS1117-3.3的芯片和1个0.1uf的电容,1个1uf的电容组成。
无线模块:
NRF24L01无线模块。
显示模块:
使用PC机界面显示。
3、硬件电路设计
(一)CPU芯片(STM8S003F3P6)
本系统采用单片机STM8S003F3P6,STM8S003F3P6是意法半导体公司生产的8位的单片机。
(1)高级STM8内核,具有3级流水线的哈佛结构
(2)程序存储器:
8K字节Flash;
(3)数据存储器:
640字节真正的数据
(4)EEPROM;可达30万次擦写
(5)RAM:
1K字节
(6)2.95到5.5V工作电压
(7)灵活的时钟控制,4个主时钟源
–低功率晶体振荡器
–外部时钟输入
–用户可调整的内部16MHzRC
–内部低功耗128kHzRC
(8)电源管理:
–低功耗模式(等待、活跃停机、停机)
–外设的时钟可单独关闭
永远打开的低功耗上电和掉电复位
(9)中断管理
带有32个中断的嵌套中断控制器,6个外部中断向量,最多27个外部中断
图3-1STM8S003F3P6引脚图
STM8S003F3P6芯片特性与管脚说明:
VDD:
数字部分供电。
VSS:
数字部分接地。
NRST:
复位引脚。
VCAP:
1.8V调压器电容。
OSCIN:
晶振输入。
OSCOUT:
晶振输出。
PB口:
通用输入输出口。
PC口:
通用输入输出口。
PD口:
通用输入输出口。
(二)电源模块
电源模块把USB接口的5V的电压通过稳压芯片稳到3.3V,为NRF24L01模块以及STM8S003F3P6单片机供电。
稳压芯片型号为AMS1117-3.3。
电路图如下所示:
图2-2电源模块电路图
(三)无线模块(NRF24L01)
1.模块特点:
该模块采用2.4GHz全球开放ISM频段,最大0dBm发射功率,支持六路通道的数据接收,免许可证使用。
其特点如下:
2.引脚说明
图2-3(a)NRF24L01PCB图
NRF24L01模块的引脚如图所示,各自功能如下所述:
PIN1:
VCC电源,1.9-3.6V输入
PIN2:
CE工作模式选择,TX或RX模式选择
PIN3:
CSNSPI片选使能,低电平使能
PIN4:
SCKSPI时钟
PIN5:
MOSISPI输入
PIN6:
MISOSPI输出
PIN7:
IRQ中断输出
PIN8:
GND地线
3.该模块在使用时应注意以下几点:
(1)除电源VCC和接地端,所有的pin脚都可与单片机IO口直连。
(2)VCC脚接电压范围为1.9V~3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。
推荐电压3.3V左右。
(3)无SPI接口的MCU也可同样兼容,可用普通IO口对SPI接口进行模拟。
(a:
与P0口需要加10K的上拉电阻。
b:
在使用其他5V单片机时需参考IO口输出电流,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!
如果是3.3V的,可以直接和RF24l01模块的IO口线连接。
比如AVR系列单片机如果是5V的,一般串接2K的电阻)。
(四)复位电路
电容在上接高电平,电容在下接地,中间为NRST。
本设计为低电平复位。
其工作原理是:
通电时,电容处于交流短路,此时RST端被拉低,电容缓慢充电,同时RST的电压慢慢上升,直到上升为高电平,MCU复位结束启动工作。
其电路如图2-4所示:
图2-4复位电路图
(五)发射指示电路
发射和接收模块分别由一个1K电阻和一个发光二极管组成。
当相应的IO给低电平,相应的发光二极管会亮起,以表示当前正在发射或接收状态。
其电路如图所示。
图2-5(a)发射指示模块电路图
(六)温湿度采集模块
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。
产品为4针单排引脚封装,连接方便。
DHT11和单片机的连接非常简单;把引脚3接5V,引脚1接地,引脚2直接接到单片机I/O口即可。
(七)USB转串口模块
USB转串口电路如图2-8所示,采用CH340USB转串口芯片组成这个电路。
图2-8USB转串口模块原理图
四、系统软件设计
(一)程序设计总体思路
软件部分的设计思路是将整个程序划分3个部分,温湿度采集及数据无线发射部分,数据接收部分,上位机显示数据部分。
软件流程如图4-1所示,开始先是系统的初始化,初始化完成之后接收模块会一直处于待命状态一直循环等待无线端接收的数据,数据采集节点实时监测温湿度,并把温湿度发射给数据接收端,接收到温湿度数据后,进行校验,处理后并通过串口发送给上位机,显示实时温湿度数据。
图4-1软件整体流程
(二)温湿度传感器软件设计
DHT11的内部存储器有一个高速暂存RAM。
高速暂存RAM的结构为8字节的存储器。
第1字节和第2字节为测得的温度的低位和高位,第3字节和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,它的第7位TM是测试模式位,用于设置DHT11在工作模式还是在测试模式;第6位R1和第5位R0决定温度转换的精度,即用来设置分辨率,分辨率越高,转换时间就越长。
当符号位S=0时,表示测得的温度为正值,可直接将二进制转换为十进制;当符号位S=1时,表示测得的温度为负值,要先将补码变成原码,再计算十进制。
在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即把把温度寄存器里的二进制值乘以0.0625,就是实际的温度值,例如0550H×0.0625=1360×0.0625℃/LSB=85℃。
1.DHT11的通信协议
该通信协议定义了几种信号类型:
复位脉冲、应答脉冲时隙;写“0”、写“1”时隙;读“0”,读“1”时隙;。
与DHT11的通信,是通过操作时隙完成单总线上的数据传输。
发送所有的命令和数据时都是字节的低位在前,高位在后。
1)初始化序列:
复位和应答脉冲
单总线上的所有通信都是以初始化序列开始,包括:
主机发出的复位脉冲及从机的应答脉冲,如图5所示。
当从机发出响应主机的应答脉冲时,即向主机表
图4-2复位/应答时隙的示意图
明它处于总线上,且工作准备就绪。
在主机初始化过程,主机通过拉低单总线至少480us,以产生(Tx)复位脉冲。
接着,主机释放总线,并进入接收模式(Rx)。
当总线被释放后,5k上拉电阻将单总线拉高。
在单总线器件检测到上升沿后,延时15-60us,接着通过拉低总线60-240us,以产生应答脉冲。
2)写时隙
存在两种写时隙:
写“1”和写“0”。
主机采用写1时隙向从机写入1,而
图4-3主机读/写时隙的示意图
采用写0时隙向从机写入0。
所有写时隙至少需要60us,且在两次独立的写时隙之间至少需要1us的恢复时间。
两种写时隙均起始于主机拉低总线(图6所示)。
产生写1时隙的方式:
主机在拉低总线后接着必须在15us之内释放总线,由5k上拉电阻将总线拉至高电平;而产生写0时隙的方式:
在主机拉低总线后,只需
在整个时隙期间保持低电平即可(至少60us)。
在写时隙起始后15-60us期间,单总线器件采样总线电平状态。
如果在此期间采样为高电平,则逻辑1被写入该器件;如果为0,则写入逻辑0。
3)读时隙
单总线器件仅在主机发出读时隙时,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时隙,以便从机能够传输数据,所有读时隙至少需要60us,且在两次独立的读时隙之间至少需要1us的恢复时间。
每个读时隙都由主机发起,至少拉低总线1us(图6所示)。
在主机发起读时隙之后单总线器件才开始在总线上发送0或1。
2.DHT11程序设计
通过上述原理,可通过其one-wire总线对其进行配置和数据通信,设计的读出温度子程序主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
其软件流程如图4-4所示。
图4-4读出温湿度子程序软件流程图
DHT11的各个命令对时序的要求特别严格,所以在软件设计时必须按照所要求的时序才能达到预期的目的,同时,要注意读进来的是高位在后低位在前,共有12位数,小数4位,整数7位,还有一位符号位。
(三)无线通信模块RF24L01软件设计
1.发射部分子程序设计
图4-5NRF24L01发送程序流程图
RF24L01走的是标准的SPI协议,操作是按照SPI协议的标准读写数据。
如图4-5所示,发射数据时,首先将nRF24L01配置为发射模式:
接着把接收节点地址TX_ADDRESS和有效数据TX_PLOAD按照时序由SPI口写入nRF24L01缓存区,然后CE置为高电平并保持至少10μs,延迟130μs后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDRESS一致)。
如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLOAD从TXFIFO中清除;若发送堆栈中无数据且CE为高,则进入空闲模式。
以下是发送子程序:
//***************NRF24L01初始化
voidinit_NRF24L01(void)
{
inerDelay_us(100);
CE=0;//chipenable
CSN=1;//Spidisable
SCK=0;//Spiclocklineinithigh
SPI_Write_Buf(WRITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);//写本地地址
SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,RX_ADDRESS,RX_ADR_WIDTH);//写接收端地址
SPI_RW_Reg(WRITE_REG+EN_AA,0x01);//频道0自动ACK应答允许
SPI_RW_Reg(WRITE_REG+EN_RXADDR,0x01);//允许接收地址只有频道0,如果需要多频道可以参考Page21
SPI_RW_Reg(WRITE_REG+RF_CH,0);//设置信道工作为2.4GHZ,收发必须一致
SPI_RW_Reg(WRITE_REG+RX_PW_P0,RX_PLOAD_WIDTH);//设置接收数据长度,本次设置为4字节
SPI_RW_Reg(WRITE_REG+RF_SETUP,0x07);//设置发射速率为1Mkbps,发射功率为最大值0dB
}
/*函数:
voidnRF24L01_TxPacket(unsignedchar*tx_buf)
/*功能:
发送tx_buf中数据
voidnRF24L01_TxPacket(unsignedchar*tx_buf)
{
CE=0;//StandByI模式
SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH);//装载接收端地址
SPI_Write_Buf(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);//装载数据
SPI_RW_Reg(WRITE_REG+CONFIG,0x0e);//IRQ收发完成中断响应,16位CRC,主发送
CE=1;//置高CE,激发数据发送
inerDelay_us(10);
}
2.接收部分子程序设计
图4-6RF24L01接收程序流程图
如图4-6所示,接收数据时,首先将nRF24L01配置为接收模式,接着延迟130μs进入接收状态等待数据的到来。
当接收方检测到有效的地址和CRC时,就将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。
若此时自动应答开启,接收方则同时进入发射状态回传应答信号。
最后接收成功时,若CE变低,则nRF24L01进入空闲模式。
以下是接收函数:
/*函数:
unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)
/*功能:
数据读取后放如rx_buf接收缓冲区中
unsignedcharnRF24L01_RxPacket(unsignedchar*rx_buf)
{
unsignedcharrevale=0;
sta=SPI_Read(STATUS);//读取状态寄存其来判断数据接收状况
if(RX_DR)//判断是否接收到数据
{
CE=0;
SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH);//readreceivepayloadfromRX_FIFObuffer
revale=1;//读取数据完成标志
}
SPI_RW_Reg(WRITE_REG+STATUS,sta);//接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来其清除中断标志
returnrevale;
}
(四)上位机部分软件设计
上位机采用C#语言编写,流程如下:
图4-7上位机显示程序流程
结论
毕业设计是本专业教学中最后一个重要的实践性教学环节,是我们从学校走向工作岗位必要的过渡阶段。
对我个人而言,毕业设计是我大学四年学习的总结与检验,是大学四年所学知识的综合运用的体现。
此次毕业设计巩固了我所学理论,增强了理论联系实际的能力,更是为以后的工作打下了更坚实的基础。
本次毕业设计采用单片机STM8S003F3P6为控制器,用温湿度传感器DHT11来检测室内温湿度,用NRF24L01来传输数据,用C#上位机来实时显示当前的温湿度。
调试结果表明系统能够达到预定目标。
致谢
本论文是在XX导师的悉心指导之下完成的,四年来,导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,朴实无华、平易近人的人格魅力对我影响深远。
本论文从选题到完成,几易其稿,每一步都是在导师的指导下完成的,倾注了导师大量的心血,在此我向我的导师表示深切的谢意与祝福!
同时我还得感谢做毕业设计以来一直帮助我的同学和朋友,因为之前全身心准备考研,在专业技能的训练和提升上我都有比较大的欠缺,因而这次毕业设计对我来说就是重新学习和应用单片机的知识,使用单片机来做些简单的应用系统设计。
作为新手我当然少不了遇到这样或那样的问题,无论是硬件焊接、硬件调试,还是软件的调试,在我查资料或多次调试都未能理解相关知识或者有效解决问题时,我都能及时得到同学们的帮助。
参考文献
[1]张毅刚.刘杰.单片机原理及应用[M].哈尔滨:
哈工大出版社第三版,2006
[2]彭伟.单片机C语言程序设计实训100例[M].北京:
电子工业出版社第三版,2007
[3]郭天祥.51单片机C语言教程[M].北京:
电子工业出版社第三版,2006
[4]胡汉才.单片机原理及其接口技术[M].北京:
清华大学出版社第三版,2007
[5]郝鸿安.常用数字集成电路应用手册[M].北京:
中国计量出版社第二版,2006:
165-187
[6]孙肖子.田根登.现代电子线路和技术实验[M].高等教育出版社第二版,2004
[7]陈永甫.红外探测与控制电路[M].北京:
人民邮电出版社第二版,2004
[8]张庆双.报警器应用电路集粹[M].北京:
机械工业出版社第三版,2005
[9]肖景和.实用报警电路300例[M].北京:
中国电力出版社第二版,2005
[10]王幸之.89系列单片机原理与接口技术[M].北京:
北京航空航天大学出版社第二版,2004
[11]GonzalezR.WoodsR.DigitalImageProcessing.SecondEdition[M].UpperSaddleRiverN.J:
PrenticeHall.2002
[12]StevenF.Barrett.DanielJ.Pack.EmbeddedSystem[M].北京:
电子工业出版社,2006
附录
附录一
实物图:
附录二
数据接收端总体原理图:
数据采集节点总体原理图:
附录三:
上位机界面运行效果图:
附录四:
数据接收端程序:
#include"stm8s.h"
#include"iostm8s103f3.h"
#include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验室 温湿度 监控 系统 设计 论文