4G-5G-Nb-IoT-GPS-GNSS


Tài liệu hướng dẫn chung

Tài liệu hướng dẫn chung

Tổng hợp các giải pháp Module SIM 4G thay thế SIM800 và SIM900

Như một số trang chính thống đã đưa tin, Bộ Thông tin – Truyền thông đã trình Thủ tướng Chính phủ xem xét phương án dừng công nghệ di động cũ 2G vào năm 2022. Vì vậy đối với những dự án phát triển từ nay trở về sau, anh em cần tìm cho mình module SIM phù hợp để tránh trường hợp phải thay đổi trong quá trình sản xuất cũng như sản phẩm.

Xưa nay anh em quen sử dụng với các dòng module SIM đến từ SIM COM, như SIM900A, SIM800L,… với ưu điểm giá thành rẻ, phổ thông, cộng đồng lớn, tính ổn định,.. Tuy nhiên SIM900A, SIM800L,… chỉ hỗ trợ mạng 2G và GSM. Sau khi nhà mạng dừng công nghẹ 2G, thì những module này sẽ tương ứng với cục gạch – Tương tự với chiếc Nó Kìa huyền thoại 1202 hay 1280.

Đây là những lý do khiến anh em phải đổi qua dòng module SIM mới.

Bảng thống kê module ra chân V1 ( SIMCOM & Quectel) tương thích phần cứng với nhau

NSX module lõi 4G Cat 1+ SMS, No VOLTE 4G Cat 1+SMS+ VOLTE
SIMCOM
Mã SP: TDM2309

Mã lõi: A7680C
Mã SP: SP000584
(Bản CN)

SIMCOM
 
Mã lõi: A7683E
Mã SP: TDM2413
(Bản quốc tế)
   

Mã lõi: A7682S
Mã SP: TDM2430
(Bản VN)

Bảng thống kê module ra chân TDM-4G-V2 tương thích phần cứng với nhau:

NSX module lõi 4G+ SMS, No VOLTE 4G+SMS+ VOLTE 4G+GPS
SIMCOM
Mã SP: SP000765
Mã lõi: A7680C-XXX
NSX lõi: SIMCOM

Mã SP: SP000767
Mã lõi: A7680C-XXX
NSX lõi: SIMCOM

Mã SP: TDM2308
Mã lõi: A7672S-XXX
NSX lõi: SIMCOM
SIMCOM  

Mã SP: TDM2431
Mã lõi: A7682S-XXX
NSX lõi: SIMCOM
 
SIMCOM  

Mã SP: SP25041673
Mã lõi: A7683E-XXX
NSX lõi: SIMCOM
 
Quectel  
Mã SP: SP001076
Mã lõi: EC800G-CN
NSX lõi: Quectel

NO-VOLTE:
Mã SP: TDM2404
Mã lõi: EG800K
NSX lõi: Quectel

 

VOLTE:
Mã SP: TDM2519
Mã lõi: EC800M-CN
NSX lõi: Quectel

Mobiletek    

Mã SP: TDM2406
Mã lõi: LYNQ L511CN

Các kit phát triển 4G đi kèm:

4G CAT 1, SMS, VOLTE 4G CAT 1, SMS, No VOLTE
3G 4G LTE CAT 4, SMS, VOLTE

3G,4G, GPS


Mã SP: TDM2401
Mã lõi: A7680C/A7683E/A7682S**

MCU: ESP32-WROOM-32E


Mã SP: TDM2402
Mã lõi: A7680C/A7683C**

MCU: ESP32-WROOM-32E


Mã SP: SP001060
Mã lõi: A7600C

Ngưng sản xuất


Mã SP: TDM2421
Mã lõi: EG800K


Mã SP: TDM2422
Mã lõi: A7680C/A7683E/A7682S**

MCU: ESP32-C3FH4

   
Mã SP:TDM2421 (bản có volte)
Mã lõi: EC800M-CN

Các sản phẩm 4G LTE CAT 4


4G+SMS+VOLTE

4G + GPS


Mã SP: TDM2201
Mã lõi: A7600C
NSX lõi: SIMCOM

 


Mã SP: TDM2203
Mã lõi: Sim7600CE-M1S

ngưng sx

Ngoài ra còn có các sản phẩm khác như:
Module MINI PCIE 4G


Mã sản phẩm: SP004859

Mã SP: TDM2403

USB Dongle 4G

4G LTE CAT 1, No VOLTE 4G LTE CAT 1 V2, No VOLTE(VOLTE), fit vỏ usb kèm vỏ usb
LTE CAT 4, VOLTE

Mã SP: TDM2310
Mã lõi: A7680C

 

Mã SP: TDM2424
Mã lõi: A7680C(A7682S)


Mã SP: TDM2302
Mã lõi: A7600C

Dưới đây là bảng tóm tắt các module 4G thay thế cho SIM800L, SIM900A và so sánh các thông số cơ bản

Link Module ra chân Loại hoàn thiện băng tần hỗ trợ Loại 4G GPS VOLTE (gọi 4G) Nguồn cấp Khay sim Giá bán Link mua module lõi
TDM-4G-V2-SC Ra chân giống A7670 4G LTE-CAT1 10Mbps không 5-16V Push-push thấp  
TDM-4G-V2-NV Ra chân giống A7670 4G LTE-CAT1 10Mbps không không 5-16V Push-push thấp  
TDM2309-No-volte Ra chân (thay thế trực tiếp SIM800/SIM800L module) 4G LTE-CAT1 10Mbps không không 3.8-4.2V Push-push thấp nhất A7680C
A7680C-VoLTE Ra chân ( thay thế trực tiếp SIM800/SIM800L module) 4G LTE-CAT1 10Mbps không 3.8-4.2V Push-push thấp A7680C ( ghi chú cho shop có volte)
A7670 Ra chân (ngưng sx, Khuyến nghị đổi sang TDM-4G-V2) 4G LTE-CAT1 10Mbps không 5-16V Push-push thấp A7670
A7672S Ra chân 4G/GPS LTE-CAT1 10Mbps 5-16V Open-lock trung bình A7672S
A7600C Ra chân 2G/3G/4G LTE-CAT4 150Mbps không 5-16V Push-push cao A7600C
SIM7600CE Ra chân 2G/3G/4G+GPS LTE-CAT4 150Mbps 5-16V Push-push cao nhất SIM7600CE
SIM7020E Ra chân NB-IoT NB-IoT không không 2.1-3.6V Push-push thấp SIM7020E
A7680C USB Dongle Cổng ra USB 4G LTE-CAT1 10Mbps không không 5V USB Push-pull thấp A7680C
A7600C USB Dongle Cổng ra USB 2G/3G/4G LTE-CAT4 150Mbps Không 5V USB Open-Lock cao A7600C
Tài liệu hướng dẫn chung

AT Command Test cho các dòng Module SIM

  1. Giới thiệu phần mềm AT Command Test

Đây là ứng dụng do Linh Kiện Thủ Đức phát triển, dựa trên nhu cầu test và phát triển nhanh các ứng dụng dựa trên module SIM, IoT

Trong quá trình phát triển ứng dụng dành cho các dòng module SIM, nếu có vấn đề gì các bạn có thể liên hệ trực tiếp tới Linh Kiện Thủ Đức, sẽ được hỗ trợ và update nhiệt tình

Cập nhật:

2. Các tính năng cơ bản

– Hỗ trợ các command cơ bản

– Hỗ trợ SMS

– Hỗ trợ Call

– Hỗ trợ MQTT trên nền TCP

– Hỗ trợ MQTT AT command của SIMCOM

– Hỗ trợ GPS (A7600CE) hoặc LBS (Location based service – A7670C, A7600C1)

3. Các tính năng sẽ phát triển

– HTTP(S)

– Hỗ trợ Kết nối PPP (Point to Point)

Tài liệu hướng dẫn chung

Lập trình sử dụng module SIM để gửi tin nhắn và gọi điện

Chuẩn bị

  1. Mạch arduino, esp8266 hoặc esp32,… có hỗ trợ Arduino IDE
  2. Module SIM A7680C, A7670C, A7600C, SIM7600CE
  3. Mạch hạ áp LM2596 hoặc tương đương (Đối với A7680C không tích hợp mạch hạ áp)
  4. Nguồn 6-15V 10W
  5. Jack DC
  6. Dây Bus và dây điện
  7. SIM điện thoại di động có thể gọi và gửi tin nhắn
  8. Phần mềm Arduino IDE

Các module 4G thông dụng xem tại đây: Tổng hợp các loại module 4G 5G NB-IoT thông dụng

Kết nối

image.png

Code mẫu(Đây là code mẫu giao tiếp với ESP32 bạn có thể điều chỉnh để phù hợp với Arduino):

