(上圖是網路上找的)先前做了很多關於智慧居家設備控制的範例,主要都是以Android作業系統的行動裝置來進行的。其實行動裝置不見得是使用Android作業系統,有些行動裝置是使用Windows作業系統或Apple的iOS作業系統,為了不讓人說我偏愛Android作業系統(誰管你!),所以今天這個範例是要以在Windows作業系統中執行的程式透過藍牙來進行相關設備的控制,理論上應該要拿台surface pro 3來做為測試平台才炫,但我沒錢買,呵!(可惡,阿萬居然有一台,覺得不平)
沒有surface pro 3沒關係,我有大約是10年前買,目前執行Win7的超厚平板Asus R2H( 瑋瑋專用小畫家程式),不過今天忘了帶到學校
沒有surface pro 3,沒有Asus R2H沒關係,我可以用桌上型電腦來模擬整個操作的"意境"。(覺得好弱)
既然是要用藍牙來進行溝通控制,那就得有藍牙才行(廢話!),所以我要幫桌上型電腦加上"藍牙棒",以便進行設備控制。從抽屜中找出變成黏黏(外表的塗料變質了)的藍牙棒(覺得很噁)
看了一下保固貼紙是2006/11/12,哇,年紀不小了,而且還是藍牙1.2的版本。插上我的桌上型電腦(Win 8.1)後自已就把驅動程式抓好,感覺還不錯,原本還怕會沒驅動程式可以用。(覺得開心)
由於我組好的Arduino被學生拿走了,所以今天要嘗試控制的是出現在智慧家庭中多項設備的連結偵測控制中的Arduino Nano,以及出現在智慧居家中電力線通信的應用電力線通信器材。先把藍牙設備配對好
在裝置管理員中可以看到相對應的設備,由這裡可以看出電力線通信的藍牙(BTCOM)是對應到COM10,Arduino Nano的藍牙(HC-05)是對應到COM5
接下來準備寫WindowForm了,這時驚然發現,我的電腦沒有裝Visual Studio For VB.Net吔!
回想了一下,最後一次認真寫WindowForm的程式好像是4年前了([後續報告]瑋瑋專用小畫家程式),當時辦公室中的電腦並不是現在這一台,真是時光飛逝!(覺得老了)
底下把程式的重點稍微介紹一下,在作業系統中連結上的藍牙設備會轉成COM的資料傳輸方式,所以不要忘了使用相關的命名空間利於使用相關IO的物件
由於要使用兩個藍牙設備,所以建立了兩個SerialPort物件
連結藍牙的時候要注意一下設備的BaudRate,我的設備都是9600
利用Arduino Nano做的智慧插座是使用字元做為控制碼,而電力線通信的控制器是使用兩個位元組做為控制碼,所以在使用SerialPort.Write Method時就要善用它的overload
Arduino Nano中傳送資料的副程式如下
在電力線通信中傳送資料的副程式如下
這裡比較特別的是傳送資料是分兩次傳送,主要是美麗蓮老闆說他們的設備,連續送兩個位元可能會來不及接收,而有Lost的狀況出現,關於這一點,我並沒有實際去測測看(覺得很懶),直接就把資料拆兩次傳送,正常應寫成SerialPort2.Write(data, 0, 2)就ok了,簡單把重點說完了,底下是執行畫面
實際連上兩個藍牙設備測試後,可以正常運作,把燈開開關關的!(覺得無聊)
應該有人會問為什麼沒用iOS作業系統的設備來做範例呢?(誰想問啊!)
嘿嘿嘿,因為我活到這麼大的歲數都還沒有擁有過一件Apple的產品,有誰想要熱情贊助一下呢!(覺得期待)