传感器定制
投稿量: 粉丝量: 关注量:

SIM7600 4G GSM 接入 Arduino 的使用方法 | AT命令、电话、短信

SIM7600-Arduino

概述

本文我们学习如何将 SIM7600 GSM GPS 4G LTE模块与Arduino一起使用,并使用AT命令实现接电话、收发短信或连接互联网。

早期使用的是 SIM800/900 等 2G GSM 模块以及 A9G GSM GPS 模块。我们知道,在大多数国家或地区,如澳大利亚和加拿大,2G GSM/GPRS已经处于关闭阶段。但是确实有一些项目需要在 WiFi 不可用的情况下进行远程 GSM 无线通信。在这些区域,项目需要访问互联网,例如远程环境监测。考虑到投资/风险,在大多数情况下,LTE 4G 现在仍然是一个合适的解决方案。

SIM7600 是最受欢迎的 GSM GPS 4G LTE 模块之一。SIM7600 系列是支持 LTE 无线通信模式的 LTE 模块。它还集成了多个卫星高精度定位 GNSS 系统,具有多个内置网络协议。

其中一个由Makerfabs设计定制的现成 SIM7600 和 Arduino 板。这款 Maduino Zero 4G LTE 模块使用 SIMCOM 7600(E/A)CAT4 模块,帮助创客轻松实现 4G 连接。此外,该模块可以实现您的计算机或 Raspberry Pi 完全访问 4G 网络,也可用于通话或短信。


SIM7600 GSM GPS 4G LTE 模块

SIM7600 系列是多频 LTE-TDD/LTE-FDD/HSPA+/TD-SCDMA 和双频 GSM/GPRS/EDGE 模块解决方案,采用 SMT 封装,支持高达 150Mbps 的 LTE CAT4 下行链路数据传输。

SIM7600

SIM7600 具有强大的扩展能力,具有丰富的接口,包括 UART、USB2.0、SPI、I2C、GPIO 等。凭借 TCP/UDP/FTP/FTPS/HTTP/HTTPS/SMTP/POP3 和 MMS 等丰富的应用程序功能,该模块为客户的应用程序提供了极大的灵活性和易于集成。


基本特性

● 四频 TDD-LTE B38/B39/B40/B41
● 三频 FDD-LTE B1/B3/B8
● 双频 TD-SCDMA B34/B39
● 双频 WCDMA/HSDPA/HSPA+ B1/B8
● GSM/GPRS/EDGE 900/1800 兆赫
● 通过 AT 命令进行控制
● GNSS gpsOne Gen 8B;独立;辅助,XTRA;
● 数据传输:LTE CAT4,上行速度高达50Mbps,下行速度高达150Mbps
● 接口:USB2.0、UART、SIM 卡、SPI、I2C、GPIO、ADC、PCM、SDIO

Maduino Zero 4G LTE(SIM7600X) 板

Maduino Zero 4G LTE 集成了两种类型的 4G LTE CAT4 模块 SIM7600A-H 或 SIM7600E-H。SIM7600A-H/SIM7600E-H 是 LCC 类型的完整多频段 LTE-FDD/LTE-TDD/HSPA+/UMTS/EDGE/GPRS/GSM 模块解决方案。它支持高达 150Mbps 的下行链路 LTE CAT4 和高达 50Mbps 的上行数据传输,比 2G/3G 更快、更受欢迎。

Maduino-Zero-4G-LTESIM7600X-Board

接口

Makerfabs Maduino Zero 4G LTE 模块基于 ATSAMD21G18A 微控制器,兼容 Arduino。因此,可以使用 Arduino IDE 来操作和编程 SIM7600 模块。板的正面和背面如下图:

SIM7600-Board-Interfaces-780x378.jpg

正面有 3.7V 锂电池连接器,下面的开关用于打开/关闭模块。有两个 USB TypeC 端口,一个用于微控制器,另一个用于 LTE。有两个按钮用于MCU和LTE重置。STA LED 指示网络连接状态。电路板需要连接 3 根天线:主天线、辅助天线和 GPS 天线。3.5mm 插孔用于连接麦克风或耳机,音频插孔用于连接扬声器。

背面有一个 micro-sim 插槽,用于插入 4G SIM 卡。有一对 SD 卡插槽,一个用于微控制器,另一个用于 SIM7600。

注意:严禁在设备开机时插拔天线、SIM 卡、SD 卡。这可能会导致短路,从而烧毁 IC。

特性

