Chuyển đến nội dung
AIOTAIOT
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Cảm biến
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
  • icon
    097 186 8316    |    0839 799 889
Thiết bị dịch vụ thông minh, Tin tức

AIoT_L501 – Thư viện ESP32 tối ưu cho module 4G L501

Đã đăng trên 10/07/202609/07/2026 bởi ThaoNguyen
10
Th7

💬 Bạn có biết?

Làm thế nào để một vi điều khiển nhỏ gọn như ESP32 có thể gửi tin nhắn SMS, thực hiện cuộc gọi, kết nối MQTT hay gửi yêu cầu HTTP ở bất kỳ nơi đâu mà không phụ thuộc vào sóng Wi-Fi? Câu trả lời chính là tích hợp kết nối mạng di động 4G LTE. Hãy cùng khám phá thư viện AIoT_L501 giúp đơn giản hóa mọi giao tiếp phức tạp đó chỉ với vài dòng lệnh cơ bản!

1. Giới thiệu chung

AIoT_L501 là thư viện chuyên dụng dành cho ESP32, được thiết kế để đơn giản hóa quá trình giao tiếp và điều khiển module 4G AIoT L501 thông qua chuẩn giao tiếp UART (sử dụng tập lệnh AT Command). Thư viện giúp các nhà phát triển IoT triển khai nhanh chóng các ứng dụng kết nối di động mà không cần đi sâu cấu hình các tập lệnh AT phức tạp.

💡 KHÁI NIỆM QUAN TRỌNG: AT Command & UART

AT Commands (Attention Commands) là ngôn ngữ chuẩn dùng để cấu hình và giao tiếp với các module viễn thông (SIM, Bluetooth, Wifi). Thư viện AIoT_L501 đóng vai trò đóng gói (wrapper) các tập lệnh thô này thành các hàm C++ tường minh, giúp bạn lập trình trên Arduino IDE một cách trực quan nhất.

Thư viện hỗ trợ đầy đủ các chức năng cốt lõi bao gồm:

  • Lấy thông tin hệ thống của module
  • Quản lý kết nối mạng 4G tự động
  • Quản lý tin nhắn SMS (Gửi, nhận, đọc, tự động giải mã và ghép tin nhắn dài, xóa SMS)
  • Thực hiện cuộc gọi đi, nhận cuộc gọi đến
  • Kết nối và giao tiếp giao thức MQTT
  • Kết nối và tương tác Web Services qua HTTP GET/POST
  • Truyền nhận dữ liệu trực tiếp qua Socket TCP
  • Hỗ trợ công cụ Ping kiểm tra kết nối mạng trực tiếp

2. Sơ đồ đấu nối phần cứng

Để module hoạt động chính xác, việc đấu nối phần cứng là vô cùng quan trọng. Hãy theo dõi kỹ hướng dẫn đấu nối mặt trước và mặt sau dưới đây.

Mặt trước thiết bị

Sơ đồ đấu nối mặt trước module L501

⚠️ Chú ý về kết nối và cấu hình Jumper:

  • Cổng USB to UART: Phục vụ cho việc nạp chương trình (firmware) và giao tiếp gỡ lỗi trực tiếp với máy tính.
  • Cổng USB: Sử dụng để truyền nhận dữ liệu tốc độ cao trực tiếp với module L501.
  • Cấu hình Jumper kết nối:
    Jumper kết nối UART

    Cần kết nối tín hiệu UART (TX/RX) giữa ESP32 và Module Sim L501 thông qua mạch chuyển đổi mức điện áp tích hợp trên board. Bạn hãy tiến hành nối các chân trong cùng một hàng (hàng 1 và hàng 2) bằng hai Jumper theo chiều ngang như hình minh họa.

Mặt sau thiết bị

Sơ đồ đấu nối mặt sau module L501

Tiến hành kết nối các chân giao tiếp vật lý giữa board ESP32 và module 4G L501 qua giao tiếp UART theo bảng chuẩn dưới đây:

