杜雨晴
摘 要 本產(chǎn)品是以Arduino YUN單片機(jī)為控制核心,結(jié)合8×8LED點(diǎn)陣,連接YAHOO網(wǎng)站的天氣API,實(shí)現(xiàn)天氣預(yù)報(bào)數(shù)據(jù)的可視化。采用了簡(jiǎn)單的外觀設(shè)計(jì),具有體積小、重量輕、方便攜帶的特點(diǎn),是方便使用者獲取天氣信息的便攜設(shè)備。
關(guān)鍵詞 單片機(jī);可視化;預(yù)報(bào)器
中圖分類號(hào) G2 文獻(xiàn)標(biāo)識(shí)碼 A 文章編號(hào) 1674-6708(2018)225-0170-02
Tempescope可視化天氣預(yù)報(bào)器所運(yùn)用的硬件過(guò)多,步驟繁瑣,并且對(duì)于天氣變化的強(qiáng)度顯示并不明顯。由此我們提出,能否運(yùn)用所學(xué)的單片機(jī)知識(shí),設(shè)計(jì)制作一個(gè)LED動(dòng)態(tài)圖像的可視化天氣預(yù)報(bào)器。
1 硬件設(shè)計(jì)
1.1 Arduino 單片機(jī)
1)Arduino是一款便捷靈活、方便上手的開(kāi)源電子原型平臺(tái)。包含硬件(各種型號(hào)的Arduino板)和軟件(Arduino IDE)。它構(gòu)建于開(kāi)放原始碼simple I/O介面版,并且具有使用類似Java、C語(yǔ)言的Processing/Wiring開(kāi)發(fā)環(huán)境??纱钆涓黝愑布O(shè)備,是理想的選擇。
2) Arduino 型號(hào)選擇。Arduino YUN(圖1)是一個(gè)基于Atmega32u4和 Ar9331的微控制器。Ar9331運(yùn)行著一個(gè)名為L(zhǎng)inino的OpenWrt linux系統(tǒng)。這塊控制器帶有網(wǎng)絡(luò)通信和WiFi支持,USB-A端口,Micro-SD插槽,20個(gè)輸入輸出引腳;支持連接I2C、SPI、UART端口。
Arduino YUN的主要部件包括板子上集成的兩個(gè)處理器。一個(gè)是ATmega32u4(標(biāo)號(hào)6),它是Arduino端的控制器,與其連接的是MicorUSB(標(biāo)號(hào)8)和兩排數(shù)據(jù)插座以及ICSP頭(標(biāo)號(hào)4)。另一個(gè)處理器在標(biāo)號(hào)3部分,與它相連的是網(wǎng)絡(luò)接口(標(biāo)號(hào)1)、USB host(標(biāo)號(hào)7)以及WiFi(標(biāo)號(hào)2)。
1.2 LED 8×8點(diǎn)陣模塊
點(diǎn)陣模塊型號(hào)選擇Dot Matrix-Color模塊,這是一個(gè)8×8多彩LED顯示矩陣模塊,可單個(gè)點(diǎn)陣或多個(gè)點(diǎn)陣級(jí)聯(lián)(組合成不同的形狀)使用,用于顯示圖片或文字,甚至是簡(jiǎn)單的動(dòng)畫(huà)效果。因?yàn)镈ot Matrix-Color模塊能夠?qū)崿F(xiàn)全彩動(dòng)態(tài)圖像顯示,所以選用LED來(lái)呈現(xiàn)不同的天氣圖像。同時(shí)其低電壓、低功耗、低成本的特點(diǎn)完全符合項(xiàng)目設(shè)計(jì)。
1.3 LCD12864模塊
LCD12864模塊是一款基于12864液晶顯示器開(kāi)發(fā)的顯示模塊。帶漢字庫(kù)圖形點(diǎn)陣液晶顯示模塊,可顯示8 192個(gè)中文漢字(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)和圖形顯示(128×64點(diǎn)陣)。該模塊具有并行和串行接口,背光控制(并行模式時(shí)使用),背光開(kāi)關(guān)(串行模式使用),串行、并行模式開(kāi)關(guān)切換功能,對(duì)比度調(diào)節(jié)電位器。接口電路板隱藏于LCD背面,即美觀又不影響安裝。使用IDC6插座作為SPI串行接口,使用一個(gè)IDC6專用連接線即可插接到interface shield上實(shí)現(xiàn)串行控制,使用杜邦排線可連接到Arduino傳感器擴(kuò)展板上實(shí)現(xiàn)并行控制,可與Arduino控制器組成一個(gè)強(qiáng)勁的顯示系統(tǒng)。
1.4 硬件電路設(shè)計(jì)(圖2)
2 結(jié)構(gòu)設(shè)計(jì)
本產(chǎn)品外殼采用了3D打印技術(shù),外形美觀且殼體輕盈??紤]到設(shè)計(jì)初期便攜、易使用的目的,我們將外觀設(shè)計(jì)由大小兩個(gè)簡(jiǎn)單的長(zhǎng)方體拼接而成(?。洪L(zhǎng)8cm寬8cm高6cm;大:長(zhǎng)10cm寬8cm高14cm),體積為1 504cm3。
3 程序設(shè)計(jì)
程序流程分析如圖3。
4 實(shí)驗(yàn)過(guò)程及結(jié)果分析
4.1 LED 8×8點(diǎn)陣模塊顯示圖像學(xué)習(xí)過(guò)程
通過(guò)在microduino網(wǎng)站查詢相關(guān)教程學(xué)習(xí)如何在Dot Matrix-Color模塊上顯示BMP彩圖,利用畫(huà)圖工具畫(huà)出24位位圖的天氣預(yù)報(bào)圖像并在Data To Hex中生成相關(guān)數(shù)組。
4.2 形成多種天氣圖像,動(dòng)態(tài)圖初步形成 (圖4)
4.3 LCD128×64液晶顯示屏學(xué)習(xí)過(guò)程
通過(guò)在DFROBOT網(wǎng)站上查詢LCD128×64與Arduino的各項(xiàng)應(yīng)用實(shí)例來(lái)了解和學(xué)習(xí)運(yùn)用其功能。
利用圖形轉(zhuǎn)換軟件設(shè)置為圖像模式,轉(zhuǎn)換相關(guān)圖像并生成字模;設(shè)置為字符模式,轉(zhuǎn)換相關(guān)字符并生成圖像(圖5)。根據(jù)生成數(shù)組完成顯示代碼。
4.4 學(xué)習(xí)連接并設(shè)置Arduino YUN與WiFi的過(guò)程
1)打開(kāi)路由器,如果實(shí)在沒(méi)有路由器的,可以通過(guò)電腦或手機(jī)打開(kāi)WiFi熱點(diǎn)。
2)將Micro usb 插入Arduino yun 板,如果是第一次打開(kāi),過(guò)一會(huì)即可用手機(jī)或電腦在WiFi熱點(diǎn)下搜到Arduino YUN*********的網(wǎng)絡(luò)名,如果不是第一次的話,長(zhǎng)按ArduinoYun板上的“WLANRST”10s以上即可。這時(shí)就可以用手機(jī)或電腦連接這個(gè)WiFi。
3)打開(kāi)手機(jī)或電腦瀏覽器(電腦不推薦360,有時(shí)不能配置WiFi),在瀏覽器鍵入:192.168.240.1 即可登錄到Arduino 的配置頁(yè)面。
4)輸入密碼后,點(diǎn)擊LOG IN。
5)點(diǎn)擊Configure ,會(huì)跳轉(zhuǎn)到配置WiFi的頁(yè)面。
6)可以選擇更換arduino板子名稱及板子密碼(默認(rèn)是Arduino),選擇你所在的時(shí)區(qū)。然后選擇自己的WIFI名稱,輸入密碼,REST APIACCESS選擇”O(jiān)PEN”。點(diǎn)擊“CONFIGURE&RESTART;”即可配置了,等待配置完成。
4.5 Yahoo網(wǎng)站賬號(hào)注冊(cè)及天氣預(yù)報(bào)程序的獲取
1)注冊(cè)(登錄)Temboo賬號(hào)。
2)獲取Temboo賬號(hào)鑰密(choreos--Yahoo--Weather--getweather)。
3)選擇Arduino的連接型號(hào)和所在地址(My device:Arduino YUN Woeld:北京)。
4)復(fù)制simple code程序至Arduino。
5)新建標(biāo)簽并將Header File中TEMBOO賬號(hào)名作為新標(biāo)簽的名稱。
6)通過(guò)多次實(shí)驗(yàn)歸納將Temboo返回的天氣數(shù)據(jù)一共分為12類:a陣雨、b小雨、c中雨、d大雨、e微風(fēng)、f中風(fēng)、g大風(fēng)、h陰天、i晴天、j雪、k霧霾、i多云。
5 結(jié)果分析
1)因?yàn)橹八褂玫腖ED8×8點(diǎn)陣屏顏色過(guò)于單一,不利于快速地辨別天氣圖像,所以我們選擇使用了具有全彩效果的Dot Matrix-Color模塊。
2)與TEMBOO連接后,系統(tǒng)輸出的XML一般軟件無(wú)法轉(zhuǎn)化,最后通過(guò)上網(wǎng)調(diào)查發(fā)現(xiàn)高版本的arduino具有自動(dòng)解析XML的功能。
參考文獻(xiàn)
[1]Tempescope可視化天氣預(yù)報(bào)器[J].發(fā)明與創(chuàng)新(中學(xué)生),2016(1):13.
[2]朱江.基于GrADS的數(shù)值天氣預(yù)報(bào)可視化系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2010.