#include <HardwareSerial.h>

#define simSerial               Serial2 //Sửa cho phù hợp với module đang dùng
#define MCU_SIM_BAUDRATE        115200
#define MCU_SIM_TX_PIN              17 //Sửa cho phù hợp với module đang dùng
#define MCU_SIM_RX_PIN              16 //Sửa cho phù hợp với module đang dùng
#define MCU_SIM_EN_PIN              15 //Sửa cho phù hợp với module đang dùng

// Thay bằng thông tin WiFi của bạn
const char* ssid = "...";        // Tên mạng WiFi
const char* password = "..."; // Mật khẩu WiFi
// Please update number before test
#define PHONE_NUMBER                "+8498*****" // Nhập SĐT của bạn

void sim_at_wait()
{
    delay(100);
    while (simSerial.available()) {
        Serial.write(simSerial.read());
    }
}

bool sim_at_cmd(String cmd){
    simSerial.println(cmd);
    sim_at_wait();
    return true;
}

bool sim_at_send(char c){
    simSerial.write(c);
    return true;
}

void sent_sms()
{
    sim_at_cmd("AT+CMGF=1");
    String temp = "AT+CMGS=\"";
    temp += (String)PHONE_NUMBER;
    temp += "\"";
    sim_at_cmd(temp);
    sim_at_cmd("ESP32-SIM7600X From linhkienthuduc.com");

    // End charactor for SMS
    sim_at_send(0x1A);
}

void call()
{
    String temp = "ATD";
    temp += PHONE_NUMBER;
    temp += ";";
    sim_at_cmd(temp); 

    delay(20000);

    // Hang up
    sim_at_cmd("ATH"); 
}

void setup() 
{
    /*  Power enable  */
    pinMode(MCU_SIM_EN_PIN,OUTPUT); 
    digitalWrite(MCU_SIM_EN_PIN,LOW); //Sửa cho phù hợp với module đang dùng

    delay(20);
    Serial.begin(115200);
    Serial.println("\n\n\n\n-----------------------\nSystem started!!!!");

    // Delay for power on
    delay(12000);
  

    // Đặt ESP32 ở chế độ Station (kết nối với WiFi)
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    Serial.print("Connecting to ");
    Serial.println(ssid);

    // Chờ kết nối WiFi
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }

    // Khi kết nối thành công
    Serial.println("");
    Serial.println("WiFi connected!");
    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP());      // Hiển thị địa chỉ IP
    Serial.print("RSSI: ");
    Serial.println(WiFi.RSSI());         // Hiển thị cường độ tín hiệu (dBm)
    Serial.print("MAC Address: ");
    Serial.println(WiFi.macAddress());   // Hiển thị địa chỉ MAC
  
    simSerial.begin(MCU_SIM_BAUDRATE, SERIAL_8N1, MCU_SIM_RX_PIN, MCU_SIM_TX_PIN);
    // Check AT Command
    Serial.println("Checking AT command...");
    sim_at_cmd("AT");

    // Product infor
    sim_at_cmd("ATI");

    // Check SIM Slot
    sim_at_cmd("AT+CPIN?");

    // Check Signal Quality
    sim_at_cmd("AT+CSQ");

    sim_at_cmd("AT+CIMI");

   if (WiFi.status() == WL_CONNECTED) {
        Serial.println("Still connected to WiFi");
        Serial.print("RSSI: ");
        Serial.println(WiFi.RSSI());
    } else {
        Serial.println("WiFi disconnected! Attempting to reconnect...");
        WiFi.reconnect();
    }

    sent_sms();

    // Delay 5s
    delay(5000);   

    call();
}

void loop() 
{     
    if (Serial.available()){
        char c = Serial.read();
        simSerial.write(c);
    }
  sim_at_wait();
  call();
  delay(10000);

  // Chuyển tiếp dữ liệu từ module SIM tới máy tính
  if (simSerial.available()) {
    char c = simSerial.read();
    Serial.write(c);  // Gửi dữ liệu từ module SIM về PC
  }
}

Tài liệu hướng dẫn chung

Code mẫu SMS-CALL cảnh báo lửa và khí gas

Code mẫu ở đây dùng sản phẩm Kit phát triển 4G ESP32 LTE CAT 1 WIFI BLE TDM2401 Volte

Bạn có thể nối mạch như sau:

image.png

Lập trình:

Phần cảnh báo có thể dùng chung cho các sản phẩm khác, bạn cần điều chỉnh chân UART cho hợp lệ.

Bạn có thể tham khảo video hướng dẫn cụ thể tại đây: https://www.youtube.com/watch?v=JW7ia1GnZh8


#include <HardwareSerial.h>

#define simSerial               Serial2
#define MCU_SIM_BAUDRATE        115200
#define MCU_SIM_TX_PIN          17
#define MCU_SIM_RX_PIN          16
#define MCU_SIM_EN_PIN          15

// Định nghĩa chân pin cảm biến lửa và MQ2
#define FLAME_PIN               18
#define MQ2_PIN                 32

// Ngưỡng giá trị cho cảm biến MQ2 và cảm biến lửa
#define MQ2_THRESHOLD           800
#define FLAME_THRESHOLD         LOW // Giả sử khi chân pin cảm biến lửa xuất hiện mức LOW là phát hiện lửa

#define PHONE_NUMBER            "0..." //Điền số điện thoại của bạn

void sim_at_wait()
{
    delay(100);
    while (simSerial.available()) {
        Serial.write(simSerial.read());
    }
}

bool sim_at_cmd(String cmd) {
    simSerial.println(cmd);
    sim_at_wait();
    return true;
}


bool sim_at_send(char c){
    simSerial.write(c);
    return true;
}

void sent_sms(String message) {
    sim_at_cmd("AT+CMGF=1"); // Chế độ văn bản
    String temp = "AT+CMGS=\"";
    temp += PHONE_NUMBER;
    temp += "\"";
    sim_at_cmd(temp);
    sim_at_cmd(message); // Nội dung tin nhắn

    // Kết thúc tin nhắn
    sim_at_send(0x1A);
}



void call() {
    String temp = "ATD";
    temp += PHONE_NUMBER;
    temp += ";";
    sim_at_cmd(temp); // Gọi đi

    delay(20000); // Đợi 20 giây

    sim_at_cmd("ATH"); // Cúp máy
}



void setup() 
{
    /*  Bật nguồn mô-đun SIM  */
    pinMode(MCU_SIM_EN_PIN, OUTPUT); 
    digitalWrite(MCU_SIM_EN_PIN, LOW);

    delay(20);
    Serial.begin(115200);
    Serial.println("\n\n\n\n-----------------------\nHệ thống bắt đầu!!!!");

    // Đợi 8 giây để mô-đun SIM khởi động
    delay(8000);
    simSerial.begin(MCU_SIM_BAUDRATE, SERIAL_8N1, MCU_SIM_RX_PIN, MCU_SIM_TX_PIN);

    // Kiểm tra lệnh AT
    sim_at_cmd("AT");

    // Thông tin sản phẩm
    sim_at_cmd("ATI");

    // Kiểm tra khe SIM
    sim_at_cmd("AT+CPIN?");

    // Kiểm tra chất lượng tín hiệu
    sim_at_cmd("AT+CSQ");

    sim_at_cmd("AT+CIMI");

    // Khai báo chân pin cảm biến lửa là đầu vào
    pinMode(FLAME_PIN, INPUT); 

    // Khai báo chân pin cảm biến MQ2 là đầu vào
    pinMode(MQ2_PIN, INPUT); 


    // Đợi 5 giây
    delay(5000);   
}

void loop() 
{     
    // Kiểm tra phát hiện lửa từ cảm biến lửa
    int flame_detected = digitalRead(FLAME_PIN);
    Serial.print("Trạng thái cảm biến lửa: ");
    Serial.println(flame_detected);
    delay (1000);
    if (flame_detected == FLAME_THRESHOLD) {
        Serial.println("Cảnh báo, Phát hiện lửa");
        sent_sms("Fire Detected");

        delay(5000); // Chờ đợi cho tin nhắn được gửi đi

        call(); // Thực hiện cuộc gọi
    } 

    // Kiểm tra phát hiện khí gas từ cảm biến MQ2
    int MQ2_value = analogRead(MQ2_PIN);
    Serial.print("Giá trị MQ2: ");
    Serial.println(MQ2_value);
    delay (1000);
    if (MQ2_value > MQ2_THRESHOLD) {
        Serial.println("Phát hiện rò rỉ khí gas");
        sent_sms("Gas leak");

        delay(5000); // Chờ đợi cho tin nhắn được gửi đi

        call(); // Thực hiện cuộc gọi
    } 

    // Giao tiếp với mô-đun SIM qua cổng Serial
    if (Serial.available()){
        char c = Serial.read();
        simSerial.write(c);
    }
    sim_at_wait();
}