Chân trên ESP32 Chân tương ứng trên Module L501 Chức năng mô tả
3V3 / 5V VCC Chân cấp nguồn hoạt động
GND GND Chân nối đất (Ground chung)
TX (GPIO17) RXD Chân truyền dữ liệu từ ESP32 sang L501
RX (GPIO16) TXD Chân nhận dữ liệu từ L501 vào ESP32

⚠️ SAI LẦM THƯỜNG GẶP: Nguồn cấp thiếu dòng

Mạch RF phát sóng 4G LTE tiêu tốn lượng điện năng tức thời rất lớn. Module L501 yêu cầu nguồn cấp cực kỳ ổn định, có khả năng đáp ứng dòng điện tối thiểu từ 1A đến 2A trong quá trình bắt sóng và truyền phát. Việc cấp nguồn trực tiếp từ chân 3.3V của các mạch nạp ESP32 rẻ tiền thường dẫn tới tình trạng sụt áp đột ngột, làm module reset liên tục hoặc lỗi kết nối.

3. Cài đặt thư viện trên Arduino IDE

Bạn có thể tiến hành tích hợp thư viện vào môi trường lập trình của mình theo một trong hai cách thức vô cùng đơn giản sau:

Cách 3.1: Nhập file ZIP trực tiếp

  1. Mở phần mềm Arduino IDE lên.
  2. Tru cập menu: Sketch → Include Library → Add .ZIP Library...
  3. Duyệt tìm và chọn file AIoT_L501.zip đã được tải về máy tính.
  4. Khởi động lại Arduino IDE để hệ thống đồng bộ và nhận diện thư viện mới.

Cách 3.2: Cài đặt thủ công bằng tay

  1. Giải nén toàn bộ thư mục bên trong tệp nén thư viện.
  2. Sao chép trực tiếp thư mục đã giải nén vào đường dẫn lưu trữ thư viện mặc định của Arduino:Documents/Arduino/libraries/AIoT_L501
  3. Khởi động lại trình biên dịch Arduino IDE để hoàn tất cài đặt.

4. Hướng dẫn khởi tạo & kết nối nhanh mạng 4G

Để bắt đầu sử dụng module, bạn cần làm quen với tiến trình khai báo đối tượng, cấu hình các chân UART và đăng ký dịch vụ mạng di động thông qua cấu hình APN.

4.1. Khai báo thư viện và cấu hình chân giao tiếp UART

Khai báo thư viện và cấu hình phần mềm sử dụng cổng Serial2 của vi điều khiển ESP32:

#include <AIoT_L501.h>

// Định nghĩa chân TX/RX mềm kết nối với Module L501
#define L501_RX 16
#define L501_TX 17

// Khởi tạo đối tượng giao tiếp 'aiot'
AIoT_L501 aiot(Serial2, 115200, L501_RX, L501_TX);

4.2. Khởi tạo và kiểm tra phản hồi từ module

Đoạn mã cấu hình trong hàm setup() đảm bảo module phản hồi chuẩn xác trước khi tiếp tục chương trình:

void setup() {
    Serial.begin(115200);
    aiot.begin();
    
    // Khởi tạo và kiểm tra module trong khoảng thời gian chờ 10 giây
    if (!aiot.init(10000)) {
        Serial.println("Khởi tạo module L501 thất bại! Kiểm tra lại đấu nối nguồn/UART.");
        while (1); // Dừng chương trình nếu không tìm thấy module
    }
    Serial.println("Khởi tạo module L501 thành công!");
}

4.3. Kết nối mạng di động Internet 4G

Cấu hình APN (Access Point Name) phù hợp với nhà mạng của thẻ SIM bạn đang cắm trên Module L501. Bảng tra cứu thông tin APN các nhà mạng lớn tại Việt Nam:

Nhà mạng Cấu hình APN chính xác
Viettel v-internet
Vinaphone m3-world
Mobifone m-wap
// Thay đổi giá trị APN phù hợp với nhà mạng SIM bạn đang sử dụng
const char* APN = "v-internet"; 

