SIM7600CE-T 4G(LTE) Shield V1.0通信模块

1.产品简介

SIM7600G-H 4G(LTE) 是一款支持2G/3G/4G、GNSS卫星定位和LTE CAT4(150Mbps DL,50Mbps UL)的Arduino Shield。符合标准Arduino管脚封装,兼容Arduino UNO、Leonardo、Mega等主控。支持LTE-TDD/LTE-FDD/WCDMA/GSM等频段,GNSS定位支持GPS、CLONASS、BD等卫星系统,内置多种网络协议,适用于全球区域。使用此扩展板能轻松实现高速上网,无线通信,音频录放,电话短信,全球定位等功能。

2.产品特性

3.技术规格

4.接口示意图

功能名称 接口名称 功能/接口说明
主天线接口 MAIN 接GSM天线
辅助天线接口 AUX 接GSM天线
定位天线接口 GNSS 接GPS定位天线
数字接口8 D8
数字接口7 D7
RX RXD/接收数据
TX TXD/发送数据
数字接口1 D1
数字接口0 D0
RI RI通常情况下保持高电平输出,当收到短消息,或URC上报时, RI会输出低电平
DTR 上拉进入睡眠模式,下拉退出睡眠模式
飞行模式接口 FT 飞行模式使能口,低电平有效
GND 接地
USB功能接口 USB设备接口,用于与电脑通信进行测试或者设置参数

注意事项

1.已占用管脚:D0, D1, D12,其中数字口“D12”已内部连接至SIM7600G(-H)模块开/关引脚,可用于SIM7600G(-H)模块开/关机控制。

2.SIM7600G(-H)模块板载MIC与3.5mm SIM7600G(-H)麦克风接口使用同一路MIC通道

3.Boot开关按钮——SIM7600G(-H)模块开关,短按Boot 1s开机,长按3s关机

4.指示灯“ON”——SIM7600G(-H)电源指示灯,只有当您接上外接电源时,模块才能正常工作,结束串口调试时,先断开串口连接,再断外部供电

5.Net——网络信号指示灯

5.尺寸图

6.常用AT信息命令集

命令 意义 返回值
AT AT测试指令 OK
ATE ATE1设置回显 ATE0关闭回显 OK
AT+CGMI 查询模组制造商 OK
AT+CGMM 查询模组型号 OK
AT+CGSN 查询产品序列号 OK
AT+CSUB 查询模块版本以及芯片 OK
AT+CGMR 查询固件版本序列号 OK
AT+IPREX 设置模块硬件串口波特率 +IPREX: OK
AT+CRESET 复位模块(模块会重新启动并自动注册网络) OK
AT+CSQ 网络信号质量查询,返回信号值 +CSQ: 14,99 OK
AT+CPIN? 查询SIM卡状态,返回READY,表示SIM卡能正常识别 +CPIN: READY
AT+COPS? 查询当前运营商,正常联网后会返回运营商信息 +COPS: OK
AT+CREG? 查询网络注册状态 +CREG: OK

注意:此AT命令可以不用注意大小写

7.网卡功能

硬件准备

软件准备

驱动安装,解压压缩包,找到解压的文件

选择Next

将驱动文件安装到你选定的磁盘

重启系统,安装驱动成功

拿win11 举例按照上述方法安装驱动成功之后,连接模块上的Micro USB串口,按下BOOT键,等待电脑设备管理界面出现Simcom端口

网络适配器界面出现Simcom网卡驱动

电脑的网络界面出现额外的手机网络选项,打开连接到移动网络

网页输入www.dfrobot.com,使用模块作为上网卡,网页正常打开,网络连接成功

8.MQTT连接

本实验是通过AT指令,操作SIM7600G(-H)向目标服务器发送设定的消息

操作步骤

进入Easy IoT,如果没有账号,可以先注册账号

登录成功之后,打开工作间,获取账户(user) 密码(password),添加新设备(Topic),并将上述三个重要参数记录下来

打开SSCOM助手,发送AT+CMQTTSTART(启动MQTT服务),启动模块的MQTT服务

发送AT+CMQTTACCQ=0,"EASYIOT"(设置连接方式为TCP,用户名为EASIOT) (0:TCP,1:SSL,用户名自定义),设置连接方式为TCP,用户名为EASYIOT

发送AT+CMQTTCONNECT=0,"tcp://iot.dfrobot.com:1883",120,1,"user","password"(TCP,设置服务器地址Easy Iot,心跳时间为120秒【最大64800】,在user和password里分别输入在Easy IoT平台上获取的账户(user)和密码(password),设备离线后清除用户信息,用户,密码)

