iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 2
4
Modern Web

Webduino 不只是物聯網,智慧插座也可以很 Modern~系列 第 2

實戰智慧插座 02 - Webduino 是什麼?能吃嗎?

Webduino 顧名思義,就是 Web + Arduino 的合稱,早在 2012 年就已經有這個名詞出現,但一直都停留在撰寫 Arduino 韌體程式,網頁程式只是輔助的階段,開發模式仍然得透過 USB 連線燒錄,無法真正發揮 Web 的強大功能,即便是藉由一些 Wi-Fi 晶片讓 Arduino 上網,但仍然脫離不了傳統的晶片韌體開發模式。

直到 2015 年,使用 Webduino 技術的開發板,終於可以純粹使用 Web 的技術來控制,除了可以讓原本的 Arduino 上網,更可以「雲端更新韌體程式」,「用各種程式語言開發」以及「使用 Wi-Fi 控制」,不再只需要 C/C++ 才能進行開發,更因為網頁技術原本就是可以跨平台、跨裝置,所以也就不受限於 Arduino,舉凡 Resberry Pi、esp8266...等之類的開發板也都適用,正因如此,開始有更多的網頁工程師們參與開發,也才能讓「物聯網」這三個字發揮出出真正的價值與意義。


Webduino 的開發模式

要說是 Webduino 開發模式,不如說是「Web 開發模式」,簡單來說就是如果要「透過網頁」控制物聯網的開發板,就必須在網頁裡頭載入對應的 JavaScript,這樣才能使用對應的 API 來操控 開發板的腳位 ( 其實就跟網頁載入 JQuery 一模一樣 ),舉例來說,當我們已經載入了對應的 JavaScript,只要網頁裡綁定一個 led.on() 的事件,對應的 led 燈就會亮起。

webduino


連線控制方法

常見的物聯網連線控制的方法有四種:**網際網路控制 ( W-Fi )、區域網路控制 ( WebSocket )、藍芽 ( Bluetooth ) 和序列埠 ( Serial Port ),**這四種方式各有各的好處,舉例來說要在台灣控制美國的裝置,就必須使用 Wi-Fi 控制,如果要一次穩定的控制「手邊的」多台裝置,就可以考慮 WebSocket 和 Bluetooth 連線,如果只想單純接線控制,就可以採用 Serial Port 的做法。

webduino 連線控制方法


使用 Web 開發的優缺點

優點

  • 跨平台 ( 連 APP 都可以用網頁開發 )
  • 跨地區 ( 台灣也可以控制美國的東西,只要有網路 )
  • 一個網頁搞定所有事 ( 不用額外多學其它語言 )
  • 輕鬆結合各種網路雲端服務 ( 這應該不用解釋太多 )
  • 強大的後端資源 ( 繁瑣的運算就交給後端吧 )

缺點

  • 依賴網路,網路斷線就會壞掉 ( 痾...是的...網路斷線也沒辦法上 Facebook )
  • 大部份的人機構都不在行 ( 例如自己拆下家中插座維修?或是自己做個接電就會動的機器人?許多人也常因為機構設計不出來而放棄,包括我自己... XD )
  • 「網路斷線仍可自主運作」必須要裝置支援才可以 ( 才能在裝置上直接運行 JS )

不過雖然說網頁很依賴網路,但透過「藍芽」或是「序列埠」的方式,仍然可以在沒有網路的情形下,打開「本機的網頁」運行,但相對的就沒有跨地區以及遠端控制的能力了,以上介紹的幾種控制方式,現在ˋ市面上許多物聯網的開發板也陸續都有支援,而在這系列的文章裡,使用的是 Webduino 開發板,以下提供一些 Webduino 的開發資源,有興趣的人就可以參考看看。

最後補上一張 Webduino 和 Arduino 的差異圖給大家參考,下一篇將會開始智慧插座的組裝囉!

webduino Arduino 差異對照圖


上一篇
實戰智慧插座 01 - 前言、Web 工程師的物聯網
下一篇
實戰智慧插座 03 - 智慧插座的介紹與組裝
系列文
Webduino 不只是物聯網,智慧插座也可以很 Modern~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
pyk
iT邦新手 5 級 ‧ 2017-04-20 14:43:34

謝謝你的分享!
我本身是寫前端的,幾個月前開始接觸到Arduino,這個月自己買了一個Arduino UNO,
正想怎麼用javascript 和 前端技術結合XD!
/images/emoticon/emoticon07.gif

0
pyk
iT邦新手 5 級 ‧ 2017-04-20 14:43:36

謝謝你的分享!
我本身是寫前端的,幾個月前開始接觸到Arduino,這個月自己買了一個Arduino UNO,
正想怎麼用javascript 和 前端技術結合XD!
/images/emoticon/emoticon58.gif

我要留言

立即登入留言