MQTT遠端遙控

Description

Description
作者:黃文玉

前言


前幾天看到徐爸寫了有關MQTT的應用,今天趕快來測試一下,本文重做一次徐爸的文章內容,並記錄下來!如此一來,就可以利用手機或另一台DIFI透過網路來控制另一台DIFI了,真正做到物聯網的應用!

 

一、認識MQTT

先要知道 MQTT的Publisher(發布者), Broker(代理人)和Subscriber(訂閱者),以下資料取自 【MQTT教學(一):認識MQTT】(內有MQTT的詳細說明)

根據MQTT 3.1.1版本規格書的描述,MQTT是一種基於「發布∕訂閱」機制的訊息傳輸協定(MQTT is a Client Server publish/subscribe messaging transport protocol),我們可以把它想成雜誌發行和訂閱的機制。MQTT訊息發送端,相當於雜誌出版社,雜誌出版之後並不直接寄給消費者,而是交給經銷商或者書店一般的代理人(broker),來統籌管理發行和訂閱事宜。每一個訊息來源(刊物)都有個唯一的主題名稱(刊物名稱)。

代理人是個伺服器軟體(本文採用iot.eclipse.org),向伺服器發送主題的一方是發布者(publisher),從伺服器獲取主題的一方則是訂閱者(subscriber)。以下圖為例,傳送感測器資料的一邊是發布者,接收感測器資料的一邊則是訂閱者。每個感測器∕微控器的訊息都需要有個主題名稱以利識別。

MQTT的主題(Topic)名稱:MQTT主題名稱是UTF-8(萬國碼)編碼的字串,我們可以自行決定主題名稱,例如,傳送溫度的訊息主題可命名成「溫度」、傳送亮度的訊息主題叫做「照度」…等等。主題名稱也支援類似檔案路徑的階層式命名方式

二、利用一台DIFI按按鍵來遙控另一台DIFI的LED燈

角色:

Broker(代理人):這邊採用 iot.eclipse.org 這台伺服器

Publisher(發布者):一台DIFI

Subscriber(訂閱者):另一台DIFI

Topic(主題):difi_led

DIFI (Publisher(發布者))的程式  (一台DIFI按按鍵)

一樣採用iotBlockly來寫程式,網址:https://iotblockly.com/iotblockly_v1.1/demos/code/index.html

先開啟MQTT Publisher 的範例程式

修改程式內容

DIFI (Subscriber(訂閱者))的程式

一樣採用iotBlockly來寫程式,網址:https://iotblockly.com/iotblockly_v1.1/demos/code/index.html

先開啟MQTT Subscriber 的範例程式

修改程式內容

結果:

當第一台DIFI按下按鍵,另一台DIFI的綠色LED燈亮起

但有時不是很穩定

重點:兩者的client ID不能設一樣!!有些APP client ID就直接取一個亂數,都不會跟別人一樣!!

三、利用手機來遙控DIFI的LED燈

角色:

Broker(代理人):這邊採用 iot.eclipse.org 這台伺服器

Publisher(發布者):手機,採用 IoT MQTT Dashboard 的APP來發布訊息到Broker

Subscriber(訂閱者):DIFI

Topic(主題):difi_led

手機端(Publisher(發布者))

安裝 ioT MQTT Panel 的APP

建立一個連線

新增一個PANEL

DIFI (Subscriber(訂閱者))的程式,同上,不做修改

手機按下APP的ON時,DIFI的綠色LED燈亮起

手機按下APP的OOFF時,DIFI的綠色LED燈滅掉

測試手機端(Publisher(發布者))的另一個APP

安裝 MQTT Dash 的APP

建立一個連線

新增一個PANEL

DIFI (Subscriber(訂閱者))的程式,同上,不做修改

手機按下APP的ON時,DIFI的綠色LED燈亮起

手機按下APP的OOFF時,DIFI的綠色LED燈滅掉

四、利用手機來遙控DIFI的繼電器

DIFI (Subscriber(訂閱者))的程式,有關繼電器的部份,修改如下:

五、利用DIFI的溫度來來觸發DIFI的繼電器

作法同上

但要避免溫度在接近值時,一直啟動與關閉,所以等待1分鐘,再量測溫度

黃 文玉

黃 文玉

現職為高雄市左營區新上國小電腦老師。
黃 文玉

Latest posts by 黃 文玉 (see all)

    Contact

    Contact
    • Category
      No Category

    Project簡述

    Project簡述
    • 簡述
      有關MQTT的應用,今天趕快來測試一下!如此一來,就可以利用手機或另一台DIFI透過網路來控制另一台DIFI了,真正做到物聯網的應用!
    • 作者
      黃文玉
    上一篇:
    :下一篇

    您的姓名 〈需填寫〉

    您的電子郵件信箱 〈需填寫〉

    主旨

    您的信件內容