网上斗牛

2016届优秀毕业论文(四)

作者: 时间:2018-09-12 点击数:

可视化天气系统设计

摘要

天气状况影响着人们的衣食住行,然而传统的天气状况数据多以图像、表格、文本等二维方式单一的表现,对于人们来说缺乏直观性。因此,天气状况数据的直观可视化表达非常重要。但是天气状况的表现形式似乎一直停留在电视播报、图像、文本等方式中。为了解决这个问题,本文以Arduino mini单片机为核心设计了可视化天气系统。

该系统能够代替传统的天气预报表现形式,使用更加直观的方式展示了当地实时天气与近一周的天气状况。具有良好的实时性和直观性。

关键词:天气模拟;可视化;ArduinoAndroid

Abstract

The weather condition affects that people’s basic necessities of life. However, traditional data of the weather condition is simply in the form of image, sheets, texts and so on, which is lacks intuitive performance for public. Therefore, it’s very important that the data is visual and intuitive of the weather condition. But the performance of the weather condition have been stay in the television broadcast, images, texts and so on. For this reason, this paper designs a visual weather system with the Arduino mini.

This system is able to replace traditional weather forecast form and show the local weather real-time and the past week more intuitively. It has great real-time and intuitive performance.

Keywords: Weather simulation, Visualization, Arduino, Android

一、 引言

天气这一与人们生活密切相关的话题必然是备受关注的方向。天气状况与人们的衣食住行密切相关,例如农产品的播种、灌溉与收割、交通运输情况等很多行业与天气的变化也有着密切的关系,每年天气情况突变对人们的生活、经济发展有巨大的影响,甚至带来严重的灾害,所以天气状况受到人们极大的重视。然而,传统的天气数据多用电视播报、图像展示、文字描述、表格总结等二维形式来表现,其表现形式缺乏直观性。因此,天气状况的直观可视化模拟是非常重要的。

二、 系统方案设计

该系统主要用来模拟显示各种天气状况,例如:晴天、雨天、雾天、多云、闪电等。一个简单透明的密封盒子,里面装有少量的水,使用Arduino单片机控制水泵、雾化器、风扇以及RGB L斗牛D灯,在家里就可以观看今天的天气状况甚至是天气预报。

其中RGB L斗牛D灯反映气候温度的变化,雾化器与风扇会根据数据制造出云雾,水与水泵的配合制造出雨,而RGB L斗牛D灯则会模拟展现出闪电或太阳的效果。

Arduino外接蓝牙与手机蓝牙连接后,使用系统中的手机APP获取到天气的数据,处理后发送给Arduino的外接蓝牙模块,通过Arduino对数据的识别处理并控制各个端口的高低电平[1]。此时,雾化器、风扇、水泵与L斗牛D灯等模块的电路闭合或断开,使各个模块开始工作或停止工作,以演示接收到的数据所对应的天气状况。

本系统由系统功能模块、主控模块、蓝牙通信模块和上位机模块四部分组成。功能模块主要实现各种天气的演示,主控模块主要是控制各部分的协调工作,蓝牙模块主要接收上位机发来的天气信息并传递给主控模块,上位机主要从网络上获取天气信息,并进行处理,将信息通过蓝牙发送给下位机,如图1为系统设计框图。

1  系统框图

系统功能:

系统具有天气演示功能,可以演示各种天气状况,例如晴天、雨天、雾天、闪电等常见天气状况。

? 晴天:系统RGB L斗牛D模块工作且其中红灯亮,水泵、雾化器等模块不工作,模拟晴天的效果;

? 雨天:雨天分为三种情况,一种是有太阳无闪电,一种是无太阳有闪电,另一种是无太阳无闪电。当演示雨天时,水泵开始工作,盒子底部的水会被输送到盒子顶部,从而散开形成水滴,RGB L斗牛D模块根据不同的天气情况进行工作,模拟不同的雨天效果;

? 雾天:系统雾化器模块、风扇模块工作,水泵等其他模块均不工作,雾化器使用超声波能量将水雾化成微小水雾粒,风扇将这些水雾粒吹散后,形成雾,模拟雾天的效果;

? 多云:系统雾化器模块工作,风扇模块不工作,不会将雾吹散,形成一朵朵的云,模拟多云的效果。

系统具有模拟实时天气状况功能,如果天气突变,系统也将自动转换天气状况,对每天的天气进行实时模拟

系统具有天气预报功能,可以通过互联网接口获取到一周内的天气,并进行物理模拟,用户可以通过点击软件某天的按钮就可以发送指令模拟这一天的天气状况。

系统具有语音识别功能,系统APP实现了百度语音识别接口,在联网的条件下可以正确识别用户的讲话内容并对内容进行分析,展示用户所需要的时间的天气数据。

三、 系统硬件设计

1. 系统电路图

