Base on ESP8266 and DHT22. Powered by Adafruit IO
前言-
嗨大家,這是我第一次在Medium上寫些東西,謝謝良師益友-Victor Wang的推薦,這是一個很舒服也很時尚的部落格平台,希望可以持續的在這個地方跟大家分享更多東西。
這篇文章的用意正如標題,是想跟大家分享一個很低成本的溫濕度監測系統,其實市面上有很多中小型的電子公司都有自己的solution,只不過動輒上千真的有點貴,所以希望這篇文章可以為同樣預算不高的朋友開一扇窗。也感謝 Troy Lee在我分享了SD卡版本的時候願意跳出來告訴我有這麼棒的solution,當我在網頁上看到感測器的讀數送上來並以圖形呈現的時候那份感動是難以言喻的。
這篇文章的主要內容是在整理並翻譯Adadruit IO提供的優質服務,他們提供了函式庫、免費的資料接口,讓你可以將感測數據上傳,甚至更進一步,你可以輕鬆的在幾個簡單的步驟內就將這些數據以圖形的方式呈現,讓你隨時隨地都能掌握你的感測器所處的環境的狀況。
心理準備-
會需要用到這篇文章的各位朋友一定都是有著心愛的寵物或是盆栽,才會讓你想要時時刻刻都能知道它的狀況,我自己也是對『在都市叢林中找回一點自然的生命力』很著迷的人,所以從這一刻起,我就跟你站在一起,不管你過去是不是具備電路、程式、網路相關的背景知識,我都相信你可以藉由這篇文章來完成一套屬於你自己的監測系統,讓你的寵物或盆栽過上更舒服的日子!
Overview-
我們的具體目標是要在一個網頁上顯示一些即時的圖形化物件,藉以呈現環境的狀況。
因為現在所有的行動裝置都有瀏覽器App,所以你不管拿i phone也好、Android也好、平板電腦、桌上型電腦或是筆記型電腦都好,只要你可以連上網路,你就可以隨時隨地的掌握你想知道的環境資訊。
我們完成後的網頁大致上會長這樣 —
很酷吧?不過天下沒有白吃的午餐,為了達成上面這個畫面我們會需要做不少事情,但一切都會是值得的!(光是省了幾千塊還能學到東西就很值得了,所以就捲起袖子一起做吧!)
硬體設備-
首先讓我們把所有會用到的東西準備好,我們會需要:
- 功能正常、能夠上網的電腦、Mac or Windows PC都可
- 已經連上網的wifi 分享器
- 我們的主角-開發板- WeMos D1
- DHT22,主角之二,是一個精度很高的感測器,同時具備感測溫度跟濕度的功能
- 杜邦線 公-母 20cm 只需要三條,但建議購買五條以防瑕疵或不良品
- micro usb 充電線
如果日後想監測的環境附近沒有插座的話可能需要購買行動電源,有些人也會加購可以保護電路板的保護殼,保護殼與Arduino uno使用的規格相同。
WeMos D1、DHT22、杜邦線都可以在網路上購得,20cm杜邦線一條大概一元,兩樣主角150元左右都可以搞定。(再次凸顯這個solution的CP值有多高,我都還沒算到未來或許還可以配合自動開關加溫或是灑水呢!)杜邦線有三種規格:公-公、公-母、母-母 ,我們要買的是公-母,不要買錯囉!
接線方式可以參考這張圖
連接好之後我們就可以把板子接上usb線再跟電腦連接,接著就著手準備軟體方面的部分囉!
Adafruit IO-
Adafruit IO作為數據雲端化及圖形化的服務提供者,他所有的服務都圍繞在一個叫做Feed的物件上、以Feed作為整套服務的核心。
Feed其實就是當你把所量測到的溫度或是濕度資訊傳送到Adafruit IO上的時候,由Adafruit IO端所提供的一個接口。Adafruit IO讓你可以自由的定義你需要傳送上去的資料有哪些,在這個例子中當然就是指溫度跟濕度這兩項,所以我們會需要在上面建立兩個Feed分別接收這兩種資訊。
首先來到 https://io.adafruit.com/ 按下右上角的Get Started for Free來註冊一組帳號。註冊完成後我們要作的事情就是把剛剛提到的兩個Feeds新增出來,並設定好Dashboard來為圖形化的顯示作準備。
首先我們點進Feeds,以下的步驟我就盡量用圖片來帶過。
再來我們到Dashboards的頁面,Dashboard就是一個大畫板,可以在這個畫板上隨意的擺放自己想要的圖形化顯示模塊。我們先新增一個新的畫板。
這次畫板的名字可以隨你輸入,輸入完後一樣按下create,建立完新的Dashboard之後就點擊你剛剛所創建的名稱進入到這塊新的畫板中,這個時候你會發現畫面完全是黑的,因為我們還沒把任何圖表放到這塊Dashboard上。按下右上角的加號來新增。
你可以自己去摸索如何新增其他的Block,並自由的在你的Dashboard上調整他們的位置跟大小,最後達到我們在Overview看到的那樣。
至此我們就完成了Adafruit IO上的設定,但我們還有一件事情要做。請點選畫面左邊的 View AIO Key, 他會出現一組Username與Active Key請將他們記下。
軟體方面-
其實軟體的部分一直是我最煩惱要怎麼呈現的部分,考量到每個人對程式開發了解的程度不同,呈現的方式也會有很大的變化,雖然我每寫一句就會停下來看看,這樣的詳細度是否足夠讓完全沒有經驗的朋友們看得懂需要做的事情,但最後的結果就是我花了很大量的心力跟時間去寫一篇流水帳,這對於教學文件的撰寫者跟閱讀者來說都會是一件很不好的事情,太過流水帳的內容會消耗撰寫者的精神跟耐心,很容易讓文章變得虎頭蛇尾。所以為了維持文章的流暢度,我會用稍微簡單的方式來帶過每一個步驟該做的事情,盡量避免一個口令一個動作的情形。
1.我們將電腦連上網之後前往這個網站下載並安裝Arduino IDE
https://www.arduino.cc/en/main/software
2.再到這裡來根據你的作業系統選擇對應的驅動程式下載並安裝,如果你是windows的使用者請選擇Windows即可,如果是Mac則選擇Mac OSX
https://wiki.wemos.cc/downloads
3.安裝完成後我們要確認電腦是使用哪一個序列埠與WeMos D1做連線。
確認的方式就是打開Arduino IDE>>工具>>序列埠,查看一下目前有哪些選項,確認完之後把WeMos D1透過usb線接上電腦,再重新查看一下有沒有多出來的選項,有的話請選擇它,沒有的話表示你可能需要進一步的檢查一下是不是驅動程式沒裝好、還是線沒有接好。
4.再來我們照著以下網址內的步驟 一、來進行WeMos D1在Arduino IDE上的設定。
https://sites.google.com/site/wenyumaker/10-esp8266/02memos-d1
裡面有個需要更正的地方,在選擇開發版的時候應該只會出現這個選項。