首頁 > 碎碎唸 > 開始打造自己的雲 MQTT

開始打造自己的雲 MQTT

2016年9月22日 發表評論 閱讀評論

要把設備的資料轉出,看來看去都得靠別人的雲,查了查,問了老頭。Hmmmmm

寫這篇時,其實已經完成一個概略的架構,這邊只是簡單的記錄一下。碰巧,在設定這些設備時,剛好去台北看展,同時間剛好有工業4.0展,順便逛了一圈。在一些攤位也看到了MQTT。當然,也看到之後也會記錄的node-red。

MQTT是一個轉送系統,所有節點如果要溝通,得在同一個Topic底下,如同人們聊天的話題。有發言者,也有訂閱者。可以同時有好幾個裝置當發言者,也可以有好幾個裝置同時訂閱。當發言的人設定這次發言的資料到MQTT Server,必須要標明主題(Topic),再來就是內容。當MQTT Server收到發言,將會把這訊息轉發給所有此Topic的訂閱者。

基本上MQTT不講究有沒有收到,若以Sensor資料多如牛毛,不要計較某一次的資料來看,就可以瞭解這個設計的道理。而若以一個大系統來看,千百萬個Sensor的資料,必須要讓封包越小越好,不要癱瘓網路。所以,在沒有QoS的情況下,MQTT省去許多確封包確認動作。所以,MQTT Server的確不太吃資源。

如果遇到重要的資訊必須得傳遞,比如金額交易、求救、重要任務交付,MQTT提供一個QoS的設定,可以讓資料嚴謹的傳達。當然,這就得看地方用。

我的系統,現在是用QNAP的nas裡的container裡跑MQTT Server,Container好東西,改天再記一筆。現在跑的Server是Mosquitto。連網控制板是用Partical來連結我的Sensor。Partical有相當友善的MQTT Library,程式撰寫基本上也只是短短幾行就可以搞定。目前資料是會被Node-red收集匯整到Node-red的Dashboard。而,WEB介面的程式,可以用php撰寫MQTT,所以,可以透過WEB介面,控制Partical上的開關。雖然沒有上次的Blynk那麼方便能直接動腳位驅動,但是簡單的幾行程式,就可以達到相同功能,所以,也不算麻煩。

對了MQTT的資料傳遞,使用json會更容易瞭解資料的屬性。這在web、node-red、Particle上都有相對的介面可以搭配。

幾個特殊用語記錄一下:

pub 發布

sub 訂閱

QoS 連線的嚴謹度

Categories: 碎碎唸 Tags: , , ,
  1. 目前尚無任何的評論。