智能温室控制系统设计.docx
《智能温室控制系统设计.docx》由会员分享,可在线阅读,更多相关《智能温室控制系统设计.docx(59页珍藏版)》请在冰点文库上搜索。
![智能温室控制系统设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/22/80e91aa0-2a87-419a-9258-f8968a3b9b2b/80e91aa0-2a87-419a-9258-f8968a3b9b2b1.gif)
智能温室控制系统设计
图书分类号:
密级:
毕业设计(论文)
智能温室控制系统设计
THEDESIGNOFINTELLIGENTGREENHOUSECONTROLSYSTEM
学生学号
学生姓名
学院名称
专业名称
指导教师
2012年
5月
29日
徐州工程学院学位论文原创性声明
本人郑重声明:
所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已经注明引用或参考的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标注。
本人完全意识到本声明的法律结果由本人承担。
论文作者签名:
日期:
年 月 日
徐州工程学院学位论文版权协议书
本人完全了解徐州工程学院关于收集、保存、使用学位论文的规定,即:
本校学生在学习期间所完成的学位论文的知识产权归徐州工程学院所拥有。
徐州工程学院有权保留并向国家有关部门或机构送交学位论文的纸本复印件和电子文档拷贝,允许论文被查阅和借阅。
徐州工程学院可以公布学位论文的全部或部分内容,可以将本学位论文的全部或部分内容提交至各类数据库进行发布和检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
论文作者签名:
导师签名:
日期:
年 月 日日期:
年 月 日
摘要
本文提出了一种以51单片机为主控器和射频nRF905为无线收发模块的智能温室控制系统的总体设计方案和实现方法。
系统设置了一个主机和两个从机,通过无线通信方式,实现了两个节点的温湿度数据采集。
主机通过从机预设的不同地址来实现区分两个节点发送来的温湿度数据。
本设计采用nRF905射频模块为无线传输模块,DS18B20为温度传感器模块,DHT11为湿度采集模块从而实现温室的温湿度监测与控制。
51单片机和nRF905之间通过模拟高速串口SPI实现双向通信,SPI支持高速数据传输,从而满足了温室温湿度数据的实时传输。
用VB6.0中的MScomm控件编写了温湿度接收界面,通过串口将采集到的温湿度数据显示在PC机上。
关键词STC89C51;nRF905;DS18B20;DHT11
Abstract
Thispaperpresentsamethodbasedon51singlechipmicrocomputerasamaincontrollerandnRF905aswirelesstransceivermoduletodesigntheintelligentgreenhousecontrolsystem.Thesystemprovidedamasterandtwoslaves,mastercanacquistthedataoftemperatureandhumidityfromtwoslavesthroughthewirenesscommunicationmode.Themastercandistinguishthedatafromtwodifferentplacesthroughdifferentaddress.ThisdesignusenRF905moduleaswirelesstransmissionmodule,DS18B20astemperaturesensorandDHT11ashumidityacquisitionmoduletosensethegreenhousetemperatureandhumidity.51singlechipmicrocomputerandnRF905canrealizetwo-waycommunicationthroughthesimulationofhighspeedserialSPI,SPIsupporthighspeeddatatransmission,soitcanmeettheneedsofthegreenhousetemperatureandhumiditydatareal-timetransmission.ThetemperatureandhumidityreceivinginterfacecanbemadebyVB6.0MScommcontroller,thegreenhousetemperatureandhumiditydatacanbedisplayedonPCmachinethroughtheserialport.
KeywordsSTC89C51;nRF905;DS18B20;DHT11
1绪论
1.1背景及意义
温室控制技术是现代农业研究的重要内容,针对长期以来温室大棚效率低、生产成本高、消耗人力资源多等缺点,温室智能控制系统能有效地克服这些困难。
本系统主要由上、下位机模块构成,下位机主要是对温室内环境因素中的温度、湿度等进行检测并按照一定的通信方式将数据传给上位机,上位机实时接收下位机上传的数据使用户能在远程监测温室的环境参数,下位机根据一定的算法控制喷淋、遮阳、通风、加热等执行系统,调节环境参数,实现温室智能控制,达到农作物优质、高产、高效的栽培目的。
1.2工作原理
智能温室控制系统是一种基于射频技术的无线温湿度检测与控制系统。
本系统由传感器、显示器、上位机、控制执行单元构成。
传感器部分包括数字温度传感器DS18B20、单片机STC89C51、低功耗无线模块nRF905和天线。
显示器由LCD1602构成。
上位机是由VB的Mscomm控件编写而成。
本系统由三个单片机模块构成,其中两个模块用作数据采集的从机,另外一个模块用作数据接收的主机。
从机采集温室温湿度并将数据送LCD1602显示,无线发射模块nRF905将采集到的温湿度发送给主机,主机将接收到的数据通过串口发送给上位机,上位机显示温室数据给用户,单片机从机将采集到的数据与预设值比较,决定是否打开控制执行单元,以达到智能控制的效果。
2系统总体设计
2.1系统的整体结构
本系统包含一台主机和两台从机。
系统的整体结构框图如图2-1所示。
从机1
主机
从机2
图2-1系统整体结构框图
2.2课题需要完成的任务
一、完成系统的硬件设计与调试。
二、完成温湿度采集的程序设计。
三、完成温湿度用LCD1602显示的程序设计。
四、完成nRF905无线收发模块收发数据的程序设计。
五、完成主机与PC机实现串口通信的程序设计。
六、完成控制执行单元软硬件的设计。
七、完成VB上位机程序的设计。
3系统硬件设计
3.1主控制器的选用
本系统涉及的主要器件包括:
主控芯片、DS18B20温度传感器、DHT11湿度传感器、nRF905无线模块,所涉及的器件较多,选择一款合适的主控芯片直接影响到系统的整体性能和设计的最终效果。
STC89C51单片机作为目前市场上最为常用的单片机具有结构简单、可控性好、I/0口多、下载程序方便、价格低廉的特点,符合本系统的设计要求,故选用STC89C51单片机作为主控制器。
3.2无线传感器nRF905模块
3.2.1芯片结构
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率、放大器等模块,使用非常方便其详细结构如图3-1所示。
图3-1nRF905的详细结构图
3.2.2接口电路管脚说明
nRF905封装如图3-2所示。
图3-2nRF905封装
各引脚说明如表3-1所示。
表3-1nRF905管脚说明表
管脚
名称
管脚功能
说明
1
VCC
电源
电源+1.9-3.6VDC
2
TX_EN
数字输入
TX_EN=1发送模式TX_EN=0接收模式
3
TRX_CE
数字输入
使能芯片发射或接收
4
PWR_UP
数字输入
芯片上电
5
uCLK
时钟输出
本模块弃用
6
CD
数字输出
载波检测
7
AM
数字输出
地址匹配
8
DR
数字输出
接收或发射数据完成
9
MISO
SPI接口
SPI输出
10
MOSI
SPI接口
SPI输入
11
SCK
SPI时钟
SPI时钟
12
CSN
SPI使能
SPI使能
13
GND
地
接地
14
GND
地
接地
注意:
(1)nRF905供电范围为3-3.6V之间,超出这个范围就会烧毁nRF905模块。
(2)nRF905的引脚可与5V单片机的I/O口直接相连,VCC和接地端除外。
(3)没有SPI接口的单片机可以模拟SPI。
(4)与51系列单片机P0口相连时,需加10K的上拉电阻。
3.2.3nRF905工作方式
nRF905有两种工作模式和两种节能模式。
两种工作模式分别ShockBurstTM接收模式和ShockBurstTM发送模式,两种节能模式分别是关机模式和空闲模式。
nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定,其工作模式如表3-2所示。
表3-2nRF905工作模式
PWR_UP
TRX_CE
TX_EN
工作模式
0
X
X
关机模式
1
0
X
空闲模式
1
1
0
接收模式
1
1
1
发送模式
nRF905发送流程
典型的nRF905发送流程分以下几步:
A.微控制器通过SPI接口按时序把地址和数据发送给nRF905;
B.PWR_UP=1,TRX_CE=1,TX_EN=1启动发送模式;
C.nRF905开始发送数据;
D.AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
E.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式;
nRF905接收流程
A.TRX_CE=1、TX_EN=0,nRF905进入接收模式;
B.等待650us,nRF905不断监测,等待接受数据;
C.若从机上的nRF905检测到的载波频段与自身的相同时,CD=1;
D.若接收地址与自身地址匹配,AM=1;
E.当一个数据包接收完毕后DR=1;
F.TRX_CE=0,nRF905等待下一次接收数据;
G.数据通过SPI口以一定速率进入微控制器;
H.若数据接收完成,DR=0,AM=0;
3.2.4nRF905模块配置
1)SPI接口寄存器配置
SPI接口由5个寄存器组成,其中状态寄存器存储AM和DR引脚信息,射频和输出功能信息由射频配置寄存器保存,接收机地址和数据字节数信息由发送地址寄存器保存,待发送的数据信息由发送数据寄存器保存,要接收的数据字节数等信息由接收数据寄存器保存。
2)SPI指令设置
SPI接口的指令如表3-3所示。
表3-3SPI串行接口指令设置
指令名称
指令格式
操作
WC
0000AAAA
写配置寄存器
RC
0001AAAA
读配置寄存器
WTP
00100000
写TX有效数据1-32字节写操作全部从字节0开始
RTP
00100001
读TX有效数据1-32字节读操作全部从字节0开始
WTA
00100010
写TX地址1-4字节写操作全部从0字节开始
RTA
00100011
读TX地址1-4字节读操作全部从字节0开始
RRP
00100100
读RX有效数据1-32字节读操作全部从字节0开始
CC
100pphccccccccc
快速配置寄存器
3.2.5nRF905与单片机的硬件连接原理图
nRF905与单片机的硬件连接原理图如图3-3所示。
图3-3nRF905与单片机的硬件连接原理图
3.3温度传感器DS18B20
3.3.1DS18B20主要特性
(1)供电范围:
3.0V-5.5V,在寄生电源方式下可由数据线供电。
(2)在使用中不需要任何外围元件。
(3)独特的单总线接口方式只需要一根信号线即可实现单片机与DS18B20的通信。
(4)测温范围:
-55°C~+125°C,在-10~+85°C时精度为±0.5°C。
(5)分辨率为9-12位,对应的可分辨温度分别为0.5°C、0.25°C、0.125°C和0.0625°C,可实现高精度测温。
(6)在9位分辨率时最多在93.75ms内把温度值转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。
(7)多个DS18B20可以挂在一根数据线上,实现多点测温。
3.3.2DS18B20的外部结构
DS18B20采用如图3-4所示的3脚PR-35封装或8脚SOIC封装。
图中管脚定义如下:
(1)I/O:
数字信号输入输出端。
(2)GND:
电源地。
(3)VDD:
外接供电电源输入端(在寄生电源接线方式时接地)。
图3-4DS18B20封装
3.3.3DS18B20的数据处理
DS18B20的高速暂存存储器由9个字节组成,其分配见表3-4,当温度转换命令发布后,经转换所得的温度值以2字节补码形式存放到高速暂存存储器的第0和第1个字节。
单片机可通过单总线接口读取到该数据,读取时低位在前,高位在后。
表3-4字节分配
功能
0
温度转换后的低字节
1
温度转换后的高字节
2
高温度触发器TH
3
低温度触发器TL
4
配置寄存器
5
保留
6
保留
7
保留
8
CRC校验寄存器
表3-5所列是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8bit的RAM中,二进制的前5位是符号位,如果测的温度大于或等于0,这五位为0,只要将测得数值乘以0.0625即可得到实际温度;如果温度小于0,这五位为1,测的数值需要取反加1再乘以0.0625即可得到实际温度。
单片机对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能进行存储器操作和数据操作。
DS18B20的操作要遵循一定的工作时序和通信协议。
如单片机控制DS18B20完成温度转换这一过程,要经过以下几个步骤:
对DS18B20读写之前先进行复位,再发送ROM指令,最后发送RAM指令。
DS18B20有六条控制命令,如表3-6所示。
表3-5DS18B20部分温度数据表
温度/
16位二进制编码
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
表3-6DS18B20控制命令
指令
约定代码
操作说明
温度转换
44H
启动DS18B20
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TL、TH字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
发送电源供电方式给CPU
3.3.4单片机与DS18B20的硬件连接原理图
单片机和DS18B20的硬件连接图见图3-5,DS18B20的单总线DQ与单片机STC89C51的P1.6端口连接,另加一个上拉电阻。
详细原理图见附录1。
图3-5单片机和DS18B20的硬件连接图
3.4湿度传感器DHT11
3.4.1DHT11接口说明
DHT11引脚图如图3-6所示。
图3-6DHT11引脚图
DHT11引脚说明如表3-7所示。
表3-7DHT11引脚说明
Pin
名称
注释
1
VDD
供电3-5.5V
2
DATA
串行数据单总线
3
NC
空脚,悬空
4
GND
接地
3.4.2DHT11与单片机的硬件连接
DHT11与单片机的硬件连接图如图3-7所示。
图3-7单片机与DHT11湿度传感器硬件连接图
3.5LCD1602液晶显示模块
3.5.1控制器接口说明
各引脚符号及功能如表3-8所示。
表3-8接口信号表
引脚编号
引脚名称
引脚功能
14-7
D7-D0
数据线
6
E
片选信号,写数据控制
5
R/W
读/写方向控制信号,低电平为写入,高电平为输出
4
RS
寄存器选择信号
续表3-8
3
V0
驱动电压调节
2
VDD
+5V
1
VSS
地线
15
V--
背光电压负端(GND)
16
V+
背光电压正端(+5V)
3.5.2基本时序操作
(1)读状态:
输入:
RS=L,RW=H,E=H输出:
D0~D7=状态字
(2)写指令:
输入:
RS=L,RW=L,D0~D7=指令码,输出:
无
(3)读数据:
输入:
RS=H,RW=H,E=H输出:
D0~D7=数据
(4)写数据:
输入:
RS=H,RW=L,D0~D7=数据,输出:
无
3.5.3显示数据存储器(DDRAM)
LCD控制器的指令系统规定,在发送待显示字符代码的指令之前,先要送DDRAM的地址,实际上是待显示的字符所要显示的位置。
若LCD为双行字符显示,每行40个显示位置,第一行地址为00H~27H;第二行地址为40H~67H。
双行显示的DDRAM地址与显示位置的对应关系见表3-9。
表3-9双行显示的DDRAM地址与显示位置的对应关系
显示位置
1
2
3
4
5
6
7
……
39
40
DDRAM
Line1
00H
01H
02H
03H
04H
05H
06H
……
26H
27H
地址
Line2
40H
41H
42H
43H
44H
45H
46H
……
66H
67H
3.5.4LCD1602控制命令字设置
LCD1602控制命令字设置如表3-10所示。
表3-10LCD1602控制命令字设置
命令字
功能
0x38
设置显示模式
0x06
光标和显示开关设置
0x80
数据指针设置
0x01
清屏
0x02
显示回车
3.5.5单片机与LCD1602的硬件连接原理图
本设计选用STC89C51单片机的P2口和P3口的一部分,LCD1602采用8位数据线工作方式。
STC89C51的P2口与LCD1602的8位数据线连接,STC89C51的P3口的P3.4、P3.5端口分别与LCD1602的使能端口、读\写选择端口连接。
硬件连线原理图见图3-8,LCDl602的RW选择接地,详细原理图见附录1。
图3-8单片机与LCD1602的硬件连接原理图
3.6控制执行单元的设计
在本系统中控制执行单元的作用是接受从机的控制命令以弱电控制强电设备,由于温室中的控制设备大多为强电设备,直接用单片机控制不能驱动这些设备,故需要一个中间设备来驱动它们。
本系统控制执行单元的设计思想是将继电器放在驱动设备的主回路中,用单片机控制继电器的通断来间接控制加热器、喷淋器、排风扇的电源通断从而达到调节温室温湿度的效果。
本设计选用的继电器型号为HK3FF-DC5V-SHG,该继电器可以用小电压控制220V的强电符合设计的要求。
由于单片机的驱动电流很小,故需要在继电器与单片机之间加一个三极管起放大信号的作用,其原理图如图3-9所示。
图3-9控制执行单元原理图
3.7PC机与单片机之间的RS485通信
本系统中温室中的温湿度数据需要经过远距离传输才能传送到计算机,传统的RS232通信方式不能满足远距离传输的要求。
RS485通信最大传输距离能达到1219m,最大传输距离能达到10Mb/s,在100Kb/s的传输速率下能达到最大传输距离符合本系统的设计要求。
RS485接口电路图如图3-10所示,单片机的TTL电平信号通过MAX485芯片转换成RS485信号使数据能够远距离传输,PC机数据接收端有一个RS485转RS232转换器,通过MAX485芯片和MAX232芯片能将RS485信号转换成RS232信号以此使单片机主机与PC机能进行远程通信。
图3-10RS485接口电路
4系统软件设计
4.1主机软件设计
4.1.1主程序设计
主程序开始后先进行初始化操作,包括nRF905的初始化和串口的初始化。
初始化后将主机的nRF905置为发送状态,主机发送所要数据的从机地址,从机收到地址后发送应答信号,主机收到应答信号后将nRF905设置为接收状态,接收来自从机的数据,数据接收完成后主机通过串口将数据送PC机显示。
主程序流程图如图4-1所示。
4.1.2nRF905软件设计
由于STC89C51单片机没有专门的SPI口,需要用普通I/O口模拟SPI其操作过程如下所示:
1.SPI写操作
(a)取发送数据一个字节的最高位。
(b)判断最高位是1还是0。
(c)如果为1则MOSI引脚置为高电平,否则MOSI引脚置为低电平。
(d)SCK=1。
(e)将数据左移一位,如此循环8次直至一个字节数据发送完成。
(f)SCK=0。
SPI写操作的流程图如图4-2所示。
2.SPI读操作
(a)数据左移一位。
(b)SCK=1。
(c)判断MISO引脚电平是1还是0。
(d)如果是1数据最后一位置1,否则置0。
(e)SCK=0。
(f)如此循环8次直至读完一个字节。
SPI读操作的流程图如图4-3所示。
图4-1主程序流程图
图4-2SPI写数据流程图
图4-3SPI读数据流程图
4.1.3主机串口软件设计
本串口软件的主要功能是将主机接收到的数据通过串口发送给PC机,PC机接收到数据后通过VB实时显示温室的温湿度,其数据发送流程如图4-4所示。
图4-4串口数据发送流程图
4.2从机软件设计
4.2.1从机主程序设计
从机主程序首先进行初始化设置,其内容包括nRF905初始化设置、LCD1602初始化设置、DS18B20初始化设置和DHT11初始化设置,调用DS18B20温度采集子程序和DHT11湿度采集子程序进行数据采集,