Hệ Thống Theo Dõi Xe Sử Dụng GPS-GSM Dựa Trên Vi Điều Khiển Microcontroller
Hệ Thống Theo Dõi Xe GPS
Bài viết này tập trung vào ý tưởng và lý do đằng sau Hệ thống Theo dõi Xe GPS, đặc biệt là về giám sát từ xa và quyền truy cập an ninh bằng điện thoại di động. Một bo mạch vi điều khiển duy nhất được kết nối với mô-đun GPS-GSM, cho phép truy vấn vị trí GPS thời gian thực của hệ thống thông qua tính năng SMS. Hệ thống được thiết kế để chỉ hoạt động bởi người dùng đã đăng ký. Cũng có tùy chọn để thêm hoặc loại bỏ người dùng trong thời gian thực.
Hệ thống theo dõi xe hoạt động như thế nào?
Mô-đun GSM được sử dụng để tương tác thủ công với hệ thống, thông qua tính năng SMS. Để biết vị trí GPS của đối tượng, người dùng phải gửi một SMS đến hệ thống với một mẫu đã được định sẵn. Hệ thống sẽ đọc tin nhắn và ngay lập tức thu thập vị trí GPS. Sau đó, hệ thống gửi một SMS chứa dữ liệu GPS, bao gồm Vĩ độ và Kinh độ, đến người dùng. Quá trình này giúp theo dõi và giám sát hiệu quả đối tượng hoặc hệ thống.
Cách Hoạt Động của Hệ Thống Theo Dõi Xe
Để theo dõi xe một cách hiệu quả, việc truyền dữ liệu liên tục là quan trọng. Bằng cách gửi một SMS với một mẫu theo dõi đã được định trước đến xe, hệ thống liên tục cập nhật vị trí GPS qua các thông báo SMS cho đến khi nhận được tín hiệu dừng. Tần suất cập nhật, được chỉ định trong mẫu theo dõi, xác định thời điểm hệ thống gửi thông báo SMS cập nhật. Tần suất này, có thể điều chỉnh từ 1 đến 10 phút, có thể được thay đổi theo mong muốn của người dùng trong chương trình.
Hệ thống theo dõi xe dựa trên GPS có đảm bảo an toàn không?
Sẽ luôn đảm bảo an toàn, hệ thống được bảo vệ chặt chẽ. Hệ thống sẽ chỉ phản hồi tích cực cho các tin nhắn được gửi từ các số điện thoại liên lạc được ủy quyền. Hệ thống được thiết kế với tính năng xác minh người dùng để lọc ra các số liên lạc không được ủy quyền, đảm bảo môi trường an toàn. Vì vậy, ngay cả khi ai đó có được số điện thoại của hệ thống, họ sẽ không thể liên lạc với điện thoại di động của họ trừ khi số điện thoại của họ được ủy quyền.
Có thể thêm số điện thoại liên lạc mới vào hệ thống trong thời gian thực không?
Có, hệ thống được thiết kế để thêm người dùng mới (số điện thoại liên lạc) trong thời gian thực. Ngoài ra, người dùng được ủy quyền cũng có thể bị xóa. Thông qua các mẫu tin nhắn tương ứng, số điện thoại liên lạc mới có thể được thêm và số điện thoại liên lạc hiện tại có thể được xóa khỏi bộ nhớ. Tất cả các số điện thoại liên lạc này được lưu trữ trong EEPROM của vi điều khiển (Chọn một vi điều khiển có EEPROM tích hợp).
Thêm Người Dùng Mới
Để thêm một người dùng mới, người dùng đã đăng ký cần gửi tin nhắn "3" đến hệ thống. Hệ thống sẽ phản hồi với một mẫu để thêm người dùng, được cấu trúc như sau:
Add User
(User Name)
(10-Digit Number)
Edit the User name up to 10 letters
Edit the 10-Digit mobile number and send
Không loại bỏ dấu ngoặc vuông, vì chúng đóng vai trò là các định danh trong mã chương trình. Thông tin người dùng mới sẽ được cập nhật trong EEPROM.
Xóa Người Dùng
Để xóa một người dùng khỏi hệ thống, người dùng đã đăng ký cần gửi tin nhắn "4" đến hệ thống. Hệ thống sẽ phản hồi với một mẫu để xóa người dùng, được cấu trúc như sau:
Danh Sách Người Dùng
Users List 1.
User1 1234567890
2. User2 0123456789
To remove user#1
reply
RU1
Để xóa Người Dùng #1, trả lời với "RU1". Hành động này sẽ xóa Người Dùng #1 khỏi hệ thống vĩnh viễn. Nếu chỉ có một người dùng trong danh sách, hệ thống sẽ không chấp nhận yêu cầu xóa người dùng, vì hệ thống không thể hoạt động mà không có ít nhất một người dùng. Nên lập trình một số điện thoại của người dùng trong mã chương trình là lựa chọn khôn ngoan.
Ngoài ra, có các tùy chọn để kiểm tra số dư tài khoản và xóa bộ đếm tin nhắn, điều này hữu ích khi sử dụng gói tin nhắn SMS.
Số Cổng UART Microcontroller Cần Phải Có?
Chỉ cần một cổng UART là đủ. Vì hệ thống sử dụng hai Module là GSM và GPS, mặc định được giao tiếp thông qua các cổng UART được cung cấp trên mỗi module, do đó cần hai cổng UART trên vi điều khiển. Tuy nhiên, bằng cách sử dụng một mạch chọn đầu vào dựa trên cổng logic AND, OR, cả hai module có thể được kết nối thông qua một cổng UART của vi điều khiển.
Hệ thống theo dõi các yêu cầu thời gian thực từ người dùng thông qua mô-đun GSM. Vì vậy, mặc định, vi điều khiển duy trì kết nối với mô-đun GSM, tức là mô-đun GSM sẽ là cổng nối UART với vi điều khiển và bất cứ khi nào dữ liệu GPS cần thiết, vi điều khiển sẽ chọn mô-đun GPS làm cổng nối UART thông qua mạch logic. Hoặc có thể sử dụng các mô-đun như SIM908 có cả tính năng GSM và GPS. Mô-đun này có tùy chọn kết nối anten GPS. Bằng cách sử dụng các mô-đun kiểu này, mạch logic có thể được loại bỏ. Cả dữ liệu GSM và GPS có thể được xử lý bằng cổng GSM, mặc dù cung cấp các cổng riêng lẻ.
Mã Chương Trình Cho Hệ Thống Theo Dõi Xe Dùng GPS và GSM
Tải Chương Trình
Chương trình được viết bằng ngôn ngữ C sử dụng Notepad của Người lập trình trong phần mềm 'Winavr'. Trong ví dụ này, chúng ta sử dụng vi điều khiển ATmega32, nhưng có thể dễ dàng sửa đổi để phù hợp với bất kỳ vi điều khiển nào khác có đủ bộ phận ngoại vi.
Khởi Tạo Các Mô-đun GPS-GSM
Để kích hoạt giao tiếp qua SMS cho Mô-đun GSM và nhận thông tin vị trí GPS từ Mô-đun GPS, hai hàm khởi động được triển khai. Những hàm này được thực thi sau khi vi điều khiển được bật hoặc đặt lại. Đoạn mã dưới đây minh họa quá trình khởi tạo và các hoạt động tương ứng của chúng.
Nhận Và Xử Lý Dữ Liệu UART Dữ liệu được gửi bởi các mô-đun được nhận bởi Cổng UART của vi điều khiển và bộ hẹn/đếm được khởi tạo sau mỗi byte nhận được. Khi có khoảng thời gian đáng kể sau khi nhận một byte, một ngắt được tạo ra bởi Bộ hẹn/đếm, chỉ ra sự kết thúc của Dữ liệu RX. Bây giờ dữ liệu nhận được được xử lý thông qua một hàm được định nghĩa như sau,
void process_gsm_gps_data(void);
Hàm này phân tích dữ liệu nhận được để thực hiện một hành động cụ thể. Các byte đầu tiên của dữ liệu nhận được được xác minh với một số tùy chọn có thể xảy ra và nếu phù hợp xảy ra, hành động tương ứng sẽ được thực hiện. Dưới đây là phần xác minh từ khóa và mã nguồn đầy đủ được cung cấp ở cuối bài viết.
Xác Nhận Người Dùng
Tin nhắn SMS nhận được chứa thông tin người gửi như 'Tên liên hệ' và 'Số liên hệ'. Số liên hệ này được so sánh với các người dùng đã đăng ký và nếu phù hợp, người gửi được xác nhận là người dùng hợp lệ và tin nhắn được xử lý. Ngược lại, hệ thống sẽ gửi thông báo về sự không hợp lệ
Dữ liệu GPS được thu thập từ mô-đun GPS thông qua các lệnh AT cụ thể. Đối với mô-đun SIM 908, vị trí GPS có thể được lấy bằng cách sử dụng lệnh:
AT+CGPSINF=2
Trong lệnh này, '2' là để yêu cầu Dữ liệu GPS theo giao thức GGA. Phản hồi cho lệnh này được hiển thị như sau.
Nếu sử dụng các mô-đun GSM và GPS riêng lẻ, sau khi chọn mô-đun GPS, đợi cho đến khi nhận được GGA và sau đó lấy chi tiết Vĩ độ và Kinh độ. Vì mục tiêu của dự án là tìm vị trí GPS của hệ thống, chỉ các chi tiết Vĩ độ và Kinh độ được yêu cầu. Tuy nhiên, bằng cách chọn các giao thức khác nhau, các thông số khác nhau do bộ thu GPS cung cấp có thể được thu được. Các lệnh này có sẵn trong bảng dữ liệu của mô-đun tương ứng bạn đang sử dụng.
Truy vết và theo dõi
Để truy vết hệ thống, người dùng phải gửi T như một tin nhắn đến hệ thống và hệ thống sẽ trả lời vị trí GPS. Vị trí GPS được gửi đến người dùng theo yêu cầu như sau:
Vĩ độ:
1234.123456N
Kinh độ:
12.123456E
Để theo dõi hệ thống, người dùng phải gửi T
Hotline: 0979 466 469