標題: 安信可A9/A9G GPRS模塊10分鐘使用機智云開發(fā)M2M應用教程 [打印本頁]

作者: 機智小子    時間: 2018-1-3 10:34
標題: 安信可A9/A9G GPRS模塊10分鐘使用機智云開發(fā)M2M應用教程
前言安信可 A9/A9G GPRS(GPS) 模塊因為有GPRS,相比WIFI,它可以隨時隨地聯(lián)網(wǎng),實現(xiàn)24小時穩(wěn)定在線,不受地理位置限制,而且提供基站定位和GPS定位功能。提供AT固件使用起來也非常簡單,幾條命令就快速配置成功。
另外,AT指令固件集成了機智云接入?yún)f(xié)議,使用簡單的幾條命令就可以快速接入機智云,從而在非常短的時間內(nèi)實現(xiàn)M2M應用。
因此這里介紹如何使用A9/A9G模塊快速建立一個簡單的M2M應用。
目標準備



A9G






A9





A9/A9G pudding開發(fā)板(鏈接稍后放出)





物聯(lián)網(wǎng)卡





USB轉(zhuǎn)串口模塊

開發(fā)過程


注冊登錄機智云




產(chǎn)品




產(chǎn)品創(chuàng)建




創(chuàng)建數(shù)據(jù)點




數(shù)據(jù)點




應用數(shù)據(jù)點

ATOK


READY AT




設備在線




上下線信息

定長產(chǎn)品:
[td]
命令數(shù)值(十六進制)數(shù)值(十進制)含義



ACTION_CONTROL0x011App控制命令,設備收到手需要根據(jù)數(shù)據(jù)改變狀態(tài),然后上報狀態(tài)
ACTION_READ_STATUS0x022App讀取狀態(tài),設備收到后上報狀態(tài)
ACTION_READ_STATUS_ACK0x033App讀取狀態(tài)后,設備返回狀態(tài)
ACTION_REPORT_STATUS0x044設備主動上報狀態(tài)
ACTION_TRANS_RECV0x055接收到MQTT原始數(shù)據(jù)
ACTION_TRANS_SEND0x066MQTT原始數(shù)據(jù)發(fā)送
ACTION_PUSH_OTA0xfe254OTA
變長產(chǎn)品:
[td]
命令數(shù)值(十六進制)數(shù)值(十進制)含義



ACTION_CONTROL0x1117App控制命令,設備收到手需要根據(jù)數(shù)據(jù)改變狀態(tài),然后上報狀態(tài)
ACTION_READ_STATUS0x1218App讀取狀態(tài),設備收到后上報狀態(tài)
ACTION_READ_STATUS_ACK0x1319App讀取狀態(tài)后,設備返回狀態(tài)
ACTION_REPORT_STATUS0x1420設備主動上報狀態(tài)
ACTION_TRANS_RECV0x1521接收到MQTT原始數(shù)據(jù)
ACTION_TRANS_SEND0x1622MQTT原始數(shù)據(jù)發(fā)送
ACTION_PUSH_OTA0xfe254OTA
發(fā)送數(shù)據(jù)的方式有三種格式,類似AT+CIPSEND,如下圖,更詳細說明見AT指令文檔



設備推送數(shù)據(jù)

在后臺可以看到數(shù)據(jù)已經(jīng)成功推送



后臺數(shù)據(jù)記錄

上面的數(shù)據(jù)推送是隨便推送的,在這里沒有任何含義!
那么如何推送數(shù)據(jù)點呢,我們創(chuàng)建了一個數(shù)據(jù)點,且因為是變長產(chǎn)品,根據(jù)協(xié)議(最后會詳細說明,這里可以先不深入探究),我們需要發(fā)送兩個字節(jié)的數(shù)據(jù),報告燈為開:0x0101,報告燈為關:0x0100;因為是設備主動報告數(shù)據(jù)而且產(chǎn)品是變長,action為20:



上傳數(shù)據(jù)點


在后臺可以看到,推送數(shù)據(jù)點成功




后臺數(shù)據(jù)




機智云App




掃描二維碼




已綁定設備




設備頁面




設備收到消息(這里收到ACTION為18的數(shù)據(jù)即讀取命令,數(shù)據(jù)內(nèi)容沒顯示是因為是非ASCII碼)

