1 系统方案选择与论证
气象观测站是一个十分精密的系统,既需要符合规范的硬件设计,也需要配以合适的软件系统。从硬件方面来看,气象站主要由微机处理系统、传感器系统、显示系统三部分组成。其中,传感器系统在整个系统当中显得尤其重要,只有传感器足够灵敏,监测出来的数据才能足够的准确。从软件方面来看,编写程序可以使用的语言有多种选择,但是为了编写方便以及后期调试修改,本设计使用C 语言进行程序编写。
1.1 设计要求
本设计主要研究基于51单片机的实施大气环境各个参数的监测,主要研究内容有:
(1)实时监测大气环境的温度、湿度变化情况;
(2)实时监测大气环境的压强、风速变化情况;
(3)实时监测降雨量的变化;
研究的难点在于整个系统能够稳定的工作,各个监测模块能够长期稳定的运行,且互不干扰。整个系统能够相对精确的及时采集相应的数据,并且能够直观的观察。对于监测出来的数据,要使得精确度维持在一定的范围,温度、湿度的监测误差不能超过10%,风力、降水量的监测误差不能超过20%。
1.2 方案选择
针对本次设计,查阅了相关的资料后,我提出了一下两个方案:
方案一:采用集成化的WS600-UMB 气象传感器,一步完成各个气象要素检测的设计。此传感器带有可应用于环境测量的数字接口,能够实现对六大基本气象要素的监测,但是其成本高,硬件电路设计复杂,对处理器的要求高,用普通的51单片机无法带动运转,不能做到简易的要求,制作出来的产品不便于携带。
方案二:采用模块化设计,将几个要求监测的气象要素分别下放到各个模块,分别采用相应的简易传感器,可便于后期的升级改造,使用51单片机作为处理器,每个模块配置一个小型显示器,元器件易于获取,设计制作简便,产品便携。
综合以上两个方案,为了达到节省成本、产品便携等特点,本设计将采用方案二。
1.3 方案论证
方案二将采用单片机STC89C51作为信息处理核心,在实际设计中,根据需
求,增加一定的元件。系统中的51单片机用于接收并处理来自各个传感器的信号,通过程序运算得出气象参数,最终在液晶显示屏上显示出来。针对实际的使用环境,本设计还添加了时钟功能,方便记录员在记录相关数据的时候对应上时间。气象站供电方面,本设计采用5V 直流电源供电。
本系统实现一种基于单片机的气象信息采集系统(即简易气象观测站),整个系统的功能模块如下图2-1所示:
图2-1简易自动气象站系统框图 方案二设计的自动气象站主要实现以下几个功能:
(1)利用相关的传感器模块,实时采集设计要求中的五个气象要素,并将采集到的信号传送给STC89C51单片机进行处理;
(2)C51单片机根据接收到的信号,经过程序运行,处理相关信号,实时将处理完成的信号转换成相应的参数显示到液晶屏上;
(3)时钟显示。根据实际使用的情况,增加一个时钟。同时时钟还有断电运行的功能,保证时间准确。
时间显示系统是由ds1302时钟芯片构成的,并提供备用电池供电,以确保整个系统在断电后开机时间还能标准显示;使用DHT11数字温湿度传感器进行温湿度的检测,这个传感器精度高,采集数据准确,获得的信号不需要进行模数转换,因为芯片本身已经含有了校准的数字信号输出,电路设计十分简洁;用BMP085数字气压传感器进行气压数据采集,获得数据精度高,可以通过I2C 总线直接与各种微处理器相连接,较适合用于本系统;降雨量(水位)的监测由较为简单的模拟电路组成,主要由低功率失调电压双比较器LM393构成。实际即为将监测到的雨滴转换为电压,与参考电压进行比较从而输出比较结果;风速的监测使用霍尔元件通过检测齿轮所转圈数,由程序进行相应的处理从而得知齿轮转
速,通过数学计算转换得到风速。以上所有采集的数据都经过单片机处理转换后由相应的LCD 直观的显示出相应的数据。
2 硬件选型与简介
简易自动气象观测站系统设计所涉及到的知识众多,使用到众多不同的硬件,比如单片机、传感器、时钟芯片等,不同的硬件选择,对最终系统的完成具有不同的影响,下面对这些硬件的选型进行简单讨论。
2.4 STC89C51单片机
单片机的选型对于整个系统设计制作具有决定性的作用,单片机选型合适,整个单片机应用系统就会经济可靠;选型不合适,又会造成资源浪费,影响系统运行正常,甚至达不到原先的设计要求。
本设计使用的单片机要符合以下几点要求:
(1)芯片所具备的功能要略大于设计需要,功能实现要通过芯片完成;
(2)经过市场检验的产品,性能稳定,不易出错;能够被二次开发,配备相应的开发工具、仿真调试说明等。
(3)在规定的技术指标范围内,单片机能正常运行,不影响系统正常; 综合各模块电路设计的技术要求,本设计使用51单片机作为数据处理核心,根据系统设计中各种硬件对电压、数据处理、信号读写等要求,选型为STC89C51。其片内含有Flash 程序存储器、SRAM 、UART 、SPI 、A/D、PWM 等模块。其主要的功能、性能参数包括:
(1)内置标准51内核,机器周期;
(2)工作频率范围:0~40MHZ ,相当于普通8051的0~80MHZ ;
(3)STC89C5xRC 对应Flash 空间:4KB/8KB/15KB;
(4)内部存储器(RAM ):512B ;
(5)定时器/计数器:3个16位;
(6)通用异步通信口(UART )1个;
(7)中断源:8个;
(8)通用I/O口:32/36个;
(9)工作电压:3.8V~5.5V;
(10)外形封装:40脚PDIP 、44脚PLCC 和PQFP 等。
2.5 数字温湿度传感器DHT11
测量温度可以使用DS18B20单线数字温度传感器,测量湿度可以使用HIH3610集成湿度传感器,但是使用多个传感器会增加系统的复杂度,不利于携带。
经过综合考虑,在系统的易用性和便携性都不受影响的情况下,选择了DHT11数字温湿度传感器。DHT11能够同时测量温度和湿度,大大减轻了系统的复杂程度。DHT11现已用于医疗行业、家用电器、汽车、测试检测设备、自动化控制等众多领域,得到了市场的广泛认可,应用环境十分成熟,便于将气象站产品推向市场。由一个电阻式感湿元件和一个NTC 测温元件构成的DHT11传感器,可以通过信号线与处理器直接相连传输数据,体积小,使得系统简洁。
选择DHT11还有一个原因是因为其所具有的卓越性能,比如:
(1)湿度测量范围:20%~95%(0度~50度范围);误差:±5%;
温度测量范围:0℃~50℃;温度测量误差:±2度。
(2)电气特性:直流供电电压在3V~3.5V;供电电流平均在0.2mA~1mA之间,在单片机规定范围内;其采样周期为短,满足实时监测的要求。
(3)DHT11模块封装为4针单排引脚,使用单总线接口,DATA 口连接单片机的I/O口,传输串行数据。
2.6 单极霍尔效应开关ES3144
风速测量中,出于设计成本的考虑,无法购买昂贵的风速传感器,故本设计中采用了另一种思路。使用霍尔效应,在风车上安装一个强磁铁,风带动风车转动,利用霍尔传感器对磁场敏感的特点,测出风车的转速,通过数学计算,从而得出风速。但是这样测量出来的数据具有比较大的误差,这也是本设计一个不足之处。
人们利用半导体元件并结合霍尔效应制作成的元件叫做霍尔元件,这种元件一般用于电机中测定转子的转速,如录像机的磁鼓、电脑中的散热风扇等。经过多年的使用,霍尔元件已演变成一个品种多样、技术应用成熟的电磁传感器产品家族,并且在长久的市场检验中得到了大众的认可。
本设计的供电电压为5V ,系统允许的工作温度范围较宽,而且对于安装环境有一定的限制,电路要求保证正常工作的情况下尽可能的简单,综合考虑,风速测量中将采用单极霍尔效应开关ES3144。
ES3144采用双极技术制造。电路结构由采用信号放大器的斯密特触发电路、霍尔板、反电压保护器和电压调节器组成。其功能特性包括:快速建立反电压保护器;工作电压在3.8V~24V之间;灵敏度高、反应迅速;各种使用环境都能保
持性能稳定;工作温度范围宽。
ES3144电学及磁场特性如图3-8(a )、(b )所示:
(a )ES3144电学特性
(b )ES3144磁场特性
图3-1 ES3144电学及磁场特性说明图
2.7 Arduino 水位传感器
大型气象站中常常使用翻斗式雨量传感器,但是因为其体积较大,购买成本高,并不适合在本次设计中使用。所以本设计中,使用了一个量筒来收集一定时间内的降水,然后通过Arduino 水位传感器,模拟输出低电平,再通过LM393进行电压比较,从而得出水位。其原理是利用传感器表面上暴露的多条平行导线线迹测量量筒中水量/水滴大小进行水位判断。将水位信号转换成模拟信号,输出的模拟电压在本次设计中使用的是8位的AD 芯片adc0804采集进行模数转换再经过单片机处理输出。
2.8 A/D转换器ADC0804
水位传感器获得的是模拟信号,但是单片机处理的是数字信号,所以设计中还需要一个A/D转换器进行信号转换。
平常我们设计使用的电路,在使用到A/D转换器时,其分辨率要高于被测量对象的信号最低分辨率。8位A/D转换器的分辨率为0.04,实际使用中我们只需要选择8位的A/D转换器就足够了,而在本设计中,还要求采用并行接口,
所以
选择了ADC0804。
2.9 BMP085数字气压传感器
传统的气压计含有一个压敏元件,它可以将待测气压转换成容易传输和检测的电流或电压信号,再通过微处理器处理将其显示,气压传感器在此期间扮演着重要的角色,只有传感器足够精确,最终的数据才会误差小甚至没有误差。而采用单片机进行测量控制,不仅能实现基本监测功能,还能根据需要修改,提高产品的环境适应能力。
简易气象站中的气压监测单元,要同时满足气压采集、数据传输和数据处理三种功能,还要保证系统的稳定性和抗干扰能力。测量中,大部分的工作都可以交由单片机完成,使得电路更加简洁,气压传感器模块可以根据不同环境随意更换,增加了灵活性。
所以设计中采用了BMP085数字气压传感器。BMP085的供电电压为1.8V ~3.6V ,典型值为2.5V 。BMP085中自带了A/D转换器和E2PROM 的控制单元,通过I2C 总线实现与单片机的连接。E2PROM 中储存的11个校准参数涉及到参考温度下的灵敏度的温度系数、零点漂移以及零点漂移的温度系数等。BMP085的气压测量范围为300hPa ~1100 hPa(海拔高度-500m ~9000m) 。BMP 转换率高,精度高,适合于本次设计使用。
2.10 液晶显示器
因为本次设计涉及到的监测量众多,故分为三大模块,每个模块分别配置一块液晶显示器,它们是LCD12864、LCD Nokia5110和 LCD1602。这三个液晶显示屏幕的使用缘由有:首先在刚开始做的时候计划是要测量五个大气数据,但是由于起初计划要使用自己产生风,并且还要能够通过按键控制自己产生的模拟风的风速以及进行显示,还有就是要显示出霍尔传感器检测出来的风速,而一般的液晶比如12864本身就只能显示4行汉字,故本身就不能够完全显示所需要测量的数据(显示关于气象的一些基本信息以及显示测量大气压强,风速,就刚好占据了四行),所以又考虑使用另一块液晶屏,本打算还是使用12864的,但是由于它的体积相对较大,所以就选择了体积相对较小的5110液晶模块进行湿度以及温度以及水位检测,因为它是84*48的所以只能显示三行汉字(一个汉字是16*16,所以总的有48个点就是只能显示3行),然后自己由于又想扩展一下做个电子时钟,所以一个1602就足够了,所以最终就是使用了三块液晶来完成整个系统。
1 系统方案选择与论证
气象观测站是一个十分精密的系统,既需要符合规范的硬件设计,也需要配以合适的软件系统。从硬件方面来看,气象站主要由微机处理系统、传感器系统、显示系统三部分组成。其中,传感器系统在整个系统当中显得尤其重要,只有传感器足够灵敏,监测出来的数据才能足够的准确。从软件方面来看,编写程序可以使用的语言有多种选择,但是为了编写方便以及后期调试修改,本设计使用C 语言进行程序编写。
1.1 设计要求
本设计主要研究基于51单片机的实施大气环境各个参数的监测,主要研究内容有:
(1)实时监测大气环境的温度、湿度变化情况;
(2)实时监测大气环境的压强、风速变化情况;
(3)实时监测降雨量的变化;
研究的难点在于整个系统能够稳定的工作,各个监测模块能够长期稳定的运行,且互不干扰。整个系统能够相对精确的及时采集相应的数据,并且能够直观的观察。对于监测出来的数据,要使得精确度维持在一定的范围,温度、湿度的监测误差不能超过10%,风力、降水量的监测误差不能超过20%。
1.2 方案选择
针对本次设计,查阅了相关的资料后,我提出了一下两个方案:
方案一:采用集成化的WS600-UMB 气象传感器,一步完成各个气象要素检测的设计。此传感器带有可应用于环境测量的数字接口,能够实现对六大基本气象要素的监测,但是其成本高,硬件电路设计复杂,对处理器的要求高,用普通的51单片机无法带动运转,不能做到简易的要求,制作出来的产品不便于携带。
方案二:采用模块化设计,将几个要求监测的气象要素分别下放到各个模块,分别采用相应的简易传感器,可便于后期的升级改造,使用51单片机作为处理器,每个模块配置一个小型显示器,元器件易于获取,设计制作简便,产品便携。
综合以上两个方案,为了达到节省成本、产品便携等特点,本设计将采用方案二。
1.3 方案论证
方案二将采用单片机STC89C51作为信息处理核心,在实际设计中,根据需
求,增加一定的元件。系统中的51单片机用于接收并处理来自各个传感器的信号,通过程序运算得出气象参数,最终在液晶显示屏上显示出来。针对实际的使用环境,本设计还添加了时钟功能,方便记录员在记录相关数据的时候对应上时间。气象站供电方面,本设计采用5V 直流电源供电。
本系统实现一种基于单片机的气象信息采集系统(即简易气象观测站),整个系统的功能模块如下图2-1所示:
图2-1简易自动气象站系统框图 方案二设计的自动气象站主要实现以下几个功能:
(1)利用相关的传感器模块,实时采集设计要求中的五个气象要素,并将采集到的信号传送给STC89C51单片机进行处理;
(2)C51单片机根据接收到的信号,经过程序运行,处理相关信号,实时将处理完成的信号转换成相应的参数显示到液晶屏上;
(3)时钟显示。根据实际使用的情况,增加一个时钟。同时时钟还有断电运行的功能,保证时间准确。
时间显示系统是由ds1302时钟芯片构成的,并提供备用电池供电,以确保整个系统在断电后开机时间还能标准显示;使用DHT11数字温湿度传感器进行温湿度的检测,这个传感器精度高,采集数据准确,获得的信号不需要进行模数转换,因为芯片本身已经含有了校准的数字信号输出,电路设计十分简洁;用BMP085数字气压传感器进行气压数据采集,获得数据精度高,可以通过I2C 总线直接与各种微处理器相连接,较适合用于本系统;降雨量(水位)的监测由较为简单的模拟电路组成,主要由低功率失调电压双比较器LM393构成。实际即为将监测到的雨滴转换为电压,与参考电压进行比较从而输出比较结果;风速的监测使用霍尔元件通过检测齿轮所转圈数,由程序进行相应的处理从而得知齿轮转
速,通过数学计算转换得到风速。以上所有采集的数据都经过单片机处理转换后由相应的LCD 直观的显示出相应的数据。
2 硬件选型与简介
简易自动气象观测站系统设计所涉及到的知识众多,使用到众多不同的硬件,比如单片机、传感器、时钟芯片等,不同的硬件选择,对最终系统的完成具有不同的影响,下面对这些硬件的选型进行简单讨论。
2.4 STC89C51单片机
单片机的选型对于整个系统设计制作具有决定性的作用,单片机选型合适,整个单片机应用系统就会经济可靠;选型不合适,又会造成资源浪费,影响系统运行正常,甚至达不到原先的设计要求。
本设计使用的单片机要符合以下几点要求:
(1)芯片所具备的功能要略大于设计需要,功能实现要通过芯片完成;
(2)经过市场检验的产品,性能稳定,不易出错;能够被二次开发,配备相应的开发工具、仿真调试说明等。
(3)在规定的技术指标范围内,单片机能正常运行,不影响系统正常; 综合各模块电路设计的技术要求,本设计使用51单片机作为数据处理核心,根据系统设计中各种硬件对电压、数据处理、信号读写等要求,选型为STC89C51。其片内含有Flash 程序存储器、SRAM 、UART 、SPI 、A/D、PWM 等模块。其主要的功能、性能参数包括:
(1)内置标准51内核,机器周期;
(2)工作频率范围:0~40MHZ ,相当于普通8051的0~80MHZ ;
(3)STC89C5xRC 对应Flash 空间:4KB/8KB/15KB;
(4)内部存储器(RAM ):512B ;
(5)定时器/计数器:3个16位;
(6)通用异步通信口(UART )1个;
(7)中断源:8个;
(8)通用I/O口:32/36个;
(9)工作电压:3.8V~5.5V;
(10)外形封装:40脚PDIP 、44脚PLCC 和PQFP 等。
2.5 数字温湿度传感器DHT11
测量温度可以使用DS18B20单线数字温度传感器,测量湿度可以使用HIH3610集成湿度传感器,但是使用多个传感器会增加系统的复杂度,不利于携带。
经过综合考虑,在系统的易用性和便携性都不受影响的情况下,选择了DHT11数字温湿度传感器。DHT11能够同时测量温度和湿度,大大减轻了系统的复杂程度。DHT11现已用于医疗行业、家用电器、汽车、测试检测设备、自动化控制等众多领域,得到了市场的广泛认可,应用环境十分成熟,便于将气象站产品推向市场。由一个电阻式感湿元件和一个NTC 测温元件构成的DHT11传感器,可以通过信号线与处理器直接相连传输数据,体积小,使得系统简洁。
选择DHT11还有一个原因是因为其所具有的卓越性能,比如:
(1)湿度测量范围:20%~95%(0度~50度范围);误差:±5%;
温度测量范围:0℃~50℃;温度测量误差:±2度。
(2)电气特性:直流供电电压在3V~3.5V;供电电流平均在0.2mA~1mA之间,在单片机规定范围内;其采样周期为短,满足实时监测的要求。
(3)DHT11模块封装为4针单排引脚,使用单总线接口,DATA 口连接单片机的I/O口,传输串行数据。
2.6 单极霍尔效应开关ES3144
风速测量中,出于设计成本的考虑,无法购买昂贵的风速传感器,故本设计中采用了另一种思路。使用霍尔效应,在风车上安装一个强磁铁,风带动风车转动,利用霍尔传感器对磁场敏感的特点,测出风车的转速,通过数学计算,从而得出风速。但是这样测量出来的数据具有比较大的误差,这也是本设计一个不足之处。
人们利用半导体元件并结合霍尔效应制作成的元件叫做霍尔元件,这种元件一般用于电机中测定转子的转速,如录像机的磁鼓、电脑中的散热风扇等。经过多年的使用,霍尔元件已演变成一个品种多样、技术应用成熟的电磁传感器产品家族,并且在长久的市场检验中得到了大众的认可。
本设计的供电电压为5V ,系统允许的工作温度范围较宽,而且对于安装环境有一定的限制,电路要求保证正常工作的情况下尽可能的简单,综合考虑,风速测量中将采用单极霍尔效应开关ES3144。
ES3144采用双极技术制造。电路结构由采用信号放大器的斯密特触发电路、霍尔板、反电压保护器和电压调节器组成。其功能特性包括:快速建立反电压保护器;工作电压在3.8V~24V之间;灵敏度高、反应迅速;各种使用环境都能保
持性能稳定;工作温度范围宽。
ES3144电学及磁场特性如图3-8(a )、(b )所示:
(a )ES3144电学特性
(b )ES3144磁场特性
图3-1 ES3144电学及磁场特性说明图
2.7 Arduino 水位传感器
大型气象站中常常使用翻斗式雨量传感器,但是因为其体积较大,购买成本高,并不适合在本次设计中使用。所以本设计中,使用了一个量筒来收集一定时间内的降水,然后通过Arduino 水位传感器,模拟输出低电平,再通过LM393进行电压比较,从而得出水位。其原理是利用传感器表面上暴露的多条平行导线线迹测量量筒中水量/水滴大小进行水位判断。将水位信号转换成模拟信号,输出的模拟电压在本次设计中使用的是8位的AD 芯片adc0804采集进行模数转换再经过单片机处理输出。
2.8 A/D转换器ADC0804
水位传感器获得的是模拟信号,但是单片机处理的是数字信号,所以设计中还需要一个A/D转换器进行信号转换。
平常我们设计使用的电路,在使用到A/D转换器时,其分辨率要高于被测量对象的信号最低分辨率。8位A/D转换器的分辨率为0.04,实际使用中我们只需要选择8位的A/D转换器就足够了,而在本设计中,还要求采用并行接口,
所以
选择了ADC0804。
2.9 BMP085数字气压传感器
传统的气压计含有一个压敏元件,它可以将待测气压转换成容易传输和检测的电流或电压信号,再通过微处理器处理将其显示,气压传感器在此期间扮演着重要的角色,只有传感器足够精确,最终的数据才会误差小甚至没有误差。而采用单片机进行测量控制,不仅能实现基本监测功能,还能根据需要修改,提高产品的环境适应能力。
简易气象站中的气压监测单元,要同时满足气压采集、数据传输和数据处理三种功能,还要保证系统的稳定性和抗干扰能力。测量中,大部分的工作都可以交由单片机完成,使得电路更加简洁,气压传感器模块可以根据不同环境随意更换,增加了灵活性。
所以设计中采用了BMP085数字气压传感器。BMP085的供电电压为1.8V ~3.6V ,典型值为2.5V 。BMP085中自带了A/D转换器和E2PROM 的控制单元,通过I2C 总线实现与单片机的连接。E2PROM 中储存的11个校准参数涉及到参考温度下的灵敏度的温度系数、零点漂移以及零点漂移的温度系数等。BMP085的气压测量范围为300hPa ~1100 hPa(海拔高度-500m ~9000m) 。BMP 转换率高,精度高,适合于本次设计使用。
2.10 液晶显示器
因为本次设计涉及到的监测量众多,故分为三大模块,每个模块分别配置一块液晶显示器,它们是LCD12864、LCD Nokia5110和 LCD1602。这三个液晶显示屏幕的使用缘由有:首先在刚开始做的时候计划是要测量五个大气数据,但是由于起初计划要使用自己产生风,并且还要能够通过按键控制自己产生的模拟风的风速以及进行显示,还有就是要显示出霍尔传感器检测出来的风速,而一般的液晶比如12864本身就只能显示4行汉字,故本身就不能够完全显示所需要测量的数据(显示关于气象的一些基本信息以及显示测量大气压强,风速,就刚好占据了四行),所以又考虑使用另一块液晶屏,本打算还是使用12864的,但是由于它的体积相对较大,所以就选择了体积相对较小的5110液晶模块进行湿度以及温度以及水位检测,因为它是84*48的所以只能显示三行汉字(一个汉字是16*16,所以总的有48个点就是只能显示3行),然后自己由于又想扩展一下做个电子时钟,所以一个1602就足够了,所以最终就是使用了三块液晶来完成整个系统。