● 支持拨号、电话、SMS、TCP、UDP、DTMF、HTTP、FTP 等
● 双 USB Type C 端口
● 通过 AT 命令进行控制
● 板卡 USB 电源电压范围:4.8~5.5V,5.0V 典型值
● 板电池电源电压范围:3.4~4.2V,3.7V 典型值
● 3GPP E-UTRA 第 11 版
● 板载充电器,高达 1A 的充电电流
● 过充保护 (OCP),4.3V
● 过放电保护 (ODP),2.5V
● 电源管理,该板可由 USB 或电池供电。
● IPEX 天线、GSM/UMTS/LTE 主天线。UMTS/LTE 辅助天线。GNSS 天线
● 支持 SMS
● 支持音频
● 控制器:ATSAMD21G18A
● 音频编解码器:NAU8810
● 电平转换器:TXS0108E
● 支持 Windows 和 Raspberry Pi
● Qualcomm MDM9x07 芯片组

将 SIM7600 GSM GPS 4G LTE 与 Arduino 连接

现在让我们看看如何使用SIM7600 GSM GPS 4G LTE和Arduino来使用AT命令实现电话和短信功能。

SIM7600-GSM-GPS-4G-LTE-with-Arduino-768x416.jpg

1、将 SIM 卡插入开发板。
2、将 GPS 天线插入接口。
3、将两根 4G-GSM 天线插入主天线接口和辅助天线接口。
4、将耳机与麦克风插入。
5、将 SD 卡插入 SD 卡插槽以进行SIM7600。

当打开电源且 SIM7600 模块开始工作时,板载 STA LED(蓝色)将亮起。

设置 Arduino IDE

ATSAMD21G18A 板未预装在 Arduino IDE 中。因此,我们需要从 Board Manager 安装 “Arduino Zero Board”。

打开 Boards Manager从顶部的 Arduino IDE 菜单中,选择 Tools-> Board-> Boards Manager...打开 Boards Manager 对话框。然后安装 Arduino SAMD 板(32 位 ARM Cortex-M0+)。

Arduino-Zero-768x432.jpg

安装完成后,选择 Arduino Zero 板,如下图所示。要对此板进行编程,需要先连接 USB TypeC 数据线。

Arduino-SAMD-Boards-768x408.png

源代码/程序

现在打开 Arduino IDE 并粘贴以下代码。编译代码并下载。

#include <stdio.h>
#include <string.h>

 

#define DEBUG true
#define MODE_1A

 

#define DTR_PIN 9
#define RI_PIN 8

 

#define LTE_PWRKEY_PIN 5
#define LTE_RESET_PIN 6
#define LTE_FLIGHT_PIN 7

 

String from_usb = "";

 

void setup()
{
    SerialUSB.begin(115200);
    //while (!SerialUSB)
    {
        ; // wait for Arduino serial Monitor port to connect
    }

 

    delay(100);

 

    Serial1.begin(115200);

 

    //Serial1.begin(UART_BAUD, SERIAL_8N1, MODEM_RXD, MODEM_TXD);

 

    pinMode(LTE_RESET_PIN, OUTPUT);
    digitalWrite(LTE_RESET_PIN, LOW);

 

    pinMode(LTE_PWRKEY_PIN, OUTPUT);
    digitalWrite(LTE_RESET_PIN, LOW);
    delay(100);
    digitalWrite(LTE_PWRKEY_PIN, HIGH);
    delay(2000);
    digitalWrite(LTE_PWRKEY_PIN, LOW);

 

    pinMode(LTE_FLIGHT_PIN, OUTPUT);
    digitalWrite(LTE_FLIGHT_PIN, LOW); //Normal Mode
    // digitalWrite(LTE_FLIGHT_PIN, HIGH);//Flight Mode

 

    SerialUSB.println("Maduino Zero 4G Test Start!");

 

    sendData("AT+CGMM", 3000, DEBUG);
}

 

void loop()
{
    while (Serial1.available() > 0)
    {
        SerialUSB.write(Serial1.read());
        yield();
    }
    while (SerialUSB.available() > 0)
    {
#ifdef MODE_1A
        int c = -1;
        c = SerialUSB.read();
        if (c != '\n' && c != '\r')
        {
            from_usb += (char)c;
        }
        else
        {
            if (!from_usb.equals(""))
            {
                sendData(from_usb, 0, DEBUG);
                from_usb = "";
            }
        }
#else
        Serial1.write(SerialUSB.read());
        yield();
#endif
    }
}

 

