当前位置:文档之家› 温室大棚温湿度监测系统设计大学本科毕业论文

温室大棚温湿度监测系统设计大学本科毕业论文

摘要

随着农业产业规模的提高,对于数量较多的大棚,传统的温度控制措施就显现出很大的局限性。为此,在现代化的蔬菜大棚管理中通常有温湿度自动控制系统,以控制蔬菜大棚温湿度,适应生产需要。本论文主要阐述了基于P89LPC938单片机的温室大棚温湿度监测系统设计原理,主要电路设计及软件设计等。该系统采用LPC938单片机作为控制器,DHT11进行温湿度采集,并通过无线模块NRF24L01进行主机与从机的无线通信,利用其I2C总线技术控制SRL_11280W_LCD液晶实时显示。使用户在控制室即可监测温室大棚内的实时温湿度,从而方便用户对温室大棚的管理。

关键词: 单片机P89LPC938; 传感器DHT11;液晶SRL_11280W_LCD; 无线模块 NRF24L01

第一章绪论

1.1 课题研究背景

目前,我国农业正处于从传统农业向以优质、高效、高产为目标的现代化农业转化新阶段。而大棚作为现代化农业设施的重要产物,在国内多数地区得到了广泛应用。大棚可以避开外界种种不利因素的影响,人为控制或创造适宜农作物生长的气候环境,可以看成是一个半封闭式的人工生态环境。由于大棚中各种环境因素是可以人为控制的,因此控制技术直接决定着大棚中农作物的产量和质量。

大棚监测系统一般包括三个模块:环境参数采集模块、数据处理模块和执行模块。在目前的监测系统中,需采集的环境参数主要包括温度、湿度、CO2浓度、光照强度、土壤湿度等。在实际设计中还需根据大棚的规模及所在区域设定不同的采集方式,确保数据采集的准确性。例如我国北方地区,冬季寒冷而漫长,大棚监测最主要的一部分就是温度的调节。这时可将一天分为午前、午后、前半夜和后半夜4个时段来进行温度调节。午前以增加同化量为主,一般应将棚温保持在25~30℃为宜;午后光合作用呈下降趋势,以20~25℃为好,避免高温下养分消耗过多;日落后4~5h内,要将棚内温度从20℃逐渐降到15℃上下,以促进体内同化物的运转。此后,再将夜温降到10~12℃,以抑制呼吸、减少消耗、增加积累,但也不能降得过低,以免冻伤植物。考虑外界环境因素的同时也不能忽略植物本身的生理过程,比如植物的蒸腾作用、光合作用等,事实上大棚内的水分养料供给可以通过蒸腾这样的实测数据来决定;而CO2浓度则可根据光合作用的情况来决定,这一系列监测过程都可通过单片机系统来实现。

1.2国内外研究概况

1.2.1国外研究概况

美国是最早发明计算机的国家,也是将计算机应用于大棚控制和管理最早、最多的国家之一。美国开发的大棚计算机控制与管理系统可以根据作物的特点和生长发育所需要的条件,对大棚内光照、温度、水、气、肥等诸多因子进行自动调控,还可利用温差管理技术实现对花卉、果蔬等产品的开花和成熟期进行控制。

在日本,作为设施农业主要内容的设施园艺相当发达,塑料大棚和其它人工栽培设施达到普遍应用,设施栽培面积位居世界前列,蔬菜、花卉、水果等普遍实行设施栽培生产。针对种苗生产设施的高温、多湿等不良环境,日本进行了几种设施项目的研究,主要有设施内播种装置、苗接触刺激装置、苗灌水装置、换气扇的旋转和遮光装置的开闭装置(温度、湿度及光照控制)、缺苗不良苗的监测及去除和补栽装置、CO2施肥装置等方面的自动化研究。

2002年,英国伦敦大学农学院利用计算机遥控技术,可以观测50km以外大棚内的温度、湿度等环境状况并进行遥控。为保证CO2气体在大棚分布均匀,大棚中通常安装通风机,搅动空气使大棚中的CO2浓度一致。

荷兰的园艺大棚也发展较早,由于地处高纬度地区,日照短,全年平均气温较低,因此,集中较大力量发展经济价值高的鲜花和蔬菜,大规模地发展玻璃大棚和配套的工程设施,全部采用计算机控制。