if (aiot.connectInternet4G(APN)) {
    Serial.println("Kết nối Internet di động thành công!");
} else {
    Serial.println("Kết nối Internet thất bại! Kiểm tra cột sóng hoặc dịch vụ data của SIM.");
}

5. Chức năng quản lý gửi/nhận tin nhắn SMS

Thư viện tích hợp sẵn bộ giải mã dữ liệu UCS2 giúp xử lý dễ dàng tiếng Việt, tự động ghép các phân đoạn đối với các tin nhắn có độ dài vượt định mức và quản lý bộ nhớ lưu trữ SMS.

5.1. Gửi tin nhắn SMS đi

const String phone = "+849xxxxxxxx"; // Định dạng số điện thoại chuẩn quốc tế
const String message = "Xin chao tu ESP32 + L501!";

if (aiot.sendSMS(phone, message)) {
    Serial.println("Gửi SMS thành công!");
} else {
    Serial.println("Gửi SMS thất bại!");
}

5.2. Đọc tin nhắn SMS theo vị trí lưu trữ (Index)

int index = 1; // Vị trí vùng nhớ chứa tin nhắn trên SIM cần đọc
String sms = aiot.readSMS(index);
Serial.print("Nội dung SMS tại index 1: ");
Serial.println(sms);

5.3. Liệt kê toàn bộ danh sách SMS đang lưu

String allSMS = aiot.listAllSMS();
Serial.println("--- Danh sách SMS ---");
Serial.println(allSMS);

5.4. Xóa tin nhắn giải phóng bộ nhớ SIM

Bạn có thể lựa chọn xóa từng tin hoặc làm sạch toàn bộ bộ nhớ trong của SIM:

// 1. Xóa một tin nhắn cụ thể theo Index
int indexToDelete = 1;
if (aiot.deleteSMS(indexToDelete)) {
    Serial.println("Đã xóa SMS thành công tại vị trí " + String(indexToDelete));
}

// 2. Xóa toàn bộ tin nhắn đang lưu trên SIM
if (aiot.deleteAllSMS()) {
    Serial.println("Đã dọn dẹp sạch toàn bộ SMS trên SIM!");
}

📝 Lưu ý đặc biệt đối với dịch vụ SMS:

Giới hạn tối đa một tin nhắn SMS tiêu chuẩn là 160 ký tự không dấu. Nếu tin nhắn vượt quá độ dài này, hệ thống sẽ tự động phân tách thành các đoạn tin và tính cước phí tương ứng theo số phân đoạn gửi đi. Hãy luôn sử dụng đầu số chuẩn quốc tế (ví dụ bắt đầu bằng mã vùng +84) để tăng độ ổn định khi truyền phát.

6. Chức năng quản lý cuộc gọi (Call)

Tương tác thực hiện đàm thoại trực tiếp với các số thuê bao khác hoặc can thiệp tắt/nhận cuộc gọi đến:

6.1. Thực hiện cuộc gọi đi

const String phoneToCall = "+849xxxxxxxx"; // Số thuê bao cần liên hệ

if (aiot.call(phoneToCall)) {
    Serial.println("Đang thực hiện quay số và kết nối cuộc gọi...");
} else {
    Serial.println("Không thể thiết lập cuộc gọi!");
}

6.2. Kết thúc/Ngắt cuộc gọi đang kết nối

aiot.hangUp(); // Ngắt ngay lập tức cuộc gọi hiện tại

6.3. Trả lời khi phát hiện cuộc gọi đến

aiot.answerCall(); // Nhấc máy tiếp nhận cuộc đàm thoại

🔔 Ghi chú cuộc gọi:

Hãy chắc chắn rằng tài khoản SIM của bạn còn đủ tiền và đã được đăng ký kích hoạt hai chiều nghe gọi từ nhà mạng. Thiết bị di động của bạn cũng cần bảo đảm bắt sóng ổn định trước khi phát tín hiệu cuộc gọi đi.

7. Giao tiếp dữ liệu qua giao thức MQTT

Giao thức MQTT gọn nhẹ, tối ưu cho các dự án IoT thu thập cảm biến và điều khiển thiết bị phản hồi thời gian thực qua sóng di động 4G:

