无线环境监测系统资料Word文档格式.docx
《无线环境监测系统资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《无线环境监测系统资料Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
摘要:
无线环境参数测量系统
随着科技的发展,人们对自己的生活环境越来越在意,并且希望能直观的数字化参数化地衡量当前的环境质量。
本系统虽然用的是传统传感器,但是在和传感器相连的显示器上能显示的基础之上增加了远程发送设备,能实现在测量某一点的实时环境参数的同时,在半径几米之内的任意位置都能直接直观的查看到这些数据。
测量的参数包括温度湿度气压和空气质量,能让人们对生活环境的认识更加数字化。
且本系统节能省电,实现了可持续发展。
一、实验目的
1.了解并能使用I2C总线进行传感器数据获取
2.了解双机通信与无线通信
3.使用labview图形化编程软件进行上位机界面设计
二、实验内容
1.使用STC15W4K32S4单片机驱动多种传感器完成多参数测量
2.实现STC15W4K32S4与STC89C52RC之间的串口通信并使用LCD12864显示接受到的信息
3.实现NRF24L01+进行信息无线收发
4.实现用labview制作上位机用来显示测量到的信息
三、实验设备
1.STC15W4K32S4单片机1只
2.STC89C52RC单片机2只
3.NRF24L01+2只
4.LCD128641块
5.计算机1台
6.AM23201只
7.BMP180模块1个
8.MQ-135模块1个
9.SD2068时钟模块1个
10.11.0592M晶振、杜邦线、排针、电阻、电容、LED灯若干
四、实验硬件介绍
1.STC89C52RC
STC89C52RC/RD+系列单片机具有成本低、性能高的特点,支持ISP(在系统编程)及IAP(在应用编程)技术。
使用ISP技术可不需要编程器,而直接在用户系统板上烧录用户程序,修改调试非常方便。
利用IAP技术能将内部部分专用Flash当作EEPROM使用,实现停电后保存数据的功能,擦写次数为100000次以上,可省去外接EEPROM(如93C46、24C02等)。
而且与传统8051单片机程序兼容,硬件无需改动。
2.STC15W4K32S4
STC15W4K32S4系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是宽电压高速高可靠低功耗超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051单片机,但速度快8-12倍。
内部集成高精度RC时钟,ISP编程时5MHz-30MHz宽范围可设置,可彻底省掉外部昂贵的晶振和外部复位电路。
8路10位PWM,8路高速10位A/D转换,内置4K字节大容量SRAM,4组独立的高速异步串行通信口,1组高速同步串行通信端口,针对多串行口通信/电机控制/强干扰场合,内置比较器功能更强大。
3.NRF2401
NRF24L01是一款工作在2.4-2.5GHz世界通用ISM频段的单片收发芯片,无线收发器包括:
频率发生器增强型SchockBurstTM模式控制器功率放大器晶体放大器调制器解调器输出功率频道选择和协议的设置可以通过SPI接口进行设置极低的电流消耗。
支持六路通道的数据接收。
1.低工作电压:
1.9~3.6V低电压工作
2.高速率:
2Mbps,由于空中传输时间很短,极大的降低了无线传输中的碰撞现象(软件设置1Mbps或者2Mbps的空中传输速率)
3.多频点:
125频点,满足多点通信和跳频通信需要
4.超小型:
内置2.4GHz天线,体积小巧,15x29mm(包括天线)
5.低功耗:
当工作在应答模式通信时,快速的空中传输及启动时间,极大的降低了电流消耗。
6.低应用成本:
NRF24L01集成了所有与RF协议相关的高速信号处理部分,比如:
自动重发丢失数据包和自动产生应答信号等,NRF24L01的SPI接口可以利用单片机的硬件SPI口连接或用单片机I/O口进行模拟,内部有FIFO可以与各种高低速微处理器接口,便于使用低成本单片机。
7.便于开发:
由于链路层完全集成在模块上,非常便于开发。
自动重发功能,自动检测和重发丢失的数据包,重发时间及重发次数可软件控制自动存储未收到应答信号的数据包自动应答功能,在收到有效数据后,模块自动发送应答信号,无须另行编程载波检测—固定频率检测内置硬件CRC检错和点对多点通信地址控制数据包传输错误计数器及载波检测功能可用于跳频设置可同时设置六路接收通道地址,可有选择性的打开接收通道标准插针Dip2.54MM间距接口,便于嵌入式应用.
4.LCD12864
带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;
其显示分辨率为128×
64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×
4行16×
16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
5.AM2320
AM2320数字温湿度传感器是一款含有己校准数字信号输出的温湿度复合型传感器。
采用专用的温湿度采集技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电容式感湿元件和一个高精度集成测温元件,并与一个高性能微处理器相连接。
该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
AM2320通信方式采用单总线、标准I2C两种通信方式。
标准单总线接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。
I2C通信方式采用标准的通信时序,用户可直接挂在I2C通信总线上,无需额外布线,使用简单。
两种通信方式都采用直接输出经温度补偿后的湿度、温度及校验CRC等数字信息,用户无需对数字输出进行二次计算,也无需要对湿度进行温度补偿,便可得到准确的温湿度信息。
两种通信方式可自由切换,用户可自由选择,使用方便,应该领域广泛。
产品为4引线,连接方便,特殊封装形式可根据用户需求而提供。
6.SD2068
SD2068是一种具有标准IIC接口的实时时钟芯片,CPU可使用该接口通过5位地址寻址来读写片内32字节寄存器的数据(包括时间寄存器、报警寄存器、控制寄存器、通用SRAM寄存器)。
SD2068内置单路定时/报警中断输出,报警中断时间最长可设至100年;
内置时钟精度数字调整功能,可以在很宽的范围内校正时钟的偏差(-189ppm~+189ppm,分辨率3.05ppm),并通过外置的温度传感器可设定适应温度变化的调整值,实现在宽温范围内高精度的计时功能。
该芯片可满足对实时时钟芯片的各种需要,为工业级产品,是在选用实时时钟IC时的理想选择。
7.BMP180
BMP180是一款高精度、小体积、超低能耗的压力传感器,可以应用在移动设备中。
它的性能卓越,绝对精度最低可以达到0.03hPa,并且耗电极低,只有3μA。
BMP180采用强大的8-pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过I2C总线直接与各种微处理器相连。
8.MQ135
MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。
当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。
使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。
MQ135传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害的监测也很理想。
这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。
五、系统实现介绍
1.系统结构
1.模块功能说明
(1)传感器数据收集模块
使用STC15W4K32S4单片机从四个传感器上用I2C以及AD采集方式获取响应的数据,并通过串口以一定的格式向STC89C52RC发送,该部分由同组成员董鸿祥负责。
(2)串口收发及数据显示模块
使用STC89C52RC单片机收到数据,并使用LCD12864显示,并驱动NRF24L01向上位机发送接收到的数据,主要由本人负责。
(3)无线接受及上位机显示模块
使用STC89C52RC单片机驱动NRF2401接收下位机发送而来的数据,并通过串口将该数据发送至计算机,通过在Labview上用直观的图像和显示控件来显示接收到的数据。
该部分由同组成员侯贺雨负责。
2.系统框图
图1整体系统框图
2.电路图和实物图
图2串口收发及数据显示模块电路图
图3串口收发及数据显示模块实物图
图4下位机整体实物图
图5上位机部分实物图
六、软件程序
(1)软件功能说明+程序流程图
图6模块实现流程图
(2)软件具体实现
LCD12864.h文件内容
#ifndef_LCD12864_H_
#define_LCD12864_H_
#include<
main.h>
sbitRS=P2^2;
//RS=0为执行指令;
RS=1为执行数据;
sbitRW=P2^1;
//读写
sbitE=P2^0;
//使能
sbitPSB=P2^3;
//低电平(串口驱动);
高电平(并口驱动)
sbitRST=P2^5;
//LCD复位
voidInit_lcd();
//初始化液晶
voidlcd_busy();
//忙标志查询
voiddelayus(uintz);
//延时程序
voidwrite(ucharx,ucharData);
//写单字节函数
voidShow(ucharaddress,ucharL,ucharSTR1[]);
#endif
LCD12864.c文件内容
LCD12864.h>
uchart,p;
voiddelayus(uintz)//延时函数
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
}
voidlcd_busy(void)//判忙函数
ucharbusy;
P0=0xff;
RS=0;
RW=1;
do{
E=1;
busy=P0;
E=0;
}
while(busy>
0x7f);
voidwrite(ucharx,ucharData)//写入函数,将写入数据和命令参数化写在一个函数中
lcd_busy();
//忙查询
if(x==0)
{
RS=0;
RW=0;
//写单字节命令字
}
elseif(x==1)
RS=1;
//写单字节数据
E=1;
P0=Data;
E=0;
}
voidInit_lcd(void)//初始化
delayus(20);
//启动等待,等LCM讲入工作状态
P