基于蓝牙技术的智能气象站系统设计_图文

泉 州 师 范 学 院

毕业论文(设计) 毕业论文(设计)





基于蓝牙技术的智能气象站系统设计

The Design of Intelligent Weather Station System based on Blootooch Technology

物理与信息工程 学 院 电子信息科学与技术专 业 07 级 1 班 学生姓名 指导教师 完成日期 陈泉勇 仲伟博 学 号 职 称 070303037 副教授

2011 年 4 月 15 日

教务处 制

基于蓝牙技术的智能气象站系统设计
物理与信息工程学院 07 级电子信息科学与技术 070303037 指导教师 仲伟博 副教授 陈泉勇

HC- 蓝牙模块的智能气象站系统, 系列单片机控制, 【摘 要】 一种基于 HC-06 蓝牙模块的智能气象站系统, 系统采用 STC 系列单片机控制, DHT21 以 温湿度传感器和根据时差法原理的超声波传感器实现对环境的温湿度和风速风向进行采集, 温湿度传感器和根据时差法原理的超声波传感器实现对环境的温湿度和风速风向进行采集,并通过 蓝牙无线传输到接收模块将温湿度和风向风速数据显示在 LCD1602 上。DHT21 数字温湿度传感器数 据线为单总线; 超声波测风模块通过单片机发射 的脉冲信号, 据线为单总线; 超声波测风模块通过单片机发射 40kHz 的脉冲信号, 应用 CD4052 选通发射与接收回 路。 关键词】 HC【关键词】STC89C52 HC-06 蓝牙模块 DHT21 超声波传感器 智能气象站

2

目录
第一章 引言 ................................................................................................................................................... 4 1.1 本设计的背景 .................................................................................................................................. 4 1.2 本设计的系统方案 .......................................................................................................................... 4 1.2.1 系统的功能实现 ................................................................................................................... 4 1.2.2 系统的技术实现 ................................................................................................................... 4 第二章 气象站系统的组成框图 ................................................................................................................... 4 2.1 气象站发送模块框图 ...................................................................................................................... 5 2.2 气象站接收模块框图 ...................................................................................................................... 5 第三章 气象站系统硬件设计 ....................................................................................................................... 5 3.1 发送与接收模块的单片机最小系统 .............................................................................................. 5 3.2 发送与接收模块的无线通信模块——HC-06 蓝牙模块 .............................................................. 6 3.2.1 蓝牙技术简介 ....................................................................................................................... 6 3.2.2 HC-06 蓝牙模块部分电路 .................................................................................................... 6 3.3 DHT21 数字温湿度传感器 .............................................................................................................. 7 3.3.1 DHT21 简介 ........................................................................................................................... 7 3.4 超声波风速风向传感器及其电路部分 ........................................................................................... 9 3.4.1 超声波风速风向传感器原理 ................................................................................................ 9 3.4.2 超声波风速风向传感器电路组成原理 .............................................................................. 11 3.4.3 超声波测风方案设计论证 .................................................................................................. 14 3.5 气象站系统的报警模块 ................................................................................................................. 14 3.6 气象站系统的电源部分 ................................................................................................................. 15 3.7 发送与接收模块的 MAX232 串口电路 ........................................................................................ 15 3.8 接收模块显示电路 ......................................................................................................................... 16 第四章 气象站系统的软件设计 ................................................................................................................. 16 4.1 气象站系统的主程序流程 ............................................................................................................. 16 4.2 系统子程序流程图 ......................................................................................................................... 17 4.2.1 发送模块 DHT21 温湿度子程序流程图 ............................................................................ 17 4.2.2 发送模块超声波测风子程序 .............................................................................................. 18 4.2.3 接收模块 LCD1602 显示程序 ............................................................................................ 19 4.2.4 报警子程序 .......................................................................................................................... 20 第五章 气象站系统调试 ............................................................................................................................. 20 第六章 总结 ................................................................................................................................................. 21 致谢 ............................................................................................................................................................... 22 参考文献 ....................................................................................................................................................... 22 附录 ............................................................................................................................................................... 23 附录 1 发送模块原理图 ...................................................................................................................... 23 附录 2 接收模块原理图 ...................................................................................................................... 24 附录 3 发送模块 PCB 图 .................................................................................................................... 24 附录 4 接收模块 PCB 图 ..................................................................................................................... 25 附录 5 系统程序 .................................................................................................................................. 25

3

第一章 引言

1.1 本设计的背景 本设计的背景
温度、湿度、风速、风向等气象条件与生产生活密切相关,如果采用人工进行定时监测,不仅 浪费大量的人力,而且不能做到实时监控;如果采用有线测控系统则需要铺设光缆或电缆,这样不 但增加了成本,而且降低了系统的灵活性和可扩展性,还具有线路多、布线复杂、维护困难等缺点, 使用区域也有一定的局限性。针对上述的问题,提出了采用传感器技术、自动控制技术和无线蓝牙 技术相结合的智能气象站系统对环境气象进行实时监测。与多种无线通信技术[1]相比,蓝牙技术具 有应用广泛性,传输速率高,穿透性强,低功耗及准确性等优点。机械式风向风速传感器因其易损 坏、精度不高等缺点,而逐渐被更优良的传感器所代替,其中基于时差法的超声波风速风向传感器 就是其中之一。

1.2 本设计的系统方案 本设计的
1.2.1 系统的功能实现

通过温湿度及风速风向传感器采集环境的温湿度、风速风向信号,将信号处理然后通过无线传 输到距离十多米的地方进行显示,实现实时监测环境的温度、湿度、风向和风速,给人们生产生活 提供环境气象参数,从而合理的安排生产生活。