Tài liệu hướng dẫn chung

Code mẫu MQTT gửi tọa độ GPS tới sever dùng 4G

Dưới đây là code mẫu dùng cho Mạch phát triển 4G GPS ESP32-C3 TDM2421, một số sản phẩm khác bạn cần tìm hiểu tập lệnh AT để chỉnh sửa cho phù hợp.

Sever ở đây mình dùng là Thingsboard, nếu dùng sever khác thì các bạn chỉnh TOPIC, ACESSTOKEN cho phù hợp.

Để sử dụng được MQTT cho module này, các lệnh AT cần thiết phải dùng là: 

  1. AT+QMTOPEN
  2. AT+QMTCONN
  3. AT+QMTPUBEX
  4. AT+QMTDISC

Lập trình

#include <HardwareSerial.h>

#define simSerial Serial0  // Sử dụng Serial0 cho module SIM
#define MCU_SIM_BAUDRATE 115200
#define MCU_SIM_TX_PIN 21
#define MCU_SIM_RX_PIN 20
#define MCU_SIM_EN_PIN 2  
#define BUF_SIZE 256
#define PAYLOAD_SIZE 128
#define MSG_SIZE 128

char data[BUF_SIZE];
char payload[PAYLOAD_SIZE];
char msg[MSG_SIZE];
float latDecimalGlobal = 0.0;
float lonDecimalGlobal = 0.0;
bool is_publishing = false;

// Hàm chuyển đổi tọa độ sang dạng thập phân
float convertToDecimal(char *coordinate, char direction) {
    float degrees, minutes, decimal;
    char degStr[4], minStr[10];

    if (strlen(coordinate) > 9) { // Kinh độ (DDDMM.MMMM)
        strncpy(degStr, coordinate, 3);
        degStr[3] = '\0';
        strcpy(minStr, coordinate + 3);
    } else { // Vĩ độ (DDMM.MMMM)
        strncpy(degStr, coordinate, 2);
        degStr[2] = '\0';
        strcpy(minStr, coordinate + 2);
    }

    degrees = atof(degStr);
    minutes = atof(minStr);
    decimal = degrees + (minutes / 60.0);

    if (direction == 'S' || direction == 'W') {
        decimal = -decimal;
    }

    return decimal;
}

// Hàm phân tích chuỗi GPS
void parseGPSData(char *gpsData) {
    char *token;
    char latitude[12], longitude[12];
    char latDir, lonDir;
    float latDecimal, lonDecimal;

    // Kiểm tra lỗi GPS hoặc dữ liệu không hợp lệ
    if (strstr(gpsData, "+CME ERROR:") != NULL) {
        Serial.print("GPS error: ");
        Serial.println(gpsData);
        // Tạo payload mặc định
        snprintf(payload, sizeof(payload), "{\"latitude\": %.6f, \"longitude\": %.6f}", latDecimalGlobal, lonDecimalGlobal);
        Serial.print("Payload (default): ");
        Serial.println(payload);
        return;
    }

    if (strstr(gpsData, "+QGPSLOC:") == NULL) {
        Serial.println("No valid GPS data found");
        // Tạo payload mặc định
        snprintf(payload, sizeof(payload), "{\"latitude\": %.6f, \"longitude\": %.6f}", latDecimalGlobal, lonDecimalGlobal);
        Serial.print("Payload (default): ");
        Serial.println(payload);
        return;
    }

    // Bỏ qua phần đầu "+QGPSLOC: "
    token = strtok(gpsData, " ");
    token = strtok(NULL, ",");
    // Bỏ qua thời gian
    token = strtok(NULL, ",");
    // Lấy vĩ độ
    strcpy(latitude, token);
    latDir = latitude[strlen(latitude) - 1];
    latitude[strlen(latitude) - 1] = '\0';
    // Lấy kinh độ
    token = strtok(NULL, ",");
    strcpy(longitude, token);
    lonDir = longitude[strlen(longitude) - 1];
    longitude[strlen(longitude) - 1] = '\0';
    // Chuyển đổi sang thập phân
    latDecimal = convertToDecimal(latitude, latDir);
    lonDecimal = convertToDecimal(longitude, lonDir);

    // Cập nhật biến toàn cục
    latDecimalGlobal = latDecimal;
    lonDecimalGlobal = lonDecimal;

    // In kết quả
    Serial.print("Vi do: ");
    Serial.println(latDecimal, 6);
    Serial.print("Kinh do: ");
    Serial.println(lonDecimal, 6);

    // Tạo payload JSON
    snprintf(payload, sizeof(payload), "{\"latitude\": %.6f, \"longitude\": %.6f}", latDecimalGlobal, lonDecimalGlobal);
    Serial.print("Payload: ");
    Serial.println(payload);
}

void sim_at_wait() {
    delay(1000); // Tăng delay để đảm bảo nhận đủ dữ liệu
    int len = 0;
    while (simSerial.available()) {
        char c = simSerial.read();
        if (len < BUF_SIZE - 1) {
            data[len++] = c;
        }
    }
    if (len > 0) {
        data[len] = '\0'; // Null-terminate chuỗi
        Serial.print("===== SIM receive: ");
        Serial.println(data);
        // Kiểm tra lỗi MQTT
        if (strstr(data, "+QMTSTAT:") != NULL) {
            Serial.print("MQTT connection error: ");
            Serial.println(data);
        }
        // Phân tích GPS nếu nhận được và không đang publish
        if (strstr(data, "+QGPSLOC:") != NULL && !is_publishing) {
            parseGPSData(data);
        } else if (strstr(data, "+CME ERROR:") != NULL) {
            parseGPSData(data); // Xử lý lỗi GPS
        }
    } else {
        Serial.println("No data received from SIM module");
    }
}

bool sim_at_cmd(String cmd) {
    Serial.print("Sending command: ");
    Serial.println(cmd);
    simSerial.println(cmd);
    sim_at_wait();
    // Kiểm tra phản hồi OK hoặc ERROR
    if (strstr(data, "OK") != NULL) {
        return true;
    } else if (strstr(data, ">") != NULL) {
        return true; // Dấu > cho biết module chờ payload
    } else if (strstr(data, "ERROR") != NULL) {
        Serial.print("Command failed: ");
        Serial.println(cmd);
        return false;
    }
    return false;
}

bool sim_at_send(char c) {
    simSerial.write(c);
    return true;
}

void get_gps_data() {
    Serial.println("Requesting GPS data...");
    sim_at_cmd("AT+QGPS?");
    for (int i = 0; i < 5; i++) { // Thử 5 lần
        Serial.print("GPS attempt ");
        Serial.println(i + 1);
        sim_at_cmd("AT+QGPSLOC=0");
        delay(5000); // Chờ 5 giây để GPS thử định vị
        if (strstr(data, "+QGPSLOC:") != NULL) {
            Serial.println("GPS data received!");
            break;
        }
    }
}

bool check_network() {
    sim_at_cmd("AT+CSQ");
    if (strstr(data, "+CSQ: 0,0") != NULL || strstr(data, "+CSQ: 99,99") != NULL) {
        Serial.println("No network signal!");
        return false;
    }
    Serial.println("Network signal OK");
    // Kiểm tra GPRS
    sim_at_cmd("AT+CGATT?");
    if (strstr(data, "+CGATT: 1") == NULL) {
        Serial.println("GPRS not attached, attempting to attach...");
        sim_at_cmd("AT+CGATT=1");
        delay(2000);
        return strstr(data, "OK") != NULL;
    }
    return true;
}

