A6(GPRS)
1、電話接收
相關指令
ATDxxxxx;//xxx為電話號碼
示例
打電話
ATDxxxxxxxxxxx OK +CIEV: "CALL",1 +CIEV: "SOUNDER",1 //響鈴 +CIEV: "SOUNDER",0 //掛斷 +CIEV: "CALL",0 BUSY //顯示BUSY
接到短話
(若想使用來電提醒功能,請使用at+clip=1;注意,該功能必須需要你的SIM卡自帶來電提醒功能) RING RING
短信設置
相關指令
AT+CPMS="SM","SM","SM" //設置短信存儲單元 AT+CMGF=0/1 //設置短信格式,1為text格式讀取,0為pud格式讀取 AT+CMGR=x //讀取短信內容,x為第幾條短信 AT+CMGL=4/ALL //查看短信列表 PUD格式下讀取參數為4, txt格式要發AT+CMGL=ALL AT+CMGD=1 //刪除短信。 若果使用AT+CMGD=1,4 則為刪除所有短信
示例
AT+CPMS="SM","SM","SM" //設置短信存儲單元,同時也可以查看短信容量 +CPMS: 0,50,0,50,0,50 OK AT+CMGF=1 //設置為TXT格式讀取 OK
+CIEV: "MESSAGE",1 //接收到短信,內容包括電話號碼和時間以及內容 +CMT: "+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111
+CIEV: "MESSAGE",1 +CMT: "+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222
AT+CMGF=0 //設置為PUD格式接受 OK +CIEV: "MESSAGE",1 //以PUD接收到短信,內容包括電話號碼和時間以及內容 +CMT: ,23 0891683110602305F0240D91687186935218F500007101909061452303B3D90C +CIEV: "MESSAGE",1 +CMT: ,23 0891683110602305F0240D91687186935218F500007101909071202303341A0D
AT+CMGL=4 //列出所有短信-> pud格式,使用這條命令參數為4 +CMGL: 1,1,,23 0891683110602305F0240D91687186935218F500007101909041252303B1580C +CMGL: 2,1,,23 0891683110602305F0240D91687186935218F50000710190906152230332990C +CMGL: 3,1,,23 0891683110602305F0240D91687186935218F500007101909061452303B3D90C +CMGL: 4,1,,23 0891683110602305F0240D91687186935218F500007101909071202303341A0D OK
AT+CMGF=1 //設置為TXT格式讀取 OK
AT+CMGL=ALL //列出所有短信-> pud格式,使用這條命令參數為ALL +CMGL: 1,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111 +CMGL: 2,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222 +CMGL: 3,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:54+08" 333 +CMGL: 4,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:17:02+08" 444 OK
AT+CMGR=1 //讀取第一條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111 OK
AT+CMGR=2 //讀取第二條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222 OK
AT+CMGR=3 //讀取第三條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:54+08" 333
AT+CMGD=1 //刪除第一條短信 OK
AT+CMGD=2 //刪除第二條短信 謹記 刪除第一條后,第二條內容不會自動跑到第一條,而是依然占據第二條短信,但是當所有短信都刪除后,再接收到短信后,會自動排列到第一條信息的位置 OK
AT+CMGD=3 //刪除第三條短信 OK
AT+CPMS="SM","SM","SM" //查看一下短信容量 +CPMS: 1,50,1,50,1,50 OK
AT+CMGL=ALL //刪除了3條之后,查看短信列表,只剩1條 +CMGL: 4,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:17:02+08" 444 OK
AT+CMGD=1,4 //刪除所有短信 OK
發送短信
AT+CMGF=1 //文本方式發送 AT+CMGS="xxxxxxxxxxx(電話號碼)" //返回>,然后輸入要發送的txt內容並且以CTRL-Z(16進制為1a)結束即可
另外可以使用PUD的編碼方式發送信息: AT+CMGS=XX; //要發送的字節數 >xxxxxxxxxxxxxxxxxxxxx //PUD碼(最后以CTRL-Z(16進制為1a)結尾) +CMGS: 0 OK
獲取基站下發時間
相關指令 AT+CCLK?
指令解讀 該指令在內部進行處理,在模塊初始化時,模塊獲取了基站下發的時間后,將該時間存儲在芯片的RTC寄存器中,使用AT+CCLK?即可讀取出時間。
注意使用聯通卡獲取的時間是有問題的。
示例
AT+CCLK ? +CCLK: "17/11/27,02:49:47+08" //該時間為零時區時間,17年11月27日2點49分47秒。+08為時區,我們這里是東八區,所以本地時間是10點49分47秒 OK
基站定位
相關指令 AT+CREG?
示例
AT+CREG=1 //=1的時候是查詢網絡狀態,模組上電默認為1 OK AT+CREG? +CREG: 1,1 AT+CREG=2 //=2的時候是基站定位 OK AT+CREG? +CREG: 2,1,"xxxx","xxxx",2 // 中間參數為16進制 在相關網站查詢:http://www.gpsspg.com/bs.htm
HTTP
以百度為例(前面的步驟要按流程配置,一定不能忘記)(HTTPGET不可用,會在下一版本進行更新) 示例
AT+CCID AT+CREG? AT+CGATT=1 AT+CGDCONT=1,"IP","CMNET" AT+CGACT=1,1 創建連接 at+cipstart="TCP","www.baidu.com",80 兩種發送請求方式: 1.透傳發送 AT+CIPTMODE=1 //進入透傳 OK GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n //發送GET請求信息 2.非透傳模式 AT+CIPSEND=45//發送的字節長度 > GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n //出現上述箭頭后,發送GET請求信息
多鏈接
示例
at+ccid //查詢ccid,確定是否有sim卡 +SCID: SIM Card ID: 898602#4221620070426 OK
at+creg? //查詢是否注冊上網絡 +CREG: 1,5 //第一個參數1表示允許注冊入網;第二個參數5表示已注冊,處於漫游狀態,如果是1的話,表示已注冊本地網絡,出現其他參數表示不正常 OK
at+csq //查詢信號 +CSQ: 31,99 OK
at+cgatt=1 //附着網絡 +CTZV:16/07/06,11:34:17,+08 OK
at+cgdcont=1,"IP","cmnet" //設置pdp參數 OK
at+cgact=1,1 //激活該pdp OK
at+cipstatus? //查詢ip連接情況,共有8路,實際最多支持同時開4路tcpip連接 +CIPSTATUS:0,IP GPRSACT 1,IP INITIAL 2,IP INITIAL 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
at+cipstart="TCP","101.37.36.158",60000 //連接TCP服務器,用戶請修改自己的服務器 CONNECT OK OK
at+cipsend=5,"qwert" //發送5個字節的字符,注意此種方式只支持可見字符 OK
at+cipsend=5 //發送6個字節的數據,此種方式可以發送任意二進制數據 > OK
at+cipsend //發送字符,以CTRL+Z(16進制的0x1a)結尾 > qwert OK +CIPRCV:4,test //收到服務器發送過來的4個字節,內容是"test",注意也可能是二進制的任意數據
at+cipstatus? //插敘ip鏈路狀態 +CIPSTATUS:0,CONNECT OK 1,IP INITIAL 2,IP INITIAL 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
at+cipclose //關閉該鏈路 OK
at+cipmux? //查詢是否開啟多連接 +CIPMUX:0 OK
at+cipmux=1 //開啟多鏈接 OK
at+cipstart="TCP","121.41.97.28",60000 //發起第一個TCP連接 +CIPNUM:0 //只有點開啟多鏈接的時候才會有,0為返回的鏈路號 CONNECT OK OK
at+cipstart="TCP","121.41.97.28",60001 //發起第二路連接 +CIPNUM:1 //只有點開啟多鏈接的時候才會有,1為返回的鏈路號 CONNECT OK OK
at+cipstart="TCP","121.41.97.28",60003 //發起第三路連接 COMMAND NO RESPONSE! //指令超時,由於服務器沒有開啟這個端口 at+cipstatus? +CIPSTATUS:0,CONNECT OK 1,CONNECT OK 2,TCP/UDP CONNECTING 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
at+cipclose=3 //關閉鏈路號為3的連接 +CME ERROR:50 //第三路連接沒有建立所以返回錯誤 at+cipclose=2 //關閉鏈路號為2的連接 OK
at+cipstart="TCP","121.41.97.28",60002 //發起新的連接 +CIPNUM:2 CONNECT OK OK
at+cipstart="UDP","121.41.97.28",60006 //發起新的UDP連接 +CIPNUM:3 UDP BIND OK OK
at+cipstatus? +CIPSTATUS:0,CONNECT OK //可以看到0-3鏈路號都被占用,建立了4路IP連接 1,CONNECT OK 2,CONNECT OK 3,BIND OK 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
at+cipsend=0,5,qwert //鏈路0發送5個字節的字符,“qwert”,本指令只支持可見字符 OK
+CIPRCV:0,4,test //鏈路0,收到服務器發送過來的4個字節,“test”,本指令支持接受任意數據
at+cipclose=2 關閉鏈路2 OK at+cipstatus? 查詢鏈路信息
+CIPSTATUS:0,CONNECT OK 1,CONNECT OK 2,IP CLOSE 3,BIND OK 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
at+ciphcfg? //查詢心跳包配置 +CIPHCFG:0,10,00,00 1,10,00,00 2,10,00,00 3,10,00,00 4,10,00,00 5,10,00,00 6,10,00,00 7,10,00,00 OK
at+ciphcfg=0,1,112233 //設置鏈路0的心跳發送包為16進制的0x11,0x22,0x33 OK
at+ciphcfg? +CIPHCFG:0,10,112233,00 1,10,00,00 2,10,00,00 3,10,00,00 4,10,00,00 5,10,00,00 6,10,00,00 7,10,00,00 OK
at+ciphmode=0,1 //啟動鏈路0的心跳包 OK
at+cipsend=3,5,qwert //鏈路3發送5個字節的字符,“qwert” OK
at+cipclose=3 //關閉鏈路3 OK
+TCPCLOSED:1 //服務器關閉鏈路1 OK
at+cipstatus? +CIPSTATUS:0,CONNECT OK 1,IP CLOSE 2,IP CLOSE 3,IP CLOSE 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
+TCPCLOSED:0 //服務器關閉鏈路0 OK
at+cipstatus? +CIPSTATUS:0,IP CLOSE 1,IP CLOSE 2,IP CLOSE 3,IP CLOSE 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
透傳模式+心跳設置(單鏈接)
示例
AT+CCID //查詢SIM ,CCID用於判斷是否插卡 +SCID: SIM Card ID: 898602#4221620070426 OK
AT+CREG? //查詢網絡注冊情況 +CREG: 1,5 //第一個參數1表示允許注冊入網;第二個參數5表示已注冊,處於漫游狀態,如果是1的話,表示已注冊本地網絡,出現其他參數表示不正常 OK
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CTZV:16/05/27,06:33:39,+08 //基站下發的時間信息GMT時間和時區 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
at+cipstart="TCP","120.76.213.49",60000 //連接TCP服務器,用戶請修改成自己的服務器 CONNECT OK OK
AT+CIPHCFG? //查詢心跳包的設置 +CIPHCFG:10,00,00 //心跳包的默認設置10,表示10秒發送一次心跳包,00表示發送的包內容,默認是空的,第二個00表示接受的回應包內容,默認也是空的,這2個包必須設置,否則啟動不了心跳包 OK
AT+CIPHCFG=1,55FAFBEE //設置發送心跳包內容,長度不能低於3個字節,16進制格式 OK
AT+CIPHCFG=2,55AFBFEE //設置接受回應包內容,長度不能低於3個字節,16進制格式 OK AT+CIPHCFG=0,15 //設置發送心跳包的時間15秒鍾 OK
AT+CIPHMODE=1 //啟動心跳包,該命令只能在連接服務器成功以后用 OK
AT+CIPTCFG? //查詢透傳默認參數 +CIPTCFG:3,200,50,2000 //3表示最大嘗試發送失敗次數,200是重發延時,單位毫秒,50是觸發發送的包長度,2000是觸發發送時間,單位毫秒,從輸入最后一個字符算起,延至超過2000毫秒,系統也會自動發送數據 OK
AT+CIPTMODE=1 //啟動透傳模式,該指令也是只能在連接服務器成功以后使用 OK SEND DATA TO SERVER //發送到服務器的數據 SEND DATA TO A6 //收到的服務器的數據
+++ //退出透傳模式,和前一次發送時間超過2秒,輸入+++,就可以退出透傳模式注意,如果是單片機發送,不要添加換行符,如果是安信可串口調試助手發送,取消掉發送新行的選項,總之不要有換行符 OK
AT+CIPHMODE=0 //退出心跳包模式 OK
A9/A9G(GPRS)
模組軟復位及關機
AT+RST=X //X=1表示軟重啟,X=2表示關機
示例
AT+RST=1 //軟件重啟 Init... +CREG: 2 +CTZV:18/03/30,06:59:43,+08 +CREG: 1 +CTZV:18/03/30,06:59:44,+08 OK A9/A9G V02.00.20180327RC Ai_Thinker_Co.LTD READY
示例2:
AT+RST=2 //運行這條指令模組會進入管斷狀態,前提是模組的供電管教是VBAT3.5V~4.2V
電話接收
相關指令
ATDxxxxx;//xxx為電話號碼
示例 打電話
ATD10086 OK +CIEV: "CALL",1 +CIEV: "SOUNDER",1 //響鈴 +CIEV: "SOUNDER",0 //掛斷 +CIEV: "CALL",0 BUSY //顯示BUSY
接到短話
(若想使用來電提醒功能,請使用AT+CLIP=1;注意,該功能必須需要你的SIM卡自帶來電提醒功能) RING RING
短信設置
相關指令
AT+CPMS="SM","SM","SM" //設置短信存儲單元 AT+CMGF=0/1 //設置短信格式,1為text格式讀取,0為pud格式讀取 AT+CMGR=x //讀取短信內容,x為第幾條短信 AT+CMGL=4/"ALL" //查看短信列表 PUD格式下讀取參數為4, txt格式要發送AT+CMGL="ALL" AT+CMGD=1 //刪除短信。 若果使用AT+CMGD=1,4 則為刪除所有短信
示例
AT+CPMS="SM","SM","SM" //設置短信存儲單元,同時也可以查看短信容量 +CPMS: 0,50,0,50,0,50 OK AT+CMGF=1 //設置為TXT格式讀取 OK
+CIEV: "MESSAGE",1 //接收到短信,內容包括電話號碼和時間以及內容 +CMT: "+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111
+CIEV: "MESSAGE",1 +CMT: "+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222
AT+CMGF=0 //設置為PUD格式接受 OK +CIEV: "MESSAGE",1 //以PUD接收到短信,內容包括電話號碼和時間以及內容 +CMT: ,23 0891683110602305F0240D91687186935218F500007101909061452303B3D90C +CIEV: "MESSAGE",1 +CMT: ,23 0891683110602305F0240D91687186935218F500007101909071202303341A0D
AT+CMGL=4 //列出所有短信-> pud格式,使用這條命令參數為4 +CMGL: 1,1,,23 0891683110602305F0240D91687186935218F500007101909041252303B1580C +CMGL: 2,1,,23 0891683110602305F0240D91687186935218F50000710190906152230332990C +CMGL: 3,1,,23 0891683110602305F0240D91687186935218F500007101909061452303B3D90C +CMGL: 4,1,,23 0891683110602305F0240D91687186935218F500007101909071202303341A0D OK
AT+CMGF=1 //設置為TXT格式讀取 OK
AT+CMGL="ALL" //列出所有短信-> txt格式,使用這條命令參數為ALL +CMGL: 1,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111 +CMGL: 2,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222 +CMGL: 3,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:54+08" 333 +CMGL: 4,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:17:02+08" 444 OK
AT+CMGR=1 //讀取第一條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:14:52+08" 111 OK
AT+CMGR=2 //讀取第二條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:25+08" 222 OK
AT+CMGR=3 //讀取第三條短信 +CMGR: "REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:16:54+08" 333
AT+CMGD=1 //刪除第一條短信 OK
AT+CMGD=2 //刪除第二條短信 謹記 刪除第一條后,第二條內容不會自動跑到第一條,而是依然占據第二條短信,但是當所有短信都刪除后,再接收到短信后,會自動排列到第一條信息的位置 OK
AT+CMGD=3 //刪除第三條短信 OK
AT+CPMS="SM","SM","SM" //查看一下短信容量 +CPMS: 1,50,1,50,1,50 OK
AT+CMGL="ALL" //刪除了3條之后,查看短信列表,只剩1條 +CMGL: 4,"REC READ","+86xxxxxxxxxxx",,"2017/10/09,09:17:02+08" 444 OK
AT+CMGD=1,4 //刪除所有短信 OK
發送短信
AT+CMGF=1 //文本方式發送 AT+CMGS="xxxxxxxxxxx(電話號碼)" //返回>,然后輸入要發送的txt內容,發送數據,之后請取消”發送新行”選項,勾選"HEX(16進制發送)"選項,最后發送0x1a即可。
另外可以使用PUD的編碼方式發送信息: AT+CMGS=XX //要發送的字節數 >xxxxxxxxxxxxxxxxxxxxx //PUD碼(最后的操作方式和txt操作方式相似) +CMGS: 0 OK
基站定位(含簡化指令)
相關指令
AT+CREG? //查詢網絡的注冊狀態 At+LOCATION=X(簡化版) 注意,使用基站定位功能之前,必須先AT+CGATT=1; AT+CGDCONT=1,"IP","cmnet" ;AT+CGACT=1,1;三條指令完成附着網絡以及激活之后才可執行。
示例
優化前指令-> AT+CREG=1 //=1的時候是查詢網絡狀態,模組上電默認為1 OK AT+CREG? +CREG: 1,1 AT+CREG=2 //=2的時候是基站定位 OK AT+CREG? +CREG: 2,1,"xxxx","xxxx",2 // 中間參數為16進制,第一個字符串得到的是LAC,第二個字符串得到的是CI 基站定位可以到該網站查詢:http://www.gpsspg.com/bs.htm
簡化版指令->單獨使用AT+LOCATION=1,不必設置AT+CREG=2, AT+LOCATION=1(return:<latitude>,<longitude>OK) xx.xxxxx,xxx.xxxxxx(小數點后固定為6位) OK 直接返回經緯度 無需轉換 ->at+location這句指令需要聯網獲取地理位置信息,所以時間的長久取決於網絡情況的好壞,而且在使用前如果沒有手動附着激活的話,它會自動去做這兩件事情,要的時間就更長了。想要可靠有快速,建議先使用at+cgatt=1; at+cgdcont=1,"IP","cmnet" ;at+cgact=1,1;附着激活並保證具備聯網能力
獲取基站下發時間
相關指令 AT+CCLK?
指令解讀 該指令在內部進行處理,在模塊初始化時,模塊獲取了基站下發的時間后,將該時間存儲在芯片的RTC寄存器中,使用AT+CCLK?即可讀取出時間。
注意使用聯通卡獲取的時間是有問題的。
示例
AT+CCLK ? +CCLK: "17/10/07,02:50:55+08" //該時間為零時區時間,17年10月7日2點50分55秒。+08為時區,我們這里是東八區,所以本地時間是10點50分55秒 OK
HTTP
相關指令:
AT+HTTPGET=<url> //統一資源標志符,可以是域名或者是IP地址 AT+HTTPPOST=<url>,<content_type>,<body_content> //<content_type> : 網絡文件的類型和網頁的編碼的內容類型 //<body_content> : body的文本
示例
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+HTTPGET="http://wiki.ai-thinker.com/gprs_download" //連接網站,請求網站資源 OK 緊接着接受的是服務器響應的信息
MQTT
示例:
AT+CGATT=1 //附着網絡 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+MQTTCONN="www.anthinkerwx.com",1883,"12345",120,0 //客戶端等待和連接服務器,同時發送CONNECT OK// 注意:(MQTT的服務器需要自己搭建)
AT+MQTTPUB="test","124563",0,0,0 //客戶端向服務端傳輸一個應用消息 +MQTTPUBLISH: 1, test, 6, 124563 OK
AT+MQTTSUB="test",1,0 //客戶端向服務端發送SUB報文用於創建訂閱 OK
AT+MQTTDISCONN //客戶端發給服務端的DISCONNECT控制報文,表示客戶端正常斷開連接
透傳模式和心跳包的設置
Init…
+CREG: 3 +CIEV: service, 0 +CIEV: roam, 0 +CREG: 3 +CIEV: service, 1 +CIEV: roam, 0 +CREG: 1 +CREG: 0 +CREG: 1 A9 V01.03.20170926R //固件版本信息 Ai Thinker Co.LTD READY //初始化完成標志 前面的+CIEV: service, 1等等,是網絡注冊信息,在網絡情況不好的時候,會在READY后面輸出,沒有影響。出現 +CIEV: service, 1;+CREG: 1;表明SIM初始化成功,網絡正常。 初始化過程中如果沒有檢測到SIM卡,初始化信息中會出現NO SIM CARD
AT+CCID //查詢SIM ,序列號唯一,可以用來判斷卡是否正常,如果是從安信可購買的物聯網卡,可以用此序列號在官網查詢電話號碼,充值繳費等等。 +CCID: 898607B1101700823754 OK
AT+CREG=1 // =1的時候是查詢網絡狀態,模組上電默認為1 AT+CREG? //查詢網絡注冊情況 +CREG: 1,5 //第一個參數1表示允許注冊入網;第二個參數5表示已注冊,處於漫游狀態,如果是1的話,表示已注冊本地網絡,出現其他參數表示不正常 OK
AT+CSQ //查詢信號強度 第一個參數為信號強度值 +CSQ: 31,99 //信號強度取值為0-31,信號強度最好保持在23以上 OK
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+CIPSTART="TCP","122.114.122.174",46875 //連接TCP服務器, CONNECT OK //此處為安信可透傳雲服務器,請自行修改端口 OK
AT+CIPHCFG? //查詢心跳包的設置 +CIPHCFG:0,, //心跳包的默認設置發送心跳包時間間隔為0,后面為空 OK
AT+CIPHCFG=1,"55FAFBEE" //設置發送心跳包內容,長度不能低於3個字節,16進制格式 OK
AT+CIPHCFG=2,"55AFBFEE" //設置接受回應包內容,長度不能低於3個字節,16進制格式 OK
AT+CIPHCFG=0,15 //設置發送心跳包的時間15秒鍾 OK
AT+CIPHCFG? //查詢心跳包的設置 +CIPHCFG:15,55FAFBEE,55AFBFEE //通過上面指令設置發送間隔為15秒,心跳包與回應包后兩位參數 OK
AT+CIPHMODE=1 //啟動心跳包,該命令只能在連接服務器成功以后用 OK
AT+CIPTCFG? //查詢透傳默認參數 +CIPTCFG:3,200,50,2000 //3表示最大嘗試發送失敗次數,200是重發延時,單位毫秒,50是觸發發送的包長度,2000是觸發發送時間,單位毫秒,從輸入最后一個字符算起,延至超過2000毫秒,系統也會自動發送數據 OK //請注意,心跳包的設置不是必須的,如果想自己發送心跳包或者不發送心跳包,可以不設置這些模組自帶的心跳包指令。另外,心跳包的發送包設置后,是模組自動發送的,不需要人為控制,但是回應包是需要服務器設置發給模組的,即需要寫代碼定時返回數據給模組。如果模組超過三次以上沒有接受到服務器發回來的回應包,模組會自動關閉心跳包,模組會接收到這樣的數據 +CIPHMODE:0 ; OK.
AT+CIPTMODE=1 //啟動透傳模式,該指令也是只能在連接服務器成功以后使用 OK
SEND DATA TO SERVER //發送到服務器的數據 SERVER SEND DATA TO DEVICE //收到的服務器的數據
+++ //退出透傳模式,和前一次發送時間超過2秒,輸入+++,就可以退出透傳模式 注意,如果是單片機,不要加回車換行符,如果用的是安信可的串口調試工具,請取消勾選發送新行 OK
AT+CIPHMODE=0 //退出心跳包模式 OK
多鏈接
示例
AT+CCID //查詢CCID值 用來檢測是否插入SIM、 +CCID: 898602B8191790486325 //此ID唯一
AT+CREG? //查詢SIM的網絡注冊狀態 +CREG: 1,5 //第一個參數1表示允許注冊入網;第二個參數5表示已注冊,處於漫游狀態,如果是1的話,表示已注冊本地網絡,出現其他參數表示不正常 OK
AT+CSQ //查詢信號強度 第一個參數為信號強度值 +CSQ: 31,99 //信號強度取值為0-31,信號強度最好保持在23以上 OK
AT+CSQ //查詢信號強度 第一個參數為信號強度值 CSQ: 31,99 //信號強度取值為0-31,信號強度最好保持在23以上 OK
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" /設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+CIPSTATUS? //查詢ip連接情況,共有8路,實際最多支持同時開4路tcpip連接 +CIPSTATUS: 0,IP GPRSACT 1,IP INITIAL 2,IP INITIAL 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK AT+CIPSTART="TCP","122.114.122.174",36779 //連接TCP服務器,用戶請修改自己的服務器 CONNECT OK OK AT+CIPSEND=5,"qwert" //發送5個字節的字符,注意此種方式只支持可見字符 OK
AT+CIPSEND=5 //發送5字節的數據,此種方式可以發送任意二進制數據 12345 OK
AT+CIPSEND//發送字符,以CTRL+Z(16進制的0x1a)結尾 qwert OK
+CIPRCV:21,Server Send Data Test //收到服務器發送過來的數據,內容也可以是二進制任意數據 AT+CIPSTATUS? //查詢鏈路狀態 +CIPSTATUS: 0,CONNECT OK 1,IP INITIAL 2,IP INITIAL 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
AT+CIPCLOSE //關閉該鏈路 OK
AT+CIPMUX? /查詢是否開啟多連接 +CIPMUX:0 OK AT+CIPMUX=1 //開啟多鏈接 OK AT+CIPSTART="TCP","122.114.122.174",36779 //發起第一個TCP連接 +CIPNUM:0 //只有點開啟多鏈接的時候才會有,1為返回的鏈路號 CONNECT OK OK
AT+CIPSTART="TCP","www.baidu.com",80 //發起第二路連接 +CIPNUM:1 //只有點開啟多鏈接的時候才會有,1為返回的鏈路號 CONNECT OK OK
AT+CIPSTART="TCP","www.hao123.com",80 //發起第三路連接 +CIPNUM:2 //只有點開啟多鏈接的時候才會有,2為返回的鏈路號 CONNECT OK OK
AT+CIPSTATUS +CIPSTATUS: 0,CONNECT OK 1,CONNECT OK 2,CONNECT OK 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
AT+CIPCLOSE=3 //關閉鏈路號為3的連接 +CME ERROR:50 //鏈路3實際上沒有創建
AT+CIPCLOSE=2 //關閉鏈路號為2的連接 OK
AT+CIPCLOSE=1 //關閉鏈路號為1的連接 OK
AT+CIPSTATUS +CIPSTATUS: //只剩下鏈路0,其他兩路關閉 0,CONNECT OK 1,IP CLOSE 2,IP CLOSE 3,IP INITIAL 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK AT+CIPSTART="TCP","www.baidu.com",80 +CIPNUM:1 CONNECT OK OK AT+CIPSTART="TCP","www.hao123.com",80 +CIPNUM:2 CONNECT OK OK AT+CIPSTART="UDP","121.41.97.28",60006 +CIPNUM:3 UDP BIND OK OK AT+CIPSTATUS? +CIPSTATUS: //可以看到0-3鏈路號都被占用,建立了4路IP連接 0,CONNECT OK 1,CONNECT OK 2,CONNECT OK 3,SOCKET OK 4,IP INITIAL 5,IP INITIAL 6,IP INITIAL 7,IP INITIAL OK
AT+CIPSEND=0,5,"qwert"//鏈路0發送5個字節的字符,"qwert",本指令只支持可見字符 OK
A9/A9G使用安信可微信公眾號以及A9Tracker_app獲取定位信息
相關指令
AT+GIZQRCODE //獲取二維碼字符串,用來制作二維碼掃碼綁定,或者直接在微信上手動該字符串輸入綁定 AT+GIZTRACKER=1,0,10,1 //連接服務器
http://wiki.ai-thinker.com/gprs/a9g/a9tracker APP對接教程 http://wiki.ai-thinker.com/gprs/a9g/MP 微信對接教程
指令解析
AT+GIZTRACKER=< on/off >,[server],[upload interval],[use LBS],[pk],[ps]
n/off 值:0/1.該參數為0時關閉,設置為1為自動上傳 serve 選擇服務器:0為安信可服務器;1為自定義服務器(第一次使用的時候必須附帶PK,PS參數,連接成功后,這兩個參數會被保存) up in 上傳數據的時間間隔(s),默認值為0(不上傳) use LBS 值:0/1;設置1,從LBS獲得定位信息;設置0,從GPS獲取定位信息。當GPS信號弱,可以選擇從LBS獲取信息(A9只能從LBS獲取信息)。默認值為0。 pk ps 產品的key 和secret.這些是在自己創建產品時用到的,詳見9/A9G十分鍾對接機智雲創建屬於自己產品的程:http://www.jianshu.com/p/e3d86a263be5
示例
AT+GIZQRCODE +GIZQRCODE:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx//一長串字符串
AT+GIZTRACKER=1,0,10,1 —>參數3為上傳定位信息的時間間隔,參數4為選擇使用基站定位功能還是GPS功能上傳定位信息1->LBS,0->GPS +GIZTRACKER:Start —>返回值 OK +GIZWITS:sign in end +GIZWITS:conn end —>連接服務器成功 OK
注意:該命令會自動保存,開機之后自動運行該命令連接服務器。如果需要停止運行使用At+GIZTRACKER=0;
A9/A9G十分鍾對接機智雲創建屬於自己產品的教程
功能解讀 該功能的實現,需要客戶首先子機智雲官網申請開發者賬號,創建產品,獲得產品的 Product Key和 Product Secret ,然后,常見上報的數據點類型,按以下方式發送數據即可上傳到機智雲服務器。
A9G(GPS)
===== GPS(簡化版) ===== 相關指令 AT+LOCATION=X 示例 At+LOCATION=0(return:<latitude>,<longitude>OK) xx.xxxxx,xxx.xxxxxx(小數點后固定為6位) OK
GPS定位
相關指令
AT+GPS=1,開 GPS AT+GPS=0,關閉 GPS AT+GPS? ,查詢 GPS 的狀態 AT+GPSRD=N,N 是數字表示 N 秒輸出一條 NEMA 信息從 AT 串口。 AT+LOCATION=X //X=1獲取的是基站的地址,X=2是獲取的是GPS的地址 注意,在打開GPS之后,模組的GPS_TXD會以9600波特率默認輸出定位信息,這個不影響整個模組的波特率,例如A9G模組的工作波特率是115200,發送AT指令開啟GPS,這個時候GPS_TXD會以9600波特率輸出信息,AT串口依然是115200。 另外,請注意,改定位信息會輸出GNGGA GNRMC而不是 GPGGA和GPRMC,模組使用的是混合定位系統,包括了GPS,BDS和GNNS(全球導航系統)。解釋一下輸出信息頭的組成,例如GPGGA,拆分為GP+GGA->定位系統+輸出數據類型 ,GP為GPS定位系統,GGA為時間、位置、衛星數量的輸出信息,同理GNGGA即為GN+GGA->定位系統+輸出數據類型,GN為全球導航系統, GGA為時間、位置、衛星數量的輸出信息,其他指令請依次類推。后面我會放上標准協議,所以,用戶在PDF中搜索對應輸出信息的時候直接搜索數據輸出類型。例如直接搜索GNGGA是搜不到的,因為文檔都是以GPS定位系統為例的,直接搜索數據類型GGA即可。 最后,模組默認的是GPS+BDS混合模式輸出,那么輸出的信息即為GN開頭的數據,如果設置為單獨模式,則為該模式開頭的數據輸出,例如設置為GPS模式,則輸出信息為GPGGA。
示例
AT+GPS=1 //開啟GPS功能 OK AT+GPSRD=N //N秒輸出一條 NEMA 信息 從 AT 串口 +GPSRD: $GNGGA,000840.261,2236.3719,N,11350.4081,E,0,0,,153.2,M,-3.2,M,,*4F $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F
$GPGSV,1,1,00*79 $BDGSV,1,1,00*68
$GNRMC,000840.261,V,2236.3719,N,11350.4081,E,0.000,0.00,060180,,,N*5C $GNVTG,0.00,T,,M,0.000,N,0.000,K,N*2C AT+LOCATION = 2 //獲取GPS的地址信息,前提是GPS能夠看得到衛星才能夠返回,否則會返回GPS NOT FIX NOW
GPS擴展指令
相關指令
AT+GPSMD=1 GPS模式(暫時不支持單獨的BD模式,bd系統暫時只覆蓋亞洲) AT+GPSMD=2 GPS+BD模式 模組默認的是GPS+BDS混合模式輸出,那么輸出的信息即為GN開頭的數據,如果設置為單獨模式,則為該模式開頭的數據輸出,例如設置為GPS模式,則輸出信息為GPGGA。
示例
AT+GPS=1 先打開GPS AT+GPSMD=x x=1或者2,選擇開啟那個模式, 默認為GPS+BDS模式 At+GPSRD=x 數字x表示 x 秒輸出一條 NEMA 信息從 AT 串口
GPS的低功耗模式
相關指令
AT+GPSLP=x //GPS的低功耗設置,x的取值分別是0,1,2 AT+GPSLP=0 //正常模式 ---- 電流的值測試在0.063A左右 AT+GPSLP=1 //串口低功耗模式 AT+GPSLP=2 //GPS低功耗模式 ---- 電流的值測試在0.034A左右 //模組GPS的默認的默認模式是正常模式,設置GPS模式的時候不會立即生效,需要過一段時間才會生效
示例:
AT+GPS=1 //開啟GPS AT+GPSRD=10 //10秒輸出一條 NEMA 信息 AT+GPSLP=2 //設置GPS模式為低功耗模式
AGPS
相關指令
AT+AGPS=1,開 AGPS,同時會打開 GPS 使用時先關閉GPS功能。 AT+AGPS=0,關閉 AGPS, AT+AGPS? ,查詢 AGPS 的狀態 AT+GPSRD=N,N 是數字表示 N 秒輸出一條 NEMA 信息從 AT 串口。
注意,AGPS是輔助定位功能,加快GPS的定位時間,在使用之前建議先附着和激活網絡,因此,要先使用命令附着和激活網絡。 注意,在打開GPS之后,模組的GPRS_RXD(因為GPS的芯片是接在gprs模組上進行通信,所以模組的GPRS_RXD實際上是gps芯片的TXD引腳)會以9600波特率默認輸出定位信息,這個不影響整個模組的波特率,例如A9G模組的工作波特率是115200,發送AT指令開啟GPS,這個時候GPRS_TXD會以9600波特率輸出信息,AT串口依然是115200。
示例:
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+GPS=0 OK AT+AGPS=1 +AGPS:GPD OK +AGPS:OK OK AT+GPSRD=N OK +GPSRD: $GNGGA,050041.129,2236.1052,N,11350.2770,E,0,0,,3.2,M,-3.2,M,,*4D $GPGSA,A,1,,,,,,,,,,,,,,,*1E $BDGSA,A,1,,,,,,,,,,,,,,,*0F
$GPGSV,4,1,14,05,59,296,,02,53,008,,06,37,068,,19,35,142,*74 $GPGSV,4,2,14,13,32,180,,12,28,252,,20,20,255,,25,15,288,*7F
$GPGSV,4,3,14,17,14,145,,29,11,323,,09,10,040,,15,08,205,*76 $GPGSV,4,4,14,30,03,112,,193,,,*75 $BDGSV,1,1,00*68
GPS指示燈的狀態
相關指令
AT+GPNT=x //設置GPS指示燈的狀態,x=0或者x=1; AT+GPNT=0 //GPS燈為閃爍狀態 AT+GPNT=1 //GPS燈為電平狀態
示例
AT+GPNT=? //查詢x可以設置的值 +GPNT: (0:led flash,1:led notice) OK
AT+GPNT=0 //設置GPS燈的狀態 OK
設置模組的低功耗模式
相關指令:
AT+SLEEP=x //設置模組的低功耗模式,x的取值分別是0,1,2 AT+SLEEP=0 //關閉低功耗模式 --- 進入低功耗的電流值是00.213A AT+SLEEP=1 //進入GPIO低功耗模式,GPIO25引腳拉低進入模組低功耗,引腳拉高將退出低功耗,GPIO25默認是高電平 AT+SLEEP=2 //串口低功耗模式,可以通過串口喚醒 ---- 還有那么一點問題******** 注意: 在低功耗模式下,無法通過串口發送任何指令或者數據,但可以接受到數據 進入串口低功耗模式,在該模式下接受到數據,短信,電話會自動喚醒 通過控制低功耗引腳進入低功耗模式,在接受到數據。短信,電話不會被喚醒,需要控制低功耗引腳退出低功耗模式 GPIO26用於低功耗模式的通知GPIO(如果進入了GPIO低功耗模式,通過用示波器連接GPIO26引腳,可以檢測GPIO26引腳的電平判斷是否收到數據)
示例1(GPIO低功耗)
AT+SLEEP=1 //GPIO低功耗模式 OK //發送命令成功之后,將GPIO25引腳和GND引腳進行相連,之后繼續發送AT指令是沒有任何效果的:
示例2(串口低功耗)
AT+CGATT=1 //附着網絡,如果需要上網,這條指令是必選的 +CGATT:1 OK
AT+CGDCONT=1,"IP","CMNET" //設置PDP參數 OK
AT+CGACT=1,1 //激活PDP,正確激活以后就可以上網了 OK
AT+CIPSTART="TCP","122.114.122.174", 35408 //以安信可透傳雲為例 CONNECT OK OK
AT+SLEEP=2 //串口低功耗模式 OK //進入低功耗模式之后,發送AT指令是沒有效果的,可以通過透傳雲發送數據給模組,模組會自動喚醒,才可以繼續發送AT指令