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的擴充程式裡找到它
2-1-5
打開它之後,點選左邊的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” 出現,這樣代表整個機制運作正常。



留言

熱門文章