Command AT là gì? Cách sử dụng cơ bản
Bất kỳ lập trình viên hoặc nhà phát triển nào cũng sẽ phải dùng đến lệnh Command AT ở một lúc nào đó. Đây là lệnh thường được dùng trong các mạng kết nối không dây, ví dụ như kết nối trong hệ thống Internet of Things. Dưới đây, mình sẽ giải đáp chi tiết cho bạn các khái niệm liên quan đến lệnh này nhé!
Command AT là gì?
Lệnh AT được hiểu đơn giản là các lệnh của Modem. Ban đầu, chúng được phát triển bởi Hayes với mục đích phục vụ cho các điện thoại quay số cố định của họ. AT là viết tắt của “ATtention”, đến nay thì chúng đã được sử dụng bởi tất cả các loại modem, bao gồm cả modem trong thiết bị di động như module 2G (GPRS), module 3G và module 4G.
Lệnh Command AT sẽ rất hữu ích trong việc dùng các dịch vụ sau trên modem:
- Gửi tin nhắn SMS, MMS hoặc Fax
- Gửi giọng nói hoặc dữ liệu
- Thông tin hệ thống và cài đặt các cấu hình
Ngày nay, Command AT được sử dụng khá phổ biến trong việc cấu hình modem và các kết nối mạng của nó, ví dụ như dùng cho các dòng Super SIM, các kết nối 4G, 5G trên modem cũng như các module Lora ngày nay. Bên cạnh đó, lệnh AT cũng giúp lấy thông tin về trạng thái kết nối của modem hoặc gỡ lỗi ứng dụng, xác nhận xem modem có đang hoạt động đúng như mong muốn hay không,… Chúng ta sẽ cùng tìm hiểu kỹ hơn về cách gửi lệnh AT ở bên dưới.
Super SIM là một nền tảng kết nối di động, cho phép bạn có thể kết nối thiết bị IoT của mình trên toàn thế giới. Với Super SIM, chúng ta có thể kết nối với tất cả các mạng toàn cầu cấp 1 hiện nay chỉ với 1 SIM duy nhất. Bạn ccos thể tự do lựa chọn mạng kết nối để mở rộng phạm vi phủ sóng, hiệu suất kết nối và giá thành phải chăng nhất.
Cách gửi Command AT
Lệnh AT được gửi đến các modem đầu cuối thông qua kết nối Serial (kết nối nối tiếp), với 2 dây là RX (dây để nhận) và TX (dây để truyền) hoặc qua USB.
Thông thường, các thiết bị IoT có khả năng kết nối mạng di động sẽ quản lý các modem bằng cách gửi lệnh Command AT. Nhưng khi cần gỡ lỗi hoặc phát triển ứng dụng, việc sử dụng kết nối USB với modem cũng là lựa chọn thường gặp. Điều đó giúp bạn có thể tương tác với modem theo cách riêng của mình và sử dụng các câu lệnh AT riêng.
Dưới đây, mình sẽ hướng dẫn cách gửi lệnh AT trên các hệ điều hành khác nhau:
Trên Windows 10
- Mở Device Manager, bạn sẽ thấy các modem ở mục USB Serial Device trong Port (khi bạn đã kết nối modem với máy tính bằng cáp USB). Hãy nhớ số cổng COM của modem nhé!
- Click chuột phải vào modem trong Device Manager và chọn mục Properties… >> Port Settings và nhớ giá trị Bits per second nhé!
- Tải phần mềm PuTTY – trình giả lập terminal trên Windows
- Khởi chạy PuTTY, chọn Serial làm Connection type và nhập số cổng COM ở bước 1 (ví dụ như COM4) tại trường Serial line. Bạn phải cấu hình Speed trùng với số Bits per giây ở bước 2 nhé!
- Click vào Open là xong.
Trên Mac
- Mở Terminal trên máy
- Cài đặt công cụ Minicom sử dụng Homebrew với dòng lệnh brew install minicom (bạn cần cài đặt Homebrew trước nhé!)
- Lấy thông tin thiết bị của modem, bằng cách nhập dòng lệnh ls /dev/cu*. Sau đó, bạn sẽ thấy một mục duy nhất, ví dụ như /dev/cu.usbmodem14244201
- Dùng dòng lệnh minicom -o -D <DEVICE_FILE> để kết nối đến modem. Trong đó, DEVICE_FILE là tên thiết bị bạn đã có ở bước 3. Nếu minicom báo lỗi không kết nối được, bạn hãy kiểm tra lại đường truyền kết nối giữa modem và máy, cũng như tên thiết bị nhé!
Trên Linux
- Mở Terminal trên máy
- Cài đặt công cụ Minocom bên trong gói quản lý hệ điều hành trong hệ thống, ví dụ như apt, dpkg, rpm, sudo apt install minicom…
- Lấy file thiết bị của modem với đuôi là ls /dev/ttytUSB*. Trong đó, dấu * có thể là 0 hoặc cao hơn, chúng sẽ liệt kê tất cả các thiết bị modem của bạn. Bạn cũng cần phải thêm tài khoản của bạn vào nhóm dialout hoặc sử dụng sudo để đảm bảo bản thân có quyền truy cập vào các cổng nối tiếp.
- Sử dụng minicom -o -D /dev/ttyUSBx để kết nối máy tính đến các modem.
Cú pháp của Command AT
Để sử dụng Command AT, chúng ta sẽ dùng cú pháp như sau:
AT<COMMAND><SUFFIX><DATA>
Command AT bao gồm 4 loại với các hậu tố khác nhau như bảng dưới:
Loại | Mục đích sử dụng | Suffix |
Test | Kiểm tra có tương thích với modem hay không | =? |
Road | Trích xuất các thông tin từ modem hoặc những thông tin liên quan | ? |
Set | Cấu hình cho các cài đặt trên modem | = |
Execute | Thực thi các thao tác trên modem | Không có |
Để bạn dễ hình dung hơn về cách sử dụng lệnh này, mình sẽ lấy ví dụ về một cú pháp để kiểm tra nhà sản xuất modem:
AT+CGMI
Lệnh này có thể trả về kết quả như sau:
u-blox OK
u-block có nghĩa là thông tin trả về lệnh của mình, và OK là kết quả. Kết quả cho chúng ta biết trạng thái của câu lệnh phản hồi, OK trong ví dụ trên cho mình biết là lệnh đã được hoàn thành xong.
Ngoài ra, lệnh cũng có thể trả về trạng thái ERROR (lỗi), điều này xảy ra có thể do:
- Cú pháp của Command AT bạn viết bị sai
- Modem không tương thích với lệnh AT bạn viết
- Modem hiện tại không thể xử lý lệnh được (ví dụ như modem đang hoạt động và đang truyền dữ liệu nhưng bạn lại yêu cầu thay đổi cấu hình cài đặt của chúng => bị lỗi)
Các lệnh AT chính
Dù cho bạn sử dụng với modem nào, thì bạn cũng chỉ dùng 2 nhóm lệnh chính sau:
- Universal AT Commands: Lệnh được dùng cho tất cả các loại modem
- Proprietary AT Commands: Các lệnh cụ thể được nhà cung cấp modem tự phát triển, và chỉ dùng được với các dòng modem cụ thể của nhà sản xuất đó
Dù là của cùng một nhà cung cấp, nhưng mức độ tương thích lệnh Command AT của từng modem cũng sẽ khác nhau. Do đó, trước khi dùng lệnh AT cho bất kỳ modem nào, bạn cũng nên tham khảo hướng dẫn sử dụng để có thể tìm thấy đầy đủ các lệnh AT nên dùng nhé!
Lời kết
Trên đây, mình đã tóm lược những thông tin cơ bản nhất về Command AT, hy vọng nội dung trên hữu ích với bạn. Nếu bạn đang cần tìm các mạch hỗ trợ modem để xây dựng dự án về IoT, bạn có thể tham khảo các mạch như Arduino MKR GSM 1400, Seeeduino LoRaWan with GPS,… Hãy theo dõi blog IoTZone để cập nhật thêm các tin tức kỹ thuật mới nhất nhé!