|
一、前期準備 1.硬件準備 本文選用的測試硬件有: EC-01-Kit 開發(fā)板 x1:出廠固件(AT固件),接入天線 物聯(lián)網(wǎng)卡 x1 Micro-USB數(shù)據(jù)線 x1 2.TCP服務器 因為EC系列屬于NB-IoT,無法像ESP8266、ESP32等WiFi模組一樣可以使用局域網(wǎng),因此本文就要使用遠程云TCP服務器進行測試,我們的 “安信可透傳云” 正適合,安信可透傳云鏈接地址:http://tt.ai-thinker.com:8000/ttcloud
二、連接網(wǎng)絡 一切準備就緒,將SIM卡(物聯(lián)網(wǎng)卡)插進開發(fā)板,接上天線,即可開始測試。 1.查看SIM卡是否正常 AT指令: AT+ECICCID\r\n:查看SIM ID號 返回: 成功:+ECICCID: xxxxxxxxxxxx(SIM卡ID) 失敗:+CME:ERROR: 查詢成功示例:
2.附著網(wǎng)絡 在附著網(wǎng)絡之前,需要滿足以下條件: 物聯(lián)網(wǎng)卡有流量余額 天線為NB-IoT天線 能夠查詢到SIM卡的ID 條件都滿足之后使用AT指令: AT指令: AT+CGATT= 返回: 成功:OK 失敗:+CME:ERROR: 參數(shù) state= 1:附著 0:去附著(取消附著) 附著成功示例:
3.注冊APNID 網(wǎng)絡附著成功之后,其實就具備了上網(wǎng)的條件,證明SIM卡可以正常接入網(wǎng)絡,此時還需要再設置一個重要參數(shù)——APNID,就可以上網(wǎng)了。 AT指令: AT+CGDCONT= 返回: 成功:OK 失敗:+CME ERROR: 參數(shù): cid:0~10,一般用1,指向特定的PDP上下文索引 PDP_type:IP、IPV6、IPV4V6及Non-IP,通常使用 IP APN:用來選擇GGSN或外部數(shù)據(jù)包數(shù)據(jù)網(wǎng)絡的邏輯名,常用 CMNET 注意 這個指令需要先附著網(wǎng)絡 注冊成功示例:
4.激活網(wǎng)絡 成功注冊之后,可以直接激活網(wǎng)絡,正式連接互聯(lián)網(wǎng)。 AT指令: AT+CGACT= 返回: 成功:OK 失敗:+CME:ERROR: 參數(shù) state: 1:激活 0:去激活(取消激活) 同樣的,網(wǎng)絡的激活需要組測APNID成功后才可行。 激活成功示例:
5.測試網(wǎng)絡連接情況 網(wǎng)絡激活成功之后,可以使用ping 來測試網(wǎng)絡是否正常。 AT指令: AT+ECPING= 返回: 成功:OK 失敗:+SOCKET ERROR: 參數(shù) ipaddr/Url/mode: IP地址或者url,當為0時則是停止PING count: PING的次數(shù),默認為 4 測試成功示例:
三、連接TCP服務器 連接服務器需要確保EC能夠上網(wǎng),就是可以PING遠程URL無丟包。 1.創(chuàng)建socket為TCP協(xié)議 AT指令: AT+SKTCREATE= 返回: 正確:+SKTCREATE: 參數(shù): domain: 1為IPV4 2為IPV6 type: 1為TCP方式 2為UDP方式 protocol: 6為IPPROTO_TCP TCP協(xié)議定義 17為IPPROTO_UDP UDP協(xié)議定義 創(chuàng)建成功示例:
2.發(fā)起連接 成功配置好socket TCP客戶端之后,就可以發(fā)起連接,這時候就需要用到TCP服務器了,在發(fā)起連接之前,需要刷新一下 “安信可透傳云”,因為這個端口服務器3分鐘內無連接的話會自動關閉。 AT指令 AT+SKTCONNECT= 返回: 成功:OK 失敗:+SOCKET ERROR: 參數(shù) fd: 創(chuàng)建socket 時返回的fd addr: 服務器的ip地址,字符串類型 port: 服務器的端口號,長整型 成功連接示例:
3. 接收數(shù)據(jù) 當成功連接服務器之后,EC會自動檢測服務器下發(fā)的數(shù)據(jù),當有數(shù)據(jù)來臨,會以16進制的格式實時打印到串口:
4.發(fā)送數(shù)據(jù) TCP數(shù)據(jù)的發(fā)送也是以十六進制的方式進行發(fā)送,比如發(fā)送"3456",對應的16進制則是:33343536。 AT指令: AT+SKTSEND= 返回: 成功:OK 失敗:+SOCKET ERROR: 參數(shù): fd: socket描述符,創(chuàng)建socket時的返回值 fd datalen: 需要發(fā)送數(shù)據(jù)的長度 data: 需要發(fā)送的數(shù)據(jù),十六進制字符表示 發(fā)送成功示例:
四、常見問題 1. 附著網(wǎng)絡時:+CME ERROR: 308 308為終端錯誤碼,導致錯誤的原因主要有以下幾點: 物聯(lián)網(wǎng)卡沒流量; SIM卡沒插好,建議先查詢SIM卡ID; SIM卡被綁定,無法使用其他的設備。 2. TCP連接時:+SOCKET ERROR: NO FIND CLIENT 這個是因為沒有創(chuàng)建socket TCP客戶端,需要創(chuàng)建socket 3. TCP連接時:+SKTERR: 0,104 這個錯誤通常伴隨著: +SOCKET ERROR: SOCKET ACCOR ERROR SOCK_EVENT_CONN_ERROR 這是因為端口錯誤造成的,刷新一下服務器重新設置端口號即可。 |