如图2所示为系统电路图。系统中所用到的功能模块有水泵、雾化器、风扇、RGB L斗牛D、蓝牙和继电器,它们的工作电压各不相同,其中水泵的工作电压为12V、雾化器的工作电压为24V、风扇、RGB L斗牛D、蓝牙和继电器的工作电压均为5V,所以所需的输入电压应为24V,使用24V直流电压电源作为输入直接与雾化器相连,通过一次降压后变为12V与水泵相连,再通过三端稳压模块进行降压后变为5V电压直接为Arduino、风扇、RGB L斗牛D以及蓝牙等模块供电。

TD62083是驱动芯片,如果将继电器、RGB L斗牛D灯、风扇等直接与单片机相连,由于电流过小,它们不能被导通,所以需要TD62083作为驱动放大电流,它的输出电流一般为500毫安。LM7805是三端稳压集成电路。三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。HPH05001M是降压模块,将输入的24V直流电转化并输出为12V直流电。941H-2C-5D是继电器模块,通常应用于自动化的控制电路中,它作为一种自动开关,用小电流即继电器模块去控制大电流的模块。故在电路中起着转换电路、自动调节、安全保护等作用。

2 系统电路图

2. 系统控制流程图

主控模块的控制流程图如图3所示。当打开电源后,初始化程序是循环演示各种天气情况,Arduino单片机进入loop主函数中,判断串口是否收到数据,如果收到数据,则分析数据的类型,并执行相应的操作。

3 控制流程图

3. 系统主控Arduino模块

Arduino不仅可以通过各种传感器感知周围的环境,也可以控制L斗牛D灯、继电器等实现智能控制,Arduino的编程语言是基于C++Arduino语言编写,编写完成后编译生成二进制文件,通过串口将生成的二进制文件烧进控制器。使用方便,程序编写简单,所以选择Arduino作为主控模块,系统实现起来简单而且容易控制。Arduino的控制引脚相连,如果该引脚为高电平,则水泵开始工作,通过玻璃管将其抽出的水引到模拟展示器的最高端,模拟出下雨的效果。如果为低电平,则不工作。

4. 直流水泵

水泵可以将电能转化为机械能传给水,使水的具有一定的动能,以达到将水通过管道输送到固定的地方的目的,根据这一特性,系统可以选用12V的直流水泵并将水通过亚克力管输送到系统上部,使水从上部做自由落体运动落下,形成雨滴。

5. 超声波雾化器

超声波雾化器利用电子高频震荡(振荡频率为1.7MHz 2.4MHz,超过人的听觉范围,该电子振荡对人体及动物无伤害),通过陶瓷雾化片的高频谐振,将液态水分子结构打散而产生自然飘逸的水雾,不需加热或添加任何化学试剂。与加热雾化方式比较,能源节省了90%。根据超声波雾化器的特性,系统可以利用其产生水雾,模拟形成云或雾。Arduino通过控制继电器的开关来控制雾化器的工作状态。雾化器工作通过超声波使水表面隆起,在隆起的水周围发生空化作用,使水雾化成小分子的气雾,模拟出雾或云的效果。

6. 直流风扇

风扇的工作原理是通电后,形成电磁场,电线圈在磁场中受到力的作用使风扇发生转动,所以可以对风扇通电,目的是使其将产生的水雾吹散。Arduino通过控制该引脚的高低电平来控制风扇的开关,当风扇开始工作,会将雾化器产生的雾吹散开,它与雾化器配合模拟出雾的效果。

7. RGB L斗牛D

发光二极管简称为L斗牛D,它是半导体二极管的一种,可以把电能转化成光能,它具有单向导电性,所需电压为5V。发光二极管有红色、蓝色和绿色,三色发光二极管也可以组合使其产生其他颜色,可以根据其特性,在系统中模拟阳光、温度以及闪电。

RGB L斗牛D是由发红光的发光二极管、发绿光的发光二极管和发蓝光的发光二极管组成,三个发光二极管并联,共同一端接到电压为5V的引脚,另外三端分别接到Arduino的不同控制引脚,Arduino通过控制不同引脚的高低电平来控制RGB L斗牛D的发光颜色,模拟出阳光、温度以及闪电的效果。

8. 蓝牙模块

系统的通信主要使用蓝牙短距离通信技术,蓝牙是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换,使用2.4-2.485GHzISM波段的UHF无线电波,该系统是以手机自带的蓝牙功能与HC-06蓝牙模块为连接对象进行通信的。

当安卓手机应用与蓝牙模块连接成功后,手机应用会通过自带蓝牙自动或手动发送天气数据到HC-06蓝牙模块中,Arduino单片机读取接收到的天气数据并进行处理。

四、 系统APP介绍

系统中所使用的安卓应用是该系统的重要组成部分之一,该应用是用JAVA语言编写的,主要功能有从互联网上获取天气数据、与Arduino的外接蓝牙进行通信、语音识别等功能。

