(上圖是網路上找的)上次完成了簡單的物聯網架構,主要是利用行動裝置(手機)為中介者,藍牙連結設備,行動網路連結雲端伺服器,結合所有的東西進行雙向的傳輸與控制。不過假如是以一般的智慧家庭來說,連結雲端伺服器應該是不會利用行動網路,而是會透過有線網路來進行雙向的傳輸與控制。由於我並沒有Arduino的有線網卡,不過我有Arduino的無線網卡,所以今天這個例子,在行動裝置(手機)方面可利用網路(WiFi)雙向的傳輸與控制設備,而在雲端伺服器方面也可以透過網路直接雙向的傳輸與控制設備。
這是這一次用到的零件:Arduino UNO R3,WiFi Shield,Funduino,LED。三機合體,GO~~~~~
把它們依序統統疊在一起,呵呵呵
接下來把Arduino端的程式搞定,這裡有卡關了一陣子,因為參考Arduino官方網站的資料所撰寫的程式,一直沒辦法正確地啟動WiFi,後來只好去找WiFi晶片(cc3000)的Library來用,這裡也卡關了一下,因為一開始找的版本比較舊好像也不是很正常,百般的不順利
由於是利用WiFi來連結,所以要透過無線AP來連結Arduino,在這裡需要使用到AP的SSID與PASSWORD
由於要與上次範例中寫好的ASP.Net程式連線,將設備上的狀況同步給伺服器,在這裡有設定相關的網址連結,在這個範例中我是把LED裝在Pin8
利用網路來控制Arduino的方式,其實就是在Arduino上建立簡易的Web Server,接下來就是以HTTP傳輸的方式來傳送或接收資料就可以了,此範例中只要Arduino接收到"/50"就關LED燈,接收到"/51"就開LED燈,而在設定開關燈時會把狀況同步到伺服器上
Arduino部分的程式搞定,接下來寫行動裝置端的APP,這一部分相當的容易達成,只要連上Arduino的簡易Web Serve時順便把要傳的參數帶過去就行了,所以在APP中安排了一個隱藏的WebView
程式超簡單
在伺服器的部分,與上次的簡單的物聯網架構相同,主要有Asp.Net寫的網頁,一個主要的功能是接收資料、寫入資料到Sql Server的資料庫中;另一個是動態地控制遠端設備LED燈的開與關,展示遠端設備的資料圖表;還有一個是用來同歩遠端設備與資料庫內記錄的狀態值。
不管是行動裝置或網路上都可以開開關關的,呵!
寫完了,我好棒棒!