bool moduleStateCheck()
{
    int i = 0;
    bool moduleState = false;
    for (i = 0; i < 5; i++)
    {
        String msg = String("");
        msg = sendData("AT", 1000, DEBUG);
        if (msg.indexOf("OK") >= 0)
        {
            SerialUSB.println("SIM7600 Module had turned on.");
            moduleState = true;
            return moduleState;
        }
        delay(1000);
    }
    return moduleState;
}

 

String sendData(String command, const int timeout, boolean debug)
{
    String response = "";
    if (command.equals("1A") || command.equals("1a"))
    {
        SerialUSB.println();
        SerialUSB.println("Get a 1A, input a 0x1A");

 

        //Serial1.write(0x1A);
        Serial1.write(26);
        Serial1.println();
        return "";
    }
    else
    {
        Serial1.println(command);
    }

 

    long int time = millis();
    while ((time + timeout) > millis())
    {
        while (Serial1.available())
        {
            char c = Serial1.read();
            response += c;
        }
    }
    if (debug)
    {
        SerialUSB.print(response);
    }
    return response;
}

代码下载成功后,打开串行监视器。现在可以将 AT 命令发送到板子,就可以打印模块的响应命令。如下演示如何使用 AT 命令。

SIM7600 AT 命令测试

1
2
AT+IPREX?    // Check local baud rate

AT+CRESET    // Reset the module

3.-AT-Reset-533x360.png

获取 GNSS 位置

发送和接收短信

发送上述 AT 命令后,它将显示“>”,然后您可以发送消息。当您完成消息时,您需要发送带有十六进制的 “1A” 进行确认,或发送带有十六进制的 “1B” 进行取消。这就是为什么建议使用其他串行监视器的原因。

5.-SMS-640x354.jpg

1
2
    AT+CMGR=3        // Read message
    AT+CMGD=3        // Delete message


拨打电话

使用以下 AT 命令通过 SIM7600 拨打或接听电话。

6.-Call-552x439.png

HTTP 测试

使用以下命令测试 SIM7600 LTE HTTP 请求。

测试 SIM7600 的 SD 卡

将 SD 卡插入 SD 卡插槽进行SIM7600时,使用以下命令进行检查。

使用 SIM7600 上网冲浪

SIM7600 Arduino 调制解调器可以是无线网络设备,以支持 PC 或 Raspberry PI 上网。使用 Type-C USB 数据线连接板 (USB-LTE) 和 PC。

Surfing-the-Internet-using-SIM7600-1.jpg

要上网冲浪,您需要将 SIM7600 驱动程序安装到 PC。

internet1.jpg


打开设备管理器 - >其他设备 - >“SimTech,Incorporated”- > 更新驱动程序 - > 浏览我的电脑查找驱动程序文件 - > 根据系统选择保存驱动程序文件的路径 - >安装完成。

internet2.jpg

安装所有显示为黄色感叹号的驱动程序。

如果 PC 没有通过此设备连接到互联网,请打开串口监视器并发送 AT 命令以启动联网。

然后,网络图标将显示为蜂窝网络。

Surfing-the-Internet-using-SIM7600-255x439.jpg

如果仍然无法连接到 Internet,请使用 PPP 拨号连接方式开始联网。


本文来源:https://how2electronics.com/using-sim7600-4g-gsm-with-arduino-at-commands-call-sms/#google_vignette
本文版权属原作者所有

down.gif

单片机项目定制开发
● 工业机器人、仪器仪表、高精度数据采集、超低功耗待机、通讯板卡
● 无线数据传输:4G、NB、WIFI、LORA
● 进口产品国产化,抄板
● 产品批量供货、质量控制、售后维护

9775460cb15acb62aac9043559bac65f.jpg
【单片机项目定制开发】

dettek

声明:该文观点仅代表作者本人,我们只提供信息存储空间服务。
我来说两句
加载中~
相关阅读

ADXL345与Arduino

hardware · 2024-04-01 23:47:09

锂电池充电过程

hardware · 2024-09-08 08:03:13

常用低功耗单片机型号

2024-09-07    阅读  

串口屏COF参数

hardware · 2024-09-06 12:05:58

电子负载的工作原理

hardware · 2024-08-22 23:01:30

18650锂电池参数

hardware · 2024-06-18 23:00:00

固态电池和锂电池区别

2024-06-07    阅读  

三元锂电池

hardware · 2024-06-06 19:54:33

I2C上拉电阻

hardware · 2024-04-12 11:34:07