bool send_mqtt_data() {
    // Khởi tạo payload mặc định nếu rỗng
    if (strlen(payload) == 0) {
        snprintf(payload, sizeof(payload), "{\"latitude\": %.6f, \"longitude\": %.6f}", latDecimalGlobal, lonDecimalGlobal);
        Serial.print("Payload initialized: ");
        Serial.println(payload);
    }
    Serial.print("Sending MQTT data with payload: ");
    Serial.println(payload);
    is_publishing = true;

    if (!check_network()) {
        Serial.println("Network signal weak, skipping MQTT send");
        is_publishing = false;
        return false;
    }

    // Thử mở kết nối MQTT
    bool mqtt_opened = false;
    for (int i = 0; i < 3; i++) {
        if (sim_at_cmd("AT+QMTOPEN=0,\"demo.thingsboard.io\",1883")) { // CHỈNH SỬA CHO PHÙ HỢP VỚI SEVER ĐANG DÙNG
            if (strstr(data, "+QMTOPEN: 0,0") != NULL) {
                Serial.println("MQTT connection opened");
                mqtt_opened = true;
                break;
            }
        }
        Serial.println("MQTT open failed, retrying...");
        delay(3000);
    }
    if (!mqtt_opened) {
        Serial.println("Failed to open MQTT connection");
        is_publishing = false;
        return false;
    }

    // Thử kết nối client
    bool mqtt_connected = false;
    for (int i = 0; i < 3; i++) {
        if (sim_at_cmd("AT+QMTCONN=0,\"clientExample\",\"StQb4lQec7VJK7BZsUl5\"")) { // CHỈNH ACCESTOKEN CHO PHÙ HỢP
            if (strstr(data, "+QMTCONN: 0,0,0") != NULL) {
                Serial.println("MQTT client connected");
                mqtt_connected = true;
                break;
            }
        }
        Serial.println("MQTT connect failed, retrying...");
        delay(3000);
    }
    if (!mqtt_connected) {
        Serial.println("Failed to connect MQTT client");
        is_publishing = false;
        return false;
    }

    // Gửi payload
    bool mqtt_published = false;
    for (int i = 0; i < 3; i++) {
        uint32_t dodai = strlen(payload);
        snprintf(msg, sizeof(msg), "AT+QMTPUBEX=0,0,0,0,\"v1/devices/me/telemetry\",%lu", dodai); // CHỈNH TOPIC CHO PHÙ HỢP
        if (sim_at_cmd(msg)) {
            delay(1000); // Tăng delay để chờ dấu >
            if (strstr(data, ">") != NULL) {
                if (sim_at_cmd(payload)) {
                    delay(1000); // Tăng delay để gửi payload
                    sim_at_cmd(""); // Gửi \r\n
                    delay(1000); // Chờ phản hồi
                    if (strstr(data, "+QMTPUBEX: 0,0,0") != NULL) {
                        Serial.println("MQTT publish successful");
                        mqtt_published = true;
                        break;
                    }
                }
            }
        }
        Serial.println("MQTT publish failed, retrying...");
        delay(3000);
    }
    if (!mqtt_published) {
        Serial.println("Failed to publish MQTT data");
    }

    // Ngắt kết nối
    sim_at_cmd("AT+QMTDISC=0");
    delay(2000);
    is_publishing = false;
    return mqtt_published;
}

void setup() {
    pinMode(MCU_SIM_EN_PIN, OUTPUT);
    digitalWrite(MCU_SIM_EN_PIN, HIGH); // Thả PWRKEY lên cao
    delay(500);
    Serial.begin(115200);
    Serial.println("\n\n\n\n-----------------------\nSystem started!!!!");
    delay(5000);

    simSerial.begin(MCU_SIM_BAUDRATE, SERIAL_8N1, MCU_SIM_RX_PIN, MCU_SIM_TX_PIN);
    Serial.println("SIM Serial initialized!");
    Serial.println("Checking AT command...");
    sim_at_cmd("AT");
    Serial.println("Getting product info...");
    sim_at_cmd("ATI");
    Serial.println("Checking signal quality...");
    sim_at_cmd("AT+CSQ");
    Serial.println("Getting IMSI...");
    sim_at_cmd("AT+CIMI");
    Serial.println("Activating GPS...");
    sim_at_cmd("AT+QGPSCFG=\"antenna\",1"); // Bật nguồn cho anten chủ động
    sim_at_cmd("AT+QGPS=1");
    delay(15000); // Chờ 15 giây để GPS khởi động
    // Khởi tạo payload mặc định
    snprintf(payload, sizeof(payload), "{\"latitude\": %.6f, \"longitude\": %.6f}", latDecimalGlobal, lonDecimalGlobal);
    Serial.print("Initial payload: ");
    Serial.println(payload);
    get_gps_data();
}

void loop() {
    if (Serial.available()) {
        char c = Serial.read();
        sim_at_send(c);
    }
    if (!is_publishing) {
        get_gps_data(); // Đọc GPS trước khi gửi MQTT
    }
    send_mqtt_data();
    delay(5000);
}

Kết quả:  

Giao diện ThingsBoard sau khi nạp code. State “Active” đã hiển thị ở mục Device có Name là “MiHi” cho thấy module 
đã kết nối thành công tới ThingsBoard.

image.png

image.png

Tài liệu hướng dẫn chung

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Trong bài viết này mình sẽ hướng dẫn các bạn kết nối ESP với module 4G sử dụng giao thức PPPoS

Với việc sử dụng giao thức PPPoS, module SIM sẽ hoạt động như là 1 driver network giống như Wi-Fi, Ethernet.

1. Kết nối

ESP32 Module SIM
5V Vin
GND GND
GPIO 17 (MCU-TX) RX
GPIO 16 (MCU-RX)  TX
GPIO 15 (MCU-RX) PEN (Power Enable)

2. Code mẫu

ESP32 ESP-IDF:

ESP32 Arduino:

3. Test

Mình sử dụng ESP-IDF để test kết nối tới mqtt server test.mosquitto.org:1883

Hướng dẫn sử dụng:

Phần mềm AT Command Test

Tài liệu hướng dẫn chung

Tổng hợp tài liệu/software/driver cho các module sim

Document

Driver

Tool AT Command

Hardware

Code mẫu

Arduino

ESP32 (esp-idf)

MCU (STM32/WCH32/TI/NXP/Nuvoton/…)

Tài liệu hướng dẫn chung

Hướng dẫn cài đặt driver module SIM 4G cho Linux/Windows

1. Các loại chế độ hoạt động của module 4G và cách chuyển chế độ hoạt động

Các module 4G hỗ trợ các driver cơ bản như sau:

