第一章 建置雲端氣象站 -...

12
第一章 建置雲端氣象站 001 本章重點 所需硬體與軟體元件 將感測器接上 Arduino Yún 開發板 建立一個 Temboo 帳號 將資料送給 Google Docs 並顯示出來 建立自動電子郵件警告 Arduino Yún 開發板將感測器資料推特出去 總結

Upload: others

Post on 19-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

第一章

建置雲端氣象站

001

本章重點

所需硬體與軟體元件

將感測器接上 Arduino Yún 開發板

建立一個 Temboo 帳號

將資料送給 Google Docs 並顯示出來

建立自動電子郵件警告

讓 Arduino Yún 開發板將感測器資料推特出去

總結

Page 2: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

003

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

Arduino Yún 開發板的外觀如下圖所示:

� 所需硬體與軟體元件

當然啦,您的桌上得有一片 Arduino Yún 開發板以及一條 micro USB

傳輸線來處理一開始的程式編寫與測試。另外,我們也建議您準備具有

micro USB接口的電源插頭,這樣一來您就能直接從牆壁插頭來對 Arduino

Yún 供電,您的電腦就不用非要放在附近不可了。這在專案後期會大有幫

助,因為您會希望 Arduino Yún 開發板能自動執行量測作業。

您也要用到不同的感測器,用來感知關於環境變化的資料。對本專案

來說,我們會使用 DHT11 感測器來量測溫度與濕度,還有一個用來量測

光度的簡易光電管。DHT11 是一個相當便宜的數位溫度與濕度感測器,普

遍應用於 Arduino 平臺。您也可以使用 DHT22 感測器,它的精確度比較

Page 3: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

005

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

1. 首先,將 Arduino Yún 開發板的 +5V 腳位接上麵包板的紅色電源

軌,ground 腳位則是接到藍色接地軌。

2. 接著,將 DHT11 感測器的 1號腳位接上麵包板的紅色電源軌,

4 號腳位接到藍色接地軌。另外,將感測器的 2 號腳位接到

Arduino Yún 開發板的 8號腳位上。

3. 要完成 DHT11 感測器的接線,請在感測器的 1號與 2號腳位之間

加入一個 4.7k 歐姆電阻。

至於光電管,請先將它與 10k 歐姆電阻串聯之後插入麵包板。這個下

拉電阻可確保在操作過程當中,如果完全沒有光線的話,Arduino板所看

到的電壓會是 0V。接著,將光電管的另一端接上麵包板的紅色電源軌,並

將電阻的另一端接地。最後,將這個共用腳位接到 Arduino Yún 開發板的

類比腳位 A0。

下圖是用 Fritzing 軟體所繪製的硬體接線圖:

Page 4: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

016

現在要來實際繪製一些資料了,只要使用 Google Docs 的插入圖表

(Insert charts)函式即可。在此我們選擇簡易的折線圖(Line graph)。

下圖為溫度與濕度的顯示結果:

光度量測也是一樣的作法,如下圖所示:

Page 5: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

035

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

過程中保留空間)或是透過牆上的電源插座接到 USB轉接器(如果您想要

用 Wi-Fi上傳草稿碼,且讓專案自動運行)。

接著,接上檯燈或是任何您在這個專案中希望用母電源插頭控制的設

備。最後一步是將公電源插頭接到牆上插座。在執行此一步驟時請務必小

心:確認沒有任何導電物質暴露在外,所有螺絲端子皆正確拴緊並固定好

電線,且沒有裸露的導電物質互相接觸。

� 測試您的硬體連接

現在您的接線都完成了,我們準備在送出電力消耗資料至雲端與製作

控制繼電器的介面之前,先進行一次全面測試。我們要比照專案已經正式

上路一樣來測試不同的模組。在整個測試過程中,我們的專案都會與牆上

插座和檯燈保持連接。如此一來,我們便可以確認所有的硬體連接都是正

確的,以便進入下一階段。

以繼電器為例,我們會利用 Arduino Yún REST API透過 Wi-Fi進行操

控,這會用於本專案的最終版本之中。基本上來說,我們只會從網路瀏

覽器發送一個指令來直接設定繼電器所連接腳位的數值。稍後在本專案

中,我們會改用圖形化使用介面來完成呼叫,就不用直接在瀏覽器中輸入

指令了。

至於電流感測器,我們只會讀取 Yún 開發板上類比-數位轉換器 A0

類比腳位的資料,接著利用已知的有效電壓(110V或 230V,依居住地而

有所不同)計算有效電流量和有效電力。

讓我們先來看看 Arduino程式碼。它從匯入正確的函式庫開始,如以

下程式碼所示。我們需要 Bridge函式庫,以便使用 Yún上的板載 Linux機

Page 6: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

049

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

我在我的 Google Docs試算表中加入了這些函數,而下圖則是使用我

記錄的範例資料所得出的結果:

如果要把資料轉換成圖表也很方便。我在這裡使用圓餅圖,它是我認

為最適用於這類資料的圖表。以下是用我的量測資料所得的圖表:

有了這類的圖表,您便能比較某個檯燈的每日使用狀況。例如,這樣

就能知道自己離開時是否忘了關燈。

� 製作能遙控開關燈的介面

現在本專案已經會自動將能量消耗的相關資料記錄到 Google Docs中

了,我們該回來談談如何控制繼電器。現在,我們會打開瀏覽器並輸入正

確的 REST函式加上想修改的腳位名稱來測試繼電器。

Page 7: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

060