1.2.2 系统的技术实现

1.DHT21 数字温湿度传感器,内部包含一个电容式感湿元件和 NTC 测温元件,还有 A/D 转换模 块,实现温湿度数字信号输出。同时 DHT21 又是单总线形式,与单片机相连减少了 I/O 口的使用。 2.超声波测风模块,根据时差法原理,在一定距离下分别测量超声波的逆风和顺风传输时间, 然后通过公式求解风速的大小。然后分别测得两个垂直方向的风速,再通过公式计算出此时的风向。 理论上风速测量范围可以通过调整传感器的距离而改变。 [2] 3.采用 STC89C52 单片机控制单元 ,产品较为普遍,价格便宜,易于控制。对 STC89C52 用 C 语言编写程序,可读性较好。 4.无线通信采用全球广泛使用的蓝牙技术,本设计采用 HC-06 蓝牙模块,该模块可实现十米的 无线数据传输。 5.LCD1602 液晶显示器为工业字符型液晶,能够显示 32 个字符,可实现对数据进行简单显示。

气象站系统的 系统的组成框图 第二章 气象站系统的组成框图

气象站系统分为发送和接收两个模块:发送模块主要由温湿度采集模块、风速风向采集模块、 单片机控制模块、蓝牙发送模块、报警模块和电源模块等组成;接收模块主要由蓝牙接收模块、单 片机控制模块、液晶显示模块、电源模块和报警模块等组成。具体框图如下:

4

2.1 气象站发送模块框图 气象站发送模块框图

STC89C52

DHT21

报警器

单 片 机

超声波测风 HC-06 蓝牙模块

图 2.1 发送模块

[3]

[4]

信号采集发送过程 为 DHT21、超声波测风模块 将信号传给 STC89C52 单片机,单片机将信号 处理,并进行超温湿度、风速报警。处理后的信号经串口发送给 HC-06 蓝牙发射模块发射出去,采 用 2.4GHZ 全球免费波段。

2.2 气象站接收模块框图

STC89C52

HC-06 蓝牙模块

单 片 机

LCD 显示

报警器

图 2.2 接收模块

信号接收过程为 HC-06 蓝牙接收模块接收信号,将信号通过串口传输给 STC89C52 单片机处理, 如果超过温湿度、风速上限,将控制报警器报警。处理后的信号通过 LCD1602 液晶显示。

第三章 气象站系统硬件设计

3.1 发送与接收模块的单片机最小系统
[5]

本系统采用 MCS-51 系列 STC89C52 单片机芯片 作为发送与接收模块的控制单元,芯片具有如 下特点: (1) 抗干扰性强;

5

(2) 低价格; (3) 低功耗:掉电模式耗电低于 0.1uA,正常工作模式为 4mA~7mA,掉电模式可由外部中 断唤醒,适用于电池供电系统; (4) 处理速度快,最高主频为 90MHZ; (5) 通过 MAX232 电平转换芯片即可进行下载,编程方式灵活,可用 C 语言进行编写,可 读性强,8KB 的内部 ROM 增强编程方便性。 发送与接收模块的控制单元电路原理图如图 3.1:

图 3.1 STC89C52 单片机最小系统

图 3.1 中间部分为 STC89C52 芯片,该芯片采用 40 脚双列直插 DIP 封装,第 40 脚接+5V 电源, 第 20 脚接地,左上部分为复位电路,接单片机的第 9 脚,但按下键时即对系统进行复位。左下为晶 振电路,采用 11.0592MHZ 的晶振。第 31 脚接高电平。

3.2 发送与接收模块的无线通信模块——HC-06 蓝牙模块 发送与接收模块的无线通信模块—— ——
3.2.1 蓝牙技术简介
[6]

蓝牙技术 是一种近距离地保证可靠接收和信息安全的无线通信技术。 1998 年 5 月由爱立信、 于 英特尔、诺基亚、东芝和 IBM 等五大公司组成的 SIG(Special Internet Group)联合制定的标准。 [7] 蓝牙技术工作在全球通用的 2.4GHzISM 频段,数据传输速率为 1Mbps。蓝牙技术特点 : (1) 完好的替代功能:蓝牙所用的无线通道像有线电缆一样准确无误地发送和接收数据; (2) 信息安全性高:蓝牙技术采用跳频技术能很好的保证信息的安全性; (3) 承载能力强:同时连接多个设备,支持不同类型(如声音和数据)的信息的发送与接收; (4) 超低功耗:设备可用电池供电; (5) 致密性高:蓝牙芯片内部结构复杂但体积小; (6) 全球通用。

3.2.2 HC-06 蓝牙模块部分电路 蓝牙模块部分 部分电路
[8,9,10]

HC-06 蓝牙模块 主要性能参数: (1) 频率:2.4GHz ISM band (2) 调制方式:GFSK
6

(3) 发射功率等级:class2 (4) 灵敏度:≦-80dBm (5) 通信速率:2Mbps (6) 供电电源:3.3V (7) 工作温度:-20 ~+55℃ HC-06 蓝牙模块部分电路图如图 3.2.1:

图 3.2.1 HC-06 蓝牙模块部分电路