Tùy từng loại module mà có cách chuyển đổi khác nhau (tham khảo at command manual và Linux USB Application Note của từng hãng:

Tham khảo tài liệu:

A76XX Series_Linux_USB_Application Note_V1.00.pdf

SIM7500_SIM7600 Linux NDIS User Guide_V2.01.pdf

https://www.waveshare.com/wiki/SIM7600G-H_4G_DONGLE

Ví dụ:

1. Windows

2. Ubuntu/Raspberry pi

ls /dev/ttyUSB*

ip a // kiểm tra xem có interface usb* không
ping 8.8.8.8 -Iusb0

3. Orange pi/build root/yocto/Android/Openwrt

Tài liệu hướng dẫn chung

Hướng dẫn cài đặt driver USB DONGLE

Windows (Win10/Win11)

A7670/A7672/A7600C-L1

SIM7600

Linux (Ubuntu/Debian/…)

ip a

And check the usb0 interface

sudo dhclient -v usb0

sudo route add -net 0.0.0.0 usb0

Sau khi cài driver và set up như trên chúng ta sẽ dùng phần mềm AT command Test của chúng tôi để cài đặt chế độ internet cũng như test các chức năng khác. Download tại đây

Nếu chưa tự động nhận internet, hãy gửi 2 lệnh sau bằng AT command
AT+DIALMODE=0
AT$MYCONFIG=”usbnetmode”,0

Xem thêm:
– Hướng dẫn sử dụng phần mềm AT Command Test

A7680C-A7682S


A7680C-A7682S

TDM2422-Mạch phát triển 4G ESP32-C3 Volte

Mạch phát triển 4G ESP32-C3 Volte TDM2422 sử dụng module A7680C/A7682C**, hỗ trợ băng tần 4G LTE, giúp người dùng linh hoạt trong các ứng dụng cần kết nối Internet tốc độ cao. Nó cũng thay thế cho các bo mạch băng tần 2G đã cũ.
Kit này là một sự kết hợp hoàn hảo với thiết kế tích hợp nhỏ gọn, đơn giản và dễ sử dụng.

Mặc định module đi kèm đầu nối IPEX và anten lá tặng kèm, quý khách cần anten cây như hình sản phẩm vui lòng tham khảo ở đây.

Thông số kỹ thuật:

– Vi điều khiển: ESP32C3FH4
– Hỗ trợ 4G LTE CAT 1 ( hỗ trợ chức năng gọi VoLTE)
– Tiêu thụ năng lượng thấp
– Điện áp sử dụng: 5 -12 VDC, có đầu jack DC để cắm adapter

– Sử dụng cổng micro USB tiện dụng
– Khay cắm sim PUSH - PUSH tiện lợi
– Hỗ trợ SMA-KWE-13.5 Đầu RF SMA Đực Dài 13.5mm Thẳng Hàn PCB (đi kèm ) và có thể mua thêm Antenna vỏ nhựa HB180 SMA-J 3G 4G 5G NB-IoT CAT.1 AH3G.102 để tăng cường khả năng kết nối mạng
– Tích hợp Led báo trạng thái mạng

Kích thước: 50.98 x 31.99 (mm)

PINOUT:

Block Diagram:

 

Code mẫu tham khảo: ESP32C3_4G/TDM2422_ESP32C3_4G at main · tdlogy-source/ESP32C3_4G (github.com)

Các tài liệu tham khảo khác:

Datasheet các dòng Module SIM 4G 5G  

USB SIMCOM driver

AT Command Test cho các dòng Module SIM

Lập trình sử dụng module SIM để gửi tin nhắn và gọi điện

A7680C-A7682S

[TDM2430] thông tin sản phẩm

TDM2430-A7682S Đây là phiên bản Module 4G ra chân V1 với giá thành rẻ và được SIMCOM hỗ trợ cho thị trường Việt Nam

Sản phẩm tương thích kích thước, pin to pin và tập lệnh hoàn toàn giống với Module 4G A7680C TDM-4G-V1 Series

A7682S Đảm bảo tin cậy cho các khách hàng đang còn nghi ngờ về khả năng hỗ trợ chính thức dòng A7680C ở Viet Nam,

Linh Kiện Thủ Đức hân hạnh được sự hỗ trợ trực tiếp từ SIMCOM và các đối tác để mang đến dòng sản phẩm này cho quý khách hàng.

-> Code và tập lệnh tương ứng với các module cũ như A7680C, A7670 và A7600C

Nếu các bạn đang gặp vấn đề về chuyển đổi mạng 2G sang 4G với phần cứng đang dùng SIM800/SIM800L, thì đây là module 4G có thể thay thế trực tiếp vào board mạch cho các bạn, giúp tiết kiệm chi phí thay thế phần cứng và sửa đổi thiết kế.

Không cần thiết kế lại phần cứng khi đã dùng SIM800L, chỉ cần thay module 2G thành 4G và lập trình lại phần giao tiếp là có thể dùng.

Module 4G SIMCOM A7682S TDM2430 giải pháp thay thế y hệt chân cho 2G SIM800 SIM800L

Lưu ý: đây là phiên bản hỗ trợ tính năng gọi 4G VOLTE hỗ trợ Viettel, Mobiphone.. các mạng khác khách hàng tự kiểm tra.

Ngoài ra, A7682S ra chân còn có phiên bản V2 tương thích ẩm thương thích TDM-4G-V2 Series của Linh Kiện Thủ Đức

Lưu ý: để gọi được quý khách phải đăng kí 4G và Volte theo nhà mạng sử dụng. và module sim phải hỗ trợ tính năng Volte.

Quý khách doanh nghiệp có nhu cầu sử dụng ESIM vui lòng liên hệ shop để được tư vấn.

Các thông tin tham khảo và code mẫu các bạn có thể xem tại đây:

-Thông số kĩ thuật:

+ Nguồn cấp: 3.7-4V ( Y hệt SIM800/SIM800L)

+ Băng tần: LTE-CAT 1 10Mbps

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tổng hợp thông tin, thắc mắc các dòng module SIM

Các tập lệnh AT quý khách có thể tải phần mềm sau về để test:

Phần mềm AT Command Test

Hướng dẫn sử dụng:

Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino


TDM2430-A7682S  là phiên bản Module 4G SIMCOM đã ra chân và khay sim, phù hợp sử dụng với nhà mạng tại Việt Nam

Thông tin kĩ thuật, datasheet các bạn có thể tìm hiểu tại đây: https://github.com/TDLOGY/TDM2309-A7680C-4G-Replace-SIM800L
3D Model và Fooprint (Kicad): Download

A7680C-A7682S

TDM2431-Module 4G A7682S Volte V2


Mô tả sản phẩm & tính năng


TDM2431 là phiên bản Module 4G SIMCOM đã ra chân và khay sim, phù hợp sử dụng với nhà mạng tại Việt Nam

TDM2431-A7682S Đây là phiên bản Module 4G ra chân cải tiến V2 ( có hỗ trợ gọi)  với nguồn tích hợp từ 5-16V với giá thành rẻ và được SIMCOM hỗ trợ cho thị trường Việt Nam

image.png

Sản phẩm tương thích kích thước, pin to pin và tập lệnh hoàn toàn giống với Module 4G A7680C TDM-4G-V2 

A7682S Đảm bảo tin cậy cho các khách hàng đang còn nghi ngờ về khả năng hỗ trợ chính thức dòng A7680C ở Viet Nam,

Linh Kiện Thủ Đức hân hạnh được sự hỗ trợ trực tiếp từ SIMCOM và các đối tác để mang đến dòng sản phẩm này cho quý khách hàng.

– > Cùng kích thước và chân tương ứng với Module ra chân A7670C, A7680C, A7672S…. cùng series TDM-4G-V2 Series

– > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V

-> Code và tập lệnh tương ứng với các module cũ như A7670 và A7600C

Ngoài ra, A7682S ra chân còn có phiên bản V1 tương thích thay thế module SIM800/800L/A7680C ra chân, quý khách có thể tham khảo các sản phẩm thương thích TDM-4G-V1 Series của Linh Kiện Thủ Đức

Lưu ý: để gọi được quý khách phải đăng kí 4G và Volte theo nhà mạng sử dụng. và module sim phải hỗ trợ tính năng Volte.

Quý khách doanh nghiệp có nhu cầu sử dụng ESIM vui lòng liên hệ shop để được tư vấn.

Hướng dẫn sử dụng: 

Các thông tin tham khảo và code mẫu:


Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino


Thông số kĩ thuật:


Mạng sử dụng 4G Cat.1
Phiên bản chi tiết TDM-A7680C
Điện áp hoạt động 4.5-16V
Mức logic I/O-TTL 3.3V hoặc 5V ( allow < 16V)
Kiểu đầu nối ăngten IPEX 1
Kiểu khay sim NANO SIM, push-push
LED báo hiệu Có, Trạng thái mạng
Kích thước:  28×26.8×5.5mm
Nhiệt độ hoạt động -40-85 độ
Kiểu ra chân Header 7 chân 2.54mm
Băng tần hỗ trợ

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tốc độ LTE(Mbps): 10(DL)/5(UL)
Giao thức hỗ trợ TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS/MQTT/MQTTS

Bản vẽ kĩ thuật


3D Model/Cad


3D model: 3D-TDM-4G-Module-V2_model.STEP

Technical Support
  If you need technical support or have any feedback/review, please contact via email: contact@tdlogy.com

A7680C-A7682S

TDM2401-TDM2402 4G-ESP32-gateway-dev-kit


Mô tả sản phẩm & tính năng


TDM2402 là phiên bản kit phát triển 4G-WIFI BLE ESP32 với tính năng VoLTE ( Hỗ trợ gọi) 
TDM2401  là phiên bản kit phát triển 4G-WIFI BLE ESP32 KHÔNG hỗ trợ gọi

image.png

Thông số kỹ thuật:
– Vi điều khiển: ESP-WROOM-32E ( 4MB flash) (WiFi và Bluetooth 4.2 LE)
– Hỗ trợ  4G LTE CAT 1 ( hỗ trợ chức năng gọi VoLTE)
– Tiêu thụ năng lượng thấp
– Điện áp sử dụng: 5VDC
– Tích hợp mạch nạp **USB-UART sử dụng driver CH340

– Sử dụng cổng USB-C tiện dụng
– Khe cắm Nano Sim (Open Lock) nhỏ gọn
– Hỗ trợ jack anten Ipex với anten lá 3dbi đi kèm để tăng cường khả năng kết nối mạng
– Tích hợp Led báo trạng thái mạng


A7682S Đảm bảo tin cậy cho các khách hàng đang còn nghi ngờ về khả năng hỗ trợ chính thức dòng A7680C ở Viet Nam,

Linh Kiện Thủ Đức hân hạnh được sự hỗ trợ trực tiếp từ SIMCOM và các đối tác để mang đến dòng sản phẩm này cho quý khách hàng.

– > Cùng kích thước và chân tương ứng với Module ra chân A7670C, A7680C, A7672S…. cùng series TDM-4G-V2 Series

– > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V

-> Code và tập lệnh tương ứng với các module cũ như A7670 và A7600C

Ngoài ra, A7682S ra chân còn có phiên bản V1 tương thích thay thế module SIM800/800L/A7680C ra chân, quý khách có thể tham khảo các sản phẩm thương thích TDM-4G-V1 Series của Linh Kiện Thủ Đức

Lưu ý: để gọi được quý khách phải đăng kí 4G và Volte theo nhà mạng sử dụng. và module sim phải hỗ trợ tính năng Volte.

Quý khách doanh nghiệp có nhu cầu sử dụng ESIM vui lòng liên hệ shop để được tư vấn.

image.png

Hướng dẫn sử dụng: 

image.png

Sơ đồ chân Pin Out: 

image.png

Value Description Description
Input voltage 5V Powered via USB or External 5V
IO Level 3.3V External IO
Programing Intergrated via USB port
ESP model ESP-WROOM-32E 4Mb flash
4G model A7680/A7683X 4G LTE Cat 1 only, no VoLTE, No GPS

Các thông tin tham khảo và code mẫu:


Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino


Thông số kĩ thuật:


Mạng sử dụng 4G Cat.1
Phiên bản chi tiết TDM-A7680C
Điện áp hoạt động 4.5-16V
Mức logic I/O-TTL 3.3V hoặc 5V ( allow < 16V)
Kiểu đầu nối ăngten IPEX 1
Kiểu khay sim NANO SIM, push-push
LED báo hiệu Có, Trạng thái mạng
Kích thước:  28×26.8×5.5mm
Nhiệt độ hoạt động -40-85 độ
Kiểu ra chân Header 7 chân 2.54mm
Băng tần hỗ trợ

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tốc độ LTE(Mbps): 10(DL)/5(UL)
Giao thức hỗ trợ TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS/MQTT/MQTTS

Bản vẽ kĩ thuật


3D Model/Cad


3D model: 3D-TDM-4G-Module-V2_model.STEP

Technical Support
  If you need technical support or have any feedback/review, please contact via email: contact@tdlogy.com

A7680C-A7682S

TDM2520-A7680C PRO V1


Mô tả sản phẩm & tính năng


TDM2520 là phiên bản Module 4G SIMCOM đã ra chân và khay sim, phù hợp sử dụng với nhà mạng tại Việt Nam

A7680C PRO (No Volte/Volte) & A7682S PRO (VOTLE) là các phiên bản Module 4G ra chân cải tiến V1 với nguồn tích hợp từ 5-16V với giá thành rẻ và tương thích chân với module SIM800/SIM800L và tương thích ngược với module A7682S V1   và A7680C-V1

Untitled.png

Module 4G SIMCOM A7680C A7682S V1 Pro Tích hợp mạch buck 4G với phần cứng đang dùng SIM800/SIM800L, thì đây là module 4G có thể thay thế trực tiếp vào board mạch cho các bạn, giúp tiết kiệm chi phí thay thế phần cứng và sửa đổi thiết kế, đồng thời giảm chi phí làm mạch nguồn rời riêng cho SIM.

Tương thích chân với module 4G SIMCOM A7680C TDM2309 giải pháp thay thế y cho 2G SIM800 SIM800L  và Module 4G A7682S Volte Ra chân V1 TDM2430 thay thế SIM800 SIM800L

– > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V ( có thể mở rộng đến 28Vđầu vào với phiên bản tùy chỉnh, khách hàng vui lòng liên hệ shop để yêu cầu trước khi đặt hàng)

-> Code và tập lệnh tương ứng với các module cũ như A7670 và A7600C

Lưu ý: để gọi được quý khách phải đăng kí 4G và Volte theo nhà mạng sử dụng. Và module SIM phải hỗ trợ tính năng Volte.

Đèn trên module nháy nhanh báo hiện đã nhận SIM, tín hiệu tốt. Nếu không nháy cần kiểm tra lại điện áp cấp, chiều lắp SIM. 

Baudrate mặc định của module là 115200.

Hướng dẫn sử dụng: 

Các thông tin tham khảo và code mẫu:


Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino

Thông số kĩ thuật:


Mạng sử dụng 4G Cat.1
Điện áp hoạt động 4.5-16V
Mức logic I/O-TTL 3.3V hoặc 5V ( allow < 16V)
Kiểu đầu nối ăngten IPEX 1
Kiểu khay sim NANO SIM, push-push
LED báo hiệu Có, Trạng thái mạng
Kích thước:  28.125×25.006×5.5mm
Nhiệt độ hoạt động -40-85 độ
Kiểu ra chân 2 Header 6 chân 2.54mm
Băng tần hỗ trợ

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tốc độ LTE(Mbps): 10(DL)/5(UL)
Giao thức hỗ trợ TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS

Bản vẽ kĩ thuật


image.png image.png

3D Model/CAD


3D model: A7680-Module-V2.step

Có thể check step file ở link này:  https://imagetostl.com/view-stp-online#convert

Technical Support
  If you need technical support or have any feedback/review, please contact via email: contact@tdlogy.com

A7680C-A7682S

Hướng dẫn gọi và đàm thoại loa mic trên module 4G V1 PRO

Sau khi kiểm tra các chức năng SMS, VOLTE của module, nếu muốn sử dụng chức năng MIC, SPK hiệu quả bạn có thể tham khảo Reference Design sau:

image.png

Sơ đồ tham khảo:

Tụ ở đây có giá trị 47uF.

image.png

Ở đây mình dùng phần mềm AT Command Tool để test chức năng call nghe, gọi của module.

image.png

Dùng phần SMS/CALL để test chức năng loa mic khi gọi, nhập số điện thoại bạn muốn gọi đến ở mục " phone number" ở phần call. 

image.png

Sau khi nhấn call những dọng lệnh dưới sẽ hiện ra trên màn hình và module đã gọi tới điện thoại đích. Khi module gọi đến bạn chỉ việc bắt máy và nói chuyện qua điện thoại để người còn lại dùng mic loa trên module để giao tiếp với bạn.

Khi dùng điện thoại gọi đến module SIM, bạn sẽ thấy màn hình hiển thị "RING". Để bắt máy bạn dùng lệnh ATA.

EG800K


EG800K

TDM2404-EG800K 4G GPS Module

Đây là phiên bản Module 4G GPS của series EC800K , hỗ trợ 4G LTE CAT 1 và GPS, ra chân cải tiến ( không hỗ trợ gọi)  với nguồn cấp  tích hợp dải rộng ( 5-12V)
- > Cùng kích thước và chân tương ứng với Module ra chân TDM-4G-V2 VOLTE

- > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V

Quý khách doanh nghiệp có nhu cầu phiên bản sử dụng eSIM vui lòng liên hệ.

Anten GPS giúp bắt sóng nhanh và tốt có thể tham khảo: https://linhkienthuduc.com/san-pham/anten-gps-gnss-dai-3m-sma/

  1. GIỚI THIỆU MODULE QUECTEL EG800K 4G GPS đã ra chân

Module 4G/GPS Quectel EG800K-CN 4G GPS ra chân à giải pháp kết nối tiên tiến, tối ưu cho các ứng dụng M2M và IoT. Với kích thước nhỏ gọn giúp dễ dàng tích hợp vào các thiết bị và hệ thống khác nhau, có nhiều lựa chọn kkhác thay thế cùng Pin2Pin với series TDM-4G-V2 giúp khách hàng có nhiều lựa chọn thay thế mà không cần thay đổi phần cứng. Đặc biệt với việc tích hợp GPS, module này cho phép người dùng theo dõi vị trí và truyền tải dữ liệu trong thời gian thực.

Thông Số Kỹ Thuật:

Tính Năng Nổi Bật:

Ứng Dụng Đa Dạng:

  1. Hướng dẫn sử dụng một số tính năng của Quectel EG800K

2.1 Cách gửi SMS và bật GPS

PIN OUT:

Module SIM ESP32 (Power)
Vin 5V USB /external source
GND GND
TX GPIO 16 (MCU UART2 RX)
RX GPIO 17 (MCU UART2 TX)
EN (Pull low for shut down module, default pulled up) Floating (Depend on hardware),
Lưu ý: Vin ưu tiên cấp nguồn ngoài riêng 5-12V (module SIM). ( nối chung với 5V của ESP32 phải đảm bảo cổng USB đủ dòng)
Chân GND của ESP32 và module SIM phải nối chung với nhau mới giao tiếp UART được.

Sơ đồ kết nối:

Màn hình Serial monitor sau khi nạp code thành công:

Cách đọc vị trí định vị

Dịch chuỗi định vị nhận được theo format sau:
Chuỗi nhận được: 123052.00,1051.1151N,10647.0193E,1.09,12.4,3,,0.040,0.022,040924,27
Vĩ độ (latitude): 1051.1151N
=> 10° 51.1151' Bắc (10° 51.1151'N)
Kinh độ (longitude): 10647.0193E
=> 106° 47.0193' Đông (106° 47.0193'E)

