身份驗(yàn)證
由于一個(gè)采集端僅需在云平臺(tái)新增一次設(shè)備,為防止重復(fù)新增或設(shè)備注銷后無(wú)法連接,采集端每次聯(lián) 網(wǎng)成功后將首先向云平臺(tái)發(fā)送查詢請(qǐng)求,驗(yàn)證失敗才需要新增設(shè)備。查詢?cè)O(shè)備詳情報(bào)文結(jié)構(gòu)如表 2 所示:
查詢成功后,云平臺(tái)將向采集端返回包含錯(cuò)誤代碼、創(chuàng)建時(shí)間、在線狀態(tài)、設(shè)備 ID、產(chǎn)品編號(hào)、最后 登錄時(shí)間、數(shù)據(jù)流模板、設(shè)備名稱等信息的響應(yīng)報(bào)文。
MQTT 協(xié)議
本設(shè)計(jì)中采集端和報(bào)警端均采用 MQTT 協(xié)議與云平臺(tái)進(jìn)行數(shù)據(jù)交互。MQTT 協(xié)議是一種基于發(fā)布/訂 閱模式的輕量級(jí)通訊協(xié)議,憑借低代碼量、低開銷、低帶寬占用等優(yōu)勢(shì),廣泛應(yīng)用于物聯(lián)網(wǎng)、移動(dòng)應(yīng)用開 發(fā)[13]。 MQTT 協(xié)議的特色在于發(fā)布/訂閱的消息傳遞機(jī)制,在此模式下,多個(gè)消息發(fā)布者和多個(gè)消息訂閱者通 過建立在消息代理服務(wù)器中的特定主題作為中介相互通信,發(fā)布者和訂閱者之間不需要建立直接通信連接, 與代理服務(wù)器的通信也互不干擾[14]。本設(shè)計(jì)中,OneNET 云平臺(tái)作為消息代理服務(wù)器,包含“$dp”和 “ERR_CODE”兩個(gè)主題,前者是云平臺(tái)數(shù)據(jù)上報(bào)專用主題,后者是自定義的用于發(fā)布報(bào)警信息的主題。當(dāng) 二氧化碳培養(yǎng)箱產(chǎn)生報(bào)警時(shí),采集端作為消息發(fā)布者向“ERR_CODE”主題發(fā)布包含溫度、二氧化碳濃度、 氧氣濃度、報(bào)錯(cuò)代碼等數(shù)據(jù)的消息,平臺(tái)將該主題下的消息自動(dòng)推送給訂閱了該主題的報(bào)警端,由報(bào)警端 解析數(shù)據(jù)并向用戶發(fā)送報(bào)警短信。
報(bào)警通知
SIM800C 模塊發(fā)送短信有兩種模式,分別是 Text 模式和 PDU 模式。Text 模式收發(fā)短信代碼簡(jiǎn)單,實(shí) 現(xiàn)容易,但缺點(diǎn)是無(wú)法收發(fā)中文短信;PDU 模式支持所有手機(jī)系統(tǒng),可以使用任意字符集,但缺點(diǎn)是內(nèi)容 需要經(jīng)過特殊編碼,生成 PDU 字符串發(fā)送,操作復(fù)雜。綜合考慮,本設(shè)計(jì)選用 Text 模式發(fā)送報(bào)警短信。 ESP-12E 通過串口發(fā)送 AT 指令控制 SIM800C 模塊發(fā)送短信的主要流程[15]:1)主機(jī)向串口發(fā)送“AT”進(jìn) 行同步測(cè)試,SIM800C 返回“OK”表示連接正常;2)發(fā)送“AT+CMGF=1”選擇文本模式發(fā)送短信,返回“OK” 表示設(shè)置成功;3)發(fā)送“AT+CMGS="手機(jī)號(hào)"”設(shè)置目標(biāo)用戶手機(jī)號(hào),返回“>”表示準(zhǔn)備接收短信文本;4)發(fā) 送短信文本,以十六進(jìn)制 ASCII 碼“1A”結(jié)尾;5)發(fā)送成功返回“+CMGS:xx\r\n\r\nOK”,“xx”表示發(fā)送序列 號(hào)(0~255 循環(huán)),“\r”、“\n”為轉(zhuǎn)義字符,表示回車、換行。如無(wú)特殊說(shuō)明,AT 指令字符串均以回車換行結(jié)尾.