7.1. Thiết lập cấu hình kết nối MQTT Client

aiot.mqttConfig("L501Device"); // Khai báo ID duy nhất của thiết bị Client

7.2. Định cấu hình máy chủ Broker và cổng kết nối

// Kết nối máy chủ Broker EMQX public, port 1883, sử dụng Keepalive 3 giây
aiot.mqttSetServer("broker.emqx.io", 1883, 3);

7.3. Thực hiện thủ tục bắt tay và kết nối Broker

if (aiot.mqttConnect(0, 60)) { // Cấu hình chế độ Clean Session, Keepalive 60 giây
    Serial.println("Kết nối MQTT Broker thành công!");
} else {
    Serial.println("Kết nối MQTT Broker thất bại!");
}

7.4. Đăng ký chủ đề (Subscribe) và Truyền tin (Publish)

// Đăng ký lắng nghe kênh dữ liệu "testsim"
aiot.mqttSubscribe("testsim");

// Phát bản tin dữ liệu lên kênh "testsim"
aiot.mqttPublish("testsim", "L501 KET NOI THANH CONG");

7.5. Lắng nghe dữ liệu phản hồi từ Broker

String msg = aiot.mqttReceive(500); // Đặt khoảng thời gian chờ (timeout) 500ms
if (msg.length() > 0) {
    Serial.println("Nhận bản tin MQTT mới [RX]: " + msg);
}

7.6. Đóng kết nối và tắt tiến trình MQTT

aiot.mqttDisconnect(); // Gửi bản tin ngắt kết nối MQTT Client
aiot.mqttClose();      // Giải phóng Socket kết nối TCP
aiot.stop();           // Ngắt toàn bộ phiên kết nối Internet 4G tương ứng

💡 Kinh nghiệm lập trình MQTT:

Luôn kiểm tra trạng thái mạng bằng hàm aiot.mqttStatus() định kỳ để tự động kích hoạt tiến trình kết nối lại (reconnect) khi tín hiệu mạng bị gián đoạn lúc di chuyển thiết bị.

8. Chức năng truyền dẫn Socket TCP

Nếu bạn cần truyền tải các dòng dữ liệu thô (raw byte stream) có băng thông rộng và yêu cầu kiểm soát dòng tin chặt chẽ, giao thức Socket TCP trực tiếp là lựa chọn tối ưu:

8.1. Thiết lập kết nối TCP Socket

int socketId = 1; // ID quản lý phiên kết nối TCP (Socket ID)
const String host = "tcpbin.com"; // Server kiểm thử truyền nhận TCP public
int port = 4242;

if (aiot.tcpConnect(socketId, host, port)) {
    Serial.println("Kết nối Socket TCP thành công!");
} else {
    Serial.println("Kết nối Socket TCP thất bại!");
}

8.2. Gửi dữ liệu thô qua Socket TCP

String data = "Hello from L501";
if (aiot.tcpSend(socketId, data)) {
    Serial.println("Đã gửi dữ liệu TCP thành công!");
}

8.3. Tiếp nhận dòng dữ liệu trả về từ máy chủ

int length = 128; // Giới hạn kích thước gói dữ liệu cần đọc (Byte)
String resp = aiot.tcpReceive(socketId, length);
Serial.println("Dữ liệu phản hồi nhận được: " + resp);

8.4. Đóng kết nối TCP giải phóng tài nguyên

aiot.tcpClose(socketId); // Đóng tiến trình chiếm dụng Socket ID

9. Kiểm tra kết nối mạng bằng công cụ Ping

Hỗ trợ xác minh khả năng kết nối mạng thực tế của module tới các máy chủ phân giải tên miền hoặc địa chỉ IP tĩnh chỉ định.

Cú pháp và mã lệnh thực hiện Ping:

Serial.println("[*] Đang tiến hành ping kiểm tra kết nối google.com ...");

// Cấu pháp hàm: ping(địa chỉ, số lần, số byte dữ liệu, thời gian timeout chờ phản hồi)
String pingResult = aiot.ping("google.com", 5, 32, 1);