另外,国外大棚业正致力于高科技发展。遥测技术、网络技术、控制局域网已逐渐应用于大棚的管理与控制中,随着工业制造工艺的不断发展,越来越多高精度、低价格的传感器件也在温室大棚中广泛应用,并且近几年各国温湿度控制技术提出建立大棚行业标准,也使得大棚行业朝着网络化,大规模,无人化的方向

发展。

1.2.2国内研究概况

国内的计算机应用开始于上世纪70年代中期,当时主要用于数据的统计分析和计算。70年代末起,我国陆续从以色列、美国、日本、荷兰等国引进了许多先进的现代化大棚,在吸收国外发达国家高科技大棚生产技术的基础上,我国农业科研工作人员进行了大棚内部温度、湿度、光照、CO2浓度等环境参数控制技术的综合研究。

1987年中国农业科学院引进了FELIXC 512系统,并建立了全国农业系统的第一个计算机应用研究机构。到了90年代初期,计算机开始用于大棚的管理和控制领域。

2000年,金钰研究了工业控制机IPC在自动化大棚控制中的应用。该研究是以工业控制机为核心采集环境信息,控制执行机构。实现了大棚的封闭环境控制,但该系统布线复杂,维护困难且成本过高。

2005年,杜辉等研究了基于蓝牙技术的分布式大棚监控系统。该系统将蓝牙技术和现场总线技术相结合运用于大棚群的监控,提高了系统的可靠性、降低了数据传输过程中干扰。但由于蓝牙技术本身的不成熟,该系统的实际应用仍需要一定的时间。

2007年,唐娟等研究了基于新型AVR单片机的大棚测控系统。该系统把个体生产和规模化生产相结合,在单个大棚生产实现智能自动化的基础上实现连栋大棚的规模化生产。但是所有性能都集中在单片机上,单片机系统一旦出现故障,整个系统都会失控。

2008年,周茂雷,郭康权研究出了基于ARM7微处理器的大棚控制器系统。该系统能通过AD算法实现大棚各路模拟量、开关量实时动态采集,将采集到的数据经处理后定时保存并送出控制量。

1.3选题的现实意义

随着单片机和传感技术的迅速发展,自动检测领域发生了巨大变化,温室环境自动监测控制方面的研究有了明显的进展,并且必将以其优异的性能价格比,逐步取代传统的温湿度控制措施。但是,目前应用于温室大棚的温湿度监测系统大多采用模拟温度传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统。这种温湿度度采集系统需要在温室大棚内布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大。为了克服这些缺点,本文参考了一种基于单片机并采用数字化单总线技术的温度测控系统应用于温室大棚的的设计方案,根据实用者提出的问题进行了改进,提出了一种新的设计方案,在单总线上传输数字信号。即采用DHT11温湿度传感器解决传输模拟量误差大的问题,以及采用高技术的无线收发模块来代替之前大量的电缆,具有更好的经济与实用价值。

本文介绍的温湿度测控系统就是基于单总线技术及其器件组建的。该系统能够对大棚内的温湿度进行采集,利用温湿度传感器将温室大棚内温湿度的变化,变换成数字量,其值由单片机处理,最后由单片机去控制液晶显示器,显示温室大棚内的实际温湿度,同时通过无线通信模块,将大棚内的温湿度自动发送给控制室,并在控制室的液晶显示器上实时显示出来。这种设计方案实现了温湿度实时测量、显示和无线传输。该系统抗干扰能力强,具有较高的测量精度,不需要任何固定网络的支持,安装简单方便,性价比高,可维护性好。这种温湿度测控系统可应用于农业生产的温室大棚,实现对温湿度的实时监测,是一种比较智能、经济的方案,适于大力推广,以便促进农作物的生长,从而提高温室大棚的亩产量,以带来很好的经济效益和

社会效益。

1.4课题主要研究内容与目标

本课题主要研究如何制作一个应用于中小型大棚的可达到温湿度实时监测功能的系统。设计完成包括环境参数采集、数据处理、实时显示以及无线传输等模块。具体实施主要通过选择传感器件、设计应用电路、编写功能程序等步骤来实现该课题所需要求。

系统的最终目标是达到大棚温湿度参数实时测量及显示,并通过无线传输模块将数据发送至控制室并显示。

