本週超有意思的投稿!是我的同事、也是我的學生 Jack 所開發的 zigbee 開源專案!為什麼這個專案有意思呢?因為 ZigBee 這個討人厭的東西,向來都是大家認為開發門檻比較高的傢伙,光是把 spec 搞懂就不知道得花上多少精神跟時間(當然 spec 訂的細,換到的就是各家產品的相容性囉)。
雖然現在 IoT 通訊協定還是戰的一踏糊塗,但大家有沒有發現,ZigBee 系列產品在消費型市場已經悄悄地出現在我們身邊了呢!在智慧家庭的應用上,藍牙系列商品還沒辦法做到這樣子呀!既然 ZigBee 商用產品已經越來越容易買到,於是引發了 Jack 的想法:
「是不是可以做一個讓 WebApp 和 Mobile App 開發者可以立馬投入物聯網應用設計的東西呢?反正周邊產品都這麼容易買到了!完全可以利用這些東西,快速地兜出應用來啊!」
「價值並不在於周邊電路跟韌體的設計,反而是如何能很快地把心中所想的應用打造出來才是重點吧!然後也要能夠很容易地把 ZigBee 接到雲端,嘿嘿,搞不好可以多幹些好玩的事!」
當然!Jack 花了一段蠻長的時間一直在搞這個鬼東西,很高興最近看到他的專案漸漸穩定下來,也開始有歐美、台灣公司以及 web 開發者在使用這個超有意思的東西囉!以下就讓我們來看看 Jack 的介紹吧!
(因為用了 7688,所以它除了是 ZigBee Coordinator 之外,同時也是一台 Gateway,而且又是一台 WebApp 服務器,然後超迷你,7688 又便宜 XDDD 簡直是 CP 值大破表呀!)
哈囉~大家好,我是 Jack,今天想跟大家分享怎麼樣把 LinkIt Smart 7688 拿來當作 ZigBee 的閘道器!要組織出一個 ZigBee 機器網路,當然除了 7688 之外,還需要準備一支 TI 的 CC2531 USB Dongle 來負責興起網路,然後跟周邊的 ZigBee 節點做通訊啦!有了與裝置溝通的橋樑,就只缺一個給使用者的前端介面啦~所以閘道器上也有 WebApp 的 Server,以下是簡單的 Demo ~~
(我做的前端介面沒有很優,不過只是個小小的 demo 啦!請大家不要介意呀~ 我相信有超多厲害的前端開發者,隨便都可以弄出個比我這漂亮幾萬倍的介面 =.=,所以我就不要硬跟大家比賽 GUI 的事啦,因為我一定輸的啊!哈哈哈~)
一、準備材料
二、軟體工具
三、WebApp Demo
1. 啟動閘道器
ssh 進入 LinkIt Smart 7688,在專案資料夾下執行 npm start 後,可以在 server 端的 console 看到 ZigBee 網路目前的基本訊息(上圖),另外再透過瀏覽器連到 http 的伺服器,可看到 WebApp 的介面與運作情況(下圖)。
2. 開放裝置入網
一切就緒後,點擊網頁右上角的 PERMIT JOIN 按鈕,讓周邊 ZigBee 節點可以加入網路。當裝置入網時,server 端會顯示入網裝置的長位址 (IEEE Address),網頁上也會出現相對應的圖案。
3. 遠端控制周邊裝置
點擊插座的圖案,即可控制智慧插座開啟或關閉。控制電燈的方法也相同。
4. 周邊裝置當前狀態
閘道器接收到最新感測到的溫溼度值時,會即時更新至網頁上。其他周邊裝置狀態發生改變,也一併會顯示在網頁上。
最後附上 Demo 影片,以上就是我小小的分享,謝謝大家~
後記:
以往大家覺得開發難度較高的 ZigBee,現在 Jack 確實把門檻給降低了不少。當一堆公司還在煎熬著開發 ZigBee 家用伺服中心的時候,Jack 用 node.js 幫 Web 工程師們打開了一道門,我想這對於一個年輕的小伙子來說,也算是做了一件蠻有工程價值的事情吧!能夠把整個 idea 實現,然後又開源出來,我覺得還蠻搖滾的! XD
看到令人懷念的 "PERMIT JOIN" 倒數...哈哈
ReplyDelete是用 protocol buffer 嗎?
情人總是老的好... XDDD
Delete這不是用 protobuf 啊~ 底層不是用 TI 那一包~~
This comment has been removed by the author.
Delete眼X沒看到 zigbee-shepherd,太混了我~哈哈
Delete這包真的是佛心來的~讚讚讚
This comment has been removed by the author.
ReplyDeletehttps://www.zigbee2mqtt.io 類似的功能,只是他晚了你們一年。如果你們專案有繼續,也是不錯的!
ReplyDelete