點擊控制開關,設備會收到控制命令



點擊App中的開關,發(fā)送控制命令




設備收到控制命令(這里收到ACTION為17的數(shù)據(jù)即控制命令,數(shù)據(jù)內(nèi)容沒顯示是因為是非ASCII碼)

如果設備推送設備狀態(tài)(定長ACTION為4,變長ACTION為20)或者響應App的查詢命令推送狀態(tài)(定長ACTION為3,變長ACTION為19),App界面也會實時更新狀態(tài)



設備推送數(shù)據(jù)


在App可以看到數(shù)據(jù)發(fā)生了變化



App燈從關變成了開狀態(tài)

在后臺也可以看到數(shù)據(jù)內(nèi)容




后臺數(shù)據(jù)內(nèi)容

關于機智云的定長數(shù)據(jù)和變長數(shù)據(jù)定長定長就是每次傳輸都傳輸所有數(shù)據(jù)點的信息(相對簡單,如果編程經(jīng)驗比較少,或者數(shù)據(jù)量不大或者通信頻率不高建議直接選擇這種方式),比如建了2個數(shù)據(jù)點,長度分別為4個字節(jié),則每次推送都要推送兩個數(shù)據(jù)點的數(shù)據(jù)即8個字節(jié),如圖:



定長傳輸

變長變長相對來說復雜一些!
在推送數(shù)據(jù)時,由于數(shù)據(jù)時變長的,服務器需要知道硬件上傳的是哪些數(shù)據(jù)點的數(shù)據(jù),所以需要有標志位來表示傳輸?shù)氖悄男⿺?shù)據(jù)點,所以在數(shù)據(jù)的開頭會有數(shù)據(jù)點標志位,每位代表一個數(shù)據(jù)點(位數(shù)不足8位高位補0補足8位,即傳輸?shù)膯挝皇亲止?jié))。舉個例子:
創(chuàng)建了一個數(shù)據(jù)點,數(shù)據(jù)點類型為bool類型(1位),則傳輸數(shù)據(jù)應該為:
0x0100(False) 或者 0x0101(True)
創(chuàng)建了兩個數(shù)據(jù)點,數(shù)據(jù)點類型為bool類型,
當只傳輸?shù)谝粋數(shù)據(jù)點:
0x0100(False) 或者 0x0101(True)
當只傳輸?shù)诙䝼數(shù)據(jù)點:
0x0200(False) 或者 0x0201(True)
當傳輸兩個數(shù)據(jù)點:
0x0300(False False) 或者 0x0301(False True)或者0x0302(True False)或者0x0303(True True)
同理,三個數(shù)據(jù)點標志位占3位,比如同時傳輸三個數(shù)據(jù)點數(shù)據(jù),且三個數(shù)據(jù)點的數(shù)據(jù)都為1,數(shù)據(jù)為:0x0707
如果數(shù)據(jù)點不是bool類型,比如有一個bool 類型和一個2個字節(jié)的數(shù)據(jù)



兩個數(shù)據(jù)

可以使用虛擬設備可以方便地進行調(diào)試,:




虛擬設備


實際發(fā)送的數(shù)據(jù)為:



后臺數(shù)




作者: 向日葵男人    時間: 2020-10-28 10:30
這個挺好,就是沒有圖片啊,
作者: 向日葵男人    時間: 2020-10-28 10:31
寫的不錯!就是看不到圖片啊
作者: nmgbtzyf    時間: 2021-7-29 12:57
AT+GIZSTART="345e7431159646bbaa96e3ff50227bfe","a7276d3d6ea043d181f8017586e41ae9"

+GIZWITS: register fail

+CME ERROR: 50
Dns,fail,try url

failure, pelase check your network!

作者: nmgbtzyf    時間: 2021-7-29 12:58
這樣的錯誤,登陸失敗是什么意思

作者: nmgbtzyf    時間: 2021-7-29 12:58
可以打電話CCID都沒問題
作者: 毛豆111111    時間: 2022-1-26 14:24
nmgbtzyf 發(fā)表于 2021-7-29 12:57
AT+GIZSTART="345e7431159646bbaa96e3ff50227bfe","a7276d3d6ea043d181f8017586e41ae9"

+GIZWITS: regis ...

層主解決了這個問題沒有,同樣遇到這樣的問題了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1