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

本文详细介绍了如何使用EC-01-Kit物联网模块进行TCP服务器连接和网络配置。从硬件准备、网络连接的各个步骤,如检查SIM卡、附着网络、注册APNID、激活网络到测试网络连接,再到建立TCP连接,接收和发送数据,每个环节都有清晰的AT指令和返回示例。同时,文章还列举了在操作过程中可能遇到的常见问题及其解决办法,是物联网设备联网操作的实用教程。
摘要由CSDN通过智能技术生成


一、前期准备

1.硬件准备

       本文选用的测试硬件有:

  • EC-01-Kit 开发板 x1:出厂固件(AT固件),接入天线
  • 物联网卡 x1
  • Micro-USB数据线 x1

2.TCP服务器

       因为EC系列属于NB-IoT,无法像ESP8266、ESP32等WiFi模组一样可以使用局域网,因此本文就要使用远程云TCP服务器进行测试,我们的 “安信可透传云” 正适合,安信可透传云链接地址:http://tt.ai-thinker.com:8000/ttcloud
在这里插入图片描述

二、连接网络

       一切准备就绪,将SIM卡(物联网卡)插进开发板,接上天线,即可开始测试。

1.查看SIM卡是否正常

  • AT指令:
    AT+ECICCID\r\n:查看SIM ID号
  • 返回:
    成功:+ECICCID: xxxxxxxxxxxx(SIM卡ID)        失败:+CME:ERROR:<err>

查询成功示例:
在这里插入图片描述

2.附着网络

       在附着网络之前,需要满足以下条件:

  • 物联网卡有流量余额
  • 天线为NB-IoT天线
  • 能够查询到SIM卡的ID

条件都满足之后使用AT指令:

  • AT指令:
    AT+CGATT=<state>
  • 返回:
    成功:OK        失败:+CME:ERROR:<err>
  • 参数
    state= 1:附着       0:去附着(取消附着)

附着成功示例:
在这里插入图片描述

3.注册APNID

       网络附着成功之后,其实就具备了上网的条件,证明SIM卡可以正常接入网络,此时还需要再设置一个重要参数——APNID,就可以上网了。

  • AT指令:
    AT+CGDCONT=<cid>,<PDP_tyoe>,<APN>,…    (这个指令参数太多,一般只用前三个参数即可)
  • 返回:
    成功:OK        失败:+CME ERROR: <err>
  • 参数:
    cid:0~10,一般用1,指向特定的PDP上下文索引
    PDP_type:IP、IPV6、IPV4V6及Non-IP,通常使用 IP
    APN:用来选择GGSN或外部数据包数据网络的逻辑名,常用 CMNET
  • 注意
    这个指令需要先附着网络

注册成功示例:
在这里插入图片描述

4.激活网络

       成功注册之后,可以直接激活网络,正式连接互联网。

  • AT指令:
    AT+CGACT=<state>
  • 返回:
    成功:OK        失败:+CME:ERROR:<err>
  • 参数
    state: 1:激活       0:去激活(取消激活)

同样的,网络的激活需要组测APNID成功后才可行。
激活成功示例:
在这里插入图片描述

5.测试网络连接情况

       网络激活成功之后,可以使用ping 来测试网络是否正常。

  • AT指令:
    AT+ECPING=<ipaddr/Url>/<mode>[,<count>,…   这个指令同样也有很多参数,我们只用前两个
  • 返回:
  • 成功:OK       失败:+SOCKET ERROR: <err>
  • 参数
    ipaddr/Url/mode: IP地址或者url,当为0时则是停止PING
    count: PING的次数,默认为 4

测试成功示例:
在这里插入图片描述

三、连接TCP服务器

       连接服务器需要确保EC能够上网,就是可以PING远程URL无丢包。

1.创建socket为TCP协议

  • AT指令:
    AT+SKTCREATE=<domain>,<type>,<protocol>
  • 返回:
    正确:+SKTCREATE: <fd> \n OK       失败:+SOCKET ERROR: <err>
  • 参数:
    domain: 1为IPV4        2为IPV6
    type: 1为TCP方式        2为UDP方式
    protocol: 6为IPPROTO_TCP TCP协议定义       17为IPPROTO_UDP UDP协议定义

创建成功示例:
在这里插入图片描述

2.发起连接

       成功配置好socket TCP客户端之后,就可以发起连接,这时候就需要用到TCP服务器了,在发起连接之前,需要刷新一下 “安信可透传云”,因为这个端口服务器3分钟内无连接的话会自动关闭

  • AT指令
    AT+SKTCONNECT=<fd>,<addr>,<port>
  • 返回:
    成功:OK        失败:+SOCKET ERROR: <err>
  • 参数
    fd: 创建socket 时返回的fd
    addr: 服务器的ip地址,字符串类型
    port: 服务器的端口号,长整型

成功连接示例:
在这里插入图片描述

3. 接收数据

       当成功连接服务器之后,EC会自动检测服务器下发的数据,当有数据来临,会以16进制的格式实时打印到串口:
在这里插入图片描述

4.发送数据

       TCP数据的发送也是以十六进制的方式进行发送,比如发送"3456",对应的16进制则是:33343536。

  • AT指令:
    AT+SKTSEND=<fd>,<datalen>,<data>,…   这个指令也有比较多的参数,常用的是前三个。
  • 返回:
    成功:OK       失败:+SOCKET ERROR: <err>
  • 参数:
    fd: socket描述符,创建socket时的返回值 fd
    datalen: 需要发送数据的长度
    data: 需要发送的数据,十六进制字符表示

发送成功示例:
在这里插入图片描述

四、常见问题

1. 附着网络时:+CME ERROR: 308

       308为终端错误码,导致错误的原因主要有以下几点:

  • 物联网卡没流量;
  • SIM卡没插好,建议先查询SIM卡ID;
  • 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.ai-thinker.com
开发DOCS:https://docs.ai-thinker.com
官方论坛:http://bbs.ai-thinker.com
技术支持:support@aithinker.com

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值