第二章 温室大棚温湿度监测系统设计方案论证

2.1设计思想

系统的一大特点是用户可以通过控制室内(主机)的液晶显示屏实时监测大棚内的温湿度,也可以通过大棚内(从机)的液晶显示屏直接监测,从而实现用户对大棚内温湿度更加方便快捷的监测,为用户控制大棚参数提供数据基础。系统从机设在种植植物的大棚内,从机中的温湿度传感器可以将环境中的温湿度非电量参数转化成电量信号,再将这些信号进行处理后送至从机中的单片机,单片机读取数据后将数据送到缓冲区内,通过液晶LCD 进行实时显示。同时从机中的无线通信模块不断将单片机处理过的数据发送出去,控制室内的主机中的无线通信模块则不断的接收数据,接收到数据后再送到主机中的单片机,单片机读取数据后将数据送到缓冲区内,通过液晶LCD 进行实时显示。

2.2要实现的功能

温室大棚温湿度监测系统要实现以下几大功能:

(1)数据采集:接通从机电源后,温湿度传感器自动采集实时数据,并将采集到的温湿度转换成数字信号,然后发送给单片机进行处理。

(2)现场显示:将发送到单片机中的数字信号处理后,通过LCD 实时显示出来。 (3)无线传输:利用无线传输模块将采集来的数据传输到附近的控制室,即主机。

(4)主机显示:该功能是将无线传输过来的数据在控制室中显示出来,方便用户的实时监测。 (5)无线传输:利用无线传输模块收发离自己较近的节点的控制系统的数据并传给PC 机实现实时监控。

2.3方案可行性论证

最终方案:温室大棚温湿度监测系统结构框图如图2-1所示。

LPC938单片机

(从机)

LPC938单片机

(主机)

液晶屏

SRL_11280W_LCD 温湿度传感器

DHT11

液晶屏

SRL_11280W_LCD

无线模块

NRF24L01(发送)

无线模块NRF24L01(接收)

图2-1温室大棚温湿度监测系统结构框图

最终方案可行性论证:

(1)适应系统要求。现代大棚的实质是实现环境因子实时显示并自动调节作物生长环境条件,这些功能是通过一个闭环系统来实现的。因此,传感器的性能应该与控制系统相适应,尤其是传感器的长距离布点、传感器灵敏度的一致性、传感器的响应时间等,这样才能使系统真正做到快速反应和高效调控环境。本方案中采用的传感器、无线模块等均满足现代大棚的环境监测要求。

(2)长期稳定性好。本方案中采用的DHT11传感器具有着良好的稳定性,且其测量范围广,能够适应大棚内的使用环境。

(3)优良的性能价格比。考虑到实际运用与较大环境内的信息监测,则需要用到大量的传感器,因此,必须要求其价格较低廉,否则难以推广。本方案中采用的元器件均为低能耗、低价格器件,价格低廉但性能强大,所以具有一定的可行性。

第三章温室大棚温湿度监测系统硬件设计

3.1 单片机部分

3.1.1 概述

P89LPC938 是一款单片封装的微控制器。它采用了高性能的处理器结构,指令执行时间只需2 到4个时钟周期。6倍于标准80C51 器件。P89LPC938集成了许多系统级的功能,这样可大大减少元件的数目和电路板面积并降低系统的成本,在这里本文只介绍本系统使用到的部分。

3.1.2管脚信息

图3-1 P89LPC938管脚信息

3.1.3 CPU时钟(OSCCLK)

LPC938 提供几个可由用户选择的振荡器选项来产生CPU 时钟。本系统用到的是RCCLK内部振荡器输出的7.373MHZ时钟信号。这样就省去了外部晶振部分,给设计带来很大方便。

3.1.4 中断

P89LPC938 采用4个中断优先级结构。有4个特殊功能寄存器与四个中断优先级相关,分别是IP0、IP0H、IP1、IP1H。每个中断都由两个位IPx和IPxH(x=0,1)控制。

3.1.5 I/O口

P89LPC938 有4个I/O 口,P0、P1、P2 和P3。P0、P1 和P2 为8 位I/O 口而P3 为2位I/O 口。除了 3个口以外,P89LPC938 其他所有的I/O 口均可由软件配置成4 种输出类型之一。四种输出类型分别为:推挽,准双向口(标准8051 输出模式),开漏输出或仅为输入。每个口配置2个控制寄存器控制每个管脚输

