Webduino Blockly 「積木方城市」:用 MQTT 打通所有 Webduino 開發板的「任督二脈」


目前 Webduino 共有四個開發板:Fly、馬克 1 號、Smart 與 Webduino Bit,前三個開發板,可以透過「開發板」積木的「串聯」功能,彼此連線控制,並進行資料傳輸!但是 Webduino Bit Blockly Beta 版則還沒有加入這個功能,只能暫時「孤軍奮戰」!(相信官方未來也會加入此功能!)

※ Blockly 體驗版與模擬器沒有支援 MQTT,必須先在 Webduino Cloud 雲端平台註冊登入,才有支援此功能喔!



不過,您不用擔心,其實在 Webduino 雲端平台的 Blockly 與最新推出的 Webduino Bit 教育版(有線上版與軟體版),都有支援 MQTT 的功能,只要透過「廣播」就能在不同的開發板間互相傳遞訊息!






當然,其他的裝置或是網站,只要知道如何使用 MQTT,一樣可以跟 Webduino 開發板做溝通!如此看來,只要會使用 MQTT,不只打通 Webduino 各開發板間的「任督二脈」,更可以成為 Webduino 與其他服務合作的管道!


一、什麼是 MQTT

Message Queueing Telemetry Transport(訊息佇列遙測傳輸),為 IBM 和 Eurotech 共同製定的通訊協議,目前主要是做為 IoT 物聯網裝置間,在有限網路頻寬與處理能力情形下的通訊協議。





二、MQTT 的使用

MQTT 主要是採用「發佈與訂閱」的機制,由發佈者先在伺服器上建立一個「Topic 主題」,例如「智慧家庭」,接著,只要訂閱者「訂閱此主題」,就可以在發佈者有訊息發佈時,收到此主題的訊息!

※ 建議您可以參考「網昱多媒體:MQTT教學(一):認識MQTT」文章,就可以對 MQTT 有更進一步的了解!




三、Web:Bit 網路廣播 (MQTT) 官方教學

目前官方網站上已經有針對「Web:Bit 網路廣播」製作了詳細的教學文件,大家可以先參考一下!






四、用 MQTT 實測 Blockly 與 Web:Bit 間的訊息傳遞

必須在同一個 MQTT 伺服器上建立與訂閱相同名稱的「Topic 主題」,裝置間才能彼此溝通喔!
  • Webduino 預設 MQTT 伺服器:wss://mqtt1.webduino.io/mqtt

1.先在 Web:Bit 建立如下圖的程式積木,Web:bit 的「頻道」即是「Topic 主題」,因為 Web:bit 是以年齡層較低的使用者為主,所以不需要特別指定 MQTT 伺服器,只能使用官方預設的主機。


2.在 Blockly 建立如下圖的程式積木



※ 20200817 補充:

在 2019 年 Webduino 已經修正 MQTT 預設積木如下圖,如果沒有要使用特定 MQTT 伺服器時,就不需要加入「連線至 MQTT 伺服器」積木,只要使用「MQTT」的第三個「當從 my/topic 收到訊息時…執行」積木,就會直接使用 Webduino 預設的 MQTT 伺服器來發送訊息!





3.兩邊的程式都執行後,馬上來看看吧!




經過這樣的簡單實測後,您應該可以體驗到 MQTT 訊息的方便性,不論是用來做環境數據的監測傳遞,或是裝置間的即時互動溝通,真的都相當便利喔!




※ 延伸閱讀:


留言