Serial.println("[Kết quả Ping trả về từ hệ thống]");
Serial.println(pingResult);

🔬 KIẾN THỨC NÂNG CAO: Ứng dụng của lệnh Ping trong IoT

Không chỉ dùng để hiển thị dữ liệu lên màn hình Serial, lập trình viên thường phân tích chuỗi phản hồi pingResult nhằm phát hiện gói tin mất mát (packet loss). Nếu tỉ lệ mất gói tin vượt ngưỡng 50%, thiết bị có thể tự động chuyển đổi băng tần sóng hoặc chủ động ngắt truyền các file dữ liệu nặng để tiết kiệm pin.

10. Kết nối trao đổi dữ liệu qua giao thức HTTP

Giải pháp trao đổi thông tin với các RESTful API của Web Server để cập nhật dữ liệu cảm biến hoặc kéo các tham số cấu hình về vi điều khiển:

10.1. Hàm bổ trợ trích xuất dữ liệu phản hồi (Body Helper)

Vì dữ liệu trả về từ module thường kèm theo một số header hoặc phản hồi AT thô, việc sử dụng hàm Helper sau sẽ giúp lọc sạch lấy dữ liệu thô chuẩn JSON hoặc TEXT:

String extractBody(const String &raw) {
    int idx = raw.lastIndexOf("$HTTPRECV:DATA,");
    if (idx == -1) return "";
    int start = raw.indexOf('{', idx);
    if (start == -1) start = raw.indexOf('\n', idx);
    if (start == -1) return "";
    String body = raw.substring(start);
    body.trim();
    return body;
}

10.2. Gửi yêu cầu HTTP GET

unsigned long tStart = millis();

// Thực hiện gọi hàm GET với cấu hình thời gian Timeout 15000ms (15 giây)
String getRaw = aiot.httpGet("http://postman-echo.com/get?device=ESP32", 15000);
unsigned long tDuration = millis() - tStart; 

if (extractBody(getRaw).length() > 0) {
    Serial.print(">>> GET Thành công! Tổng thời gian phản hồi: ");
    Serial.print(tDuration);
    Serial.println(" ms");
    Serial.println("Dữ liệu lọc được: " + extractBody(getRaw));
} else {
    Serial.print("[LỖI] GET thất bại hoặc mất kết nối mạng. Thời gian: ");
    Serial.print(tDuration);
    Serial.println(" ms");
}

10.3. Gửi yêu cầu HTTP POST gửi tải trọng dữ liệu

unsigned long tStart = millis();
String payload = "{\"status\":\"active\",\"battery\":95}"; // Tải trọng cấu trúc dạng JSON

// Thực hiện gọi hàm POST truyền tải payload với Timeout là 15 giây
String postRaw = aiot.httpPost("http://postman-echo.com/post", payload, 15000);
unsigned long tDuration = millis() - tStart; 

if (extractBody(postRaw).length() > 0) {
    Serial.print(">>> POST Thành công! Thời gian phản hồi: ");
    Serial.print(tDuration);
    Serial.println(" ms");
    Serial.println("Dữ liệu trả về: " + extractBody(postRaw));
} else {
    Serial.print("[LỖI] POST thất bại. Thời gian phản hồi: ");
    Serial.print(tDuration);
    Serial.println(" ms");
}

⚠️ Lưu ý quan trọng khi cấu hình HTTP:

Vì mạng di động 4G hoạt động qua nhiều lớp định tuyến truyền phát phức tạp và có độ trễ cao hơn đáng kể so với mạng Wi-Fi cục bộ, bạn nên đặt thông số thời gian chờ Timeout từ 15000ms (15 giây) cho đến 30000ms (30 giây) để tránh ngắt kết nối giữa chừng khi máy chủ phản hồi chậm.

🛠️ THÍ NGHIỆM THỰC HÀNH: Điều khiển bật/tắt LED qua tin nhắn SMS

