會「推」的天氣站

事緣有天從iPhone看 Yahoo!天氣,明明十多度卻被說成三十多,實在氣死了。不少程式都直接從天文台的文字版本或是feed直接找天氣資料,曾幾何時也打算弄個Web Service把資料拿出來的,不過氣溫之類的天文台也不會說自己身處的地方的天氣,心想不如自己弄一套簡單的天氣探測裝置好了,於是便有了用Arduino實行這個計劃的打算。

Arduino是啥?Arduino其實是一套當初為了讓不諳電子技術的學生,以廉宜的價錢弄一些簡單的小裝置的一套平台。基本上這平台包括了一塊掌心大小的電路板,和用以寫程式的 IDE。只消把電路板經USB 駁上電腦,就可以透過Arduino IDE直接編寫程式和控制連上電路板的各種電子零件,諸如LED,發聲喇叭,馬達,甚至還可以加插擴展模組連上藍芽,LCD,GPS,甚至網絡的能力。

只要能駁得上就能玩,能改,是這套開源硬件平台的魅力。

不過香港的店舖,即使是鴨寮街,根本就沒Arduino電路板賣,從外國直接訂購又太昂貴,所以從大陸淘寶找。因為Arduino是開源硬體,電路設計圖可以從官方網站下載,只要有材料就可以弄一塊出來,使用官方的軟體編寫程式,所以網絡上也有不少合法的複製品。淘寶也有不少大陸廠商直接放板子和模組一併賣,只要挑個便宜,有信譽的,放個信用卡號,速遞就會把貨品送到家,非常方便(只是某速遞公司送貨到住宅區的收費不便宜)。

有時候買一點小零件,好像電阻,電容,LED,光敏電阻,簡單IC之類的訂購未免有點小題大做,便會直接去鴨寮街採購。有一家兩層的店材料和工具(例如剪線鉗和萬用錶)都很齊全,有時候還有特價,不過就是比較複雜一點的零件賣很貴,或是根本沒賣,這又得另外找一家國際電子零件商幫忙。幸好那公司的取貨點就在我公司附近,可以省下一筆可觀的運輸費。

初時也是門外漢,電子甚麼的除了初中教的簡單電路特性還記得以外其餘的都一竅不通。所以先著手砌一些簡單的小裝置,例如上面的光度探測器。以後再看網絡上的文章,技術文件等等,累積了不少電子零件上和電子訊號處理的知識(也間接了解到不少電腦硬體上的原理),便開始向製作自己的私人天氣站的目標進發。

Arduino 天氣站 v.1

天氣站 v.1

起初參考了這個網站買了內文提到的探測器和其他零件,又用了跟Arduino一起買的Ethernet模組將這東西接上家裏的LAN,那麼即使電腦沒開程式Arduino也可以直接把資料放到網絡上。當初這東西只有自己的網頁伺服器,要看資料非得要到訪它,沒記錄功能又不會通知,不甚實用。後來在官方論譠「刨」文章看到原來有一套叫pachube的服務,可以讓用家上載由不同地方獲得的環據數據,便趕緊申請了來試玩。

Arduino 天氣站 v.2

Arduino 天氣站 v.2

後來,又將這套服務的數據傳到放在網頁伺服器(也就是這裏)的python script,靠它定時將資料從pachube扯過來發 twit。而且,這套script還會將資料儲到資料庫,那我便也可以跟天文台一樣繪製「溫度走勢圖」,「氣壓走勢圖」,「全年最高濕度」等等有用的資訊了。最近為了將氣壓的量度精度提升,把購入已久但一直沒接上的ADC (Analog/Digital Converter – 模擬數碼訊號轉換器)接上,順手為這迷你天氣站加了一個「個人」網頁,利用Google的Visualization API提供廿四小時的天氣走勢,更容易看出天氣變化。

當然我不會就此心足。除了將網站美化外,還打算將天氣站移師窗邊,取得更真實準確的天氣數據(現時在電腦正上方,太熱了)。但在這之前我想還是先搞好網頁,貼出更多有用的資訊吧。

話說如果超過某個溫度/濕度自動發twit也頗有趣的…

Leave a Reply

Your email address will not be published. Required fields are marked *