Sử dụng tool AT command:

Sơ đồ đấu nối với USB UART
Dowload và khởi động tool AT command của linh kiện Thủ Đức( download cả folder git bao gồm file DLL, giải nén và chạy) : https://github.com/TDLOGY/SW_ATCommand_Test
Kết nối port USB Uart tương ứng, chọn connect.
Nhấn Read All Info để check thông tin cũng như kiểm tra tín hiệu của module
Sau đó có thể chuyển sang SMS-Call để gửi SMS
Điện thoại đã nhận được tin nhắn
Đọc GPS:
Nhấn GPS Location và tiến hành dịch chuỗi như ở mục cách đọc vị trí định vị. (Đối với GPS cần chờ một khoảng thời gian sau khi khởi động để nhận được tín hiệu), anten phải được đặt ngoài trời thông thoáng, không sử dụng được trong nhà và có vật cản phía trên.
Hoặc nhấn GPS NMEA RMC để check nhanh chức năng của module.
 
Sau đó nhận được dữ liệu RMC --> copy paste vào trang https://rl.se/gprmc.
Như hình dưới đây chúng tôi đã test thử module định vị vị trí cửa hàng.
Vị trí cửa hàng là 7A đường Tân Hòa 2
Sau khi paste chuỗi NMEA vào link đã được giải mã cho ra tọa độ tương đối chính xác như hình sau