出类型。P1.5 ( RST ) 只能作为输入口,无法进行配置。P1.2 (SCL/T0) 和P1.3(SDA/ INT0 )只能配置为输入口或开漏口。本系统把P0口配置成纯输入口,而P2则配置成准双向I/O口。

3.1.6 定时器/计数器0

P89LPC938 有两个通用定时/计数器,与标准80C51 定时器0 及定时器1 兼容。定时器0 及定时器1 有5 种工作模式(模式0, 1, 2, 3 和6)。模式0、1、2 和6 对于两个定时/计数器是一样的。模式3 则不同。

3.1.7 A/D 转换器

P89LPC938 包含1个10 位、8 路逐步逼近式模数转换模块。每个A/D 转换器由一个8 输入多路转换器组成。多路转换器的输出通过采样保持电路,为两个比较器提供一个输入信号。控制逻辑连同逐次逼近式寄存器(SAR)来驱动一个数模转换器,为比较器提供另外一个输入。比较器的输出又回到SAR。本系统用到的是AD0通道。

A/D转换的启动有多种模式,可以连续、多通道扫描、或由定时器的溢出启动,因而CPU在这方面不需要花费时间。转换结束后可使用中断服务程序将数据取出处理。A/D转换器使用单电源,仅支持单极性信号的A/D转换。对于双极性信号,必须加上模拟电压偏移电路,必要时,可能还需要增加信号压缩电路。

8路10位分辨力的逐次比较式A/D转换器的功能很强:有8对寄存器用于存放转换结果;转换器有6种操作模式;有三种转换启动模式;A/D转换的时钟频率为9MHz时,转换时间仅4μs;可以以中断或者轮询方式工作;具有高、低边界检测中断功能;带时钟分频器;具有掉电工作模式。

3.1.8 串行外围接口(SPI)

P89LPC938 还提供另一种高速串行通信接口——SPI 接口。SPI 是一种全双工、高速、同步的通信总线,有两种操作模式:主模式和从模式。主模式或从模式可支持高达3Mbit/s的速率。还具有传输完成标志和写冲突标志保护。SPI 接口有4个管脚:SPICLK, MOSI, MISO 和SS , SPICLK, MOSI 和MISO 通常和两个或更多SPI 器件连接在一起。数据通过MOSI(主机输出从机输入)从主机传送到从机,通过MISO(主机输入从机输出)从机传送到主机。SPICLK 信号在主模式时为输出,在从模式时为输入。如果SPI 系统被禁止,即SPEN(SPCTL.6)=0(复位值),这些管脚都可作为I/O 口使用。 SS 为从机选择管脚。在典型的配置中,SPI 主机使用I/O 口选择一个SPI 器件作为当前的从机。SPI 从器件通过其SS 脚确定是否被选择。本系统的无线模块将用此接口。

无线模块的SPI总线,在该系统中,仅调试到可以通信,其SPI初始化程序如下:

unsigned char SPI_RW(unsigned char byte)

{

unsigned char i;

for(i=0; i<8; i++) // 循环8次

{

MOSI = (byte & 0x80); // byte最高位输出到MOSI

byte <<= 1; // 低一位移位到最高位

SCK = 1; // 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据

byte |= MISO; // 读MISO到byte最低位

SCK = 0; // SCK置低

}

return(byte); // 返回读出的一字节

}

unsigned char SPI_RW_Reg(unsigned char reg, unsigned char value)

{

unsigned char status;

CSN = 0; // CSN置低,开始传输数据

status = SPI_RW(reg); // 选择寄存器,同时返回状态字

SPI_RW(value); // 然后写数据到该寄存器

CSN = 1; // CSN拉高,结束数据传输

return(status); // 返回状态寄存器

}

unsigned char SPI_Read(unsigned char reg)

{

unsigned char reg_val;

CSN = 0; // CSN置低,开始传输数据

SPI_RW(reg); // 选择寄存器

reg_val = SPI_RW(0); // 然后从该寄存器读数据

CSN = 1; // CSN拉高,结束数据传输

return(reg_val); // 返回寄存器数据

}