接下來是 PIR動作感測器。這種感測器價格相當平價,使用紅外線圖

像來偵測房間內任何發熱物體的動作,像是人體等等。我們可以直接使用

照相機來偵測動態,但效果不會這麼好。照相機啟動時非常耗電,而 PIR

動作感測器則幾乎完全不耗電;而要編寫一個能有效地從照相機圖像中偵

測動作的軟體更是困難。我們使用了 Parallax的 PIR動作感測器,如下圖

所示:

Page 8: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

080

首先請到您的 YouTube帳號下的影片管理員(VIDEO MANAGER),

接著找到左側選單的現場直播(Live Events),如下圖所示:

在這個選單當中,您可以建立自己的串流,就如同建立新影片一樣。

請確定這個影片沒有被編入任何清單中,除非您希望所有人都可以看到您

家裡發生了什麼事。相較於私人影片,您仍然可以將串流的 URL給認識的

人來分享影片。接著在下一頁,YouTube會詢問您要選擇哪一種編碼器。

我選擇清單裡的 Wirecast並從它的網站來下載。在 Wirecast的介面

裡,您需要設定正確的影片來源(預設情況是會從您電腦的網路照相機來

串流)。您可以在選單中選擇影片來源,請選 Web Stream Source並設定

完成,如下圖所示:

Page 9: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

081

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

基本上,您需要將通訊協定設定為 HTTP,格式選 Motion JPEG,並

輸入來自串流介面的 VideoLAN的 URL。例如,以我的專案來說就會是:

myarduinoyun.local:8080/?action=stream。

一會兒過後,如果所有環節都沒有問題,您應該會看到 USB照相機

的即時串流直接出現在 Wirecast的視窗中。如果這時影像有點停格也無須

擔心,這通常只是一般性的延遲;以我的狀況來說,我的 Wirecast軟體會

有 1到 2秒的延遲現象。下圖是加入正確影片串流之後,在 Wirecast主介

面中的樣子:

另外,也請確認只有這個串流會被傳送到 YouTube。因此,請刪掉其

他 Wirecast介面上的串流影片。以預設狀況來說,Wirecast的確可以把來

自網路照相機的串流影片放上介面。

Page 10: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

089

建置雲端氣象站

1

製作專屬的雲端照相機

3

製作遠距耗能監控裝置

2

無線網路控制之移動式機器人

4

您會在機器人底部看見大部分的機械零件,例如機殼、輪胎、直流馬

達和超音波感測器。您也會在機器人底盤的中央看到電池。接著,您可以

在頂端看見不同的 Arduino開發板。從最底下開始依序是 Arduino Yún開發

板、Arduino Uno 開發板、馬達擴充板和原型開發板。

本專案中的元件組裝過程會和之前稍有不同,因為我們實際上用到了

兩塊 Arduino開發板:Yún,直接從外界接收指令,以及 Arduino Uno開發

板,則是連接到馬達擴充板。

接下來,我們會對機器人的各個零件進行常態測試,例如測試機器人

的兩顆直流馬達以及和安裝在前端的超音波測距感測器。要測試馬達,只

要使馬達緩慢加速,藉此看看控制電路是否正常運作。而超音波距離感測

器所收到的量測資料則會顯示在序列監視器上。

Page 11: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

102

下圖則是 I2C介面與 Yún開發板的連接狀況:

� 測試機器人硬體連接狀況

在組裝專案的遙控部分之前,我們要確定各硬體設備都連接無誤,特

別是 Arduino開發板與不同馬達和感測器之間的連接狀況。這就是為什麼

我們要先為 Arduino Uno開發板寫一個簡單的草稿碼來測試不同元件。

此時,我們要啟動機器人的馬達;因此,請確認機器人是放在一個像

小臺子這樣的東西上,避免機器人在您用 USB連接線測試不同草稿碼時

亂跑。

草稿碼首先宣告了馬達所連接的腳位編號,如以下程式碼所示。請注

意這些腳位號碼是針對我們所使用的馬達開發板;如果您採用的是不同類

型開發板的話,請參照它所附的資料表。

Page 12: 第一章 建置雲端氣象站 - 碁峰資訊epaper.gotop.com.tw/pdf/ACH017600.pdf來說,我們會使用DHT11 感測器來量測溫度與濕度,還有一個用來量測 光度的簡易光電管。DHT11

114

現在是時候來啟動專案了。請確認所有的檔案都放在網路伺服器的根

目錄中,並且確定伺服器已經啟動了。接下來,請在瀏覽器下切換到網路

伺服器的資料夾(通常輸入 localhost即可),然後開啟 HTML檔案。本專

案也包含一個 CSS 工作表來讓介面變得好看一點。您應該可以在瀏覽器中

看見下圖:

顯示超音波感測器距離讀數的欄位應該會每秒自動更新,所以您馬上

就能看出它是否正常運作。試著在機器人前面揮手或拿東西晃晃,讀數應

該也會隨之變化。

在開始讓機器人移動之前,我們建議您在測試不同按鈕時,先把它固

定在小臺子上不要移動。確實,如果在伺服器或 Arduino草稿碼中有程式

碼出錯的話,機器人會毫無回應並且開始在您家中橫衝直撞。

現在也可以測試不同按鈕了。您可以特別玩玩看讓機器人左轉或右轉

的按鈕,並且修改 PHP程式碼中的 sleep()函數來讓它們完全遵照您的要

求。請注意,當機器人四處移動時,超音波感測器所偵測到的距離讀數也

會跟著改變。