[Electric Imp 物聯網小惡魔教學] 溫濕度感應計

本篇內容是由  CAVEDU 的實習生-呂東翰使用Electric Imp學習溫溼度感應器的心得,讓我們一起來看看

這個禮拜從老闆那拿到一顆imp單晶片,小弟是對於電子晶片實在是沒什麼FEEL,一時之間實在想不出這顆小惡魔到底能做些什麼,好在imp的開發網站有好多的範例可以玩,這次就用這顆小惡魔搭配溫溼度感測器試著做一個簡單的測試吧!

硬體設備:

Electric IMP *1                                                      DHT11            *1

01  03

麵包板            *1                                                      USB線            *1

02  04

電源            *1                                                          1kΩ 電阻       *1

06  05

電線         *5

07

接線方式:

這張圖是小惡魔與DHT11的接腳圖,如果你的小惡魔的前置環境建置已經設定好,那就可以將小惡魔與DHT11插在麵包板上,照著圖示接線囉,接線的時候要注意DHT11有洞的那面是參考面,不要插錯了。

08

(參考圖源)

需要:

  1. 一台智慧型手機
  2. 到APP商店下載Electric imp的程式,安裝並執行
  3. 到官網申請帳號
  4. 模組起始設定-BlinkUp(注意一定要用手指蓋住接收訊號的那一端,不然會因為光源的干擾而失敗喔)

我們的重點不在這,如果你還有疑問,可以到electric imp的官方網站看詳細的設定說明或參考我們上一篇文章[Electric Imp 物聯網小惡魔教學] 環境建置與 BlinkUp app。前置作業完成後,就可以接線囉。

 

接下來我們要小惡魔的開發網站找裝置DHT11的使用範例:

STEP1:到小惡魔的官網,案右上方進入DEV CENTER,進入後可以看到下圖的網頁,這裡是初學者學習如何設計與開發小惡魔的寶藏庫阿,如果對於小惡魔的使用與開發有任何疑問的話,在這裡幾乎都可以找到解決的方法。

09

STEP2:因為小弟我是完全的新手,所以我選右邊的Sample Code,先找找有什麼比較容易的設計可以玩吧,進入後可以看到以下的網頁。

10

STEP3:這次要做的是有關硬體的類別,我選擇Ready-To-Use Classes的Hardware Drivers,進入後可以看到很多別人測試過的裝置,竟然還有人測試Nokia 5110的LCD面板耶真有趣,再往下拉找到Sensors類別的Aosong DHT11的範例,就是我們這次要做的目標。

11

STEP4:找到Aosong DHT11(如下圖)後點擊Class Electric Imp’s Github Repo 就會看到完整的範例檔案囉,接線圖跟程式都有。

12

STEP5:最後將程式碼複製到Device就完成囉,接著小弟我便帶著小惡魔溫濕感測器到房間的不同角落測試溫度與濕度,DHT11測到的數值就會透過小惡魔顯示在Device Logs視窗內囉,雖然在同一個空間內,但濕度還是有些微的差異的喔。

13

有關程式碼的部分,一開始看到程式碼有一長串看不懂的代碼,實在是有點小畏懼阿,好在經過阿吉大大與偉哲大大的講解後,發現前面的程式碼是讀取DHT11資料封包的細節與物件導向的變數設定,偵測溫溼度的程式是從172行的function loop的程式迴圈開始,相關的解釋都寫在註解上:

 

function loop() {

    imp.wakeup(INTERVAL, loop);

    local data = dht11.read();  //讀取DHT11

    server.log(“Running “+imp.getsoftwareversion()+”, Free Memory: “+imp.getmemoryfree());

//在Device Log視窗顯示Running+imp版本+記憶體剩餘量

    server.log(format(“Relative Humidity: %0.1f”,data.rh)+” %”);

                                //在Device Log視窗顯示濕度(以浮點顯示到小數點後一位)

    server.log(format(“Temperature: %0.1f C”,data.temp));

}                               //在Device Log視窗顯示溫度(以浮點顯示到小數點後一位)

spi         <- hardware.spi257;

clkspeed    <- spi.configure(MSB_FIRST, SPICLK);

 

dht11 <- DHT11(spi, clkspeed);

loop();

 

 

 

 

Leave a comment

Your email address will not be published.


*