unsigned char SPI_Read_Buf(unsigned char reg, unsigned char * pBuf, unsigned char bytes) {

unsigned char status, i;

CSN = 0; // CSN置低,开始传输数据

status = SPI_RW(reg); // 选择寄存器,同时返回状态字

for(i=0; i

pBuf[i] = SPI_RW(0); // 逐个字节从nRF24L01读出

CSN = 1; // CSN拉高,结束数据传输

return(status); // 返回状态寄存器

}

unsigned char SPI_Write_Buf(unsigned char reg, unsigned char * pBuf, unsigned char bytes) {

unsigned char status, i;

CSN = 0; // CSN置低,开始传输数据

status = SPI_RW(reg); // 选择寄存器,同时返回状态字

for(i=0; i

SPI_RW(pBuf[i]); // 逐个字节写入nRF24L01

CSN = 1; // CSN拉高,结束数据传输

return(status); // 返回状态寄存器

}

3.1.9 I2C接口

I2C 总线用两条线(SDA 和SCL)在总线和器件之间传递信息。总线的主要特性如下:

主机和从机之间为双向数据传送;多主机总线(无中央主机)多主机同时传送时进行仲裁避免总线上数据冲突;;串行时钟同步使得不同位速率的器件可以通过一条串行总线进行通信;串行时钟同步可作为握手机制,用于挂起和恢复串行传输;I2C 总线可用于测试和诊断。P89LPC938 器件提供字节方式的I2C 接口。所支持的最大数据传输速率为400kHz。本系统的LCD就是用的这一总线。

该液晶模块主要用的是I2C总线,液晶I2C初始化程序如下:

void start_i2c_bus(void) //启动I2C总线

{

LCD_SDA=1;

SomeNOP;

LCD_SCL=1;

SomeNOP;

LCD_SDA=0;

SomeNOP;

LCD_SCL=0;

SomeNOP;

}

void stop_i2c_bus(void) //停止I2C总线

{

LCD_SDA=0;

SomeNOP;

LCD_SCL=1;

SomeNOP;

LCD_SDA=1;

SomeNOP;

}

void wr_i2c_one_byte(unsigned char send_data) //向虚拟I2C总线上发送1个数据字节

{ unsigned char bit_count;

for(bit_count=0;bit_count<8;bit_count++)

{

if((send_data&0x80)==0x80) LCD_SDA=1;

else LCD_SDA=0;

SomeNOP;

LCD_SCL=1;

SomeNOP;

LCD_SCL=0;

send_data=send_data<<1;

}

LCD_SDA=1; //8位发完后释放数据线,准备接收应答位 SomeNOP;

LCD_SCL=1;

SomeNOP;

if(LCD_SDA==1) ack=0; //判断是否接收到应答信号

else ack=1;

LCD_SCL=0;

SomeNOP;

}

unsigned char rd_i2c_one_byte( ) //字节数据接收,收好后用应答函数{

unsigned char read_out_data=0;

unsigned char bit_count;

LCD_SDA=1;

for(bit_count=0;bit_count<8;bit_count++)

{

SomeNOP;

LCD_SCL=0;

SomeNOP;

LCD_SCL=1;

SomeNOP;

read_out_data=read_out_data<<1;

if(LCD_SDA==1) read_out_data++;

SomeNOP;

}

LCD_SCL=0;

SomeNOP;

return(read_out_data);

}

void ack_i2c(bit bit_ack ) //发送应答

{

if(bit_ack) LCD_SDA=1; //发出应答或非应答信号

else LCD_SDA=0;

SomeNOP;

LCD_SCL=1;

SomeNOP;

LCD_SCL=0;

}

3.1.10单片机外围接口扩展

由于还有很多外围电路,以及很多扩展功能的应用以待将来开发,因此很有必要做出一些扩展接口,所以在硬件上做出了一些扩展口以待将来使用。此扩展口为P2口。

3.2电源部分

P89LPC938采用3V直流电源供电,该系统选择的电源芯片是TAR5S33电源芯片,该芯片可以将5V直流电源转换成3.3V电源提供给单片机。其输出电压最低为3.21V最高电压为3.39V。

TAR5S33特点:(1)低待机电流;(2)过温/过电流保护;(3)工作电压范围宽;(4)最大输出电流为高;(5)在输入电压和输出电压差低;(6)小型封装;(7)陶瓷电容器都可以使用。原理图如3-2所示。

图3-2电源原理图

3.3 串口通信部分

P89LPC938 具有一个增强型的UART。它和传统的80C51 UART 兼容,但有一点除外,即定时器2 的溢出不能用于产生波特率。UART 具有4 种操作模式:移位寄存器、8 位UART、9位UART 和CPU 时钟/32 或

CPU 时钟/16。本系统用的UART串口用作单片机下载ISP接口,又加了RS232的转换支持单片机遇PC之间的通信。本系统设计的RS232部分如下图3-3所示。

图3-3 RS232串口通信接口

3.4 温湿度传感器数据采集部分

3.4.1 DHT11数字温湿度传感器概述

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

3.4.2 DHT11数字温湿度传感器性能说明

表3.1 DHT11数字温湿度传感器性能

参数条件Min Typ Max 单位

湿度

分辨率1 1 1 %RH

8 Bit

重复性±1 %RH

精度

25℃±4 %RH 0-50℃±5 %RH

互换性可完全互换

量程范围0℃30 90 %RH 25℃20 90 %RH 50℃20 80 %RH

响应时间1/e(63%)25℃, 6 10 15 S

建议连接线长度短于20米时用5K 上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。DHT11的供电电压为 3——5.5V 。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD ,GND )之间可增加一个100nF 的电容,用以去耦滤波。典型应用电路如图3-4所示。

