Lưu đồ xử lý tin nhắn mới

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo module đóng ngắt thiết bị điện qua mạng di động gsm (Trang 54 - 56)

C ấu trúc bộ nhớ vi điều khiển PI16F877A

4.3.2. Lưu đồ xử lý tin nhắn mới

Sau khi nhận được tin nhắn mới, vi điều khiển PIC16F877A sẽ thực hiện việc đọc tin nhắn, xử lý các thông tin có trong chuỗi nhận về. Đầu tiên sẽ xử lý số điện thoại sau đó xử lý tiếp theo tùy thuộc vào kết quả trả về. Lưu đồ xử lý tin nhắn mới này được thể hiện trong hình 4.20.

Hình 4.20. Sơ đồ thuật toán xử lý tin nhắn mới

Giải thích sơ đồ:

Do có cổng kết nối RS232 nên khi có tin nhắn mới, sim900 sẽ truyền về chuỗi

+CMTI: “SM”,1 cho vi điều khiển. Số 1 ở đây là tin nhắn lưu ở ngăn bộ nhớ số 1 của

sim. Việc này luôn luôn đúng vì trong quá trình khởi tạo và sau mỗi quá trình xử lý tin nhắn mới thì tin nhắn ở vị trí ngăn 1 luôn luôn được xóa, làm cho ngăn 1 luôn trống.

Vi điều khiển sẽ đọc tin nhắn vừa nhận được. Trong quá trình đọc, sẽ lọc được ra số điện thoại gửi tin và nội dung tin nhắn. Việc đầu tiên là vi điều khiển sẽ kiểm tra số điện thoại vừa nhắn tin đến. Vì lý do bảo mật hệ thống, nên chỉ những số điện thoại nằm trong cơ sở dữ liệu cho trước mới có khả năng điều khiển các thiết bị. Điều đó có nghĩa là những số điện thoại không nằm trong danh sách cho phép điều khiển, thì sẽ không thể điều khiển được hệ thống. Khi đã lọc được số điện thoại, nếu số điện thoại này không nằm trong cơ sở dữ liệu được phép điều khiển thì sẽ có thông báo lên LCD là số điện thoại không cho phép, đồng thời một tin nhắn cũng được gửi về cho số điện thoại vừa nhắn tin để được thông báo. Sau đó, tin nhắn vừa nhận sẽ được xóa đi, làm trống ngăn 1 và hệ thống lại trở về trạng thái chờ tin nhắn mới.

Đầu tiên, sim900 sẽ gửi về cho vi điều khiển chuỗi:

<CR><LF>+CMGR: "REC

UNREAD","+84989196980","","12/09/20,00:04:20+28" <CR><LF>Bat1<CR><LF>

<CR><LF>OK<CR><LF>

Ta có thể thấy số điện thoại +84989196980 nằm giữa dấu ngoặc kép thứ 3 và dấu ngoặc kép thứ 4. Vì vậy, ta sẽ lấy các ký tự nằm giữa hai dấu ngoặc kép này và kết hợp lại thảnh một mảng. Mảng này chính là số điện thoại đã gửi tin nhắn đến.

Nếu số điện thoại nhắn tin đến là số nằm trong cơ sở dữ liệu thì vi điều khiển sẽ xử lý nội dung của tin nhắn này. Phần xử lý nội dung của tin nhắn sẽ được nói cụ thể ở phần sau.

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo module đóng ngắt thiết bị điện qua mạng di động gsm (Trang 54 - 56)

Tải bản đầy đủ (PDF)

(65 trang)