基于ARM温湿度无线监控系统_第1页
基于ARM温湿度无线监控系统_第2页
基于ARM温湿度无线监控系统_第3页
基于ARM温湿度无线监控系统_第4页
基于ARM温湿度无线监控系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录摘 要21 综 述32 硬件设计42.1 硬件框架42.2 S3C44B0X42.3 温度传感器部分52.4 湿度传感器部分52.5 AY-NRF905无线收发模块部分53 软件设计63.1 系统流程63.2 DS18B20程序的设计73.3 AYnRF905程序11结 论15参考文献1616摘 要在日常生活的很多方面,我们都需要实时知道温湿度的具体变化,因此首要问题就是加强对温度和湿度的监测工作。传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行监测。这种人工测试方法费时费力、效率低、测试的温度湿度误差大随机性大,因此我们需要一种造价低廉、使用方便、测

2、量准确、传输能力强和通信距离远的监控系统来有效地对温度和湿度进行监管。本课题是在ARM控制系统的基础上,利用DS18B20温度传感器、HS1101湿度传感器、AY-nRF905、S3C44B0和AVR Mega88,通过SPI总线方式进行AY-nRF905与S3C44B0、AY-nRF905与AVR Mega88之间的数据通信。关键字: 嵌入式 智能控制 温湿度 ARM1 综 述嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。简单的说就是系统的应用软件与系统的硬件一体化。具有软件代码小,高度自动化,响应速度快等特点。特别适合于要求实时的和多任务的体系。 本课题是在ARM控制系统的基础

3、上,利用DS18B20温度传感器、HS1101湿度传感器、AY-nRF905、S3C44B0和AVR Mega88,通过SPI总线方式进行AY-nRF905与S3C44B0、AY-nRF905与AVR Mega88之间的数据通信。通过DS18B20温度传感器和HS1101湿度传感器在嵌入式系统的控制下来实现对温度和湿度数据的采集,将该温度和湿度数据送到AY-nRF905无线收发模块予以发射出去。在远程进行接收并实现报警、显示温度和湿度以及被送到上位机。2 硬件设计2.1 硬件框架本系统以嵌入式系统为核心即S3C44B0X,组成一个集温度的采集、处理、无线传输、显示、远程报警为一体的温湿度采集系

4、统。系统硬件主要由温度传感器DS18B20、湿度传感器HS1101、嵌入式系统S3C44B0X、AY-nRF905、AVR Mega88模块组成。其系统框图见下图:DS18B20温度采集AVR Mega88AY-NRF905HS1101湿度采集S3C44B0XAY-NRF905数码管显示图2-1 系统框图该系统的工作流程是, DS18B20温度传感器和HS1101湿度传感器采集温湿度项数据信息,经Mega88的控制通过AY-nRF905无线收发模块予以发射出去。这个过程是温度数据的发射。同时,S3C44B0X连接控制一个AY-nRF905无线收发模块接收并显示温度数据的功能,发送数码管显示。2

5、.2 S3C44B0XS3C44B0微处理器片内集成ARM7TDMI核,采用0.25um CMOS工艺制造。ARM7TDMI是ARM公司最早为业界普遍认可且得到了广泛应用的处理器核,特别是在手机和PDA中,随着ARM技术的发展,它已是目前最低端的ARM核。ARM7TDMI是从最早实现了32位地址空间编程模式的ARM6核发展而来的,可稳定地在低于5V的电源电压下可靠的工作;增加了64位乘法指令、支持片上调试、Thumb指令集和EmbededICE片上断点和观察点。此开发板在如上功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。2.3 温度传感器部分DS18B20的I/O口是数据

6、输入输出端它属于漏极开路输出,外接上拉电阻后,常态下呈高电平,它与S3C44B0X的GPF4相连,DS18B20的接地端(GND)和VDD分别与S3C44B0X的接地端和VDD相连接。2.4 湿度传感器部分测量空气湿度的方式很多,其原理是根据某种物质从其周围的空气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏元件分别是根据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变而进行湿度测量的。下面介绍HS1101湿度传感器及其应用。2.5 AY-NRF905无线收发模块部分随着我国国际地位和科研水平的不断提高,无需导线连接的无线数据系统

7、对用户有着极大的吸引力。无线数据系统采用了能在局域范围内无线传输信息的数字网络,在不改动原有设施的前提下,将有效的数据信息准确、快速和安全地传送给与会者。因此,无线数据系统设备的设计得到了国内外相关领域厂商的广泛关注,未来,无线数据系统很有可能代替现有的有线数据系统,成为今后数据传输的主流。 3 软件设计3.1 系统流程3.1.1 温湿度采集过程温湿度采集过程流程图如下图所示:是否开始初始化?采集数据处理数据无线发送图3-1 温湿度采集过程流程图在采集温度开始前,首先对温度传感器DS18B20、湿度传感器HS1101、AY-nRF905无限收发模块和AVR Mega88进行初始化。待初始化完成

8、后,DS18B20和HS1101开始采集温湿度数据,然后将数据通过AVR Mega88送给AY-nRF905无限收发模块,在由其传送出去,完成对温湿度的采集发送。3.1.2 S3C44B0处理过程在接收温湿度数据前,先将AY-nRF905无限收发模块和S3C44B0微处理器初始化。AY-nRF905无限收发模块收到数据后,送往ARM板的处理,然后通过数码管将所测得的温湿度显示出来。S3C44B0的处理过程流程图如下图所示:是否开始初始化?接收数据处理数据数码管显示图3-2 S3C44B0的处理过程流程图3.2 DS18B20程序的设计开始初始化DS18B20从DS18B20读出一个字节向DS1