图3-4 典型应用电路

DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms 左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit,高位先出,数据格式:8bit 湿度整数数据+8bit 湿度小数数据,+8bi 温度整数数据+8bit 温度小数数据+8bit 校验和

数据传送正确时校验和数据等于“8bit 湿度整数数据+8bit 湿度小数数据+8bi 温度整数数据+8bit 温度

1m/s 空气

迟滞 ±1 %RH 长期稳定性

典型值

±1

%RH/yr

温度

分辨率 1 1 1 ℃ 8 8 8 Bit 重复性 ±1 ℃ 精度 ±1 ±2 ℃ 量程范围 0 50 ℃ 响应时间

1/e(63%)

6

30

S

小数数据”所得结果的末8位。

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号。主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。

测量分辨率分别为 8bit(温度)、8bit(湿度)。

3.4.3 DHT11数字温湿度传感器使用注意事项

DHT11电器特性如表3.2所示,超出建议的工作范围可能导致高达3%RH的临时性漂移信号。返回正常工作条后,传感器会缓慢地向校准状态恢复。

表3.2 DHT11电气特性

参数条件min typ max 单位

供电DC 3 5 5.5 V

供电电流测量0.5 2.5 mA 平均0.2 1 mA 待机100 150 uA

采样周期秒 1 次

电阻式湿度传感器的感应层会受到化学蒸汽的干扰,化学物质在感应层中的扩散可能导致测量值漂移和灵敏度下降。在一个纯净的环境中,污染物质会缓慢地释放出去。下文所述的恢复处理将加速实现这一过程。高浓度的化学污染会导致传感器感应层的彻底损坏。

置于极限工作条件下或化学蒸汽中的传感器,通过如下处理程序,可使其恢复到校准时的状态。在50-60℃和< 10%RH的湿度条件下保持2 小时(烘干);随后在20-30℃和>70%RH的湿度条件下保持 5小时以上。

气体的相对湿度,在很大程度上依赖于温度。因此在测量湿度时,应尽可能保证湿度传感器在同一温度下工作。如果与释放热量的电子元件共用一个印刷线路板,在安装时应尽可能将DHT11远离电子元件,并安装在热源下方,同时保持外壳的良好通风。为降低热传导,DHT11与印刷电路板其它部分的铜镀层应尽可能最小,并在两者之间留出一道缝隙。

长时间暴露在太阳光下或强烈的紫外线辐射中,会使性能降低。

DATA信号线材质量会影响通讯距离和通讯质量,推荐使用高质量屏蔽线。

手动焊接,在最高260℃的温度条件下接触时间须少于10秒。

(1)避免结露情况下使用。

(2)长期保存条件:温度10-40℃,湿度60%以下。

3.5 LCD显示部分

本系统用到的液晶是SRL_11280W_LCD。电路原理图如图3-5所示。

图3-5液晶显示原理图

3.5.1 显示特性