2.2 Cách kết nối PPP

Kết nối phần cứng như sơ đồ ở mục 2.1
Link code tham khảo: https://github.com/tdlogy-source/QUECTEL_EC800K/tree/main/EC800K_ppp
Kết quả sau khi nạp code thành công:
Màn hình Serial monitor
Màn hình tool AT command
 
  1. Tài liệu tham khảo

Datasheet, reference design và 3d EC800 module lõi: EC800 design resource
3D Model của module TDM2404: Download 3D Model TDM2404
Download tool AT command tại link sau: https://github.com/TDLOGY/SW_ATCommand_Test
ESP32 PPPOS Arduino (version esp32 in Arduino: 1.0.6): https://github.com/TDLOGY/esp32_pppos_arrduino
ESP32 PPPOS LKTD (esp-idf v4.4): https://github.com/TDLOGY/esp32_pppos
EG800K

TDM2421-Quectel EG800K-ESP32C3

Giới thiệu: 


Mạch phát triển 4G GPS ESP32-C3 TDM2421 siêu nhỏ gọn sử dụng module 4G GPS Quectel EG800K, hỗ trợ 4G LTE CAT 1 và GPS, giúp người dùng linh hoạt trong các ứng dụng cần kết nối Internet tốc độ cao và định vị. Nó cũng thay thế cho các bo mạch băng tần 2G đã cũ. Kit này là một sự kết hợp hoàn hảo với thiết kế tích hợp nhỏ gọn, đơn giản và dễ sử dụng, giá thành rẻ.
Kit tích hợp vi điều khiển ESP32-C3 giúp giúp bạn dễ dàng phát triển các ứng dụng lập trình các ứng dụng định vị, giao tiếp mạng trên nền tảng Arduino và ESP.
Kit hỗ trợ thêm các IO mở rộng từ ESP32-C3 giúp bạn dễ dàng kết nối thêm các ngoại vi khác để hoàn thiện ứng dụng của bạn.
Thông số kỹ thuật:
– Vi điều khiển: ESP32C3FH4 hỗ trợ WIFI và Bluetooth.
– Module GPS+4G LTE Cat 1: EG800K ( hỗ trợ GPS và Data 4G, SMS, không hỗ trợ gọi)
– Tiêu thụ năng lượng thấp
– Điện áp sử dụng: 5 -12 VDC
– Sử dụng cổng USB Type C để cấp nguồn và lập trình
– Khay cắm sim Open – Lock tiện lợi
– Tích hợp Led báo trạng thái mạng
– Kích thước: 47 x 30 (mm)
Anten GPS giúp bắt sóng nhanh và tốt có thể tham khảo: https://linhkienthuduc.com/san-pham/anten-gps-gnss-dai-3m-sma/

Sơ đồ chân 

-Cấp nguồn: VIN + GND ( tùy chọn cấp nguồn USB hoặc từ chân VIN đều OK)
  + VIN: từ 5 đến 12V ( khuyến nghị 5V)
-Các ngoại vi đi kèm ( từ ESP32-C3): 7 IO

-VBAT: ngõ ra nguồn 3.9V nuôi module 4G-GPS từ mạch Buck trên module, chân này nếu đã cấp nguồn VIN thì không dùng. chỉ dùng để cấp nguồn cho mạch khi dùng ứng dụng với PIN (3.7-4.2V) , khi đó cần hàn thêm R19 (0R hoặc nối tắt) và config SIM-PWR-EN mức 0 + không cấp nguồn vào VIN nữa

Schematic kết nối cơ bản:

Các chân kết nối nôi bộ trong kit: 

Lưu ý: không thay đổi 2 chân TX RX cho mục đích khác có thể dẫn đến brick chip không thể nạp qua USB phải dùng mode nạp qua UART

ESP32-C3 ——— EG800K

IO0  ——————-SIM DTR pin

IO2 ——————–SIM Power ON/OFF ( set low to OFF)

TXD —————— SIM RX

RXD——————-SIM TX

IO10 ——————-LED onboard ESP32

IO9 ——————–Button Boot/User

Lưu ý khi lập trình cần xem code mẫu dưới dây, disable log mặc định của ESP32-C3  vì đang dùng cổng UART0 để giao tiếp với module SIM. Nếu không module sẽ không thể nạp được


Hướng dẫn sử dụng tính năng của mạch:

Cách gửi SMS và bật GPS

Màn hình Serial Monitor sau khi nạp code thành công:

Điện thoại đã nhận được tin nhắn

Đối với GPS cần chờ một khoảng thời gian sau khi khởi động để nhận được tín hiệu, anten phải được đặt ngoài trời thông thoáng, không sử dụng được trong nhà và có vật cản phía trên.

Cách đọc vị trí định vị

Dịch chuỗi định vị nhận được theo format sau:

image.png

Chuỗi nhận được: 091644.00,1051.1155N,10647.0237E,1.32,37.4,3,,0.022,0.012,101024,23
Vĩ độ (latitude): 1051.1155N
dd: 10 (Độ vĩ độ)
mm.mmmm: 51.1155 (Phút vĩ độ)
N/S: N (Bắc)
=> 10° 51.1155′ Bắc (10° 51.1155’N)
Kinh độ (longitude): 10647.0237E
ddd: 106 (Độ kinh độ)
mm.mmmm: 47.0237 (Phút kinh độ)
E/W: E (Đông)
=> 106° 47.0237′ Đông (106° 47.0237’E)

Các tài liệu tham khảo khác:
Datasheet các dòng Module SIM 4G 5G
USB SIMCOM driver
AT Command Test cho các dòng Module SIM
Lập trình sử dụng module SIM để gửi tin nhắn và gọi điện
Datasheet, reference design và 3d EC800 module lõi: EC800 design resource
ESP32 PPPOS Arduino (version esp32 in Arduino: 1.0.6): https://github.com/TDLOGY/esp32_pppos_arrduino
ESP32 PPPOS LKTD (esp-idf v4.4): https://github.com/TDLOGY/esp32_pppos
ESP32 SIMCOM Test (SMS/Call): https://github.com/TDLOGY/esp32_sim7600x_arduino_test
Application Note
Kích thước sản phẩm:

3D model:  Tải về tại đây

EG800K

Đề xuất mạch custom tcall-lilygo sử dung Quectel thay thế A7670E

EG800K

Hướng dẫn sử dụng tính năng của mạch

Cách gửi SMS và bật GPS

Màn hình Serial Monitor sau khi nạp code thành công:

Điện thoại đã nhận được tin nhắn

Đối với GPS cần chờ một khoảng thời gian sau khi khởi động để nhận được tín hiệu, anten phải được đặt ngoài trời thông thoáng, không sử dụng được trong nhà và có vật cản phía trên.

Cách đọc vị trí định vị

Dịch chuỗi định vị nhận được theo format sau: 
image-267x300.png
Chuỗi nhận được: 091644.00,1051.1155N,10647.0237E,1.32,37.4,3,,0.022,0.012,101024,23
Vĩ độ (latitude): 1051.1155N
dd: 10 (Độ vĩ độ)
mm.mmmm: 51.1155 (Phút vĩ độ)
N/S: N (Bắc)
=> 10° 51.1155′ Bắc (10° 51.1155’N)
Kinh độ (longitude): 10647.0237E
ddd: 106 (Độ kinh độ)
mm.mmmm: 47.0237 (Phút kinh độ)
E/W: E (Đông)
=> 106° 47.0237′ Đông (106° 47.0237’E)

Các tài liệu tham khảo khác:


Datasheet, reference design và 3d EC800 module lõi: EC800 design resource
ESP32 PPPOS Arduino (version esp32 in Arduino: 1.0.6): https://github.com/TDLOGY/esp32_pppos_arrduino
ESP32 PPPOS LKTD (esp-idf v4.4): https://github.com/TDLOGY/esp32_pppos

