我的暑假作業

雖然最近忙翻了,被project跟一堆雜事壓到有點喘,不過還是要堅持有趣的東西 XD

http://114.32.168.216/temperature/retrieve.html
最近透過Raspberry Pi+Arduino+DHT11+Python+Parse+Google Chart的溫度記錄表 :P

因為房間太熱還有跟Yihua聊天以後,想要跟他一樣做個溫度測量小工具,因為手邊有Pi,就順手用上了。一開始缺了溫度量測的晶片,跑遍光華買不到,只好乖乖在網路上買,一顆幾十塊錢。然後就開始構思該怎麼完成他。

首先,該怎麼把DHT11跟Pi結合?其實還有更方便資源更多的Arduino這個玩具可以用,和Pi不同,Arduino是一塊可程式化的單晶片板,在連接其他晶片上更方便,資源也很容易取得,簡單說就是很多範例程式可以抄。加上麵包板一塊,幾條線,就可以把Pi+Arduino+DHT11串起來了,整個時間大約20~30分鐘可完工(我是初學者中的初學者,應該不會超過這個時間)。

Pi+Arduino+DHT11
確定可以讀到溫濕度的數據以後,重頭戲開始,接下來在我腦袋中構思幾個步驟:

  1. 讀取資料,並且呈現在網頁上
    1. 所以我先做了這個來實驗是否可行: http://114.32.168.216/temperature/
    2. 因為Pi對我來說就是電腦,在上面裝apache這一卡車東西以後,就可以用了。
    3. 中間有遇到一個困難,因為serial port讀取數據是一個字一個字讀取,在讀取數據的過程中有點麻煩,溫濕度沒辦法同時讀出來,不過我有天送潘小姐回家後的路上突然靈光一閃,想到該怎麼處理,解掉這個問題 XD
  2. 找個地方存
    1. 在Developer的meeting上,Sean分享了Parse這個地方,是免費的雲端儲存空間,我就用上了。
    2. 所以我用Python寫個小程式,把資料送上Parse,用crontab定時呼叫這個小程式,定時把資料存到Parse
  3. 把資料餵給Google chart
    1. Google的這個API真的很方便,只要我把資料從Parse讀出來,兜成Google chart API要的格式就大功告成。
階段任務完成,這是Phase 1,總共只花了我大約... 三個晚上,接下來Phase 2我想把這一堆網頁放到Openshift上。

做完這些以後不得不說,軟體才是最有價值的東西啊~~組裝這些硬體我沒經驗都可以幾十分鐘搞定,寫這些小程式卻花了我三天,身為軟體人我真驕傲 XD

[2013/8/6 update] Phase 2完成,放上Openshift,並且把濕度加上去:
http://littlepitemperature-libertysons.rhcloud.com

留言

這個網誌中的熱門文章

使用Mac的Preview來合併兩張圖片

重拾起書本

Mac OS X 10.6.3 上的黑體-繁