(1) FSTN 方式正性显示,高透式(2)显示颜色(色调随温度及驱动器电压不同而略有改变)显示颜色:显示数据“1”:黑背景颜色:显示数据“0”:白色(3)视角:6 点钟方向(4)驱动占空比:1/80 3.5.2 操作原理和方法

该模块采用PCF8811 DRIVER 驱动,I2C 总线控制。当/RESET 收到一个复位脉冲超过500ns 时,芯片内部电路恢复到初始化状态。

液晶显示部分,采集到到的模拟量可以实时显示到液晶屏上面,同时对于不同的工作状态均有不同的状态指示,该液晶屏用到的是I2C总线。LCD的最外面一层是透明的玻璃基体,玻璃基体中间就是薄膜电晶体。颜色过滤器和液晶层可以显示红、蓝和绿三种最基本的颜色。通常,LCD后面都有照明灯以显示画面。一般只要电流不变动,液晶都在非结晶状态。这时液晶允许任何光线通过。液晶受到电压变化的影响后,液晶之间允许一定数量的光线通过。光线的反射角度按照液晶控制。当液晶的供应电压变动时,液晶就会产生变形,因而光线的折射角度就会不同,从而产生色彩的变化。一个完整的液晶显示屏由很多像素构成,每个像素就像一个可以开关的晶体管。这样就可以控制液晶显示屏的分辨率。如果一个LCD的分辨率可以达到1024×768,那么它就有那么多的像可以显示,这里的像素是112×80。还有该液晶模块采用PCF8811DRIVER扫描驱动。其初始化程序见附录一扫描驱动的种类及特征如图3-6所示。

图3-6 扫描驱动的种类及特征

3.6 无线模块部分

NRF24L01 是NORDIC 公司最近生产的一款无线通信通信芯片,采用FSK 调制,内部集成NORDIC 自己的Enhanced Short Burst 协议。可以实现点对点或是1 对6 的无线通信。无线通信速度可以达到2M(bps)。NORDIC 公司提供通信模块的GERBER 文件,可以直接加工生产。嵌入式工程师或是单片机爱好者只需要为单片机系统预留5个GPIO,1个中断输入引脚,就可以很容易实现无线通信的功能,非常适合用来为MCU 系统构建无线通信功能。2.4G 全球开放ISM 频段,最大0dBm 发射功率,免许可证使用支持六路通道的数据接收, 2Mbit/s使得高质量的VoIP成为可能2MBPS 速率下接收时的峰值电流12.5mA在2Mbit/s速率下输出时的峰值电流11mA掉电模式下的功耗400nA待机模式下的功耗32uA130us的快速切换和唤醒时间可在1.9V 低电压工作。本文的无线模块用单片机的SPI总线,SPI与2401的接口如下表3.3所示。

表3.3 SPI与2401的接口

SPI SPI_CTRL=10B SPI_CTRL=11B

CS(高有效)RADIO_wr.6(CE)用于ShockBurst

RADIO_(CS)用于配置

RADIO_wr.6(CE)

SCK NRF2401/CLK1 NRF2401/CLK2

SDI NRF2401/DATA NRF2401/DOUT2

SDO NRF2401/DATA 未用ShockBurst数据准备RADIO_rd.2(DR1)RADIO_rd.2(DR2)利用SPI总线可在软件的控制下构成各种系统。如1个主MCU和几个从MCU、几个从MCU相互连接构成多主机系统(分布式系统)、1个主MCU和1个或几个从I/O设备所构成的各种系统等。在大多数应用场合,可使用1个MCU作为控机来控制数据,并向1个或几个从外围器件传送该数据。从器件只有在主机发命令时才能接收或发送数据。其数据的传输格式是高位(MSB)在前,低位(LSB)在后。当一个主控机通过SPI

与几种不同的串行I/O芯片相连时,必须使用每片的允许控制端,这可通过MCU的I/O端口输出线来实现。但应特别注意这些串行I/O芯片的输入输出特性:首先是输入芯片的串行数据输出是否有三态控制端。平时未选中芯片时,输出端应处于高阻态。若没有三态控制端,则应外加三态门。否则MCU的MISO端只能连接