该应用中分为四个Fragment,为了方面用户使用,不需要去系统设置中控制手机蓝牙功能,第一个Fragment设置了打开、关闭和搜索蓝牙的功能;为了演示方便,可以在当前情况下演示不同的天气状况,第二个Fragment设置了发送不同的天气情况下的指令信息功能,使系统模拟演示下雨、闪电、晴天、雾天等各种天气状况;第三个Fragment为天气预报界面,用来获取一周的天气状况并可以通过手机蓝牙发送天气指令到外接蓝牙模块;第四个Fragment用来获取实时天气状况,如果天气发生变化就发送指令到Arduino的外接蓝牙。应用还具有语音识别功能,对用户的讲话内容进行识别,以模拟出用户所要了解的天气状况。

APP程序流程图如图4所示。

4  APP流程图

五、 系统数据库介绍

为了实现系统数据信息的存储及管理,需要对系统进行数据库设计,首先需要创建的是APP内的天气数据的数据库,当获得接口返回的数据后,将天气数据保存在数据库中,当需要演示天气状况时,从数据库中取数据,这样的好处是如果网络不稳定或者接口出现问题时,可以及时从数据库中取值,系统不会因为以上原因造成停止演示。在APP内的数据库中,还需要创建用户设置数据表,用来保存上一次使用APP用户的设置。

其次,需要设计城市与其行政编号的数据库。根据GPS或者人工定位后,需要获取城市的行政编号,才能获得完整的URL请求接口,从而返回数据。

所以,数据库的创建分为应用内数据库的创建和应用外数据库的创建及导入。

1、 创建的数据库

创建DbOpenHelper类,用于创建数据库、数据表以及更新数据库等。使用单例模式,避免创建多个数据库。创建DBManager类,用于管理数据库,即对各个数据表进行读写、查询、添加、删除及修改等操作。

该数据库需要创建三个数据表,分别是今天的天气数据表、天气预报数据表以及用户自定义设置数据表。

2、 导入的数据库

导入第一个数据库,该数据库中创建了三张表即天气现象编号数据表(atmosphere)风向编号数据表(direction)和风力编号数据表(power)。该数据库的作用是将获取到的编号通过数据库查询其文字描述,以获取其天气情况的准确描述。

导入第二个数据库,数据库中创建了两张表即省/直辖市数据表和城市编号数据表。该数据库作用是将获得到的用户地理位置即城市通过数据库查询其行政编号,用于天气数据的查询。

六、 总结

本系统以ATM斗牛GA328P作为主控芯片,实现各种天气的模拟演示,短距离无线传输技术(蓝牙技术)与上位机(手机APP)通信,实现天气数据的传输。

系统设计的难点:

(1) 由于雾化器(24V)、水泵(12V)、风扇(5V)和L斗牛D3.3V)的工作电压不同,需要对220V交流电进行一次交直转换和多次降压转换,增加了电路设计的复杂度。

(2) 手机上位机在对天气系统进行控制时,一条指令需要控制系统各个功能模块,增加了指令的逻辑复杂度。

(3) 在这个封闭盒子里,天气模拟时往往会使整个盒子布满水滴和雾气,这就要求控制电路部分严格密封。

最后,系统主要完成了以下工作:

(1) 系统可以演示各种天气现象,例如晴天、雨天、雾天、闪电等常见天气状况。

(2) 系统可以模拟实时天气状况,根据实时获取到的天气数据进行实时准确的模拟展示。

(3) 系统可以模拟天气预报,可以通过互联网接口获取到一周内的天气,并进行物理模拟展示。

(4) 系统可以进行语音识别,系统APP实现了百度语音识别接口,在联网的条件下可以正确识别用户的讲话内容。

本文创新点:

(1) 系统改变了天气预报的固定形式,以模拟演示方式替代了传统的表现形式,便于公众对抽象天气数据的理解。

(2) 系统结合实时天气数据动态模拟天气变化,为气象预报提供了便利。

参考文献

[1] 黄文恺.Arduino开发实战指南[M].机械工业出版社,2014:6-10.

[2] Gunter Spanner. Arduino电路与项目指南[M].南京:东南大学出版社,2015.9-56.

[3] 丁镇生.电子电路设计与应用手册[M].电子工业出版社,2013:6-81.

[4] 蔡睿妍. Arduino原理及应用[J].大连:大连大学信息工程学院,2012,12(16):155-157.

[5] 程晨.Arduino电子设计实战指南[M].北京:机械工业出版社,2014:7-128.

[6] 庄再兴.中国医疗器械杂志[M].中国医疗器械信息编辑部,2010:10-108.

[7] 李刚.疯狂Android讲义[M].电子工业出版社,2015:6-199.

[8] 薛莉,唐慧强.基于的城市实时天气可视化系统[J].计算机工程与设计,2013:5-167.

Copyright ? 2017   Powered by    兰州交通大学网上斗牛   All Rightseserved.

地址:兰州交通大学电信学院办公楼    邮编:730070