Hãy cùng lắp đặt một ứng dụng thực tế: Đọc tin nhắn SMS gửi tới, nếu tin nhắn có nội dung là “LED_ON” thì bật đèn LED tích hợp trên chân GPIO2 của ESP32, nếu nội dung là “LED_OFF” thì tiến hành tắt đèn và gửi trả lời tin nhắn xác nhận.

// Chạy hàm kiểm tra định kỳ trong loop()
void checkAndControlLED() {
    String smsContent = aiot.readSMS(1); // Đọc tin nhắn tại index 1
    if (smsContent.length() > 0) {
        if (smsContent.indexOf("LED_ON") != -1) {
            digitalWrite(2, HIGH);
            aiot.sendSMS("+849xxxxxxxx", "He thong da BAt den LED!");
            aiot.deleteSMS(1); // Xóa tin nhắn giải phóng vùng nhớ
        } else if (smsContent.indexOf("LED_OFF") != -1) {
            digitalWrite(2, LOW);
            aiot.sendSMS("+849xxxxxxxx", "He thong da tAt den LED!");
            aiot.deleteSMS(1);
        }
    }
}

📝 Trắc nghiệm kiến thức

Hãy hoàn thành 5 câu hỏi nhanh dưới đây để củng cố các kiến thức phần cứng và lập trình quan trọng bạn vừa tìm hiểu!

Question 1: Chân GPIO16 (RX) và GPIO17 (TX) trên ESP32 trong phần hướng dẫn kết nối với chân nào tương ứng trên module 4G L501?

  • (A) Chân RX (GPIO16) kết nối với RXD; Chân TX (GPIO17) kết nối với TXD.
  • (B) Chân RX (GPIO16) kết nối với TXD; Chân TX (GPIO17) kết nối với RXD.
  • (C) Cả hai chân đều kết nối trực tiếp vào các chân tín hiệu USB trên module.
Click to reveal answer and explanation

The correct answer is (B).

Explanation: Theo sơ đồ đấu nối chuẩn của giao tiếp nối tiếp UART, chân truyền dữ liệu (TX) của thiết bị này phải kết nối chéo với chân nhận dữ liệu (RX) của thiết bị kia để thông tin truyền đi chính xác. Do đó, TX (GPIO17) nối chéo với RXD và RX (GPIO16) nối chéo với TXD.


Question 2: Dòng điện tối thiểu khuyến nghị mà nguồn điện cần đáp ứng để Module L501 hoạt động ổn định khi phát sóng 4G LTE là bao nhiêu?

  • (A) Từ 100mA đến 200mA.
  • (B) Từ 500mA đến 800mA.
  • (C) Từ 1A đến 2A.
Click to reveal answer and explanation

The correct answer is (C).

Explanation: Phần lưu ý đấu nối phần cứng nêu rõ: Module 4G L501 hoạt động tiêu hao điện năng lớn tức thời khi liên lạc phát sóng, cần dòng điện ổn định tối thiểu từ 1A – 2A để tránh bị sụt dòng gây reset module.


Question 3: Để thực hiện kết nối Internet 4G cho SIM thuộc nhà mạng Viettel bằng thư viện AIoT_L501, cấu hình APN cần khai báo là gì?

  • (A) v-internet
  • (B) m3-world
  • (C) m-wap
Click to reveal answer and explanation

The correct answer is (A).

Explanation: Theo bảng thông số APN chính thức của các nhà mạng Việt Nam cung cấp, APN của nhà mạng Viettel là “v-internet”, Mobifone là “m-wap”, còn Vinaphone là “m3-world”.


Question 4: Khi gọi các yêu cầu HTTP GET hoặc POST qua sóng 4G LTE, khoảng thời gian chờ (Timeout) tối thiểu được khuyên nghị cấu hình là bao lâu?

  • (A) Khoảng 500ms đến 1000ms.
  • (B) Khoảng 15000ms đến 30000ms.
  • (C) Khoảng 5000ms đến 8000ms.
Click to reveal answer and explanation

The correct answer is (B).

Explanation: Sóng di động 4G có độ trễ kết nối cao hơn mạng cục bộ hoặc Wi-Fi. Do đó, để tránh bị ngắt kết nối giữa chừng khi server xử lý chậm, bạn nên đặt cấu hình Timeout từ 15 giây (15000ms) đến 30 giây (30000ms).


