本次實(shí)驗(yàn)是采用SIM7600CE 4G cat4 模塊進(jìn)行操作的,本模塊支持GNSS定位功能。也可以采用別的4G模塊,只要支持TCP傳輸就行。本模塊支持的AT命令相當(dāng)強(qiáng)大,擁有TCP&UDP命令集,HTTP命令集,MQTT命令集。
本模塊雖然已經(jīng)支持了MQTT功能,但是我們在實(shí)際研發(fā)項(xiàng)目中,為了保持項(xiàng)目的可移植性和兼容性,通常不會(huì)使用模塊自帶的MQTT命令集,而是用代碼實(shí)現(xiàn)MQTT上層功能,底層再調(diào)用模塊的TCP AT命令集。
一、MQTT簡介
MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。它是IBM 1999年發(fā)布的一個(gè)用于物聯(lián)網(wǎng)的協(xié)議.MQTT協(xié)議是輕量、簡單、開放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。
在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。
MQTT設(shè)計(jì)思想是開放、簡單、輕量、易于實(shí)現(xiàn)。這些特點(diǎn)使它適用于受限環(huán)境。
例如,但不僅限于此:網(wǎng)絡(luò)代價(jià)昂貴,帶寬低、不可靠。在嵌入設(shè)備中運(yùn)行,處理器和內(nèi)存資源有限。
該協(xié)議的特點(diǎn)有:
- 使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合;對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸;使用 TCP/IP 提供網(wǎng)絡(luò)連接;有三種消息發(fā)布服務(wù)質(zhì)量:小型傳輸,開銷很?。ü潭ㄩL度的頭部是 2 字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量;使用 Last Will 和 Testament 特性通知有關(guān)各方客戶端異常中斷的機(jī)制。
二、ONENET平臺(tái)
OneNET是由中國移動(dòng)打造的物聯(lián)網(wǎng)開放平臺(tái)。平臺(tái)能夠幫助開發(fā)者輕松實(shí)現(xiàn)設(shè)備接入與設(shè)備連接,快速完成產(chǎn)品開發(fā)部署,為智能硬件、智能家居產(chǎn)品提供完善的物聯(lián)網(wǎng)解決方案。
OneNET具備如下功能:
- 專網(wǎng)專號(hào):中國移動(dòng)基于物聯(lián)網(wǎng)特點(diǎn)打造的專業(yè)化網(wǎng)絡(luò)通道,提供“云-管-端”一體化的智能管道和支撐系統(tǒng),支持工業(yè)級(jí)、車規(guī)級(jí)的專網(wǎng)卡和通信模組;海量連接:基于多類型標(biāo)準(zhǔn)協(xié)議和API開發(fā)滿足海量設(shè)備的高并發(fā)快速接入;在線監(jiān)控:實(shí)現(xiàn)終端設(shè)備的監(jiān)控管理、在線調(diào)試、實(shí)時(shí)控制功能;數(shù)據(jù)存儲(chǔ):基于分布式云存儲(chǔ)、消息對(duì)象結(jié)構(gòu)、豐富的數(shù)據(jù)調(diào)用接口實(shí)現(xiàn)數(shù)據(jù)高并發(fā)讀、寫庫操作,有效保障數(shù)據(jù)的安全;消息分發(fā):將采集的各類數(shù)據(jù)通過消息轉(zhuǎn)發(fā)、短彩信推送、APP信息推送方式快速告知業(yè)務(wù)平臺(tái)、用戶手機(jī)、APP客戶端,建立雙向通信的有效通道;能力輸出:匯聚中國移動(dòng)短彩信、位置服務(wù)、視頻服務(wù)、公有云等核心能力,提供標(biāo)準(zhǔn)API接口,縮短終端與應(yīng)用的開發(fā)周期;事件告警:打造事件觸發(fā)引擎,用戶可以基于引擎快速實(shí)現(xiàn)應(yīng)用邏輯編排;數(shù)據(jù)分析:基于Hadoop等提供統(tǒng)一的數(shù)據(jù)管理與分析能力。
三、如何接入OneNet
用戶要接入 OneNet,
- 首先要在 OneNet 平臺(tái)上進(jìn)行注冊用戶、創(chuàng)建設(shè)備等一系列準(zhǔn)備工作,然后要通過網(wǎng)絡(luò)和 OneNet 服務(wù)器建立TCP 連接,最后將用戶數(shù)據(jù)按照一定的協(xié)議(比如:EDP、RestFul API,MQTT)打包上傳至 OneNet 平臺(tái),從而實(shí)現(xiàn)設(shè)備終端接入。用戶注冊:在接入 OneNet 之前,需在平臺(tái)網(wǎng)站注冊用戶賬戶,登陸網(wǎng)址:http://open.iot.10086.cn/,顯示如下界面:
如上圖:點(diǎn)擊右上角進(jìn)行注冊.
注冊完成后,進(jìn)行登錄,如下:
如上圖所示,點(diǎn)擊MQTT物聯(lián)網(wǎng)套件:
如上圖所示,選擇多協(xié)議接入:
如上圖,點(diǎn)擊添加產(chǎn)品,onenet平臺(tái)MQTT協(xié)議框架下分為產(chǎn)品ID和設(shè)備ID,可以建立多個(gè)不同的產(chǎn)品,每個(gè)產(chǎn)品擁有不同的設(shè)備,設(shè)備以ID號(hào)進(jìn)行區(qū)分。
如上圖所示進(jìn)行選擇,接下來還有操作系統(tǒng)選擇linux,網(wǎng)絡(luò)運(yùn)營商選擇移動(dòng),因?yàn)槟K使用的移動(dòng)的usim卡,可以根據(jù)自己模塊卡類型進(jìn)行選擇。
如上圖所示,再點(diǎn)擊添加設(shè)備:
點(diǎn)擊右上角添加設(shè)備,
點(diǎn)擊添加,
如上圖所示,產(chǎn)品添加成功后的截圖,顯示為離線狀態(tài),當(dāng)4G模塊有數(shù)據(jù)上傳的時(shí)候,就會(huì)顯示為在線。
四、單片機(jī)&4G模塊與ONENET服務(wù)器通信
下面講解一下如何用單片機(jī)通過串口AT命令驅(qū)動(dòng)4G模塊與ONENET服務(wù)器進(jìn)行連接,單片機(jī)采用STM32F103RBT6,開發(fā)環(huán)境采用MDK5.
如上圖所示,606923821表示設(shè)備ID,PZqqtD0O=5lNOex4NshJn0RLflY= 表示API KEY
如上圖,點(diǎn)擊查看,輸入手機(jī)號(hào)發(fā)送驗(yàn)證碼即可獲得,357092表示產(chǎn)品ID,上圖的產(chǎn)品ID是424250,可根據(jù)自己的情況進(jìn)行填寫。
CAT11表示鑒權(quán)信息,鑒權(quán)信息可以在設(shè)備列表-設(shè)備詳情進(jìn)行獲取。183.230.40.3, 6002 表示onenet平臺(tái)的服務(wù)器和端口號(hào),有了這些信息就可以用4G模塊和自己創(chuàng)建的產(chǎn)品進(jìn)行通信了。
如下圖所示:既可觀察設(shè)備的上下線情況,以及設(shè)備的數(shù)據(jù)
五、資料獲取及硬件
后臺(tái)回復(fù) mqtt 即可獲得對(duì)應(yīng)的源代碼功能。
文中單片機(jī) STM32F103RBT6 可以自行到某寶搜索, 推薦如下:
用的SIM卡可以用手機(jī)卡也可以用物聯(lián)網(wǎng)卡,
4g模塊通用的模塊即可。
有任何疑問,可以加一口君(yikoupeng)好友,直接討論。