图 3.2 左边部分为蓝牙芯片, TX 与 RX 引脚分别接 STC89C52 的 RXD(P3.0)和 TXD P3.1) PIO1 其 ( , 接 LED 灯,当 LED 常亮时表示蓝牙数据开始传输。右上部分为电源+5V 转为+3.3V 电路。HC-06 蓝牙 模块实物如图 3.2.2:

图 3.2.2 HC-06 蓝牙模块

3.3 DHT21 数字温湿度传感器
3.3.1 DHT21 简介

DHT21 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的 数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包 含一个电容式感湿元件和一个 NTC 测温元件,并与一个高性能的 8 位单片机相连。因此该传感器响 应快、抗干扰能力强、性价比高等优点。单总线串行接口,使系统变得简单快捷。超小的体积、极 低的功耗,信号传输距离可达 20 米以上。传感器为 4 针单排引脚封装。其性能指标如表 3.3.1。

7

测量范围 湿度 温度 (0—100)% (-20—60)℃

精度 ±3% ±1℃

分辨力 0.1% 0.1℃

表 3.3.1 性能指标

DHT21 引脚图如图 3.3.1。本设计将 1 脚接电源+5V,2 接 STC89C52 的 I/O 口 P1.0,3 脚接地。

图 3.3.1

DHT21 为单总线数据输出口,如图 3.3.1,1 脚接电源+5V,2 脚接数据线,3 脚接地,4 脚置空。 DATA 用于与单片机进行通信和同步, 数据格式为: 40bit 数据=16bit 湿度数据+16bit 温度数据+8bit 校验和,湿度高 8 位+湿度低 8 位+温度高 8 为+温度低 8 位=校验和,当温度低于 0℃时,温度数据 的最高位置 1。DHT21 与单片机数据传送过程如图 3.3.2。

图 3.3.2

空闲时总线为高电平,通信开始时单片机拉低总线 500μs 后释放总线,延时 20?40μs 后单片 机开始检测 DHT21 的响应信号;从机的响应信号时一个 80μs 左右的低电平,随后主机再拉高总线 80μs 左右代表即将进入数据传送状态,如图 3.3.3。

图 3.3.3

高电平后就是数据位,每 1bit 数据都是由一个低电平时隙和一个高电平组成,低电平表示数据 的起始,其后的高电平表示数据位。 数字 1 信号表示方法如图 3.3.4。

8

图 3.3.4

数字 0 信号表示方法如图 3.3.5。

图 3.3.5

一次传送共 40bit 数据,当传送完最后一位数据后,DHT21 拉低总线 50μs 左右,随后释放总 线,由上拉电阻拉高总线。DHT21 实物如图 3.3.6。

图 3.3.6 DHT21 数字温湿度传感器

3.4 超声波风速风向传感器及其电路部分 超声波风速风向传感器及其电路部分 及其电路
3.4.1 超声波风速风向传感器原理

超声波在空气中传播时,顺风与逆风条件下存在速度差。当传播距离固定时,此速度差反映为
[11]

时间差

。如图 3.4.1,选定一对超声波收发传感器,在无风条件下超声波的风速为 vs ,假设风速

9

为 vw ,
图 3.4.1

则超声波在顺风下速度 v12 = vs + vw ,逆风则为 v21 = vs - vw 。设超声波顺风传播时间为 t12 ,逆风 传播时间为 t21 ,超声波收发距离为 d 。得:

?d ? t = vs + vw ? 12 ? ? d = v ?v s w ? t21 ?
求解方程得:

vw =

d? 1 1 ? ? ? ? 2 ? t12 t21 ?

(1)

由此求得一维的风速,当在垂直方向再放置一对超声波收发传感器时,可测得二维的风速,如 图 3.4.2 所示,假设 1、2 方向所测的风速为 vw, x ,3、4 方向所测的风速为 vw, y ,则风速

图 3.4.2

vw = v

2 w, x

+v

2 w, y

d ?1 1? ? 1 1 ? ,即 vw = ? ? ? +? ? ? 2 ? t12 t21 ? ? t34 t43 ?

2

2

(2)

假设 vw, x 与 vw 之间的夹角为θ,又 cos θ =

vw, x
,所以

vw
10

θ= arccos

1 1 ? t12 t21
(3)

?1 1 ? ? 1 1 ? ? ? ? +? ? ? ? t12 t21 ? ? t34 t43 ?
随着风从 0?~360?的变化,

2

2

? 1 1 ? ? t12 t21 ?kπ + arccos 2 2 ? ?1 1? ? 1 1 ? ? ? ? ? +? ? ? ? ? t12 t21 ? ? t34 t43 ? ? 当t12 ≤ t21且t34 ≤ t43时,k = 0; ? ? 当t12 > t21且t34 > t43时,k = 1; ? θ= ? 1 1 ? ? ? t12 t21 ?kπ ? arccos 2 2 ? ?1 1? ? 1 1 ? ? ? ? ? +? ? ? ? ? t12 t21 ? ? t34 t43 ? ? 当t12 ≥ t21且t34 ≤ t43时,k = 1; ? ? 当t12 < t21且t34 > t43时,k = 2. ?
所以只要测得 t12 、 t21 、 t34 、 t43 的值便可求出风速、风向的大小。

(4)

3.4.2 超声波风速风向传感器电路组成原理 超声波风速风向传感器电路组成 风向传感器电路组成原理 超声波风速风向传感器电路组成原理框图如图 3.4.3,图中的双向四通道选通开关即为 40kHz


STC89C52


向 四

通道控制
通 道 选 通 开 关

单 片 机

Cx20106A


图 3.4.3 原理框图

CD4052 模拟开关。CD4052 是一个差分 4 通道数字控制模拟开关,其引脚图如图 3.4.4。

11

图 3.4.4

引脚功能如表 3.4.1。
CD4052 引脚功能说明 引脚号 1 2 4 5 符号 IN/OUT IN/OUT A B 功能 Y 通道输入/输出端 X 通道输入/输出端 地址端 Y 公共输出/输入端 X 公共输出/输入端 禁止端 模拟信号接地端 数字信号接地端 电源+ 表 3.4.1

11 12 14 15 9 3 13 6 7 8 16 10

OUT/IN OUT/IN INH VEE Vss VDD

当 INH 脚位“1”时,所以通道截止,CD4052 的真值表如表 3.4.2。本设计将 CD4052 的 A、B 引脚与 CD4052 真值表 输入状态 INH 0 0 0 0 1 B 0 0 1 1 * A 0 1 0 1 *
表 3.4.2

“开”通道 CD4052 X0,Y0 X1,Y1 X2,Y2 X3,Y3 NONE

STC89C52 的 I/O 口 P3.4、P3.5 相连,X 脚接 P3.3;X0、X1、X2、X3 引脚分别接超声波传感器 S0、S1、S2、S3 的发射回路,则 Y0 接 S1 的接收回路,Y1 接 S0 的接收回路,Y2 接 S3 的接收回路, Y3 接 S2 的接收回路。Y 脚接 CX20106A 的 1 脚, CX20106A 是一款红外线检波接收的专用芯片,常 用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率 38KHz 与超声波传感器频率 40KHz 较 为接近,所以把它用于超声波检测接收电路。实验证明用 CX20106A 接收超声波,具有很高的灵敏度 和较强的抗干扰能力,其电路图如图 3.4.5,第 7 脚为接收信号输出端,将其与 STC89C52 的 I/O 口 P3.2(外部中断 0)相连,当有接收信号时则响应单片机外部中断 0。

12

图 3.4.5

超声波测风模块电路原理图如图 3.4.6,其发射回路为 40kHz 脉冲信号经过三极管放大,再经 过脉冲变压器,将脉冲电压达到 100Vpp 左右,从而驱动超声波传感器发射 40kHz 的超声波信号。接 收通过 1N4148 开关二极管与发射回路隔离,经 0.1μF 的电容送到接收回路中。STC89C52 通过控制 I/O 口 P3.4、 P3.5 选通相应的发射与接收回路, P3.3 发射 40kHz 的脉冲信号并同时打开定时器 0, 从 当 P3.2 接收到负脉冲信号就表示接收信号,同时关闭定时器 0,从而测得超声波的一路传播时间, 以此类推测得四路传播时间,最后算出风速、风向大小。风向以正北方向为 0°,正南为 180°,正 东为 90°,正西为 270°。测试时将传感器支架固定,选定 S0 为北,S1 为南,S2 为西,S3 为东。

图 3.4.6 超声波测风电路原理图

13

3.4.3 超声波测风方案设计论证

超声波在空气中 25℃的速度为 v=346m/s,本设计中两对超声波传感器的固定距离为 d=0.217m, 可求得在无风条件下超声波传播时间为 t=d/v=0.217/346≈0.63ms=630?s。假设风速是 50m/s,那么 此 时 的 超 声 波 顺 风 速 度 v=346+50=396m/s , 则 超 声 波 顺 风 传 播 时 间 为 t1=d/v=0.217/396 ≈ 0.55ms=550?s ; 此 时 的 超 声 波 逆 风 速 度 为 v=346-50=296m/s, 则 超 声 波 逆 风 传 播 时 间 为 t2=d/v=0.217/296≈0.73ms=730?s。假设风速是 3m/s,此时的超声波顺风速度为 v=346+3=349m/s, 则超声波顺风传播时间为 t1=d/v=0.217/349≈0.62ms=620?s;此时的逆风速度为 343m/s,则逆风传 播时间为 t2=0.217/343≈632?s。在本系统中的超声波传输时间主要通过外部中断 0 响应定时器 0 工作方式 1 计时,其中外部中断的响应时间为 100ns?200ns,这可以忽略不计。定时器 0 计数值从 0?65535,单片机主频为 11.0592MHz,则定时器 0 一个计数值所对应的时间为 1.09?s,当超声波开始 发射时定时器开始计时,当接收时单片机外部中断响应关闭定时器 0,从理论上分析风速从 0m/s?346m/s 超声波的传播时间单片机定时器是可以测得的。假如超声波传感器在电声、声电转化 过程中存在一定时延,这是测风精度的关键,当超声波电声、声电转化时延大于或接近超声波传播 时间时,则无法测得风速的大小,所以超声波传感器的精度在这里很关键。本设计采用的 EFR40RS 超声波传感器其电声、声电转换时间为 1ms,显然大于超声波在空气中距离为 d=0.217m 的传播时间, 但是可以通过增大超声波传感器的固定距离 d 来增大传播时间,其精度为±3m/s,最小灵敏度为 -65dB,其带宽为 3kHz。所以方案论证结果为,只要超声波传感器选择精度较高的,而且传感器之间 的距离也不能太小,一般的 51 单片机能够测得其传播时间,从而算出风速大小。

3.5 气象站系统的报警模块
系统报警主要是当所测得的温湿度、风速超过设定的值时,由蜂鸣器和 LED 产生报警。其原理 图如图 3.5.1 和 3.5.2。LED 报警状态为闪烁状态。发射模块的蜂鸣器接 P2.1,LED 灯接 P2.7;接 收模块的蜂鸣器接 P2.0,LED 灯接 P2.1。

图 3.5.1 蜂鸣器报警

图 3.5.2 LED 报警

14

3.6 气象站系统的电源部分
发射与接收模块的电源均用+9V 的干电池经 7805 稳压输出+5V 的电源,其电路原理图如图 3.6。 图中 J3 的 2 脚位+9V,1 脚为地;S4 为拨动开关,电容 C11、C12、C13、C14 均为 7805 输入输出端 的滤波电容;D17 为发光二极管,即电源指示灯;D19 为 1N4007 保护二极管,当输入端短路时,给 输出电容 C14 一个放电回路,防止 7805 被击穿损坏。

图 3.6 电源部分

3.7 发送与接收模块的 MAX232 串口电路
MAX232 串口电路主要用于 STC89C52 单片机程序的烧写以及用于扩展与上位机的通信。计算机 串口采用的是 RS232C 负逻辑电平, “1”表示-12V, “0”表示+12V,与单片机的的 TTL 电平不同,因 此通过 MAX232 串口电路实现与计算机进行通信。其电路图如图 3.7,图中的 5 个电容均为 0.1μF 的瓷片电容,起到降低芯片的噪声干扰。MAX232 的 11 脚接 STC89C52 单片机的 TXD(P3.1) ,12 脚 接单片机的 RXD(P3.0) ;右下为串口母头,用于与计算机的通信,第 3 脚(计算机数据输出端)为 从计算机输出至单片机端口,第 2 脚(计算机数据输入端)为从单片机输入至计算机,5 脚为地线, 其余引脚在此不用。

图 3.7 MAX232 串口电路

15

3.8 接收模块显示电路
接收模块显示电路采用 LCD1602 液晶显示。 LCD1602 能显示 16 个字符×2 行, 32 个字符。 即 LCD 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的字符,这些字符有阿拉伯数字、 英文字母的大小写、常用符号和日文假名等,每一个字符都有一个固定的 ASCII 代码。其引脚说明 如表 3.8。
编号 1 2 3 4 5 6 7 8 符号 GND VCC VEE RS R/W E DB0 DB1 引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 数据 编号 9 10 11 12 13 14 15 16 符号 DB2 DB3 DB4 DB5 DB6 DB7 BLA BLK 引脚说明 数据 数据 数据 数据 数据 数据 背光源正极 背光源负极

表 3.8 LCD1602 引脚说明

LCD1602 在本设计中的电路连接图如图 3.8,1 脚和 3 脚接地,2 脚接电源+5V,4 脚接 STC89C52

图 3.8 LCD1602 电路连接图

单片机的 P2.5,5 脚接 P2.6,6 脚接 P2.7,7?14 脚接 P0 口,15 脚串接一个 10K 的电阻然后接到电源 +5V。

第四章 气象站系统的软件设计
气象站系统软件部分分发送和接收两个模块[12,13],在此仅分析主程序与各子程序的流程。涉及 的子程序为 DHT21 温湿度子程序,超声波风向风速子程序,报警子程序,LCD1602 液晶显示子程 序。 软件编程所使用的编程语言为 C 语言, 编程软件为伟福 6000, 此软件程序编译测试后产生的 HEX 文件通过 STC-ISP V391 软件并通过 MAX232 串口电路下载进 STC89C52 单片机。详细程序请见附录 5

4.1 气象站系统的主程序流程

16

DHT21 采集 温湿度

超声波传感器采 集风向风速

蓝牙接收

单片机处理温湿度 风向风速数据

单片机处理温湿度 风向风速数据

报警
Y

报警
Y

超出预设温湿 度风速?

超出预设温湿 度风速?

蓝牙发射
发送模块

液晶显示

接收模块 图 4.1 系统软件主程序流程图

4.2 系统子程序流程图
4.2.1 发送模块 DHT21 温湿度子程序流程图 发送模块

DHT21 为单总线数字信号输出,其数据线接单片机的 P1.0,其程序流程图如图 4.2,首先由单 片机拉低总线至少 500?s 的低电平作为开始信号, 当数据传送完之后, 由从机拉低 50?s 的低电平后 单片机再拉高总线,表示总线进入空闲状态。

17

单片机发开始信号, 拉低至少 500μs 从机拉低 50μs 后, 单 片机拉高总线进入空 闲状态

拉高延时 20~40μs

从机拉低 80μs 低电 平响应信

数据校验正确 否?

Y

从机拉低 80μs 低电平 是否结束? Y 从机拉高 80μs 高电平及是 否结束? Y

N

接收数据

N

结束

数据接收状态,40bit

N 最后一位结束? Y

图 4.2.1 DHT21 温湿度子程序流程图

4.2.2 发送模块超声波测风子程序 发送模块超声波测风子程序

通过定时器 1 工作方式 2 定时发送四路 40kHz 的脉冲信号,CD4052 的 A、B 脚选通发射与接收 回路,定时器 0 工作方式 1 计算超声波的传播时间 t,分别测得四路时间值,最后求出风速、风向 大小。

18

外部中断 0,定 时器 0, 定时器 1 初始化 是否产生外 部中断? Y 四路通道发 射与接收选择 关闭定时器 0

打开定 时器 1

读取时间 定 时 发 送 40kHz 的脉冲 N 打开定时器 0 和外部中断 0 是否有四 路时间? Y 计算风速、 风向的大小

图 4.2.2 超声波测风程序流程图

4.2.3 接收模块 LCD1602 显示程序

1602 液晶需要设置许多指令以及初始化等,这些都要通过写命令来实现。送入数据时要通过写 入并口即 P0 口数据,之前先确定写入的 RAM 地址,再送入数据进行特定位置的显示。要特别注意的 是,液晶显示是以 ASCII 码显示的,比如要显示“0” ,其对应的 ASCII 码实际上是“0x30” ,也就是 “0+0x30” 才是表示 “0” 或者用 ‘0’ 即加单引号也可以表示。 第一行后显示湿度和温度值 “RH:xx .x% T:xx.x” ,第二行后显示风速和风向值“S:xxm/s D:xx” 。由于 LCD1602 不能显示字符“℃”和“°” , [14] 故只显示数值大小,默认温度其程序 流程图如图 4.2.3。

19

初始化

送第一 行地址和数据

显示相 应的温湿度和 风向风速大小

送第二 号地址和数据

图 4.2.3

4.2.4 报警子程序

如果所测得的温湿度风速值大小大于预设的值,则置相应的 I/O 口为低电平,蜂鸣器将发出断 断续续的鸣叫和 LED 灯将一闪一闪。其程序流程图如图 4.2.4。

预设温湿 度和风速报警值

N

超过设定 值?

Y

报警

气象站系统调试 第五章 气象站系统调试

系统主要由发送模块和接收模块组成。用万用表分别检测无短路或断路情况,测得电源部分 7805 输出端+5V,电源指示灯亮,单片机芯片、CD4052 芯片、MAX232 芯片、CX20106A 芯片、三 极管等管脚芯片电压正常。蓝牙模块接上电源 LED 指示灯正常点亮。 先对温湿度采集电路进行调试,通过伟福 6000 编写 C 语言程序,再用 STC-ISP V391 下载软件 将 HEX 文件烧写进入单片机,发现蓝牙能够正常传输数据,测得环境的温湿度能在接收模块的 LCD1602 液晶显示器上正常显示,温度精确到 0.1℃,湿度精确到 0.1%,温度的测量范围为-20.0℃ ?+60.0℃,湿度测量范围为 0.0%?99.9%,并在超过预设报警值时产生报警,报警状态为 LED 灯隔一 秒的时间一亮一灭和蜂鸣器隔一秒叫一次,即灯亮蜂鸣器也叫,灯灭蜂鸣器则停止鸣叫,从而实现

20

警示的作用。 其次对风向风速采集电路进行调试,发射电路外加一个直流电压+12V,通过伟福 6000 编写 C 语 言程序,再用 STC-ISP V391 下载软件将 HEX 文件烧写进入单片机,发现蓝牙能够正常传输数据,接 收模块显示一个固定的风速风向值,无论外界风速大小如何变化,其值仍不变。采用数字示波器测 得单片机 P3.3 输出有 40kHz 的脉冲信号, 在超声波中周的输入级也可测得 12Vpp 的 40kHz 的脉冲信 号, 但是在中周的输出级测得的信号微弱, 不能达到超声波传感器要求驱动电压 100Vpp 左右的电压。 也就是超声波中周不能产生所要求的变压效果,从而导致信号微弱,导致所测得信号单片机无法区 分,固其测得的值一成不变。还有个原因就是超声波传感器的精度不高,而且四个超声波传感器的 固定距离又偏小。

第六章 总结

基于蓝牙技术的智能气象站系统的设计,以其低成本、低功耗、便携式、高精度的设计理念, 实现对环境的温湿度、风向风速进行监测,让人们的生产生活安排的更加合理有序。蓝牙技术是全 球广泛使用的无线通信技术,能够实现短距离快速传输大容量的数据,是短距离数据通信的首选技 术,其不断成熟的技术,更是给无线通信领域带来光明的前景,气象站系统运用蓝牙技术实现室外 采集数据,室内观测的目的。HC-06 蓝牙模块,可传输十米左右的距离,分为主从模块,主机作为 发送数据,从机作为接收数据。DHT21 温湿度数字传感器能实现测量范围为温度-20℃?60℃,湿度 0%?99.9%,精度温度为±1℃,湿度为±3%,分辨力温度为 0.1℃,湿度为 0.1%,其应用于气象站系 统是再合适不过的。超声波风速风向传感器也是能实现高精度、高量程的测风效果,只不过本设计 在器件的选用、电路的设计和软件的设计有一些不合理的地方导致不能测得结果。

21

致谢

本次毕业设计是在仲伟博老师的精心指导下完成的,不论是在论文的选题或者方案的选择,还 是论文的修改,仲老师都给了我宝贵的意见和建议。在设计的过程中遇到的问题,仲老师都极力的 帮助我开拓思路,循序渐进。仲老师以其丰富的经验和扎实的作风深深地感染了我,使我由衷的敬 佩!在此谨向仲老师致以崇高的敬意和最诚挚的谢意! 此外,向所有的老师同学说声谢谢!感谢老师四年的精心培育!感谢同学四年的相濡以沫!

参考文献

[1]门少杰. 基于 nRF905 的温室环境无线测控系统研究[J].电子质量, 2010,(8):1-3,12. [2]郭坚. 基于 STC89C52 单片机的多路数据采集控制系统设计[J].装备制造,2010,(4):234. [3] 张 发 海 . 基 于 单 片 机 STC89C52 的 LED 数 码 管 温 度 显 示 及 报 警 器 的 实 现 [J]. 科 技 信 息,2009,(35):87-88. [4]程为. 基于单片机的风速风向检测系统设计[J].自动化技术与应用,2010,29(8):71-73. [5]刘宝元. 基于单片机的温湿度监控系统设计[J].应用天地,2009,28(12):77-80,83. [6]马海. 蓝牙技术在自动气象站上的应用[J].现代农业科技,2010,(12):29,38. [7]刘钇汐. 蓝牙与 ZigBee 的简要比较及分析[J].河北理工大学学报,2007,7(7):146-148,151. [8]何国泉. 基于蓝牙的无线接入点设计[J].微型机与应用,2010,29(18):58-60. [9] 伍 春 . 基 于 蓝 牙 的 无 线 传 感 器 网 络 节 点 设 计 与 实 现 [J]. 计 算 机 应 用 与 软 件,2010,27(4):74-76,101. [10] 付 蔚 . 基 于 蓝 牙 芯 片 的 无 线 通 信 模 块 设 计 与 开 发 [J]. 微 计 算 机 信 息,2009,25(102):178-179,175. [11]甘江英.基于 SOPC 技术的超声波风速风向检测系统[J].上海海事大学学报,2009,30(4):75-79. [12]喻宗泉.蓝牙技术基础[M].北京:机械工业出版,2006.40-95. [13]钱志鸿. 蓝牙技术原理开发与应用[M].北京:北京航空航天大学出版社,2006.101-159. [14]戴佳. 51 单片机 C 语言应用程序设计实例精讲(第 2 版)[M].北京:电子工业出版社,2009.45-99.

The Design of Intelligent Weather Station System based on Blootooch Technology
College of Physics and Information Engineering Electronic information science and technology major 070303037 CHEN Quan-yong

ZHONG Wei-bo associate professor Abstract: Abstract: This paper introduces a intelligent weather system station based on HC-06 Bluetooth module.That μses STC Series MCU to control.Μsing DHT21 tempetature and humidity sensors and in accordance with the principle of transit-time ultrasonic sensor achieve the collection of temperature,humidity,wind speed and direction.Through Bluetooth wireless transmission to the receiver module and display the size of the data on the LCD1602.DHT21 digital temperature and humidity sensor data line is a single bμs.Ultrasonic wind measurement module launched 40kHz pulse signal by MCU and apply CD4052 stobe transmit andreceive loop. words:STC89C52;HC-06 Bluetooth;DHT21; ultrasonic sensor;Intelligent weather station Key words:
22

附录

附录 1 发送模块原理图

23

附录 2 接收模块原理图

附录 3 发送模块 PCB 图

24

附录 4 接收模块 PCB 图

附录 5 系统程序
程序一: 程序一:温湿度程序 #include <reg52.h> #include <intrins.h> // typedef unsigned char U8; typedef signed char S8; typedef unsigned int U16; typedef signed int S16; typedef unsigned long U32; typedef signed long S32; typedef float F32; typedef double F64; #define uchar unsigned char #define uint unsigned int #define Data_0_time 4

25

sbit P1_0 = P1^0 ; sbit P2_1 = P2^1 ; sbit P2_7 = P2^7 ; U8 U8FLAG,k; U8 U8count,U8temp; U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp; U8 U8comdata; U8 outdata[5]; U8 indata[5]; U8 count, count_r=0; U8 str[5]={" "}; U16 U16temp1,U16temp2; SendData(U8 *a) { outdata[0] = a[0]; outdata[1] = a[1]; outdata[2] = a[2]; outdata[3] = a[3]; outdata[4] = a[4]; count = 1; SBΜF=outdata[0]; }

void Delay(U16 j) { U8 i; for(;j>0;j--) { for(i=0;i<27;i++);

} } void { U8 i; i--; i--; i--; i--; i--; i--; } Delay_10μs(void)

26

void COM(void) {

U8 i;

for(i=0;i<8;i++) {

U8FLAG=2; while((!P1_0)&&U8FLAG++); Delay_10μs(); Delay_10μs(); Delay_10μs(); U8temp=0; if(P1_0)U8temp=1; U8FLAG=2; while((P1_0)&&U8FLAG++); if(U8FLAG==1)break; U8comdata<<=1; U8comdata|=U8temp; }

} void warning() { U16 i; for(i=0;i<5;i++) { P2_7=1; P2_1=1; Delay(6000); P2_7=0; P2_1=0; Delay(6000); P2_7=1; P2_1=1; } }

void RH(void) { P1_0=0; Delay(180); P1_0=1; Delay_10μs();

27

Delay_10μs(); Delay_10μs(); Delay_10μs(); P1_0=1; if(!P1_0) { U8FLAG=2; while((!P1_0)&&U8FLAG++); U8FLAG=2; while((P1_0)&&U8FLAG++); COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P1_0=1;

U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; } } } void main() { U8 i,j; TMOD = 0x20; TH1 = 253; TL1 = 253; TR1 = 1; SCON = 0x50; ES = 1; EA = 1; TI = 0;

28

RI = 0; SendData(str) ; Delay(1); while(1) { RH(); str[0]=U8RH_data_H; str[1]=U8RH_data_L; str[2]=U8T_data_H; str[3]=U8T_data_L; str[4]=U8checkdata; SendData(str) ; Delay(20000) ;

if(((U8RH_data_H*256+U8RH_data_L)>0x02dc)||((U8T_data_H*256+U8T_data_L)>0x012c)) // 如 果湿度大于 74%或者温度大于 30 则报警 { warning(); } Delay(20000); }//elihw

}// main

void RSINTR() interrupt 4 μsing 2 { U8 InPut3; if(TI==1) {TI=0; if(count!=5) { SBΜF= outdata[count]; count++; } } if(RI==1) { InPut3=SBΜF; indata[count_r]=InPut3; count_r++; RI=0; if (count_r==5) {count_r=0; str[0]=indata[0];

29

str[1]=indata[1]; str[2]=indata[2]; str[3]=indata[3]; str[4]=indata[4]; P0=0; } } } 程序二 程序二:接收模块液晶显示程序 #include <reg52.h> #include <string.h> typedef unsigned char uchar ; typedef unsigned int uint ; typedef unsigned long ulong ; sbit rs=P2^5; sbit rw=P2^6; sbit e=P2^7; sbit P07=P0^7; sbit P20=P2^0; sbit P21=P2^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; uint i,length1,length2,count_r=0; uchar U8RH_data_H,U8RH_data_L,U8T_data_H,U8T_data_L,U8checkdata,str[5],RH_shi,RH_ge,RH_xs,T_ shi,T_ge,T_xs; void lcdinit(); void lcdsendc(uchar command); void lcdsendd(uchar dat); void delay(uint t); void lcdbμsy(); void warning(); void main() { uint i,j; code uchar lineone[40]={"RH: . % "}; code uchar linetwo[40]={"T: . "}; lcdinit(); lcdsendc(0x01); lcdsendc(0x80); length1=strlen(lineone); for(i=0;i<length1;i++) {lcdsendd(lineone[i]);delay(200);

30

} lcdsendc(0xc0); length2=strlen(linetwo); for(i=0;i<length2;i++) { lcdsendd(linetwo[i]);delay(200); } TMOD = 0x20; TH1 = 253; TL1 = 253; TR1 = 1; PCON=0x00; SCON = 0x50; ES = 1; EA = 1; TI = 0; RI = 0; while(1) { U8RH_data_H=str[0]; U8RH_data_L=str[1]; U8T_data_H=str[2]; U8T_data_L=str[3]; U8checkdata=str[4]; if(U8T_data_H>=0x80) { lcdsendc(0xc2); lcdsendd(0x2d); U8T_data_H=U8T_data_H-0x80; RH_shi=((U8RH_data_H*256+U8RH_data_L)/100)%10; RH_ge=((U8RH_data_H*256+U8RH_data_L)/10)%10; RH_xs=(U8RH_data_H*256+U8RH_data_L)%10; T_shi=((U8T_data_H*256+U8T_data_L)/100)%10; T_ge=((U8T_data_H*256+U8T_data_L)/10)%10; T_xs=(U8T_data_H*256+U8T_data_L)%10; } else { RH_shi=((U8RH_data_H*256+U8RH_data_L)/100)%10; RH_ge=((U8RH_data_H*256+U8RH_data_L)/10)%10; RH_xs=(U8RH_data_H*256+U8RH_data_L)%10; T_shi=((U8T_data_H*256+U8T_data_L)/100)%10; T_ge=((U8T_data_H*256+U8T_data_L)/10)%10; T_xs=(U8T_data_H*256+U8T_data_L)%10; } lcdsendc(0x83); lcdsendd(RH_shi+'0');delay(50);

31

lcdsendd(RH_ge+'0');delay(50); lcdsendc(0x86); lcdsendd(RH_xs+'0');delay(50); lcdsendc(0xc3); lcdsendd(T_shi+'0');delay(50); lcdsendd(T_ge+'0');delay(50); lcdsendc(0xc6); lcdsendd(T_xs+'0');delay(50);

if(((U8RH_data_H*256+U8RH_data_L)>0x02dc)||((U8T_data_H*256+U8T_data_L)>0x012c)) //如 果湿度大于 74%或者温度大于 30 则报警 { warning(); }

} } void lcdinit() { delay(100); lcdsendc(0x01); delay(100); lcdsendc(0x38); delay(100); lcdsendc(0x06); delay(100); lcdsendc(0x0c); delay(100); } void lcdsendc(uchar c) { P0=c; rs=0; rw=0; e=0; lcdbμsy(); e=1; } void lcdsendd(uchar dat) { P0=dat; rs=1; rw=0; e=0; lcdbμsy(); e=1; }

