(上圖是網路上找的)連續寫了好幾篇有關於物聯網簡單架構的應用,在眾出應用中智慧家庭(Smart Home)是物聯網時代的一大重點應用。智慧家庭提倡家中各種電子產品相互連結的概念,使得 Wi-Fi 成為直覺的選項之一,許多人認為 Wi-Fi在智慧家庭風潮下必能風雲再起,也的確有許多智慧家庭廠商及產品選用 Wi-Fi 作為無線連結的方式,將 Wi-Fi 納入智慧家庭的願景,包括 Google 與蘋果(Apple)在內,但是耗電量問題,成為 Wi-Fi 一統智慧家庭江山的隱憂,也因為Wi-Fi耗電的問題,許多智慧家庭廠商改用藍牙做為互連的方案(網路上看到的資訊)

想像一個應用的情境,家中有許多的感應器,當偵測到光線太暗時自動把燈光打開,溫度太高時自動打開空調系統,偵測到可能發生災害(火災,CO2過高等)自動發出警訊.....等等。在這個例子中以一組Arduino做為環境資訊的偵測與警示中心,一組Arduino Nano做為各式設備開關控制中心。

友訊董事長高鶴軒說,「物聯網起飛最重要的因素就是智慧型手機,我們使用手機控制智慧車、智慧家庭與智慧手環,手機是物聯網裝置的操控中樞。」,所以我作的這個例子就是以行動裝置為中樞,利用藍牙連結多樣設備進行必要的控制行為。

在Arduino的部份我是使用Arduino UNO R3與Funduino,接上了LED、藍牙(HC05)、蜂鳴器、光敏電阻(由上而下)。

在Arduino Nano的部份(含bluetooth module+電源module)是直接買智慧插座實習套件,這應可自行買零件組裝焊接,不過我對於自己焊接的技巧非常沒信心,也怕測試的過程110V會電死我自己(呵呵呵),所以就買現成的


在Arduino Nano部份的程式碼,主要就是由藍牙接收資訊(兩個文字),第一個文字是1到4分別指定那一個插座,二個文字是0與1表關或開


若不做其他應用,可用如下我寫的程式來直接控制各插座電源的開關




不過這個範例中並不是把Arduino Nano這一部份只做為智慧插座使用,而是搭配具有各式感應器的Arduino,做為各式設備開關控制中心。在Arduino這一部份因為要做偵測與警示中心,所以感應器所偵測到的數值會送到行動裝置與雲端伺服器,以便對即時各式設備開關控制中心傳送相關指令,而在警示的部分會在異常數值出現時發出嗶嗶聲,由於此部分的程式是用上次的簡單的物聯網架構修改的,所以稍微說明一下不同的地方。蜂鳴器是裝在Pin8

光敏電阻是接在A1,當數值小於50時,蜂鳴器會嗶~~~~,表示有異常狀況(發生火災!?)

傳送的資料量有改變,所以修改了陣列的大小

在行動裝置(手機)部份的APP程式也是由上次在簡單的物聯網架構所完成地去進一步修改的,所以稍微說明一下不同的地方。新增了一個BluetoothClient以便同時連結兩設備,多一個顯示光敏電阻的數值

針對第二個藍牙設備多增的程式碼

針對需多接收的數值(光敏電阻值)多加相對應的程式碼,並且判斷若是數值大於700,表示太暗了就傳資訊給Arduino Nano把電燈打開,若數值小於400,表示太亮了就傳資訊給Arduino Nano把電燈關掉

上傳資料到伺服器的部份與先前類似

而在雲端伺服器的部份,主要是針對多出來的資料修改了一下資料庫的結構,其他的程式碼幾乎與上次的WiFi版簡單的物聯網架構相同,主要有Asp.Net寫的網頁,一個主要的功能是接收資料、寫入資料到Sql Server的資料庫中;另一個是動態地控制遠端設備的開與關,展示遠端設備的資料圖表;還有一個是用來同歩遠端設備與資料庫內記錄的狀態值。

今天太認真了(希望學生也能這麼認真),一天就做了兩個範例,晚上要早一點洗洗睡才對得起自己!(看著活蹦亂跳的瑋瑋,看來應該是很難達成,Orz)