Arduino MQTT
何謂MQTT : 可以參考底下的 link
- IBM
- MaxKit MQTT
簡單測試. 參考 瑞昱 Ameba 官網
目前 arduino 下常用的是這包, 官網也是從這包移植
https://github.com/knolleary/pubsubclient
---
這個範例是上傳 (publish) 一個 topic 資料,
另一端用 Google MQTTlens 訂閱 (subscribe) 此 topic, 就可以收到資料
而這個 MQTT broker, 用的是 IBM 示範主機 : iot.eclipse.org
---
安裝 , 可參考 之前 Windows 安裝方式,
偏好設定的板子管理員網址改成 :
https://github.com/neojou/arduino-ameba/raw/master/release/package_njiot.com_ameba_index.json
就可以用這包個人實驗性版本. 當然也很歡迎直接參考官網用官網版本來開發學習 ^_^
也可以使用實驗版. 實驗版安裝方式:
http://njiot.blogspot.tw/2015/12/arduino-windows-installation-by-using.html
---
材料準備
- Ameba x 1
1. 打開 MQTT 範例 : "範例" -> AmebaMQTTClient -> mqtt_basic
2. 連線 WiFi AP 設定
如 wifi 範例, 設定連線的 AP 名稱 和密碼
char ssid[] = "yourNetwork"; // AP 名稱
char pass[] = "secretPassword"; // AP 密碼
如果沒有密碼, 記得後面 WiFi.begin 只要帶一個 ssid 參數, 不用打 pass.
status = WiFi.begin(ssid);
3. 設定 MQTT : 可以先不改, 跑跑看
char mqttServer[] = "iot.eclipse.org";
char clientId[] = "AnyClientID"; // 此範例 client ID 可以隨便打.
char publishTopic[] = "YourTopicName"; // 可改成想設定的主題名稱
char publishPayload[] = "Ameba is the best"; // 可改成想帶的資料內容
char subscribeTopic[] = "TopicYouWant"; // 此範例還沒用到
4. 編譯並上傳執行, 可在 序列監控視窗看到
Attempting MQTT connection.... connected
5. 安裝 Google tool - MQTTLen 來看
我們使用chrome的外掛程式 MQTTLens當作client,你可以在google的擴充程式裡找到它
打開它之後,點選左邊的Connection的 “+”,並在填入這些欄位
- Connection Name: 用來辨識這筆連線,可以任意填, 如 TestMQTT
- Hostname: 這邊填入MQTT-Broker的server位置, “iot.eclipse.org”
- Client ID: 它預設會隨機給你一個 ID,先不用更改
填好之後,點選右下角的 “CREATE CONNECTION”
然後它會連上 “iot.eclipse.org”, 但由於我們沒有註冊想要傾聽的資訊,所以沒有任何訊息進來。我們在Subscribe那邊的Topic填入 “YourTopicName”, 並點選右邊的 “Subscribe”。
“iot.eclipse.org”此時會在 Ameba 上傳資料時, 把訊息送給 MQTTlens,代表已經成功連上。
此時我們等一下Ameba下次傳送資料的時間,或是將Ameba Reset並等它的第一次傳送資料,等到之後就會看到新一筆的資料 “Ameba is the best” 出現,這樣代表整個機制運作正常。
留言
張貼留言