发送AT+CMQTTSUB=0,9,1(参数1是客户机参数,参数2是信息发布次数设置,参数3是发布超时时间间隔S),出现”>“符号,之后发送在Easy IoT平台上获得的主题(Topic)

发送AT+CMQTTTOPIC=0,9(设置发布主题,第1个参数是客户机数字参数0,1,第2个参数是主题数据长度),出现”>“符号,之后发送在Easy IoT平台上获得的主题(Topic)

发送AT+CMQTTPAYLOAD=0,12(设置消息内容,参数和AT+CMQTTTOPIC的类似,后面直接发送字符,长度要对应),出现”>“符号,之后发送消息内容(helloDFROBOT)

发送AT+CMQTTPUB=0,1,60(发布消息,参数1是客户机参数,参数2是信息发布次数设置,参数3是发布超时时间间隔S)

进入Easy IoT工作间,查看创建话题的详细信息,查询到已接收到从模块传来的信息(helloDFROBOT)

注意:输入主题和消息的时候也需要回车换行

9.TCP/IP连接

1、要实现模块的TCP/IP连接,先找到一个公共TCP服务器。打开公共TCP服务器,记下服务器的IP地址和它的端口号

2、打开SSCOM,发送AT+NETOPEN指令,打开网络

3、发送AT+CIPOPEN=0,"TCP","IP地址",端口号 ,得到返回值OK,模块与服务器连接成功

4、发送AT+CIPSEND=0,5(发送五个字符码),出现”>“后,发送HELLO

5、公共TCP服务器端接收到来自7600G-(H)模块发送的数据信息HELLO,TCP连接成功

10.拨打接听电话

命令 意义 返回值
AT+CNUM 查询本机号码(并非所有的SIM卡都支持此指令) +CNUM OK
AT+CSDVC AT+CSDVC=1:切换到耳机输出 AT+CSDVC=3:切换到喇叭输出 OK
AT+CLVL=? 查询音量范围 OK
AT+CLVL=2 设置音量为2 OK
ATD; 拔打移动指定目标电话 OK
AT+CHUP 挂断电话 OK
AT+CLIP=1 设置来电显示 OK
ATA 接听电话 OK

拨打接听电话操作演示

发送ATD138xxxxxxxx; **命令向目标用户拨打电话,注意:**输入命令时最后需要加分号。

VOICE CALL:BEGIN接听后开始通话,挂断后出现VOICE CALL END:xxxxxNO CARRIER 说明通话结束。

RING响铃,表示有电话拨入,输入ATA命令后接通电话。

VOICE CALL BEGIN出现表示通话已接通。

通话时输入AT+CHUP命令可挂断通话。

11.发送接收短消息

命令 意义 返回值
AT+CMGF=1 设置短信模式为TEXT OK
AT+CMGS="phone number" 设置接收方手机号 返回“>”,发送需要的内容
AT+CMGR=SM number 读取第N条信息 读取的信息
AT+CMGD=SM number 删除第N条信息 OK
AT+CPMS? 查看信息存储量和信息个数 "SM",信息个数,50

发送英文短信操作演示

发送AT+CMGF=1(将短信模式设置为TEXT模式)

之后使用AT+CMGS="187xxxxxxxx"命令向目标手机号发送消息,返回“>”标志,紧接着输入你需要发送的信息

输入你需要发送的信息,注意:发送的时候取消回车换行

短信发送编辑完成,需要确定,选择“SendHEX”16位进制发送信息,发送1A(用于告诉模块执行发送操作),返回+CMGS:ok,发送成功

接收端成功接收到消息

接收英文短消息及查询消息上限操作演示

接收到信息时,串口会打印+CMTI: "SM”,X,X代表 SM 里面有X+1条信息,发送AT+CMGR=X,表示读取第X +1条信息,短消息内容就通过串口打印出来;

发送AT+CPMS?,即可查询已有短消息个数和短消息的上限

12.GNSS定位

要使用GNSS定位的时候,先插上GPS天线,并将模块放到室外,上电等待1分钟再启动定位功能

命令 意义 返回值
AT+CGPS=1 打开GPS OK
AT+CGPSINFO 将GPS信息打印到串口 定位信息
AT+CGPS=0 关闭GPS OK

AT串口显示 使用以上命令将,GPS信息打印到显示页面

串口打印的GPS定位数据如下:

注意事项:串口打印出的经纬度信息数据不能直接用来定位,需要通过公式换算

假设读取的数据为+CGPSINFO:1234.567891,N,12345.678912,E,141023,012523.0,455.1,0.0,

换算公式:

N(北纬) 1234.567891

( 1) 1234.567891÷100=12(取整)

( 2) 34567891÷60=576,131.52

得到以度形式的纬度坐标为 N 12.57613152°

