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