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