//清屏

//8 位 2 行

5X10 字体

//设 ac 自增,移动显示关闭

//开启显示,光标显示,字符闪烁关闭

32

void lcdbμsy() { P07=1; rs=0; rw=1; e=1; while(P07); } void delay(uint t) {uint i,j; for(i=0;i<t;i++) for(j=0;j<20;j++); } void warning() { uint i; for(i=0;i<5;i++) { P20=1; P21=1; delay(5000); P20=0; P21=0; delay(5000); P20=1; P21=1; } } void RSINTR() interrupt 4 μsing 2 {uchar InPut3,indata[5]; if(RI==1) {InPut3=SBΜF; indata[count_r]=InPut3; count_r++; RI=0; if (count_r==5) {count_r=0; str[0]=indata[0]; str[1]=indata[1]; str[2]=indata[2]; str[3]=indata[3]; str[4]=indata[4]; P0=0;} } }

33


相关文档

基于蓝牙技术的智能家居系统设计
毕业论文:基于蓝牙技术的智能气象站系统设计(终稿)
毕业论文:基于蓝牙技术的智能气象站系统设计(终稿)-精品
蓝牙技术在自动气象站上的应用
基于蓝牙技术的小车智能控制系统设计
基于蓝牙的智能灯系统设计
基于蓝牙技术的家庭智能控制系统设计
基于蓝牙技术的生理参数采集系统设计
基于蓝牙技术的嵌入式广告发送系统设计
【7】基于蓝牙技术的温室环境监测系统设计8
电脑版