目錄
1. 百度天工物接入
1.1 物接入簡介
物接入(IoT Hub)是面向物聯網領域開發者的全託管雲服務,通過主流的物聯網協議(如MQTT)進行通信,可以在智能設備與雲端之間建立安全的雙向連接,快速實現物聯網項目。支持億級併發連接和消息數,支持海量設備與雲端安全可靠的雙向連接,無縫對接天工平臺和百度雲的各項產品和服務。物接入分爲設備型和數據型兩種項目類型,我們在這裏使用數據型項目類型,傳輸一些溫溼度數據,同時可以無縫對接時序數據庫TSDB、物可視等,將數據實時顯示出來,同時我們採用MQTT 協議與雲端進行通訊。
1.2 使用 IOT HUB
最好的使用指導莫過於官方幫助文檔,因此,在此簡要說明。
詳見官方文檔:https://cloud.baidu.com/doc/IOT/index.html
在使用物接入服務前,必須要創建一個百度雲賬號用於管理我們的設備,所有的設備信息都是在雲端後臺進行管理的,地址:https://console.bce.baidu.com/iot2/hub/。
在使用IoT Hub 之前應先創建計費套餐並設定每個月收發消息的流量額度,每個用戶只能創建一個計費套餐,所有項目將共享該套餐的額度,目前IoT Hub 的計費是很便宜的,每個月的前1000000 條消息是免費的,更多的消息數量請自行參考IoT Hub 的收費說明。
登錄後主界面
1.2.1 創建項目
IoT Hub 是用於物聯網設備的後臺管理的,將設備接入IoT Hub 的第二步就是創建一個項目,每個項目會對應一個接入點(endpoint),一個項目就表示一個完整的物接入服務,首先登錄物接入控制檯頁面:https://console.bce.baidu.com/iot2/hub/project/list,點擊“創建項目”,填寫需要創建 IoT Hub 服務的項目名稱、選擇項目類型爲數據型,並提交即可,創建的項目,默認具有多種通信方式,我們暫時只關注TCP 連接方式即可,採用MQTT 協議與雲端交互的,端口號是1883 。
補充說明一點:通過項目可以將不同項目的設備進行隔離和管理,一個項目下允許有多個用戶(設備),用戶與身份進行綁定,而每個身份需要綁定一個策略,而策略下可以創建多個不同的主題,因此一個設備可以訂閱多個不同的主題,並且同一個項目下的主題是共享的,所有的設備均可進行訂閱。
1.2.2 創建策略
點擊“endpoint01”,進入項目裏面,首先創建一個策略(簡單來說就是主題),輸入對應的名稱與主題,選擇發佈與訂閱權限,當創建完成後,項目下的設備就可以訂閱這個主題。
1.2.3 創建身份與創建用戶
身份是設備連接IoT Hub 的重要途徑,這裏麪包含了祕鑰,標識着設備能否通過IoT Hub 的驗證,這也是安全保障的主要操作,首先點擊“身份列表”,再點擊“創建身份”,然後根據自己的信息進行填寫,在這裏要注意的是需要勾選密碼驗證,再選擇之前我們創建的策略進行綁定(如果沒有則必須創建),當身份創建完成時候生成的祕鑰是用於開發板連接IoT Hub 的必要條件,記住不能丟失,如果丟失了就找不回來了,在創建的時候就把它保存好。
在創建用戶的時候,只需要把用戶名設置好,然後再綁定身份即可,這樣子一個設備就對應到雲端了,並且可以向策略中設置的主題發佈消息和訂閱主題.
當所有的東西都創建完成,我們點擊身份操作中的“測試連接”,在網頁上測試一下我們能不能正常進行MQTT 通信、發佈與定閱主題,在頁面中輸入剛剛保存的祕鑰,點擊“connect”進行連接測試,如果前面的步驟全部做完,並且祕鑰是正確的 ,就可以發現我們的連接是正常的,然後我們訂閱一下之前創建策略時候的主題名字,再向這個主題發送一個消息,消息的內容由自己定義.
1.2.4 MQTT 軟件測試連接
MQTT.fx 是一款基於Eclipse Paho,使用Java 語言編寫的MQTT 客戶端工具,支持通過Topic 訂閱和發佈消息。打開軟件,點擊設置,來配置客戶端的基本信息,填寫用戶名與密碼,進行連接.
官方下載鏈接:http://mqttfx.jensd.de/index.php/download
配置完成之後,可以嘗試連接,點擊Connetc,當連接成功後,下面的Publish 與Subscribe 等選項是可以選擇的,那麼我們點擊訂閱選項Subscribe,輸入訂閱的主題,然後點擊subscribe,可以發現已經成功訂閱 。
但是此時還未有消息,因此我們需要去Publish 選項中向這個主題發佈消息,當發佈成功後,訂閱的主題就會回顯出服務器發送給客戶端的消息。
1.2.5 MQTT 軟件測試連接
不做太多說明,可以參考MQTT移植及JSON,數據通過JSON發到IOT HUB。
1.2.6 IOT HUB的規則引擎和數據可視化
什麼是規則引擎?簡單來說就是一箇中間層,它在軟件上的實現能省去很多if/else 等判斷的嵌套。但是我們現在說的IoT Hub 規則引擎是爲了讓業務邏輯更加清晰,從海量的物聯網數據篩選出適合的數據,並將其進行儲存、轉發、彙報等操作,讓業務規則也變得更加簡單,因爲在物聯網中,數據量是非常巨大的,業務規則更是多種多樣,IoT Hub 規則引擎就是需要將海量的數據與千奇百怪的業務規則變得簡單,以適應業務規則的多樣性,我們只需要在後臺設置一些規則,就能讓數據產生不同的作用。而物聯網產品會產生大量的數據上報到雲端,這些數據往往對應着不同的應用分析場景,如監控廠區的溫度溼度監控點,每分鐘都會有溫度和溼度數據傳往雲端,對於這些數據,我們往往希望它們發揮不同的作用,並且實時性要非常好,以便在出現問題的時候第一時間能得到告警作用,例如以下應用場景:
1. 實時告警異常的數據,如溫度溼度過高或者過低;
2. 分析數據,統計兩個小時內的溫度最大最小和均值等;
3. 將全部的數據做冷備份以便查詢;
4. 對去除異常數據之後的正常數據做數據分析和預測等等。
而規則引擎就是通過靈活的設定規則,將設備傳上雲端的數據,送往不同的數據目的地(如監控告警設備、時序數據庫TSDB、Kafka、對象存儲BOS 等)以達到不同的業務目標。
詳細使用見官方文檔。
數據可視化,顧名思義,瞭解一下,詳細見官方文檔。
2. 阿里雲物聯
既然懂得專門連接百度天工物接入,那麼連接阿里雲物聯其實也是一樣的,因爲都是基於MQTT 協議進行通信的,首先打開阿里雲物聯:https://iot.console.aliyun.com/product,創建賬號並登陸,而且阿里雲物聯是需要通過實名認證才能使用的。相對於百度天工物接入,阿里雲物聯的安全性更好,因爲即使是客戶端連接服務器都需要各種驗證,還使用哈希加密算法進行加密。
2.1 使用阿里雲物聯
首先在“產品”信息中創建一個產品,每個產品下允許有多個設備,產品就是設備的集合,通常是一組具有相同功能定義的設備集合。例如:產品指同一個型號的產品,設備就是該型號下的某個設備。操作步驟“創建產品”->“高級產品”->填寫產品信息,聯網方式選擇“以太網”,這樣子一個產品就創建完成。
然後在“設備”選項中添加一個設備,比如我們添加一個“dev_temp_hum”設備,是開發板的溫溼度數據採集設備,在創建完成後,會有設備證書,這個一定要保存好,丟失了就找不回來了 .
最後我們定義一個主題(Topic 類列表),讓設備能對這個主題進行訂閱或者發佈操作,回到“產品”選項,選擇“Topic 類列表”,定義“Topic 類列表”,再填寫“Topic 類列表”的信息即可,注意選擇設備的操作權限“發佈和訂閱”,這點很重要,如果沒有權限,設備是無法對這個主題進行操作的,至此,一個產品與設備就創建完成了,當然,爲了更好調試,我們可以嘗試創建多個設備,以備在後續進行調試。
2.2 MQTT FX連接測試
在創建完成後,可以通過MQTT 軟件來測試一下能否正常連接,在這一步之前必須已在物聯網平臺控制檯中創建產品和設備,並獲取設備證書信息(ProductKey、DeviceName和DeviceSerect)。
參數看起來很簡單,但是它的組成卻不簡單,簡單介紹,詳細見官方文檔。
小工具鏈接:https://download.csdn.net/download/xiewinter/11838002
把信息全部填寫完畢,可以測試連接,點擊Connect,然後在訂閱選項Subscribe 中,輸入訂閱的主題“/a1MZHjK2SCF/fire_temp_hum/user/temp_hum”,這個主題可以在“設備”選項中的“Topic 列表”得到,然後點擊subscribe,可以發現已經成功訂閱,然後對這個主題進行發佈操作,我們就能看到訂閱已經收到發佈的消息,表明MQTT 通信成功 .
2.4 阿里雲物聯的規則引擎
與百度的規則引擎作用是一樣的,可以將收到的消息進行不同的業務處理,比如我們也利用規則引擎監控開發板的穩定數據。首先,打開規則引擎設置頁面:https://iot.console.aliyun.com/rule/list,點擊創建一個規則,填寫基本的規則信息,並且選擇數據的格式是JSON 格式.
詳情見官方文檔。在此不做贅述。
鏈接阿里雲例程:https://download.csdn.net/download/xiewinter/11838011
注:隨着IOT 發展,各種物聯平臺很多,但大同小異。