可视化天气预报器研究报告
2018-01-08杜雨晴
杜雨晴
摘 要 本产品是以Arduino YUN单片机为控制核心,结合8×8LED点阵,连接YAHOO网站的天气API,实现天气预报数据的可视化。采用了简单的外观设计,具有体积小、重量轻、方便携带的特点,是方便使用者获取天气信息的便携设备。
关键词 单片机;可视化;预报器
中图分类号 G2 文献标识码 A 文章编号 1674-6708(2018)225-0170-02
Tempescope可视化天气预报器所运用的硬件过多,步骤繁琐,并且对于天气变化的强度显示并不明显。由此我们提出,能否运用所学的单片机知识,设计制作一个LED动态图像的可视化天气预报器。
1 硬件设计
1.1 Arduino 单片机
1)Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。可搭配各类硬件设备,是理想的选择。
2) Arduino 型号选择。Arduino YUN(图1)是一个基于Atmega32u4和 Ar9331的微控制器。Ar9331运行着一个名为Linino的OpenWrt linux系统。这块控制器带有网络通信和WiFi支持,USB-A端口,Micro-SD插槽,20个输入输出引脚;支持连接I2C、SPI、UART端口。
Arduino YUN的主要部件包括板子上集成的两个处理器。一个是ATmega32u4(标号6),它是Arduino端的控制器,与其连接的是MicorUSB(标号8)和两排数据插座以及ICSP头(标号4)。另一个处理器在标号3部分,与它相连的是网络接口(标号1)、USB host(标号7)以及WiFi(标号2)。
1.2 LED 8×8点阵模块
点阵模块型号选择Dot Matrix-Color模块,这是一个8×8多彩LED显示矩阵模块,可单个点阵或多个点阵级联(组合成不同的形状)使用,用于显示图片或文字,甚至是简单的动画效果。因为Dot Matrix-Color模块能够实现全彩动态图像显示,所以选用LED来呈现不同的天气图像。同时其低电压、低功耗、低成本的特点完全符合项目设计。
1.3 LCD12864模块
LCD12864模块是一款基于12864液晶显示器开发的显示模块。带汉字库图形点阵液晶显示模块,可显示8 192个中文汉字(16×16点阵)、128个字符(8×16点阵)和图形显示(128×64点阵)。该模块具有并行和串行接口,背光控制(并行模式时使用),背光开关(串行模式使用),串行、并行模式开关切换功能,对比度调节电位器。接口电路板隐藏于LCD背面,即美观又不影响安装。使用IDC6插座作为SPI串行接口,使用一个IDC6专用连接线即可插接到interface shield上实现串行控制,使用杜邦排线可连接到Arduino传感器扩展板上实现并行控制,可与Arduino控制器组成一个强劲的显示系统。
1.4 硬件电路设计(图2)
2 结构设计
本产品外壳采用了3D打印技术,外形美观且壳体轻盈。考虑到设计初期便携、易使用的目的,我们将外观设计由大小两个简单的长方体拼接而成(小:长8cm宽8cm高6cm;大:长10cm宽8cm高14cm),体积为1 504cm3。
3 程序设计
程序流程分析如图3。
4 实验过程及结果分析
4.1 LED 8×8点阵模块显示图像学习过程
通过在microduino网站查询相关教程学习如何在Dot Matrix-Color模块上显示BMP彩图,利用画图工具画出24位位图的天气预报图像并在Data To Hex中生成相关数组。
4.2 形成多种天气图像,动态图初步形成 (图4)
4.3 LCD128×64液晶显示屏学习过程
通过在DFROBOT网站上查询LCD128×64与Arduino的各项应用实例来了解和学习运用其功能。
利用图形转换软件设置为图像模式,转换相关图像并生成字模;设置为字符模式,转换相关字符并生成图像(图5)。根据生成数组完成显示代码。
4.4 学习连接并设置Arduino YUN与WiFi的过程
1)打开路由器,如果实在没有路由器的,可以通过电脑或手机打开WiFi热点。
2)将Micro usb 插入Arduino yun 板,如果是第一次打开,过一会即可用手机或电脑在WiFi热点下搜到Arduino YUN*********的网络名,如果不是第一次的话,长按ArduinoYun板上的“WLANRST”10s以上即可。这时就可以用手机或电脑连接这个WiFi。
3)打开手机或电脑浏览器(电脑不推荐360,有时不能配置WiFi),在浏览器键入:192.168.240.1 即可登录到Arduino 的配置页面。
4)输入密码后,点击LOG IN。
5)点击Configure ,会跳转到配置WiFi的页面。
6)可以选择更换arduino板子名称及板子密码(默认是Arduino),选择你所在的时区。然后选择自己的WIFI名称,输入密码,REST APIACCESS选择”OPEN”。点击“CONFIGURE&RESTART;”即可配置了,等待配置完成。
4.5 Yahoo网站账号注册及天气预报程序的获取
1)注册(登录)Temboo账号。
2)获取Temboo账号钥密(choreos--Yahoo--Weather--getweather)。
3)选择Arduino的连接型号和所在地址(My device:Arduino YUN Woeld:北京)。
4)复制simple code程序至Arduino。
5)新建标签并将Header File中TEMBOO賬号名作为新标签的名称。
6)通过多次实验归纳将Temboo返回的天气数据一共分为12类:a阵雨、b小雨、c中雨、d大雨、e微风、f中风、g大风、h阴天、i晴天、j雪、k雾霾、i多云。
5 结果分析
1)因为之前所使用的LED8×8点阵屏颜色过于单一,不利于快速地辨别天气图像,所以我们选择使用了具有全彩效果的Dot Matrix-Color模块。
2)与TEMBOO连接后,系统输出的XML一般软件无法转化,最后通过上网调查发现高版本的arduino具有自动解析XML的功能。
参考文献
[1]Tempescope可视化天气预报器[J].发明与创新(中学生),2016(1):13.
[2]朱江.基于GrADS的数值天气预报可视化系统的设计与实现[D].成都:电子科技大学,2010.