【安信可NB-IoT模组EC系列AT指令】连接TCP服务器,实现远程收发数据

发布时间:2022-8-1 11:36    发布者:安信可科技
关键词: NB-IoT模组系列 , TCP服务器 , 物联网 , 智能家居
一、前期准备
1.硬件准备
本文选用的测试硬件有:
EC-01-Kit 开发板 x1出厂固件(AT固件),接入天线
物联网 x1
Micro-USB数据线 x1
2.TCP服务器
     因为EC系列属于NB-IoT,无法像ESP8266ESP32WiFi模组一样可以使用局域网,因此本文就要使用远程云TCP服务器进行测试,我们的 “安信可透传云” 正适合,安信可透传云链接地址:http://tt.ai-thinker.com:8000/ttcloud
1.png
二、连接网络
一切准备就绪,将SIM(物联网卡)插进开发板,接上天线,即可开始测试。
1.查看SIM卡是否正常
AT指令:
AT+ECICCID\r\n:查看SIM ID
返回:
成功:+ECICCID: xxxxxxxxxxxx(SIMID)        失败:+CME:ERROR:
查询成功示例:
2.png
2.附着网络
在附着网络之前,需要满足以下条件:
物联网卡有流量余额
天线为NB-IoT天线
能够查询到SIM卡的ID
条件都满足之后使用AT指令:
AT指令:
AT+CGATT=
返回:
成功:OK        失败:+CME:ERROR:
参数
state= 1:附着       0:去附着(取消附着)
附着成功示例:
3.png
3.注册APNID
    网络附着成功之后,其实就具备了上网的条件,证明SIM卡可以正常接入网络,此时还需要再设置一个重要参数——APNID,就可以上网了。
AT指令:
AT+CGDCONT=,,,…    (这个指令参数太多,一般只用前三个参数即可)
返回:
成功:OK        失败:+CME ERROR:
参数:
cid0~10,一般用1,指向特定的PDP上下文索引
PDP_typeIPIPV6IPV4V6Non-IP,通常使用 IP
APN:用来选择GGSN或外部数据包数据网络的逻辑名,常用 CMNET
注意
这个指令需要先附着网络
注册成功示例:
4.png
4.激活网络
成功注册之后,可以直接激活网络,正式连接互联网。
AT指令:
AT+CGACT=
返回:
成功:OK        失败:+CME:ERROR:
参数
state1:激活       0:去激活(取消激活)
同样的,网络的激活需要组测APNID成功后才可行。
激活成功示例:
5.png
5.测试网络连接情况
     网络激活成功之后,可以使用ping 来测试网络是否正常。
AT指令:
AT+ECPING=/[,,…   这个指令同样也有很多参数,我们只用前两个
返回:
成功:OK       失败:+SOCKET ERROR:
参数
ipaddr/Url/modeIP地址或者url,当为0时则是停止PING
countPING的次数,默认为 4
测试成功示例:
6.png
三、连接TCP服务器
     连接服务器需要确保EC能够上网,就是可以PING远程URL无丢包。
1.创建socketTCP协议
AT指令:
AT+SKTCREATE=,,
返回:
正确:+SKTCREATE: \n OK       失败:+SOCKET ERROR:
参数:
domain1IPV4        2IPV6
type1TCP方式        2UDP方式
protocol6IPPROTO_TCP TCP协议定义       17IPPROTO_UDP UDP协议定义
创建成功示例:
7.png
2.发起连接
    成功配置好socket TCP客户端之后,就可以发起连接,这时候就需要用到TCP服务器了,在发起连接之前,需要刷新一下 “安信可透传云”,因为这个端口服务器3分钟内无连接的话会自动关闭。
AT指令
AT+SKTCONNECT=,,
返回:
成功:OK        失败:+SOCKET ERROR:
参数
fd: 创建socket 时返回的fd
addr: 服务器的ip地址,字符串类型
port: 服务器的端口号,长整型
成功连接示例:
8.png
3. 接收数据
     当成功连接服务器之后,EC会自动检测服务器下发的数据,当有数据来临,会以16进制的格式实时打印到串口:
9.png
4.发送数据
     TCP数据的发送也是以十六进制的方式进行发送,比如发送"3456",对应的16进制则是:33343536
AT指令:
AT+SKTSEND=,,,…   这个指令也有比较多的参数,常用的是前三个。
返回:
成功:OK       失败:+SOCKET ERROR:
参数:
fdsocket描述符,创建socket时的返回值 fd
datalen: 需要发送数据的长度
data: 需要发送的数据,十六进制字符表示
发送成功示例:
10.png
四、常见问题
1. 附着网络时:+CME ERROR: 308
     308为终端错误码,导致错误的原因主要有以下几点:
物联网卡没流量;
SIM卡没插好,建议先查询SIMID
SIM卡被绑定,无法使用其他的设备。
2. TCP连接时:+SOCKET ERROR: NO FIND CLIENT
     这个是因为没有创建socket TCP客户端,需要创建socket
3. TCP连接时:+SKTERR: 0,104
        这个错误通常伴随着:
        +SOCKET ERROR: SOCKET ACCOR ERROR
        SOCK_EVENT_CONN_ERROR
这是因为端口错误造成的,刷新一下服务器重新设置端口号即可。

本文地址:https://www.eechina.com/thread-797223-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表