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.产品特性
- 通过AT指令控制
- 支持GNSS卫星定位(GPS、CLONASS、BD)
- 支持LTE-FDD/LTE-TDD/WCDMA/GSM多种频段
- SMS支持MT、MO、CB、Text和PDU模式
- 支持TCP/IP/IPV4/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS多种网络协议
- 支持拨号上网、电话、短信、TCP、HTTP等功能
- 支持两种LED状态显示:电源供应状态,网络状态
3.技术规格
- 工作电压:DC 5V
- 网络支持频段
- LTE-TDD B34/B38/B39/B40/B41
- LTE-FDD B1/B2/B3/B4/B5/B7/B8/B12/B13/B18/B19/B20/B25/B26/B28/B66
- UMTS/HSDPA/HSPA+ B1/B2/B4/B5/B6/B8/B19
- GSM/GPRS/EDGE 850/900/1800/1900 MHz
- 4G通信速率:CAT4(上行速度为50Mbps,下行速度为150Mbps)
- GNSS卫星导航技术(GPS、BD、GLONASS)
- 工作环境:-40℃ ~85℃
- 大小:69×54mm
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——网络信号指示灯
- 蓝灯常亮:搜寻网络过程中
- 蓝灯快闪(1s一次):网络注册完成
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.网卡功能
硬件准备
- SIM7600G(-H) 4G(LTE) Shield x1
- Windows11 PC x1
- SIM手机卡 x1
- MicroUSB数据线 x1
- DFRduino UNO R3 ×1
- 7.4V外接电池
软件准备
驱动安装,解压压缩包,找到解压的文件
选择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<phone_number>; | 拔打移动指定目标电话 | OK |
AT+CHUP | 挂断电话 | OK |
AT+CLIP=1 | 设置来电显示 | OK |
ATA | 接听电话 | OK |
拨打接听电话操作演示
发送**ATD138xxxxxxxx; **命令向目标用户拨打电话,**注意:**输入命令时最后需要加分号。
VOICE CALL:BEGIN接听后开始通话,挂断后出现VOICE CALL END:xxxxx 和 NO 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)扩展板进行调试。
- 硬件
- Arduino UNO x1
- SIM7600G-H 扩展板 x1
- 外接电源 x1
- 软件
- Arduino IDE 版本最新版 点击下载Arduino IDE
步骤
- 将SIM卡插在扩展板上,并把SIM7600CE-T扩展板插上Arduino UNO,同时接上外接电源。
- 按下Boot开机键,等待SIM卡网络注册正常,即Net状态指示灯进入快闪状态(1s一次)
- 根据控制板的类型,通过跳线帽来选择使用D0/D1或者D7/D8作为通信串口。
- 下面以使用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 | 连接超时 |