More  

小編的世界 優質文選 主機

想做物聯網遠程控制卻沒有服務器?這裏教你“白嫖”一個


2020年10月07日 - 主機小編 樂創客 
   

文/Edward

服務器和公網IP

跳出局域網之後的遠程控制,如果沒有中間服務器,那麼以太網基本就沒有用武之地了,所以選用一個可以接入公網的服務器就非常有必要了,可以幫助兩個遠程設備之間建立通訊轉發。

公網服務器的選取方式有三種:

1、購買一套服務器設備,向網絡運營商租用一個靜態IP地址,注冊一個域名以接入英特網。同時需自己搭建整個服務器的架構(如移植操作系統,配置端口等)和上層服務(如移植Apache,安裝數據庫,開發請求響應後台程序等)。

2、租用一套雲服務器ECS((Elastic Compute Service),購買完成雲服務器之後,服務器的基礎架構就有了(如操作系統,運行環境等),只需要後台自己安裝一些服務即可。如果要支持WebAPI調用,還需要去購買一個域名。

3、選用第三方提供商的公有雲。現在很多運營商和大公司都提供有公有雲供設備接入,如阿裏雲,京東微聯,國美雲等。這些公有雲都是免費或成本低廉的。

上面三種公網服務器的方案,第一種無疑是最耗資金和人力的,除了需要考慮帶寬和並發量之外,安全性也是需要花費大價錢去維護的。除了技術因素之外,場地,能耗等也是一大資金支出。因此目前為止除了銀行,政府,大型互聯網公司之外很少會去自己搭建和維護一個服務器群組了。

第二種方案看著雖然價格低廉,但是如果需要搭建一個靈活,高效,高並發的服務器也需要投入很大的資金和人力。

而選用第三種方案公有雲雖然開發的服務不及第二種方式靈活,但無疑是最方便和成本低廉的。

公有雲

目前大型的公有雲有很多,以下列出了幾個大型公有雲接入協議的對比。

這些雲平台中無疑是Wing和OneNET平台是最適合做公有雲開發和測試的。

OneNET

OneNET定位為PaaS服務,即在物聯網應用和真實設備之間搭建高效、穩定、安全的應用平台:面向設備,適配多種網絡環境和常見傳輸協議,提供各類硬件終端的快速接入方案和設備管理服務;面向應用層,提供豐富的API和數據分發能力以滿足各類行業應用系統的開發需求,使物聯網企業可以更加專注於自身應用的開發,而不用將工作重心放在設備接入層的環境搭建上,從而縮短物聯網系統的形成周期,降低企業研發、運營和運維成本。

OneNET的資源模型

具體的協議和接入推薦

這裏我們選用MQTT協議接入設備。

第一步:申請一個OneNET的賬號以及實名認證。https://open.iot.10086.cn

第二步:登錄OneNET平台,並且進入開發者中心。

第三步:進入MQTT產品創建連接,注意需要從“多協議接入入口”進入,而不是從“MQTT物聯網套件(新版)”界面進入。

第四步:選擇MQTT(舊版),點擊“添加產品”。

第五步:在右側彈出的“添加產品”界面,輸入產品的信息後點擊確定。

第六步:產品創建完成之後,在彈出的對話框上面點擊“立即添加設備”。

進入設備添加界面之後,我們需要記錄下“產品ID”這一項,在後續的操作中會應用到。

第七步:你以為這個界面是給你添加設備的?你錯了,你需要切換到設備界面,才可以去添加設備。點擊界面左側的“設備列表”即可添加設備了。

第八步:添加你的產品,這裏我們一次性添加兩個產品用於後續的收發實驗。

創建設備時的設備名稱和鑒權信息可以根據自己的喜好填寫,但是在實際應用中為了保持鑒權信息的唯一性,可以使用網卡的MAC地址或者手機的IMEI信息。填寫完成之後,點擊“添加”就可以完成設備的添加了。

當然產品和設備的創建,都可以使用HTML API的POST和GET方法去實現。

創建完成之後,我們可以看到設備列表裏的兩個設備了。

點擊“詳情”就可以看到每個設備的具體信息。

第九步:測試MQTT。至此,我們可以自己開發代碼,或者使用中移動推薦的“MQTTSimulate Device”軟件來測試MQTT的消息訂閱和發布了。

下載連接:https://open.iot.10086.cn/doc/multiprotocol/book/develop/mqtt/device/doc-tool.html

MQTT測試

“MQTT Simulate Device”軟件下載完成之後,打開這個軟件。

打開完成之後,我們可以看到上面有一些信息需要填入,填入後即可連接我們剛剛注冊好的設備。首先先來連接第一個設備TestDev1。點擊設備列表中,TestDev1的“詳情”,找到“設備ID”和“鑒權信息”。

依次將TestDev1的“設備ID”和“鑒權信息”填入調試軟件的DeviceID和AuthInfo。

接著,點擊控制中心右側的產品概況,找到我們剛剛記錄下來的產品ID,將其填入軟件的ProductID中。

為了保證連接不被中斷,後面的KeepAlive我們需要勾選AutoKeepAlive。服務器IP地址和端口Port是OneNET特有的,不需要修改。填寫完成之後,點擊Connect即可完成連接。

連接完成之後,我們就可以在後台的“設備列表”裏面看到這個模擬設備已經在線了。

用同樣的方法創建一個TestDev2的虛擬設備。

兩個設備都在線了之後,我們就可以創建發布消息了,在TestDev1的虛擬設備中創建一個訂閱消息。

接著在TestDev2中去對“TestDev2Subpublish”主題進行發布。

接著,我們就可以看到TestDev1的“收到的Topic”裏面,看到TestDev2裏面發布的消息了。

  大家在看