Pengenalan 4G GSM Arduino
Pengguna 2G GSM Arduino (SIM800, SIM808, AI Thinker A6) mulai berallih ke modul 4G GSM Arduino. Penyebab nya adalah di OFF kan nya layanan 2G di berbagai negara, salah satu nya adalah di Indonesia. Di indonesia layanan 2G ini mulai di hapus. Bersyukur donk, karena issue ini mikroavr.com dapat client untuk membuat 4G GSM SIM7600.
Karena product nya dah release, ini kami coba perkenalkan Modul SIM7600CE ini, Sebuah 4G GSM yang sudah kami pakai hampir satu tahun lebih ( mulai dari June 2021). SIM7600 ini di lengkapi dengan Jalur USB, Power Key, RST, jalu TXD dan RXD. gambar nya adalah sebagai berikut
Deskripsi pin out
PIN out GSM ini hanya terdiri dari:
- Power Key ( untuk menghidupkan SIM7600, di gunakan pada system low power )
- Reset, untuk reset SIM7600, jika terjadi kegagalan pada sim7600
- Level, logic level pada MCU, jika menggunakan mikrokontroller 5V maka hubungkan ke 5V, jika di gunakan pada mikrokontroller 3.3v ( ESP32, ESP12, STM32, Raspberry PI) maka hubungkan ke tegangan 3.3V
- RXD, hubungkan ke RXD Mikrokontroller
- TXD, hubungkan ke TXD mikrokontroller
Testing AT command Modem
Sebelum testing AT command, wiring dulu atmega2560(Boleh menggunakan Arduino/Mikrokontroller jenis lain) dengan MODUL GSM nya. Wiring nya seperti pada gambar di bawah ini,
Wiring nya seperti berikut
- Power Key -> D7 Arduino Mega2560
- Reset -> D6 Arduino Mega2560
- RXD -> RX3 Arduino Mega2560
- TXD – > TX3 Arduino Mega2560
- Level -> 5V Arduino Mega2560
- GND – GND Arduino Mega2560
- VIN – 12V/3A Adaptor
- GND – GND Adaptor
Upload Program AT Command
Untuk Testing At Command, silahkan ketik seperti Program di bawah ini
#define PKEY 7 #define RST 6 #define SerialMon Serial #define SerialAT Serial3 int ledState = LOW; const int ledPin = 12; int counter = 0; unsigned long cur_time_led, old_time_led; unsigned long cur_time, old_time; bool hold = 0; #define TINY_GSM_MODEM_SIM7600 #if !defined(TINY_GSM_RX_BUFFER) #define TINY_GSM_RX_BUFFER 650 #endif #define TINY_GSM_DEBUG SerialMon // set GSM PIN, if any #define GSM_PIN "" // Your GPRS credentials, if any const char apn[] = "Internet"; const char gprsUser[] = ""; const char gprsPass[] = ""; const char server[] = "vsh.pp.ua"; const char resource[] = "/TinyGSM/logo.txt"; const int port = 80; #include <TinyGsmClient.h> #include <ArduinoHttpClient.h> #ifdef DUMP_AT_COMMANDS #include <StreamDebugger.h> StreamDebugger debugger(SerialAT, SerialMon); TinyGsm modem(debugger); #else TinyGsm modem(SerialAT); #endif TinyGsmClient client(modem); HttpClient http(client, server, port); void setup() { // put your setup code here, to run once: SerialMon.begin(115200); SerialAT.begin(115200); delay(250); SerialMon.println("test at mulai"); pinMode(ledPin, OUTPUT); pinMode(RST, OUTPUT); pinMode(PKEY, OUTPUT); digitalWrite(PKEY, LOW); digitalWrite(RST, LOW); delay(1000); digitalWrite(PKEY, HIGH); digitalWrite(RST, HIGH); delay(1000); digitalWrite(PKEY, LOW); digitalWrite(RST, LOW); delay(1000); SerialMon.println("Initializing modem..."); modem.restart(); String modemInfo = modem.getModemInfo(); SerialMon.print("Modem Info: "); SerialMon.println(modemInfo); delay(1000); /* send_at("AT+CMGF=1"); send_at("AT+IPREX=9600"); SerialAT.begin(9600, SERIAL_8N1, RXD2, TXD2); send_at("AT&W"); send_at("AT&V"); */} void loop() { // put your main code here, to run repeatedly: cur_time_led = millis(); if (cur_time_led - old_time_led >= 1000) { SerialMon.println("SEND AT"); counter++; switch (counter) { case 1: send_at("AT+CPIN?"); break; case 2: send_at("AT+CSQ"); break; case 3: send_at("AT+CPSI?"); break; case 4: send_at("AT+IPR?"); counter = 0; break; } if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite(ledPin, ledState); old_time_led = cur_time_led; } } void send_at(char *_command) { SerialAT.println(_command); wRespon(1000); } void wRespon(long waktu) { cur_time = millis(); old_time = cur_time; while (cur_time - old_time < waktu ) { cur_time = millis(); while (SerialAT.available() > 0) { SerialMon.print(SerialAT.readString()); } } } void reset_sim() { digitalWrite(RST, HIGH); } void wakeup_sim() { SerialMon.println("wakeup sim7600"); digitalWrite(PKEY, LOW); digitalWrite(RST, LOW); delay(1000); digitalWrite(PKEY, HIGH); digitalWrite(RST, HIGH); delay(1000); digitalWrite(PKEY, LOW); digitalWrite(RST, LOW); delay(1000); wRespon(15000); }
Upload Code dan Lihat di Serial Monitor, Untuk Pengujian nya bisa di lihat pada video di bawah ini
Nah, sekian dulu Deskripsi Produk MODEM 4G Arduino, Tertarik? Whatsapp Kami dengan Klik tombol di bawah ini