1个输入芯片。其次是输出芯片的串行数据输入是否有允许控制端。因此只有在此芯片允许时,SCK脉冲才把串行数据移入该芯片;在禁止时,SCK对芯片无影响。若没有允许控制端,则应在外围用门电路对SCK进行控制,然后再加到芯片的时钟输入端;当然,也可以只在SPI总线上连接1个芯片,而不再连接其它输入或输出芯片。

无线传输模块用的是NRF24L01,与单片机的接口用的是SPI总线。该总线是一种高速串行通信接口,全双工、高速、同步的通信总线。两种工作模式:主模式和从模式。该系统中通过通信协议,我的系统可以接收最近节点的数据同时向最近的节点发送,同时将收发的数据发送到液晶屏上。

NRF24l01产品性能:1)2.4GHZ全球开放ISM频段免许可使用。2)最高工作速率2Mbps,GFSK高效调制。3) 125个频道满足多点通讯和跳频通讯需求。4) 1.9-3.6V工作,低功耗,待机模式仅1uA.。5)双通道数据接收,内置环行天线,体积仅17*34mm,通信距离在100m之内,软件编简单。6)内置硬件8/16位CRC校验,收发中断标志,每次可发28字节。NRF2401实物图见图3-7所示。

图3-7 NRF 24L01实物图

第四章温室大棚温湿度监测系统软件的设计

4.1 主程序及流程图

结合要实现的功能,主程序部分分为主机部分和从机部分。分别编写为:

从机程序:首先初始化,即将各个模块分别进行初始化,然后温湿度传感器开始采集数据,采集到实时数据后,传感器DHT11将数据转化为数字信号,并向单片机输出转换过的数字信号。单片机收到数据后,再

将此时的数据发送给液晶显示屏,并通过SPI 总线驱动LCD ,LCD 将实时温湿度显示出来;同时,单片机将数据发送到无线模块,并给其一个脉冲信号,无线模块收到驱动脉冲后则将数据发送出去。最后程序再回到数据采集部分,以此循环下去。

主机程序:首先初始化各模块,无线模块开始接收信号,接收完一组信号后,无线模块将数据发送给单片机,单片机再将数据送给LCD ,并驱动LCD 显示收到的数据。由于无线模块不断的接收数据,所以液晶屏的数据也不断刷新。流程图如图4-1所示。

从机各模块初始化

温湿度传感器采集数据并转换成数字信号

单片机进行数据处

从机LCD 显示

开始

从机无线模块发送数据

开始

主机各模块初始化

主机无线模块接收

数据

单片机进行数据处

主机LCD 显示

(1)从机流程图 (2)主机流程图

图4-1 主程序流程图

4.2 各子程序及流程图

4.2.1 A/D 模块

本设计选择AD0通道进行连续转换,转换结果顺序存放在8个结果寄存器中。用户可选择每完成4 次或8 次转换后是否产生中断。其它额外的转换结果将循环存放到结果寄存器对中,将之前的结果覆盖。连续转换过程由用户终止。

A/D 转换的过程主要包括采样,量化和编码。采样使模拟信号在时间上离散化;量化就是用一个基本的计量单位(量化电平)使模拟量变为一个整数的数字量;编码是把已将量化的模拟量(它是量化电平的整数倍)用二进制码、BCD 码或其他数码表示。总之,量化与编码就是把采集后所得到的离散幅值通过舍入的方

式变换成与输入量成比例的二进制数。涉及到的技术主要有:转换时间和转换频率、分辨率、转换精度、量化误差。

本系统中的A/D转换程序为:主程序开始时,定义电压实测值函数初始化,A/D口初始化,按键按下进行光控的A/D启动,固定通道单次转换,立即启动。等待转换结束,延时,转换的的高八位与低八位送入寄存器,返回转换结果。A/D转换流程图如图4-2所示。

图4-2 A/D转换流程图

A/D初始化程序如下:

#include "reg932.h" //包含头文件

sfr ADCON0 = 0x97; //定义ADC 用到的寄存器

sfr ADMODA = 0xC0; //模式A地址

sfr ADMODB = 0xA1; //模式B地址

sfr ADINS = 0xA3; //结果寄存器地址

unsigned char xdata AD0DAT0R _at_ 0xfffe; //定义AD0DAT0R 地址

unsigned char xdata AD0DAT0L _at_ 0xffff; //定义AD0DAT0L 地址

相关主题
文本预览
相关文档 最新文档