Question 5: Để xóa hoàn toàn tất cả các tin nhắn SMS đang được lưu giữ trong thẻ SIM nhằm dọn dẹp không gian lưu trữ, bạn dùng hàm nào?

  • (A) deleteSMS(0);
  • (B) deleteAllSMS();
  • (C) tcpClose(1);
Click to reveal answer and explanation

The correct answer is (B).

Explanation: Thư viện cung cấp hàm “deleteAllSMS()” để xóa sạch mọi tin nhắn đang lưu trên SIM thay vì phải duyệt từng index bằng hàm “deleteSMS(index)”.

Mục nhập này đã được đăng trong Thiết bị dịch vụ thông minh, Tin tức và được gắn thẻ AIoT Product.
ThaoNguyen

Rủi ro bảo mật và khía cạnh pháp lý khi sử dụng hệ điều hành không bản quyền
Hướng dẫn quy trình tự kiểm tra và phương án trang bị bản quyền Windows phù hợp

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết mới
  • Hướng dẫn quy trình tự kiểm tra và phương án trang bị bản quyền Windows phù hợp
  • AIoT_L501 – Thư viện ESP32 tối ưu cho module 4G L501
  • Rủi ro bảo mật và khía cạnh pháp lý khi sử dụng hệ điều hành không bản quyền
  • Bài 8: LiDAR & Radar – “Đôi mắt” của Xe tự hành: Làm sao máy móc nhìn thấu bóng đêm?
  • Nút SOS: Những Bí Mật Thiết Kế Có Thể Cứu Sống Bạn Trong Gang Tấc
Danh mục
  • Cảm biến
  • Đào tạo
  • FPGA cơ bản
  • Giải pháp
  • Hệ thống nhúng
  • IoT trong giáo dục
  • IoT trong y tế
  • Khóa đào tạo cơ bản
  • Khóa đào tạo nâng cao
  • LabVIEW FPGA
  • LabVIEW FPGA High Performance
  • Phần cứng máy tính & Truyền thông công nghiệp
  • Sản xuất công nghiệp
  • Thiết bị dịch vụ thông minh
  • Thiết bị đọc căn cước
  • Tin tức

CÔNG TY CỔ PHẦN HỆ THỐNG AIOT

VPGD: Số A21-TT9 Đường Foresa 1 KĐT Xuân Phương, Phường Xuân Phương, Hà Nội.

Địa chỉ kinh doanh: Đường Phú Diễn, Tổ dân phố 18, phường Phú Diễn, Thành phố Hà Nội, Việt Nam

Hotline/Zalo: 097 186 8316 | 0839 799 889

Email: aiot@aiots.vn

VỀ CHÚNG TÔI

Giới thiệu

Sản phẩm

Giải pháp

Đào tạo

Tin tức

QUY ĐỊNH & CHÍNH SÁCH

Chính sách thanh toán

Chính sách vận chuyển

Chính sách bảo hành

Chính sách đổi trả

Chính sách bảo mật

ĐỊA CHỈ VĂN PHÒNG GIAO DỊCH

Copyright 2024 © Bản quyền thuộc về AIOT. Thiết kế bởi Jamina JSC
  • Trang chủ
  • Giới thiệu
  • Tin tức
  • Sản phẩm
  • Giải pháp
    • Chấm công bằng Face ID
    • Thiết bị đọc căn cước
    • IoT trong giáo dục
    • IoT trong quản lý năng lượng
    • IoT trong y tế
  • Đào tạo
    • Khóa đào tạo cơ bản
      • Cảm biến
      • Hệ thống nhúng
      • LabVIEW FPGA
      • Phần cứng máy tính & Truyền thông công nghiệp
      • FPGA cơ bản
    • Khóa đào tạo nâng cao
      • LabVIEW FPGA High Performance
    • Tài liệu
  • PCCC
  • Liên hệ
Zalo
Phone

Đăng nhập

Quên mật khẩu?