Hướng dẫn sử dụng module SIM800 SIM900 – Phần 2

Update
- 30/01/2020: Phần 1- cơ bản về module sim và các bước chuẩn bị.
- 07/06/2020: Phần 2- Các tập lệnh cơ bản với module sim800.
- xx/07/2020: Phần 3- Các lưu ý khi thiết kế phần cứng với module SIM800.
- xx/07/2020: Phần 4- Kết nối internet & các ứng dụng nâng cao với moduel sim

Xem thêm: Phần 1- cơ bản về module sim và các bước chuẩn bị.

– link KIT Arduino UNO SIM800A tích hợp mạch hạ áp:
https://ahtlab.com/san-pham/kit-arduino-uno-gsm-sim800a/
– link KIT ESP32-SIM800A:
https://ahtlab.com/san-pham/kit-wifi-esp32-gsm-2g-3g/
– Thư viện arduino cho moduel sim800:
https://github.com/aht-lab/AHTLAB_GSM_LIB

Giới thiệu

Tiếp theo chuỗi bài viết về hướng dẫn sử dụng module SIM800 SIM900 từ lý thuyết đến thực hành. Hôm nay AHTLAB sẽ viết bài hướng dẫn về các tập lệnh AT cơ bản để kiểm tra hoạt động của module sim.
Phần 1: Giới thiệu về module sim và các lỗi cơ bản khi mới bắt đầu làm về module sim

Thiết bị cần có:

Ở nội dung bài viết này, để đơn giản mình sẽ sử dụng các module tích hợp sẵn Vi điều khiển và module sim800 + mạch chuyển USB sang UART tích hợp. Nếu bạn không có module tích hợp này hoặc đang sử dụng module riêng rẽ thì cần kết nối phần cứng trước ( mình sẽ hướng dẫn ở phần sau nhé!) Các module sim khác về cơ bản tập lệnh test cũng tương tự .

Kit sử dụng:

Đầu tiên khi làm việc với module sim thì chúng ta cần kiểm tra các lệnh AT cơ bản để xem module sim có làm việc hay không, nếu không hoạt động thì việc test lệnh AT cơ bản có thể giúp bạn tìm ra lỗi. Nhiều bạn thường nạp code tải sẵn trên mạng nhưng hoài không chạy, hoặc là hôm trước chạy ok hết nhưng hôm sau lại không. Ở bài viết này mình sẽ chỉ cho các bạn cần kiểm tra những lệnh nào và các lỗi thường gặp

Thực hiện

Kiểm tra phần cứng và nạp chương trình test.
Tùy theo phần cứng sử dụng bạn có thể nạp chương trình giao tiếp giữa MCU với module SIM, tham khảo chương trình bên dưới: hoặc tải tại đâyhttps://github.com/aht-lab/code-demo-esp32-sim800 ( Nếu sử dụng software UART ( board Arduino UNO, ESP8266) thì bạn khai báo dùng SoftwareSerial )

#define MODEM_RX 16
#define MODEM_TX 17
#define mySerial Serial2

void setup()
{
Serial.begin(115200);
delay(500);
mySerial.begin(115200);
delay(500);
mySerial.println(“ATI”);
delay(100);
mySerial.println(“AT+CSQ”);
delay(100);
mySerial.println(“AT+CIMI”);
delay(100);
}
void loop()
{
if (mySerial.available())
{
Serial.write(mySerial.read());
}
if (Serial.available())
{
char c = Serial.read();
Serial.write(c);
mySerial.write(c);
}
}

Mở chương trình trên và nạp vào board mạch để kiểm tra nhé. Ở đây mình dùng board ESP32 – GSM SIM800A

Nạp chương trình test bằng Serial command có sẵn trên Arduino IDE

Lưu ý. đây chỉ là code test truyền nhận tín hiệu UART từ Serial 2 sang Serial 1 để gửi lên PC. Khi dùng Serial command có sẵn trên Arduino IDE bạn phải chọn là Carriage return để có thể nhận tín hiệu gửi về từ module sim nhé

Ở đây có một số lệnh cơ bản bạn cần phải kiểm tra, và từ những lệnh này chúng ta hoàn toàn có thể kiểm tra được tình trạng board mạch có tốt hay không.

AT: Kiểm tra xem module có hoạt động hay không
Trả về OK: module hoạt động OK
Không phản hồi: thử nạp lại chương trình, nếu vẫn không được thì kiểm tra lại phần cứng xem đã đúng hay chưa, trên module đã có đèn báo chớp tắt hay chưa

ATI: Trả về thông tin phiên bản của module
thường sẽ gửi về thông tin nhà sản xuất kèm phiên bản module đang sử dụng

AT+CSQ: kiểm tra cường độ sóng của module
+CSQ: x,y : trả về x từ 0 đến 31 tỉ lệ với cường độ sóng. x càng cao thì chất lượng sóng của module càng tốt. Nếu x từ 18 trở xuống thì bạn nên kiểm tra lại anten nhé. Và có một đặc điểm là khi sóng càng yếu thì module càng phải hoạt động nhiều nên sẽ gây tổn hao năng lượng nhiều hơn.

AT+CIMI: kiểm tra imei của thẻ sim. Khác với lệnh AT+GSN sẽ tả về IMEI được in trên module sim thì lệnh AT+CIMI sẽ trả về imei của thẻ sim, mã số này là duy nhất nhà mạng dùng để nhận dạng sim ( không phải số seri in trên thẻ sim).
Nếu trả về chuỗi số imei simcard thì cơ bản module sim của bạn đã làm việc ok rồi nhé.
trả về ERROR: không giao tiếp được với thẻ sim. Bạn hãy kiểm tra xem đã gắn đúng chiều hay chưa, hoặc xem thẻ sim có đang hoạt động 2 chiều hay không nhé.

ATD0941732379; : đây là lệnh thực hiện gọi điện tới một số điện thoại với 0941732379 là số điện thoại cần gọi.
trả về OK: đang thực hiện gọi, và module hoạt động ổn với đầy đủ tính năng
trả về NO CARRIER: không gọi được, có thể do thẻ sim đã hết tiền hoặc số cần gọi không đúng
trả về ERROR: thường là không giao tiếp được với thẻ sim, trong trường hợp này bạn kiểm tra lại với lệnh AT+CIMI, nếu vẫn không gọi được thì bạn nên kiểm tra lại nguồn cung cấp nhé. Khi gọi điện thì module tiêu thụ rất nhiều dòng nên có thể nguồn cấp của bạn không đủ thì module sẽ không thực hiện được

Như vậy chỉ cần 3 lệnh cơ bản là AT(kiểm tra module), AT+CSQ(chất lượng sóng anten), AT+CIMI (giao tiếp thẻ sim) là bạn hoàn toàn có thể kiểm tra được tình trạng hoạt động của module sim800, và nếu moduel đang lỗi thì bạn cũng sẽ rất dễ kiểm tra là do đâu và khắc phục từng bước. Các tập lệnh khác để kiểm trã kỹ hơn về module sim bạn có thể tham khảo thêm tại link sourcode bên dưới:
https://github.com/aht-lab/AHTLAB_GSM_LIB

Trả lời

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 *