USING ARDUINO COMPATIBLE SIM7600 4G GSM/GPS MODULE TO MAKE CALL AND SEND SMS.

by electronicsworkshop111 in Circuits > Arduino

9 Views, 1 Favorites, 0 Comments

USING ARDUINO COMPATIBLE SIM7600 4G GSM/GPS MODULE TO MAKE CALL AND SEND SMS.

SIM7600-GSM-GPS-4G-LTE-with-Arduino-640x347-1.jpg

In this project, We will learn how to use SIM7600 4G GSM/GPS module with Arduino. We will describe different hardware components used in SIM7600 module in detail. Finally, we will see how we can send SMS and make call in SIM7600 module by providing different AT commands.

We are very much familiar with SIM800 and SIM900 GSM module and have done many projects like SMART CROP PROTECTION SYSTEM USING GSM AND ARDUINO , WEATHER STATION WITH GSM BASED NOTICE BOARD and SMART BLIND STICK USING ARDUINO ,GSM MODULE ,GSM MODULE,ULTRASONIC SENSOR AND RAIN SENSOR. These module are 2G modules and are band in many countries like Australia and Canada. This SIM7600 4G GSM/GPS module with Arduino may be the solution to such project which requires remote wireless communications.

 Maduino Zero 4G LTE is the Arduino board integrated with GPS and GPS which is designed and manufactured by Makerfabs This Maduino Zero 4G LTE module uses the SIMCOM7600(E/A)CAT4 module, to help Makers to achieve the 4G connection easily. Besides, this module can be a fully 4G access to your computer/PI, and also for telephone/SMS.

PCB MANUFACTURER

pcbway-logo.jpg

This project is sponsored by PCBWAY. It is world fastest pcb manufacturing company.

You Will get FREE prototype pcb from PCBWAY. So do not be late to register and place your first order from PCBWAY

If you want to order pcb from PCBWAY . CLICK IN THE LINK BELOW:

https://www.pcbway.com/QuickOrderOnline.aspx?from=electronicsworkshops



DIAGRAM

SIM7600-GSM-GPS-4G-LTE-with-Arduino-640x347-1.jpg
  • Windows and Raspberry Pi support
  • Qualcomm MDM9x07 Chipset
  • Audio Codec: NAU8810
  • Level Shifter: TXS0108E
  • Board USB supply voltage range: 4.8~5.5V, 5.0V Typical
  • Board Battery supply voltage range: 3.4~4.2V, 3.7V Typical
  • 3GPP E-UTRA Release 11
  • Onboard charger, up to 1A charge current
  • Overcharge protection(OCP), 4.3V
  • Over-discharge protection(ODP), 2.5V
  • Power Manager, the board can be supplied by USB or battery.
  • Supports dial-up, phone, SMS, TCP, UDP, DTMF, HTTP, FTP, and so on
  • Dual USB Type C port
  • Control Via AT Commands
  • IPEX Antenna, GSM/UMTS/LTE main antenna. UMTS/LTE auxiliary antenna. GNSS antenna
  • SMS support


Getting Started With 4G GSM MODULE SIM7600 and Arduino IDE

In this section we will see how we can interface our 4G LTE(SIM7600X) with our aurdio IDE and also we will see all the configuration AT commands and finally we will see the AT command for making call and sending the SMS.

  • Plug the Battery into the battery connector in the board or plug USB for powering the module.
  • Plug the SIM card into the sim card slot of the module.
  • Plug the GPS antenna into the interface.
  • Plug two 4G-GSM antennas into the main antenna interface and auxiliary one.

Note: The glowing of blue led on module indicates GSM MODULE SIM7600 is working.

Programming

#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;
}