9、8B20写入1B数据启动DS18B20温度转换读转换温度值图3-3 温度模块操作程序流程图在对DS18B20初始化后,从DS18B20读取一个字节的数据,然后写入。并启动DS18B20的温度转换,转换温度值。3.2.1 DS18B20初始化程序设计主机总线t0时刻发送一复位脉冲(最短为480us的低电平信号)接着在 tl 时刻释放总线并进入接收状态。DSl8B20 在检测到总线的上升沿之后等待 15-60us接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240us)。Init_DS18B20(void)/初始化DS18B20 DQ = 1; /DQ复位 DQ = 0; /将DQ拉低

10、,发出复位脉冲(要求480us960us) Delay(70); /精确延时566us DQ = 1; /拉高总线(要求1560us) Delay(5); /延时46us presence = DQ; /如果=0则初始化成功 =1则初始化失败 Delay(25); DQ = 1; return(presence); /返回信号,0=presence,1= no presence3.2.2 DS18B20读程序设计主机总线t0时刻从高拉至低电平时总线只须保持低电平15us之后也就是说t2时刻前主机必须完成读位并在t2后的60us一120us内释放总线读位子程序。ReadOneChar(void)

11、unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; / 给脉冲信号 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat=0x80; delay(4); return(dat);否是否开始初始化?发温度读取命令清DQ准备发送延时1us以上读一位数据释放总线延时<15us延时40us8位是否读完是结束图3-4 温度模块读程序流程图完成对DS18B20的初始化后,AVR Mega88模块发出读取温度命令,按照程序按位读取数据。若8位数据读完,将数据发送至AVR Mega88模块,

12、否则继续读取。3.2.3 DS18B20的写程序设计当主机总线t0时刻从高拉至低电平时就产生写时间隙从t0时刻开始15us之内应将所需写的位送到总线DSl8B20在t1为15-60us间对总线采样。void write (uchar dat) /写一个字节到 DS18B20 int i; char j; bit testb; for(j=1;j<=8;j+) testb=dat&0x01; dat=dat>>1; if(testb) / 写 1 部分 DQ=0; i+;i+; DQ=1; i=8; while(i>0) i-; else DQ=0; /写 0 部

13、分 i=8;while(i>0)i-; DQ=1; i+;i+; 3.3 AYnRF905程序图3-5 AYnRF905接收和发送数据流程图3.3.1 AYnRF905寄存器配置程序在前面,已经介绍了AYnRF905的寄存器设置,这里给出程序设置,完成AYnRF905的寄存器配置。typedef struct RFConfig uchar n; uchar buf10; RFConfig; code RFConfig RxTxConf = 10, 0x4c, 0x0c, 0x44, 0x20, 0x20, 0xcc, 0xcc, 0xcc,0xcc, 0x58;3.3.2 SPI写操作代

14、码SPI写操作的步骤如下:void SpiWrite(uchar byte) uchar i; DATA_BUF=byte; / 将需要发送的数据写入缓存 for (i=0;i<8;i+) / 循环8 次发送一个字节的数据 if (flag) / flag = DATA_BUF7; MOSI=1; else MOSI=0; SCK=1; / SCK 高电平 DATA_BUF=DATA_BUF<<1; / 左移一位,为下一位的发送做准备 SCK=0; / SCK 低电平 3.3.3 SPI读操作代码SPI读操作如下:uchar SpiRead(void) uchar i; fo

15、r (i=0;i<8;i+) /循环 8 次发送一个字节的数据 DATA_BUF=DATA_BUF<<1; /左移一位,准备接收下一位数据 SCK=1; / SCK 高电平 if (MISO) flag1=1; / flag1 = DATA_BUF0; else flag1=0; SCK=0; / SCK低电平 return DATA_BUF; / DATA_BUF 为接收到的完整数据 3.3.4 主机与AYnRF905通信void Config905 uchar i; CSN=0; / CSN片选信号,SPI使能 SpiWrite(WC); / 向905芯片写配置命令 fo

16、r (i=0;i<RxTxConf.n;i+) / 循环写入配置信息 SpiWrite(RxTxConf.bufi); /RxTxConf 保存预先设置好的配置信息 CSN=1; / 结束SPI 数据传输3.3.5 使用AYnRF905发送数据使用AYnRF905发送数据,首先要将器件设置为发送模式,方法如下:void SetTxMode(void) TX_EN=1; TRX_CE=1; Delay(1); / delay for mode change(>=650us) 然后经过如下步骤,完成发送:void TxPacket(void) uchar i; CSN=0; SpiWr

17、ite(WTP); / Write payload command for (i=0;i<32;i+) SpiWrite(TxBufi); / 写入 32 直接发送数据 CSN=1; / 关闭SPI,保存写入的数据 Delay(1); CSN=0; / SPI使能,准备写入地址信息 SpiWrite(WTA); / 写数据至地址寄存器 for (i=0;i<4;i+) / 写入4 字节地址 SpiWrite(RxTxConf.bufi+5); CSN=1; / 关闭SPI TRX_CE=1; / 进入发送模式,启动射频发送 Delay(1); / 进入 ShockBurst 发送模式后,芯片保证数据发送完成后返回 STANDBY 模式 TRX_CE=0; 结 论本系统主要是研究数据的采集和传输,该系统以采集温湿度数据为例,强化了单片机、ARM相关知识的应用。本课题中,通过对DS18B20、HS1101、S3C44B0以及AVR Mega88开发板的学习,成功的搭建起一个采集温度湿度,并实现将温度数据无线传输的系统。从前期的硬件设计,到后期的软件编写都经历了各种困难,通过对资料的学习,自身的不断实践,最终将困难一一化解

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论