Bài báo nghiên cứu đề xuất giải pháp quản lý và điều khiển các thiết bị thông minh từ rất xa bằng môđun vi điều khiển có hỗ trợ kết nối mạng dữ liệu di động. Cụ thể hơn, thiết bị có chức năng giám sát và kiểm soát xe gắn máy bằng định vị GPS và giao tiếp với hệ thống điện tử của xe. Ngoài ra, nghiên cứu có sử dụng máy chủ MQTT để truyền thông điệp, sử dụng React Native để lập trình ứng dụng điện thoại thông minh đa nền tảng. Nghiên cứu hướng đến bố tính năng chính: 1) thiết bị tiêu thụ điện năng ít; 2) Độ trễ thấp; 3) Đơn giản, dễ sử dụng; 4) Hạ tầng máy chủ nhẹ, đơn giản, dễ dàng triển khai. Tất cả các chức năng của hệ thống đã được thực hiện. Sản phẩm sau khi chạy thử và đánh giá đạt được kết quả như mong đợi
10 trang |
Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 620 | Lượt tải: 0
Nội dung tài liệu Hệ thống giám sát và kiểm soát xe máy, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR), Nha Trang, ngày 8-9/10/2020
DOI: 10.15625/vap.2020.00188
HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
Nguyễn Thanh Xuân Tùng, Nguyễn Phan Hùng Thuận, Võ Thị Lƣu Phƣơng
Đại học Quốc tế, Đại học Quốc gia TP. Hồ Chí Minh
xuantung.1998@gmail.com, hungthuamk@gmail.com, vtlphuong@hcmiu.edu.vn
TÓM TẮT: Bài báo nghiên cứu đề xuất giải pháp quản lý và điều khiển các thiết bị thông minh từ rất xa bằng môđun vi
điều khiển có hỗ trợ kết nối mạng dữ liệu di động. Cụ thể hơn, thiết bị có chức năng giám sát và kiểm soát xe gắn máy bằng định vị
GPS và giao tiếp với hệ thống điện tử của xe. Ngoài ra, nghiên cứu có sử dụng máy chủ MQTT để truyền thông điệp, sử dụng React
Native để lập trình ứng dụng điện thoại thông minh đa nền tảng. Nghiên cứu hướng đến bố tính năng chính: 1) thiết bị tiêu thụ điện
năng ít; 2) Độ trễ thấp; 3) Đơn giản, dễ sử dụng; 4) Hạ tầng máy chủ nhẹ, đơn giản, dễ dàng triển khai. Tất cả các chức năng của
hệ thống đã được thực hiện. Sản phẩm sau khi chạy thử và đánh giá đạt được kết quả như mong đợi.
Từ khóa: Internet of Things, GPRS, MQTT, Docker, react native.
I. GIỚI THIỆU
Hiện nay, việc mất trộm xe máy đang là vấn đề đáng quan tâm trong xã hội. Việc nghiên cứu các giải pháp
chống trộm đang được nghiên cứu phổ biến. Một số sản phẩm thương mại đã được bán ra như Smart Motor của Viettel
[1], hoặc Smart Key [2] của những hãng sản xuất xe.
Hình 1. Trọn bộ thiết bị Viettel Smart Motor
Smart Motor của Viettel (Hình 1) là một dịch vụ giám sát và chống trộm xe máy thông minh thông qua mạng di
động Viettel và hệ thống định vị toàn cầu GPS. Dịch vụ cho phép điều khiển xe máy bằng điện thoại với nhiều tiện ích
như theo dõi vị trí xe, bảo vệ chống trộm (khoá/mở khoá xe từ xa). Dù cho các ưu điểm như các tính năng hoạt động
chính xác, hiệu quả và ngoài ra có ứng dụng điện thoại giúp người dùng tiếp cận các tính năng hiệu quả, tính linh hoạt
khá cao như khả năng kiểm soát từ khoảng cách vô hạn nhờ sử dụng mạng di động (GPRS) làm phương tiện truyền dẫn
trên thiết bị và được cung cấp đầy đủ tính năng cần thiết để chống trộm xe máy. Tuy nhiên, giá thành sản phẩm còn
khá cao (khoảng 1.500.000 VND), tốc độ phản hồi chưa tốt (thời gian phản hồi từ 5 s - thất bại).
Hình 2. Honda SmartKey
Sản phẩm Smart Key (Hình 2) có tốc độ phản hồi khá tốt và khá tin cậy tuy nhiên thiếu tính linh động về
khoảng cách (hiệu quả trong phạm vi 20 m) và không có chức năng định vị.
Trong nghiên cứu này, chúng tôi sẽ xây dựng một hệ thống giám sát xe máy đạt được những tính năng của
những sản phẩm hiện đang có trên thị trường như theo dõi vị trí của xe máy theo thời gian thực và gởi lệnh kiểm soát
xe. Hệ thống của chúng tôi có tốc độ xử lý nhanh, dễ dàng cài đặt và sử dụng và có chi phí thấp.
Ngoài ra, nghiên cứu này sẽ là một tài liệu tham khảo về việc ứng dụng kết nối mạng di động trong lĩnh vực
“vạn vật kết nối” kết hợp với ứng dụng di động.
360 HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
II. PHẠM VI VÀ PHƢƠNG PHÁP NGHIÊN CỨU
Nghiên cứu này được bao gồm 3 phần chính:
- Thiết bị giám sát, quản lý xe gắn máy: thiết bị giám sát sẽ được hoàn thiện ở mức nguyên mẫu thử nghiệm
(Prototype).
- Máy chủ đám mây: phạm vi bao gồm việc thiết lập và triển khai các phần mềm chính lên máy chủ.
- Ứng dụng điện thoại thông minh: ứng dụng đơn giản, dễ dàng sử dụng, hỗ trợ đầy đủ các tính năng đề ra.
Chúng tôi đã xây dựng một hệ thống nhúng trên vi điều khiển; tìm hiểu về thiết bị Ai-thinker A9G, cách lập
trình, các thư viện, cách triển khai; xây dựng máy chủ ảo, sử dụng Docker để triển khai các ứng dụng trên máy chủ ảo;
áp dụng MQTT, NodeJS, JavaScript và các thư viện mã nguồn mở; xây dựng ứng dụng điện thoại thông minh sử dụng
React Native và các thư viện liên quan như React, Redux,
III. TỔNG QUAN LÝ THUYẾT
A. MQTT
Message Queuing Telemetry Transport (MQTT) là một giao thức truyền thông điệp (message) theo mô hình
publish/subscribe (xuất bản – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều
kiện đường truyền không ổn định. Vì lợi ích trên, MQTT phù hợp để sử dụng trong các dự án IoT.
Trong một hệ thống sử dụng giao thức MQTT, các client kết nối tới một máy chủ MQTT (gọi là broker). Mỗi
client sẽ đăng ký một vài kênh (topic), ví dụ như “/home/light/1”, “/home/fan/1”. Quá trình đăng ký này gọi là
“subscribe”, giống như chúng ta đăng ký nhận tin trên một kênh Youtube vậy. Mỗi client sẽ nhận được dữ liệu khi bất
kỳ client nào khác gởi dữ liệu vào kênh đã đăng ký. Khi một client gửi dữ liệu tới kênh đó, gọi là “publish”.
Hình 3. Mô hình tưới nước tự động dùng MQTT
Ví dụ: Trong một hệ thống tưới tiêu tự động trong Hình 3. Các cảm biến thu nhập dữ liệu về độ ẩm và xuất bản
(publish) lên chủ đề (topic) “humidity”. Máy chủ, đã đăng ký kênh “humidity”, nhận được các giá trị, phân tích để đưa
ra quyết định tưới hay không. Khi đã quyết định “tưới” máy chủ sẽ xuất bản lên chủ đề “watering”. Hệ thống tưới tiêu,
đã đăng ký kênh “watering” nhận được tin mới và bắt đầu thực hiện tưới.
Trong dự án này, có 03 chủ đề sẽ được sử dụng. Đó là “lock”, “alarm” được xuất bản ở ứng dụng phía dùng để
gửi lệnh khoá/mở khoá/gọi xe và chủ đề “tracking” đươc xuất bản ở phía thiết bị gắn trên xe máy để gửi thông tin trạng
thái xe.
1. Máy chủ Eclipse Mosquitto MQTT
Hiện tại, đã có rất nhiều phần mềm MQTT Broker dược công bố. Nhưng trong đề tài này, chúng tôi sử dụng
Eclipse Mosquitto MQTT.
Đây là một dự án mã nguồn mở của Eclipse. Đã được phát triển đến giao thức MQTT phiên bản 5.0. Được đánh
giá là một phần mềm nhẹ, có thể triển khai trên các máy tính nhúng.
B. Môđun Ai-thinker A9G
Hình 4. Môđun AI-Thinker A9G
Nguyễn Thanh Xuân Tùng, Võ Thị Lưu Phương, Nguyễn Phan Hùng Thuận 361
Ai-thinker A9G (Hình 4) là một môđun kết hợp các công nghệ GPRS và GPS/BDS, nhằm hỗ trợ cho các dự án
về định vị và giao tiếp từ xa qua mạng di động. Trong dự án này, A9G được sử dụng như một vi xử lý cho các hoạt
động về giao tiếp với máy chủ MQTT và giao tiếp với giao diện điều khiển hệ thống điện tử của xe máy.
Ưu điểm của môđun này là hầu hết các thư viện cần thiết đã được cung cấp trong bộ công cụ phát triển phần
mềm (SDK) riêng; ngoài ra còn hỗ trợ đầy đủ các tính năng liên quan đến mạng di động và hỗ trợ hệ thống GPS; giá
thành thấp là một ưu thế lớn, một bộ môđun A9G có giá thành chỉ khoảng 260.000 VND.
Nhược điểm của sản phẩm này là có rất ít tài liệu về thiết bị này trên internet, vì thiết bị này chưa được đem vào
sử dụng rộng rãi trên thế giới; chưa có nghiên cứu về tính ổn định của môđun này. Ngoài ra nhược điểm lớn của môđun
này đó là SDK sử dụng ngôn ngữ C là ngôn ngữ lập trình chính, vì thế nên rất khó trong việc bảo trì và phát triển
mã nguồn.
C. React Native
React Native (RN) [4] là một framework giúp phát triển ứng dụng điện thoại thông minh cho nhiều nền tảng
(Android và iOS) và sử dụng các thành phần native của mỗi nền tảng. Trong dự án này, React Native sẽ giúp xây dựng
ứng dụng di động phía người dùng, ứng dụng sẽ cung cấp các tính năng giám sát và kiểm soát xe máy của hệ thống.
Có 3 ưu điểm lớn khiến RN phù hợp trong đề tài này:
- RN giúp xây dựng ứng dụng cho nhiều nền tảng. Người dùng không cần phải biết sâu về ngôn ngữ của từng
nền tảng để có thể lập trình được ứng dụng.
- RN giúp tiết kiệm chi phí và thời gian để xây dựng các ứng dụng điện thoại. Người dùng chỉ cần một bộ mã
nguồn để có thể xuất bản ứng dụng cho nhiều hệ điều hành.
- RN đảm bảo được tốc độ ứng dụng và độ tin cậy. Nhờ vào việc được phát triển Facebook và cộng động mã
nguồn mở, RN ngày càng được biết đến và được phát triển tốt hơn.
Ngoài những ưu điểm trên, RN cũng có tồn tại nhược điểm như tốn nhiều thời gian học tập, nghiên cứu. Để có
thể xây dựng được ứng dụng RN, nhà phát triển phải có nền tảng về NodeJS, ES6, kinh nghiệm về ứng dụng di động
và phải tập làm quen với hàng tá thư viện liên quan.
IV. TỔNG QUAN XÂY DỰNG HỆ THỐNG
A. Tổng quan hệ thống
Hình 5. Sơ đồ tổng quan hệ thống
Hệ thống bao gồm 3 phần chính (Hình 5):
Máy chủ MQTT: là cốt lỗi trong hệ thống. Cung cấp giao diện giao tiếp cho ứng dụng phía người dùng và thiết
bị quản lý.
Thiết bị quản lý: thiết bị này sẽ được gắn trên xe gắn máy và được kết nối với giao diện hệ thống điện tử của xe
máy. Thiết bị sẽ kết nối với máy chủ MQTT và chờ lệnh được gửi tới từ người dùng và thực thi lệnh. Ngoài ra thiết bị
sẽ lấy dữ liệu từ hệ thống GPS và liên tục gửi vị trí đến máy chủ MQTT.
Ứng dụng di động phía người dùng: Qua ứng dụng này, người dùng sẽ được tương tác với các tính năng của hệ
thống.
Sau đây là các bước để xây dựng và triển khai của từng phần chính.
362 HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
B. Triển khai máy chủ MQTT
Trong hệ thống này, chúng tôi sử dụng Docker để triển khai hệ thống một cách nhanh chóng và đảm bảo sự ổn
định, dễ bảo trì.
Thông thường, việc cài đặt và triển khai ứng dụng lên máy chủ rất vất vả từ việc phải cài đặt các công cụ, môi
trường cần thiết cho ứng dụng, cho đến việc không đồng nhất được giữa các môi trường trên nhiều máy chủ khác nhau.
Chính vì đó Docker được ra đời để giải quyết vấn đề này.
Docker là một nền tảng dành cho lập trình viên và người quản lý hệ thống dùng để phát triển và triển khai các
ứng dụng vào những phần ảo gọi là container. Nó cho phép tạo các môi trường độc lập và tách biệt để khởi chạy và
phát triển ứng dụng và môi trường. Khi cần triển khai bất kỳ hệ thống nào chỉ cần khởi chạy container của Docker, ứng
dụng sẽ được khởi chạy ngay lập tức.
1. Cài đặt ban đầu cho máy chủ ảo
Sau khi truy cập lần đầu vào máy chủ ảo, thay đổi mật khẩu mặc định, bước tiếp theo là cài đặt Docker.
Dựa vào tài liệu [3] của Docker, quá trình cài đặt bao gồm các bước sau:
Cài đặt các gói cần thiết:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Thêm khoá GPG của Docker:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Thêm kho của Docker vào danh mục của Ubuntu:
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Cuối cùng là tiến hành cài đặt Docker:
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
2. Triển khai máy chủ MQTT
Nhờ vào việc Eclipse đã cung cấp gói Mosquitto MQTT lên Docker Hub, việc triển khai chương trình rất đơn
giản và nhanh chóng.
$ docker pull eclipse-mosquitto
$ docker run -it -p 1883:1883 -p 9001:9001
Có thể kiểm tra lại trạng thái của chương trình bằng cách:
$ docker ps -a
Status trả về “Up ” chứng tỏ chương trình đang chạy bình thường.
Nguyễn Thanh Xuân Tùng, Võ Thị Lưu Phương, Nguyễn Phan Hùng Thuận 363
C. Lập trình nhúng thiết bị quản lý xe
Mô tả cấu trúc phần mềm nhúng trên thiết bị
Hình 6. Tổng quan lập trình thiết bị
Vì tính chất phải bắt sự kiện theo thời gian thực từ máy chủ MQTT, phần mềm trên thiết bị phải hỗ trợ đa luồng.
Theo thiết kế, phần mềm nhúng sẽ có 5 luồng tương ứng với 5 nhiệm vụ chính (Hình 6).
1. Luồng khởi tạo
Luồng khởi tạo đảm nhiệm nhiệm vụ khởi chạy các đối tượng cần thiết trong chương trình và khởi tạo các luồng
khác. Về cách tạo luồng, bộ công cụ phát triển phần mềm của Ai-thinker [6] đã hỗ trợ tốt việc này. Sau khi luồng được
khởi động, sẽ tiến hành các công việc như đăng ký vào hệ thống mạng di động, kết nối với internet và sau đó thực hiện
nhiệm vụ chính.
2. Luồng giao tiếp
Luồng đảm nhiệm nhiệm vụ xử lý những tin nhắn đến từ máy chủ MQTT và gửi lệnh (semaphore) cập nhật đến
những luồng khác. Khi luồng được bắt đầu, sẽ tiến hành khởi tạo và kết nối đến máy chủ MQTT, khi đã kết nối thành
công sẽ bắt đầu thực nhiệm vụ chính.
Khi được đã được kết nối với máy chủ MQTT, MQTT client sẽ đăng ký 2 chủ đề sau (các Bảng 1 và 2):
Bảng 1. Chủ đề đăng ký phía thiết bị
Topic Chức năng
Smartmotor/lock Là topic sẽ được xuất bản khi người
dùng gửi lệnh khoá xe.
Smartmotor/alarm Là topic sẽ được xuất bản khi người
dùng gửi lệnh gọi xe.
Bảng 2. Chủ đề xuất bản của thiết bị
Topic Chức năng
Smartmotor/tracking Là topic để xuất bản trạng thái xe, vị trí xe.
Khi nhận được tin nhắn từ topic smartmotor/lock hoặc smartmotor/alarm, sẽ “sign” semaphore lock hoặc alarm
tương ứng với topic.
3. Luồng thu nhập dữ liệu và gửi lên máy chủ
Luồng đảm nhiệm nhiệm vụ liên tục gửi trạng thái và vị trí xe sau một khoảng thời gian. Khi luồng được bắt
đầu, sẽ tiến hành khởi tạo các đối tượng cần thiết để lấy vị trí từ GPS. Và sau đó sẽ chờ cho đến khi thiết bị đã được kết
nối đến máy chủ MQTT để gửi vị trí lên topic tracking.
364 HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
4. Luồng xử lý cảnh báo và gọi xe và luồng xử ý lệnh khoá xe
Cả 2 luồng này đều có nhiệm vụ chính là chờ cho đến khi semaphore tương ướng (alarmSemaphore hoặc
lockSemaphore) được gửi tín hiệu (signed), sẽ thực hiện nhiệm vụ tương ứng. Đối với alarm, sẽ ra lệnh đến thiết bị hú
còi xe trong 1-2 giây. Đối với lock, thiết bị sẽ thay đổi công tắc khoá/mở tuỳ vào trạng thái trước đó.
D. Xây dựng phần mềm di động phía người dùng
1. Cách làm việc với React Native
React Native cho phép tạo ứng dụng dành cho thiết bị di động chỉ sử dụng JavaScript. Với React Native, lập
trình viên không cần phải build như mobile web app, HTML5 app hay hybrid app, mà được build trực tiếp giống như
các ứng dụng được viết bằng objective-c, swift (iOS) hay java (Android).
Giống như khi lập trình trong iOS hay Android chúng ta hay sử dụng các UIButton, UITextView, thì trong
React Native, chúng ta có khái niệm Component. Ví dụ về một Component đơn giản trong React Native.
export default class CustomComponent extends Component {
render() {
return (
);
}
}
Ngoài ra, các component còn hỗ trợ props dùng để truyền dữ liệu giữa các component và state dùng để quản lý
dữ liệu cục bộ bên trong các component.
2. Về phần mềm phía người dùng
Ứng dụng sẽ cung cấp cho người dùng những tính năng: khoá/mở khoá xe, gọi xe và theo dõi vị trí xe theo thời
gian thực. Để làm được như vậy, ứng dụng sẽ phải kết nối với máy chủ MQTT. Sau khi đã kết nối thành công, sẽ:
Đăng ký topic (Bảng 3):
Bảng 3. Chủ đề đăng ký phía ứng dụng
Topic Chức năng
Smartmotor/tracking Dùng để nhận tin nhắn từ xe để biết vị trí hiện tại và trạng thái xe.
Ngoài ra sẽ xuất bản lên các topic (Bảng 4):
Bảng 4. Chủ đề xuất bản phía ứng dụng
Topic Chức năng
Smartmotor/lock Sẽ xuất bản khi người dùng gửi lệnh khoá/mở khoá xe.
Smartmotor/alarm Sẽ xuất bản khi người dùng gửi lệnh gọi xe.
3. Thiết kế các thành phần chính
Hình 7. Sơ lược các component trong ứng dụng điện thoại
Nguyễn Thanh Xuân Tùng, Võ Thị Lưu Phương, Nguyễn Phan Hùng Thuận 365
Tương tự như HTML, các component trong RN cũng có thể được thể hiện dưới dạng DOM tree (Hình 7).
Cấu trúc DOM tree trong ứng dụng có dạng như sau:
Trong các thành phần chính, để có thể sử dụng được bản đồ Google, chúng tôi phải sử dụng thư viện mã nguồn
mở tên là “react-native-map” để có thể tích hợp bản đồ Google vào chương trình.
4. Áp dụng Redux vào chương trình
RN đã hỗ trợ các tính năng như state để lưu trữ các giá trị cục bộ trong mỗi component và hỗ trợ props để
truyền dữ liệu từ component cha đến component con. Về cơ bản, một ứng dụng RN chỉ cần state và props vẫn có thể
phát triển được, tuy nhiên sẽ gặp nhiều vấn đề khi phát triển thêm về chiều rộng lẫn chiều sâu khi mà các component
mới và các tính năng mới liên tục được thêm vào.
Vì vậy Redux [5] được sinh ra, nó là một predictable state management tool cho các ứng dụng JavaScript. Nó
giúp viết các ứng dụng hoạt động một cách nhất quán, chạy trong các môi trường khác nhau (client, server và native)
và dễ dàng để test. Redux ra đời lấy cảm hứng từ kiến trúc Flux của Facebook. Do vậy Redux thường dùng kết hợp với
React (Hình 8).
Hình 8. Mô hình của Redux [7]
Redux về cơ bản giúp chúng ta có thể lưu trữ các giá trị toàn cục vào một cái kho và các component có thể lấy
dữ liệu từ các kho đó. Trong dự án này, Redux được sử dụng như một “backend” cho cả ứng dụng RN, nó sẽ tiếp nhận
các event cập nhật store, các component khác chỉ cần lấy dữ liệu mà sử dụng.
Mô tả về các reducer được sử dụng trong ứng dụng (Hình 9):
Hình 9. Các Redux Reducer được sử dụng
366 HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
Cơ bản có 3 reducers chính:
mqttClientReducer: Dùng để lưu trữ object của mqttClient để cho các component khác có thể sử dụng một cách
toàn cục.
motorbikeReducer: Dùng để lưu trữ thông tin về thiết bị (sau khi được thiết bị gửi về sẽ được cập nhật vô
reducer này), các component cần sử dụng thông tin và trạng thái thiết bị có thể sử dụng reducer này.
mapViewReducer: Chủ yếu dùng để đồng bộ 2 chiều với component MapView, các component khác muốn thay
đổi giá trị của MapView có thể dùng reducer này.
V. KẾT QUẢ NGHIÊN CỨU VÀ KẾT QUẢ
A. Kết quả nghiên cứu
Sau khi hoàn thành các công đoạn được nêu trên, thành quả nghiên cứu của chúng tôi bao gồm: 01 máy chủ ảo
đã được cài đặt và thiết lập Mosquitto MQTT, 01 thiết bị điều khiển và giám sát và 01 ứng dụng di động (Android)
phía người dùng.
Về máy chủ MQTT, sau khi hoàn thành các bước đã nêu và kiểm chứng. Kết quả cho thấy máy chủ đã mở 2
cổng 1883 (cho giao thức TCP) và 8080 (cho giao thức WebSocket).
Về ứng dụng di động phía người dùng (Hình 10), ứng dụng đã được xuất bản thành công ở nền tảng Android.
Ứng dụng có giao diện cơ bản bao gồm 2 phần: MapView và phần điều khiển, phần điều khiển bao gồm 3 nút: center
để đưa bản đồ về ngay vị trí xe, buzz để ra lệnh gọi xe và lock để ra lệnh khoá/mở khoá xe.
Hình 10. Giao diện của ứng dụng di động
Về thiết bị giám sát xe máy, nguyên mẫu thử nghiệm đã được hoàn thành (Hình 11). Nguyên mẫu bao gồm
module A9G được gắn với antenna GPS và GSM, ngoài ra còn được trang bị thêm pin LiPo 3.7V. Thiết bị sau khi khởi
động sẽ kết nối với máy chủ MQTT, liên tục gửi dữ liệu vị trí lên máy chủ và khi nhận được lệnh từ người dùng qua
máy chủ gửi đến, sẽ thực hiện lệnh tương ứng.
Hình 11. Nguyên mẫu thiết bị giám sát
Nguyễn Thanh Xuân Tùng, Võ Thị Lưu Phương, Nguyễn Phan Hùng Thuận 367
B. Thử nghiệm nghiên cứu và kết quả
Hình 12. Thử nghiệm Mosquitto MQTT
Công đoạn thử nghiệm sẽ bao gồm thử nghiệm 03 phần trong hệ thống: máy chủ MQTT, ứng dụng di động phía
người dùng và thiết bị điều khiển (Hình 12-14).
Về ứng dụng Mosqtuitto MQTT được cài đặt trên máy chủ ảo. Việc thử nghiệm được thực hiện trên MQTT
Client mẫu (hivemq.com/demos/websocket-client/). Công đoạn thử nghiệm bao gồm các bước: kết nối với máy chủ
MQTT (cần địa chỉ IP, cổng WebSocket đã mở, tài khoản xác thực) - kết quả Connection Status trả về “connected” là
thành công; kiểm tra publish/subscribe, được thực hiện bằng cách: subscribe vào topic “smartmotor/lock” và publish
tin nhắn “Test Message” lên topic “smartmotor/lock”. Kết quả thử nghiệm cho thấy Mosquitto MQTT được cài trên
máy chủ ảo hoạt động nhanh, hiệu quả.
Tiếp theo, chúng tôi kiểm thử ứng dụng điện thoại thông minh phía người dùng. Ứng dụng sẽ được thử nghiệm
bằng cách kiểm tra tin nhắn được gửi từ ứng dụng tới máy chủ MQTT có chính xác hay không bằng cách gửi lần lượt 2
lệnh lock, alarm. Nếu MQTT Client mẫu nhận được 2 messages lần lượt, thì kết luận ứng dụng gửi lệnh hiệu quả.
Ngoài ra, sẽ tiến hành gửi 01 tin nhắn chứa dữ liệu định vị đến topic tracking, nếu MapView của ứng dụng cập nhật
đúng vị trí, thì kết luận ứng dụng hoạt động hiệu quả.
Hình 13. Thử nghiệm ứng dụng di động cho kết quả hoạt động chính xác
Hình 14. Kết quả cho thấy thiết bị hoạt động đúng
368 HỆ THỐNG GIÁM SÁT VÀ KIỂM SOÁT XE MÁY
Cuối cùng là thử nghiệm thiết bị và cũng là thử nghiệm toàn bộ hệ thống, sau khi bật thiết bị lên và chờ thiết bị
khởi động xong. Kiểm tra trên MQTT Client mẫu sau khi đã đăng ký kênh tracking, nếu cứ sau một khoảng thời gian
thấy có tin nhắn gửi dữ liệu mới xuất hiện. Chứng tỏ thiết bị đã hoạt động đúng. Và cũng kết luận được rằng hệ thống
hoạt động chính xác.
VI. KẾT LUẬN VÀ KIẾN NGHỊ
Nghiên cứu này được xây dựng dựa trên những công nghệ được ưa chuộng và sử dụng rộng rãi gần đây. Mục
tiêu của nghiên cứu này nhằm hướng tới việc sử dụng mạng dữ liệu di động (GPRS/3G/LTE và sắp tới là 5G) làm
phương tiện giao tiếp trong các dự án IoT. Cụ thể hơn chúng tôi đã xây dựng một hệ thống giám sát và điều khiển xe
gắn máy áp dụng giao thức MQTT để truyền các thông điệp trong hệ thống.
Tuy nhiên, nghiên cứu còn tồn tại một số hạn chế về tính ổn định của thiết bị và nhược điểm còn tồn đọng của
hệ thống mạng di động. Tuy nhiên, trong tương lai xa, khi mạng 5G được phát triển kéo theo sự phát triển của các
module 5G, các hạn chế này có thể sẽ được khắc phục.
Trong tương lai, chúng tôi sẽ phát triển tập trung hơn ở phía máy chủ, bao gồm các tính năng về lưu trữ dữ liệu,
bảo mật, xử lý người dùng, các tính năng người dùng.
LỜI CẢM ƠN
Nghiên cứu được tài trợ bởi Trường Đại học Quốc tế, ĐHQG-HCM trong khuôn khổ Đề tài mã số SV2019-IT-
04. Tiến sĩ Võ Thị Lưu Phương là tác giả chịu trách nhiệm.
TÀI LIỆU THAM KHẢO
[1] Viettel Smart Motor:
[2] Motorcycle electronic key system patent: https://patents.google.com/patent/US7369035B2/en.
[3] Docker Documentation: https://docs.docker.com/.
[4] React Native: https://reactnative.dev/.
[5] Redux: https://redux.js.org/.
[6] Ai-thinker A9G documentation - https://ai-thinker-open.github.io/GPRS_C_SDK_DOC/en/.
[7] Productive Development with React Redux: https://blog.mazarin.lk/productive-development-react-redux/.
MOTORBIKE E-MANAGEMENT SYSTEM
Nguyen Thanh Xuan Tung, Vo Thi Luu Phuong, Nguyen Phan Hung Thuan
ABSTRACT: The research project proposes solutions to manage and control smart devices remotely from a microcontroller
module that supports mobile data networking. More specifically, the device has the function of monitoring and controlling the
motorcycle by GPS positioning and communication with the motorbike's electronic system. In addition, the topic that uses the MQTT
server is the main message transfer protocol. And use React Native to program cross-platform smartphone apps. The topic points to
4 main advantages: Low power consumption equipment; low latency; simple, easy to use; lightweight server infrastructure, easy to
deploy. The implementation of the tasks in the project has been completed and all the proposed functions have been tested and the
results achieved as expected.
Các file đính kèm theo tài liệu này:
- he_thong_giam_sat_va_kiem_soat_xe_may.pdf