E(东经) 12345.678912

( 1) 12345.678912÷100=123(取整)

( 2) 45678912÷60=761,315.2

得到以度形式的经度坐标为 E 123.7613152°

打开经纬度查询网站,并将计算得到的经纬度数据依次输入,可以获得定位地点

通过NMEA串口打印详细定位数据信息

1.打开两个SSCOM窗口,一个端口连接Simcom HS-USB AT PORT 9001,另一个端口连接Simcom HS-USB NMEA 9001,用连接AT PORT 9001的端口发送AT+CGPS=1指令,连接NMEA 9001的端口就会自动打印全部的定位详细数据

2.关于NMEA,NMEA是National Marine Electronics Association 的缩写,是美国国家海洋电子协会的简称,现在是GPS导航)设备统一的RTCM标准协议

详细的数据分析可见NMEA百科

13.省电模式

命令 意义 返回值
AT+CFUN=0 最小功能模式,串口仍然可以继续使用,但是与射频和SIM卡相关的功能以及部分AT命令不能使用 OK
AT+CFUN=1 全功能模式,功率全开 OK
AT+CFUN=4 飞行模式,模块仍然可以使用串口,但是与射频相关以及部分AT指令不能使用 OK

使用AT+CFUN=0指令将模块调整为最小功能模式

发送ATD10086;向10086拨打电话,得到错误返回值“ERROR”,无法向移动公司拨打电话,网卡功能也无法使用

14.睡眠模式

命令 意义 返回值
AT+CSCLK=0 UART始终输入 OK
AT+CSCLK=1 当DTR拉高时候UART进入休眠模式,当DTR拉低时候UART退出休眠模式 OK
AT+CSCLK? 查看是目前UART睡眠状态 +CSCLK: 状态 OK

在睡眠模式下,仍可从网络接收寻呼、短信和语音呼叫

15.Arduino例程

除了上述方式通过PC上通过板载USB虚拟串口控制SIM7600G-(H)之外,你也可以在或者Arduino串口发送AT指令的方式对SIM7600G-(H)扩展板进行调试。

步骤

  1. 将SIM卡插在扩展板上,并把SIM7600CE-T扩展板插上Arduino UNO,同时接上外接电源
  2. 按下Boot开机键,等待SIM卡网络注册正常,即Net状态指示灯进入快闪状态(1s一次)
  3. 根据控制板的类型,通过跳线帽来选择使用D0/D1或者D7/D8作为通信串口。
  4. 下面以使用Arduino UNO为例,下载如下的代码至UNO,并使用跳线帽连接RX-D8/TX-D7
#include <SoftwareSerial.h>
SoftwareSerial myserial(7, 8); //定义虚拟串口名为myserial,Rx为7号端口,Tx为8号端口
void setup()
{
  myserial.begin(115200); //初始化虚拟串口
  Serial.begin(115200); //初始化Arduino默认串口
}

void loop()
{
  while (1) {
    while (myserial.available()) {
      Serial.write(myserial.read());//如果Serial收到数据则通过mySerial输出
    }
    while (Serial.available()) {
      myserial.write(Serial.read());//如果myserial收到数据则通过Serial输出
    }
  }
}

烧录示例代码之后,打开Arduino自带串口监视器

发送AT,串口返回值为OK,通信成功,注意(使用Arduino UNO的串口通信,因模块默认通信速率是115200,外部晶振振动频率会让波特率误差过大从而乱码,后续使用AT命令修改波特率

发送AT+IPREX=9600,将波特率设置为9600

随后修改UNO串口的通信速率,重新上传

#include <SoftwareSerial.h>
SoftwareSerial myserial(7, 8); //定义虚拟串口名为myserial,Rx为7号端口,Tx为8号端口
void setup()
{
  myserial.begin(9600); //初始化虚拟串口
  Serial.begin(9600); //初始化Arduino默认串口
}

void loop()
{
  while (1) {
    while (myserial.available()) {
      Serial.write(myserial.read());//如果Serial收到数据则通过mySerial输出
    }
    while (Serial.available()) {
      myserial.write(Serial.read());//如果myserial收到数据则通过Serial输出
    }
  }
}

随后,使用9600波特率,向串口发送AT和AT+IPREX?,分别返回OK和当前波特率值,修改通信速率成功

返回值结果及意义查询

详细结果代码 意义
OK 命令已执行,无错误
CONNECT 连接成功
RING 检查到铃声(接收到电话)
NO CARRIER 未建立链接或链接断开
ERROR 无效命令或命令失败
NO DIALTONE 没有拨号音,无法拨号,模式错误
BUSY 正在通话中或服务器繁忙
NO ANSWER 连接超时

更多资料下载