A7683E

A7683E

Tài liệu tổng quát

image.pngModule A7683E là một module truyền thông không dây hỗ trợ kết nối 4G LTE, được thiết kế bởi SIMCom. Đây là một module LTE Cat 1, hỗ trợ các chế độ truyền thông không dây LTE-FDD với tốc độ tải xuống tối đa 10 Mbps và tải lên tối đa 5 Mbps. A7683E là phiên bản đời sau của A7680C được SIMCOM phân vùng quốc tế.

Một số đặc điểm nổi bật của module A7683E bao gồm:

Các tập lệnh AT quý khách có thể tải phần mềm sau về để test:

Phần mềm AT Command Test

Hướng dẫn sử dụng:

Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino

A7683E

[TDM2413]-A7683E-4G-V1

image.png

Bạn cần một phiên bản module 4G giống A7680C có thể dùng được ở thị trường quốc tế thì module này là một giải pháp.

Không cần thiết kế lại phần cứng khi đã dùng SIM800L, chỉ cần thay module 2G thành 4G và lập trình lại phần giao tiếp là có thể dùng.

-Thông số kĩ thuật:

+ Nguồn cấp: 3.7-4V ( Y hệt SIM800/SIM800L)

+ Băng tần: LTE-CAT 1 10Mbps

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Thông tin kĩ thuật, datasheet các bạn có thể tìm hiểu tại đây: https://github.com/TDLOGY/TDM2309-A7680C-4G-Replace-SIM800L
3D Model và Fooprint (Kicad): Download

A7683E

A7683E-4G-V2

A7683E

Thông số kĩ thuật cơ bản module lõi

Module A7683E là một module truyền thông không dây hỗ trợ kết nối 4G LTE, được thiết kế bởi SIMCom. Đây là một module LTE Cat 1bis, hỗ trợ các chế độ truyền thông không dây LTE-FDD với tốc độ tải xuống tối đa 10 Mbps và tải lên tối đa 5 Mbps.

Một số đặc điểm nổi bật của module A7683E bao gồm:

Module này tương thích với các module SIM800C, SIM868, SIM7080G và A7682E, giúp dễ dàng chuyển đổi từ các sản phẩm 2G sang LTE. Nó phù hợp cho các ứng dụng IoT như viễn thông, thiết bị giám sát, router công nghiệp, và chẩn đoán từ xa.

A7683E

Thông số kĩ thuật module 4G A7683E ra chân V2


image.png

Module A7683E ra chân là module mới nhất của SIMCOM tương tự A7682S/7680C nhưng hỗ trợ chứng chỉ CE cho thị trường xuất khẩu.

Đây là phiên bản Module 4G ra chân cải tiến (có hỗ trợ gọi)  với nguồn tích hợp.

– > Cùng kích thước và chân tương ứng với Module 4G ra chân TDM-4G-V2

– > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V

-> Code và tập lệnh tương ứng xem thêm document ở link sau: Hướng dẫn kĩ thuật và code mẫu tại đây

THÔNG SỐ KĨ THUẬT:

Mạng sử dụng 4G Cat.1

Kiểu ra chân: Header 7 chân 2.54mm

Điện áp hoạt động 4.5-16V

Mức logic I/OTTL ( Serial 3.3V)

Kiểu antenna: IPEX 1

Kiểu khay sim NANO SIM, push-push

LED báo hiệu:  Trạng thái mạng

Kích thước: 28×26.8×5.5mm

Nhiệt độ hoạt động-40-85 độ

Băng tần hỗ trợ:LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tốc độ : LTE(Mbps): 10(DL)/5(UL)

Giao thức hỗ trợ: TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS

3D model: Download

Sơ đồ chân:

img_v3_02ld_41eb4067-dc46-4f17-9bbe-57ef3e1632hu.jpg

Hướng dẫn sử dụng:
Dùng phần mềm  Phần mềm AT Command Test do LINH KIỆN THỦ ĐỨC phát triển để test với USB uart trước, sau đó thử dùng code với các vi xử lí khác để đảm bảo hoạt động của module.

Download và khởi động tool AT command của linh kiện Thủ Đức (download cả folder git bao gồm file DLL, giải nén và chạy) https://github.com/TDLOGY/SW_ATCommand_Test

Đấu nối module với USB UART như sau:

image.png

Kết nối port USB UART tương ứng, chọn connect.
Nhấn Read All Info để check thông tin cũng như kiểm tra tín hiệu của module

image.png

Sau đó có thể chuyển sang SMS-Call để gửi SMS

image.png

Điện thoại đã nhận được tin nhắn 

image.png

Các tài liệu tham khảo khác:
Datasheet các dòng Module SIM 4G 5G
USB SIMCOM driver
AT Command Test cho các dòng Module SIM
Lập trình sử dụng module SIM để gửi tin nhắn và gọi điện

EC800M-CN

EC800M-CN Hỗ trợ 4G Lte Cat1 và GPS

EC800M-CN

Hardware Document

Quectel_EC800M&EG810M_Series_QuecOpen_GPIO_Configuration_V1.1.xlsx

Quectel_EC800M&EG810M_Series_QuecOpen_Reference_Design_V1.2.pdf

 

EC800M-CN

TDM2519 Module 4G GPS Quectel EC800M-CN V2


Mô tả sản phẩm & tính năng


TDM2519 là phiên bản Module 4G GPS của Quectel EC800M-CN đã ra chân và khay sim V2, phù hợp sử dụng với nhà mạng tại Việt Nam

TDM2519 Đây là phiên bản Module 4G ra chân cải tiến V2 ( có hỗ trợ gọi)  và GPS với nguồn tích hợp từ 5-16V

EC800M-CN.png

Sản phẩm tương thích kích thước, pin to pin và tập lệnh hoàn toàn giống với Module 4G A7680C TDM-4G-V2 

Linh Kiện Thủ Đức hân hạnh được sự hỗ trợ trực tiếp từ Quectel và các đối tác để mang đến dòng sản phẩm này cho quý khách hàng.

– > Cùng kích thước và chân tương ứng với Module ra chân A7670C, A7680C, A7672S…. cùng series TDM-4G-V2 Series

– > Đã tích hợp mạch nguồn trên board hỗ trợ dải diện áp hoạt động rộng từ 5V-16V

Ngoài ra, EC800M-CN ra chân còn có phiên bản EG80K tương thích thay thế với giá thành rẻ hơn

Lưu ý: để gọi được quý khách phải đăng kí 4G và Volte theo nhà mạng sử dụng. và module sim phải hỗ trợ tính năng Volte.

Quý khách doanh nghiệp có nhu cầu sử dụng ESIM vui lòng liên hệ shop để được tư vấn.

Hướng dẫn sử dụng: 

Các thông tin tham khảo và code mẫu:


Tổng hợp thông tin – Giải đáp các thắc mắc về 4G – eSIM – NBIoT

Lập trình sử dụng module SIM A7680C A7670C A7600C SIM7600CE để gửi tin nhắn và gọi điện

Hướng dẫn sử dụng module 4G với ESP32 – MQTT

Lập trình PPPoS Module SIM cho Arduino


Thông số kĩ thuật:


Mạng sử dụng 4G Cat.1
Phiên bản chi tiết TDM2519
Điện áp hoạt động 4.5-16V
Mức logic I/O-TTL 3.3V hoặc 5V ( allow < 16V)
Kiểu đầu nối ăngten IPEX 1
Kiểu khay sim NANO SIM, push-push
LED báo hiệu Có, Trạng thái mạng
Kích thước:  28×26.8×5.5mm
Nhiệt độ hoạt động -40-85 độ
Kiểu ra chân Header 7 chân 2.54mm
Băng tần hỗ trợ

LTE-TDD: B34/B38/B39/B40/B41

LTE-FDD: B1/B3/B5/B8

Tốc độ LTE(Mbps): 10(DL)/5(UL)
Giao thức hỗ trợ TCP/IP/IPV4/IPV6/Multi-PDP/FTP/FTPS/HTTP/HTTPS/DNS
GPS

Bản vẽ kĩ thuật


3D Model/Cad


3D model: 3D-TDM-4G-Module-V2_model.STEP

Technical Support
  If you need technical support or have any feedback/review, please contact via email: contact@tdlogy.com

L511C-7C 4G+GPS


L511C-7C 4G+GPS

L511C-7C 4G+GPS Datasheet

Tóm tắt thông số kỹ thuật của L511C-7 Series

1. Tổng quan

2. Đặc điểm kỹ thuật

3. Tính năng và giao tiếp

4. Ứng dụng

5. Ưu điểm

Datasheet: L511C-7 Series_Spec_240919.pdf

Quectel RG500U-CN