Tải bản đầy đủ (.doc) (36 trang)

Nghiên cứu công nghệ định vị GPS và ứng dụng xây dựng phần mềm giám sát

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 36 trang )

1
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NCKH CẤP TRƯỜNG
ĐỀ TÀI: “NGHIÊN CỨU CÔNG NGHỆ ĐỊNH
VỊ GPS VÀ ỨNG DỤNG XÂY DỰNG PHẦN
MỀM GIÁM SÁT”
Chủ nhiệm đề tài: TH.S NGUYỄN THỊ NGỌC THANH
Mã số: DT1205
2
MỤC LỤC
DANH MỤC HÌNH VẼ 4
DANH MỤC BẢNG BIỂU 5
TÓM TẮT KẾT QUẢ NGHIÊN CỨU ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP
TRƯỜNG 6
THÔNG TIN KẾT QUẢ NGHIÊN CỨU 7
MỞ ĐẦU 9
CHƯƠNG 1. NGHIÊN CỨU CÔNG NGHỆ ĐỊNH VỊ GPS VÀ PHÁT BIỂU BÀI TOÁN
GIÁM SÁT 10
I.Nghiên cứu công nghệ định vị GPS 10
1.Giới thiệu GPS 10
2.Nguyên lý hoạt động GPS 10
3.Ứng dụng công nghệ GPS hiện nay 13
II.Phát biểu bài toán giám sát 13
1.Phát biểu bài toán 13
2.Yêu cầu bài toán giám sát 14
CHƯƠNG 2. PHÂN TÍCH BÀI TOÁN GIÁM SÁT 15
I.Phân "ch yêu cầu bài toán giám sát 15
II.Mô hình chức năng bài toán giám sát 16


1.Mô hình chức năng dành cho Người quản trị (Người giám sát) 16
2.Mô hình chức năng dành cho Người bị giám sát 16
III.Mô hình hoạt động bài toán giám sát 17
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG PHẦN MỀM GIÁM SÁT 22
I.Công nghệ sử dụng 22
1.Google Maps APIs 22
2.Realtime “Openfire” APIs 22
3
3.Hệ điều hành Android 24
II.Xây dựng ứng dụng bài toán giám sát 25
1.Ứng dụng trên điện thoại hệ điều hành Android dành cho người bị giám sát 26
a.Màn hình chính 26
b.Giao diện đăng nhập 27
c.Giao diện chức năng chính 28
d.Màn hình cảnh báo khi người bị giám sát chạy vượt quá tốc độ cho phép 29
2.Chức năng dành cho người giám sát: 30
a.Màn hình Đăng nhập 30
b.Giao diện Chức năng chính 30
KẾT LUẬN VÀ KIẾN NGHỊ 35
DANH MỤC TÀI LIỆU THAM KHẢO 36
4
DANH MỤC HÌNH VẼ
Hình 1.1. Bộ phận không gian của hệ thống định vị GPS 11
Hình 1.2. Minh họa cách tính khoảng cách giữa vệ tinh và máy thu 11
Hình 2.1. Mô hình chức năng dành cho người giám sát 16
Hình 2.2. Mô hình chức năng dành cho người bị giám sát 16
Hình 2.3. Mô hình hoạt động hệ thống giám sát 17
Hình 3.1. Giao diện màn hình Android 26
Hình 3.2. Giao diện đăng nhập dành cho người bị giám sát 27
Hình 3.3. Giao diện chức năng chính dành cho người bị giám sát 28

Hình 3.4. Giao diện thông báo giảm tốc độ 29
Hình 3.5. Giao diện đăng nhập dành cho người giám sát 30
Hình 3.6. Giao diện chức năng chính dành cho người giám sát 30
Hình 3.7. Giao diện theo dõi trực tuyến dành cho người giám sát 31
Hình 3.8. Giao diện tạo báo cáo hành trình dành cho người giám sát 31
Hình 3.9. Giao diện lưu file báo cáo 32
Hình 3.10. Giao diện trả về khi tạo xong báo cáo 32
Hình 3.11. Giao diện hiển thị thông tin báo cáo hành trình trong Excel 33
Hình 3.12. Giao diện quản lý thông tin người bị giám sát 33
Hình 3.13. Giao diện hiển thị thông tin người cần trợ giúp 34
5
DANH MỤC BẢNG BIỂU
Bảng 2.1. Bảng thông tin tin tức 18
Bảng 2.2. Bảng thông tin người bị giám sát 18
Bảng 2.3. Bảng thông tin người cần giúp đỡ 19
Bảng 2.4. Bảng thông tin khu vực 19
Bảng 2.5. Bảng thông tin vùng 20
Bảng 2.6. Bảng thông tin lịch trực tuyến 20
Bảng 2.7. Bảng thông tin lịch sử hành trình 21
6
TÓM TẮT KẾT QUẢ NGHIÊN CỨU ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ
CẤP TRƯỜNG
- Tên đề tài: Nghiên cứu công nghệ định vị GPS và ứng dụng xây dựng phần
mềm giám sát.
- Mã số: DT1205
- Chủ nhiệm đề tài: Nguyễn Thị Ngọc Thanh Tel.: 0986933997 E-mail:

- Cơ quan chủ trì đề tài:Trường Đại học Giao Thông Vận Tải tp.HCM
- Cơ quan và cá nhân phối hợp thực hiện: Không có
- Thời gian thực hiện: 08/2012 – 05/2013

1. Mục tiêu: Xây dựng phần mềm ứng dụng giúp người quản lý thuận lợi trong việc
điều hành xe và người lái xe trong công ty.
2. Nội dung chính: Nghiên cứu và áp dụng công nghệ định vị GPS vào việc quản lý
điều hành.
3. Kết quả chính đạt được (khoa học, ứng dụng, đào tạo, kinh tế – xã hội, v.v…): Xây
dựng được phần mềm giám sát có áp dụng công nghệ định vị GPS.
7
BỘ GIAO THÔNG VẬN TẢI
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
(Đề tài, dự án sản xuất thử nghiệm)
Tên đề tài: Nghiên cứu công nghệ định vị GPS và ứng dụng xây dựng phần mềm
giám sát.
Mã số: DT1205
Chủ nhiệm: Nguyễn Thị Ngọc Thanh
Thời gian thực hiện: 08/2012 – 05/2013
Kinh phí thực hiện: 15 triệu đồng
Cơ quan chủ trì:Trường Đại học Giao thông vận tải thành phố Hồ Chí Minh
KẾT QUẢ ĐẠT ĐƯỢC
1. Các sản phẩm của đề tài
• Xây dựng Web Server quản lý lịch sử lộ trình người bị giám sát. Đồng thời giúp
người giám sát có thể giám sát trực tuyến đối với đối tượng bị giám sát.
• Xây dựng ứng dụng trên điện thoại có hệ điều hành Android hỗ trợ cho người
bị giám sát (thay thế thiết bị định vị GPS, ví dụ GPS Tracker, v.v…), với giá
thành rẻ hơn rất nhiều so với thiết bị giám sát chuyên dụng.
2. Về bí quyết công nghệ và công nghệ sản phẩm
• Công nghệ GPS
• Hệ điều hành Android
3. Ứng dụng trong sản xuất và hiệu quả kinh tế
• Áp dụng cho các công ty kinh doanh vận chuyển, cá nhân có nhu cầu cần theo

dõi giám sát người cần quan tâm. Để có thể sử dụng phần mềm này trong thực
8
tế thì chỉ cần mua host để lưu trữ dữ liệu và trang bị điện thoại hệ điều hành
Android dành cho người bị giám sát.
4. Đào tạo:
• Có thể sử dụng làm đề tài hướng dẫn khóa luận tốt nghiệp cho sinh viên chuyên
ngành Công nghệ thông tin.
5. Tình hình sử dụng kinh phí: đã quyết toán với kinh phí được hỗ trợ từ nguồn
NSNN là 7.5 triệu đồng năm 2012.
Xác nhận của cơ quan chủ trì
(ký, đóng dấu)
Ngày tháng năm
Chủ nhiệm đề tài
(ký, họ và tên)
9
MỞ ĐẦU
Ngày nay, ngành công nghệ thông tin đang được phát triển một cách mạnh mẽ
và đã giúp cho thế giới chúng ta trở thành thế giới “phẳng”. Song song với sự phát
triển đó nhiều ngành công nghệ khác cũng được ngành Công nghệ thông tin hỗ trợ
phát triển đáng kể. Trong đó, không thể không kể đến công nghệ định vị GPS. Kể từ
khi, công nghệ định vị GPS ra đời vào năm 1995, nó đã được ứng dụng rộng rãi trong
hầu hết mọi lĩnh vực quân sự và dân sự. Cho đến bây giờ, công nghệ định vị GPS đã
trở thành ngành công nghiệp có doanh số hàng chục tỷ USD/ 1 năm và đang được phát
triển mở rộng.
Một trong những ứng dụng thực tế của công nghệ định vị GPS là việc tạo ra các
thiết bị giám sát. Các thiết bị này được lắp đặt trên xe ôtô, là loại thiết bị sử dụng đầu
đo xung gắn ở hộp số hoặc bánh xe. Trung Quốc cũng ban hành tiêu chuẩn thiết bị
giám sát hành trình ôtô GB/T19056-2003 trên cơ sở tham khảo các Quy định của EU.
Theo đó, việc xác định vận tốc và quãng đường dịch chuyển được xác định trên cơ sở
các tín hiệu xung được truyền từ đầu đo gắn ở hộp số hoặc bánh xe. Hiện nhiều nhà

cung cấp thiết bị Giám sát hành trình ôtô đã đưa ra thị trường loại thiết bị có đủ các
tính năng của thiết bị giám sát đã được quy định trong tiêu chuẩn GB/T19056-2003 và
có thêm tính năng GPS. Ngoài ra, để đáp ứng yêu cầu quản lý khác nhau của các
doanh nghiệp vận tải, các công ty sản xuất Thiết bị định vị còn cung cấp cả loại thiết bị
giám sát có khả năng kết nối với Camera, kết nối với công tắc điều khiển cửa, bàn đạp
phanh, cơ cấu điều khiển lái, v.v…
Ở Việt Nam, vừa qua, một số doanh nghiệp cũng đã tiến hành nhập khẩu hoặc
tự nghiên cứu, sản xuất lắp ráp một số loại thiết bị GPS. Qua tìm hiểu sơ bộ các tính
năng của thiết bị được doanh nghiệp công bố thì hầu hết các thiết bị này là loại thiết bị
phục vụ cho việc hướng dẫn đường đi, kiểm soát phạm vi, tình trạng hoạt động của xe
hoặc chống trộm cắp xe, v.v…
Như vậy, công nghệ GPS đã được ứng dụng rộng rãi trên toàn thế giới. Và ở
Việt Nam, theo nghị định 91/2009/NĐ-CP về Kinh doanh và điều kiện kinh doanh vận
tải bằng xe ô tô của Chính phủ yêu cầu tất cả các xe ô tô kinh doanh vận tải phải gắn
thiết bị định vị GPS. Tuy nhiên, không phải doanh nghiệp và cá nhân nào cũng có điều
kiện để gắn thiết bị GPS như vậy. Giá một thiết bị định vị dao động từ 4 triệu đến 7
triệu tùy từng loại.
Để giải quyết một phần nào tình hình trên, tôi mạnh dạn đưa ra bài toán giám
sát và được giải quyết bằng cách sử dụng thiết bị điện thoại di động chạy trên nền hệ
điều hành Android thay cho việc sử dụng các thiết bị chuyên dụng như GPS Tracker,
v.v… với giá thành rẻ hơn (một chiếc điện thoại hệ điều hành Android có giá từ 1,5
triệu trở lên).
10
CHƯƠNG 1. NGHIÊN CỨU CÔNG NGHỆ ĐỊNH VỊ GPS VÀ PHÁT BIỂU BÀI TOÁN
GIÁM SÁT
I. Nghiên cứu công nghệ định vị GPS
1. Giới thiệu GPS
GPS là các chữ cái đầu của cụm từ Global Positioning System, có nghĩa là “Hệ
thống định vị toàn cầu”.
Hệ thống định vị toàn cầu gồm 3 thành phần chính: Bộ phận điều khiển, bộ

phận không gian và các thiết bị gps lắp đặt trên phương tiện hoặc đem theo người
(điện thoại di động, đồng hồ, máy ảnh…). Trong đó:
• Bộ phận điều khiển là một hệ thống các thiết bị đặt tại nhiều nơi khác
nhau trên mặt đất được sử dụng để giám sát và điều khiển các vệ tinh.
• Bộ phận không gian là một hệ thống gồm nhiều vệ tinh bay chung quanh
trái đất theo các quỹ đạo khác nhau được điều khiển bởi bộ phận điều
khiển.
• Thiết bị GPS là thiết bị có chức năng thu được tín hiệu phát ra từ các vệ
tinh và tự tính toán vị trí của nó dựa trên các thông tin thu được. Như
vậy, về bản chất, tọa độ thiết bị GPS là kết quả tính toán từ thông tin về
vị trí, khoảng cách giữa thiết bị GPS và các vệ tinh mà nó có thể kết nối
được. Việc thu phát của hệ thống GPS được thực hiện theo tần suất là 1
giây một lần.
2. Nguyên lý hoạt động GPS
GPS là một hệ thống gồm 27 vệ tinh chuyển động xung quanh quỹ đạo trái đất,
mỗi vệ tinh nặng khoảng 2 tấn, sử dụng năng lượng mặt trời và chuyển động cách mặt
đất 19.300 km. Mỗi vệ tinh quay quanh trái đất 2 vòng/1 ngày đêm. Quỹ đạo chuyển
động của chúng được tính toán sao cho ở bất kỳ nơi nào trên trái đất, cũng có thể nhìn
tối thiểu 4 vệ tinh.
Vệ tinh sẽ phát ra một tính hiệu bao gồm vị trí của chúng, thời điểm phát tín
hiệu. Khi đó máy thu tín hiệu sẽ tính toán được khoảng từ các vệ tinh, giao điểm của
các mặt cầu có tâm là các vệ tinh, bán kính là thời gian mà tín hiệu đi từ vệ tinh tới
máy thu và vận tốc sóng điện từ là tọa độ điểm cần định vị.
11
Hình 1.1. Bộ phận không gian của hệ thống định vị GPS
Như vậy, công việc của máy thu là xác định vị trí của 4 vệ tinh hay nhiều hơn,
tính toán khoảng cách từ nó đến các vệ tinh để suy ra vị trí của chính nó.
Giả sử :
Hình 1.2. Minh họa cách tính khoảng cách giữa vệ tinh và máy thu
Trong không gian 3 chiều : Bạn đang ở trên mặt đất.

• Vị trí của bạn cách so với vệ tinh A là 20 (km). Khi đó chúng ta xác định
một mặt cầu bán kính 20 (km).
• Vị trí của bạn cách so với vệ tinh B là 30 (km).
• Như vậy vị trí của bạn sẽ nằm trên đường tròn là giao tuyến giao nhau giữa
2 mặt cầu do vệ tinh A và B tạo nên.
• Tiếp theo bạn biết khoảng cách từ bạn đến vệ tinh C, khi đó mặt cầu của vệ
tinh C sẽ cắt đường tròn tại 2 điểm.
• Thêm vào đó trái đất chúng ta là mặt cầu thứ 4, như vậy 1 trong 2 điểm đó
sẽ nằm trên trái đất và điểm còn lại sẽ lơ lững trên không trung.
• Để biết chính xác vị trí của bạn. Vì cho trái đất là mặt cầu, nên chúng ta bỏ
qua độ cao, nên cần có thêm một vệ tinh thứ 4 nữa để xác định cao độ trong
không gian.
Để thực hiện tính toán, máy thu GPS sẽ cần dữ liệu tối thiểu:
12
• Vị trí của ít nhất 3 vệ tinh bên trên nó.
• Khoảng cách giữa máy thu đến từng vệ tinh.
Nhờ vào phân tích sóng điện từ tần số cao, công suất cực thấp từ các vệ tinh
máy thu GPS sẽ tính ra được dữ liệu trên. Để tính được vị trí các vệ tinh trên máy thu,
và khoảng cách giữa máy thu đến từng vệ tinh các máy thu GPS và vệ tinh được hoạt
động theo nguyên tắc sau:
“Vào một thời điểm nào đó, giả sử vào lúc 0 giờ, một vệ tinh bắt đầu truyền
một chuỗi tín hiệu dài, được gọi là mã ngẫu nhiên giả. Máy thu cũng bắt đầu tạo ra
chuỗi mã giống hệt vào cùng thời điểm. Khi tín hiệu từ vệ tinh truyền đến máy thu,
chuỗi tín hiệu đó sẽ bị trễ một chút so với chuỗi do máy thu tạo ra.
Chiều dài khoảng thời gian trễ này chính là thời gian truyền của tín hiệu từ vệ
tinh. Máy thu nhân thời gian này với tốc độ ámh sáng để xác định quãng đường
truyền tín hiệu. Giả sử rằng tín hiệu truyền trên đường thẳng, đây chính là khoảng
cách từ vệ tinh đến máy thu. Để thực hiện phép đo này, chúng ta phải chắc chắn là
đồng hồ trên vệ tinh và trong máy thu phải đồng bộ với nhau. Một sai số 1 mili giây sẽ
dẫn đến sai số là 300 ngàn mét, như vậy là quá nhiều. Do đó, độ chính các tối thiểu

cho các máy thu phải là cỡ nano giây (10-9 ). Để có độ chính xác như vậy, phải trang
bị đồng hồ nguyên tử cho không chỉ các vệ tinh mà còn máy thu của bạn nữa. Nhưng
đồng hồ nguyên tử thì lại đắt, khoảng 50 đến 100 ngàn đô. Điều đó thì quá đắt.
Để có thể đưa các ứng dụng GPS đến với chúng ta, các kỷ sư đã có một giải
pháp thông minh và hiệu quả. Mỗi quả vệ tinh mang theo một cái đồng hồ nguyên tử,
nhưng mỗi máy thu thì chỉ trang bị đồng hồ quartz thông thường. Các đồng hồ quartz
này được điều chỉnh liên tục dựa vào tín hiệu được truyền đi từ các vệ tinh.
Trên lý thuyết thì 4 mặt cầu phải giao nhau tại 1 điểm. Nhưng do sai số đồng
hồ quartz rẻ tiền, 4 mặt cầu đã không cho 1 giao điểm duy nhất. Biết rằng sai số này
gây ra bởi đồng hồ trên máy thu là như nhau Δt, máy thu có thể dễ dàng loại trừ sai
số này bằng cách tính toán ra lượng hiệu chỉnh cần thiết để 4 mặt cầu giao nhau tại
một điểm. Dựa vào đó, máy thu tự động điều chỉnh đồng hồ cho đồng bộ với đồng hồ
nguyên tử trên vệ tinh. Nhờ đó mà đồng hồ trên máy thu có độ chính xác gần như
tương đương với đồng hồ nguyên tử. Vậy là chuyện đo khoảng cách đã được giải
quyết ổn thoả.
Biết khoảng cách rồi, chúng ta còn phải biết vị trí chính xác của các vệ tinh
trên quĩ đạo. Điều này cũng không khó lắm vì các vệ tinh chuyển đông trên các quĩ
đạo biết trước và có thể dự đoán được.Trong bộ nhớ của mỗi máy thu đều có chứa
một bảng tra vị trí tính toán của tất cả các vệ tinh vào bất kỳ thời điểm nào gọi là
Almanac. Lực hút của mặt trăng, mặt trời có ảnh hưởng nhất định làm thay đổi quĩ
đạo của các vệ tinh một chút xíu nhưng bộ quốc phòng Mỹ liên tục theo dõi vị trí
chính xác của các vệ tinh và truyền thông số hiệu chỉnh đến các máy thu thông qua tín
hiệu từ vệ tinh.
Vậy là cả hai vấn đề khoảng cách và vị trí đã giải quyết xong, và hệ thống cơ
bản hoạt động tốt, tuy nhiên, người ta nhận thấy hệ thống có nhiều sai số. Nguyên
nhân đầu tiên là do việc giả sử rằng các tín hiệu vệ tinh được truyền theo đường thẳng
đến các máy thu với vận tốc không đổi. Trong thực tế, bầu khí quyến trái đất ít nhiều
làm chậm tốc độ truyền, đặc biết là khi sóng điên từ đi qua các tầng điện ly và đối lưu.
Do tính chất của các tầng này khác nhau tại các vị trí khác nhau trên trái đất nên độ
13

trễ này phụ thuộc vào vị trí của máy thu trên mặt đất, điều đó có nghĩa là khó có thể
loại trừ sai số này. Gần đây người ta tạo ra các mô hình toán học mô phỏng tính chất
của bầu khí quyển trái đát để giảm thiểu sai số này. Ngoài ra, khi tín hiệu phản xạ từ
các vật thể lớn như các toà nhà cao tầng, cũng tạo cho máy thu một sai số như là đến
từ một khoảng cách xa hơn. Thỉnh thoảng, tín hiệu từ các vệ tinh cũng có sai số. Bộ
quốc phòng Mỹ cũng thêm vào sai số nhân tạo được gọi một cách văn hoa là Selective
Availability hay SA.
Qua các phần trên, chúng ta đã thấy chức năng cơ bản nhất của máy thu GPS
là thu nhận thông tin từ tối thiểu 4 vệ tinh, phối hợp các thông tin này với thông tin đã
được chứa trong Almanac để tính toán ra vị trí của máy thu trên mặt đất. Một khi máy
thu đã thu nhận và xử lý thông tin, máy sẽ cho chúng ta biết vĩ độ, kinh độ và cao độ
của vị trí hiện thời. Để làm cho việc định vị thân thiện hơn, hầu hết các máy thu đều
thể hiện các thông tin này dưới dạng các điểm trên bản đồ được chứa sẵn trong máy.
Bạn có thể nối máy thu GPS với PC chứa bản đồ chi tiết. Một số máy thu còn cho
phép nạp các bản đồ chi tiết vào bộ nhớ trong của máy hay kết nối với các thẻ nhớ đã
nạp sẵn bản đồ” – Theo GPS Truyền Thông Việt Nam.
3. Ứng dụng công nghệ GPS hiện nay
Hiện nay ở các nước thuộc Liên hiệp châu Âu (EU), đã ứng dụng công nghệ
GPS tạo ra các thiết bị Giám sát hành trình. Các thiết bị này được lắp đặt trên xe ôtô là
loại thiết bị sử dụng đầu đo xung gắn ở hộp số hoặc bánh xe. Trung Quốc cũng ban
hành tiêu chuẩn thiết bị giám sát hành trình ôtô GB/T19056-2003 trên cơ sở tham khảo
các Quy định của EU. Theo đó, việc xác định vận tốc và quãng đường dịch chuyển
được xác định trên cơ sở các tín hiệu xung được truyền từ đầu đo gắn ở hộp số hoặc
bánh xe. Hiện nhiều nhà cung cấp thiết bị Giám sát hành trình ôtô đã đưa ra thị trường
loại thiết bị có đủ các tính năng của thiết bị giám sát đã được quy định trong tiêu chuẩn
GB/T19056-2003 và có thêm tính năng GPS. Ngoài ra, để đáp ứng yêu cầu quản lý
khác nhau của các doanh nghiệp vận tải, các công ty sản xuất Thiết bị định vị còn cung
cấp cả loại thiết bị giám sát có khả năng kết nối với Camera, kết nối với công tắc điều
khiển cửa, bàn đạp phanh, cơ cấu điều khiển lái, v.v…
Ở Việt Nam, vừa qua, một số doanh nghiệp cũng đã tiến hành nhập khẩu hoặc

tự nghiên cứu, sản xuất lắp ráp một số loại thiết bị GPS. Qua tìm hiểu sơ bộ các tính
năng của thiết bị được doanh nghiệp công bố thì hầu hết các thiết bị này là loại thiết bị
phục vụ cho việc hướng dẫn đường đi, kiểm soát phạm vi, tình trạng hoạt động của xe
hoặc chống trộm cắp xe, v.v…
II. Phát biểu bài toán giám sát
1. Phát biểu bài toán
Như đã trình bày ở phần trên (ứng dụng công nghệ GPS hiện nay), công nghệ
GPS đã được ứng dụng rộng rãi trên toàn thế giới. Và ở Việt Nam, theo nghị định
91/2009/NĐ-CP về Kinh doanh và điều kiện kinh doanh vận tải bằng xe ô tô của
Chính phủ yêu cầu tất cả các xe ô tô kinh doanh vận tải phải gắn thiết bị định vị GPS.
Tuy nhiên, không phải doanh nghiệp và cá nhân nào cũng có điều kiện để gắn thiết bị
GPS như vậy. Giá một thiết bị định vị dao động từ 4 triệu đến 7 triệu tùy từng loại.
Để giải quyết một phần nào tình hình trên, tôi mạnh dạn đưa ra bài toán giám
sát và được giải quyết bằng cách sử dụng thiết bị điện thoại di động chạy trên nền hệ
14
điều hành Android thay cho việc sử dụng các thiết bị chuyên dụng như GPS Tracker,
v.v… với giá thành rẻ hơn (một chiếc điện thoại hệ điều hành Android có giá từ 1,5
triệu trở lên).
2. Yêu cầu bài toán giám sát
• Đối tượng bài toán:
o Người bị giám sát: nhân viên lái xe, con cái, người già, v.v…
o Người giám sát: người quản lý, bố mẹ, v.v…
• Yêu cầu bài toán:
o Người giám sát luôn biết được vị trí hiện tại, hành trình của người bị
giám sát theo hệ thống thời gian thực.
o Người giám sát có thể xem nhanh được lịch sử quá trình của người bị
giám sát theo thông số ngày, giờ, v.v
o Người bị giám sát có thể gửi yêu cầu trợ giúp khi gặp khó khăn cần
giúp đỡ.
15

CHƯƠNG 2. PHÂN TÍCH BÀI TOÁN GIÁM SÁT
I. Phân tích yêu cầu bài toán giám sát
Từ yêu cầu bài toán giám sát đã được phát biểu ở chương 1, tôi phân chia bài
toán này thành hai bài toán nhỏ. Một bài toán là dành cho người giám sát và một bài
toán dành cho người bị giám sát. Tương ứng với hai bài toán nhỏ đó, đề tài được phát
triển xây dựng thành hai mảng là xây dựng webiste quản lý và xây dựng ứng dụng di
động.
Website quản lý dành cho người quản lý (người giám sát) dùng để giám sát các
đối tượng cần giám sát. Dữ liệu vị trí của người bị giám sát sẽ được cập nhật liên lục
về phía người quản lý theo hệ thống thời gian thực, và hệ thống server sẽ luôn lắng
nghe và lưu trữ những thông tin cập nhật đó. Khi có yêu cầu cần trợ giúp từ người bị
giám sát, trên website sẽ hiện lên yêu cầu cần trợ giúp để người quản lý kịp thời giúp
đỡ. Tất cả dữ liệu trao đổi giữa người bị giám sát và người giám sát được xử lý và lưu
trữ tại server. Sau đó tùy thuộc vào nhu cầu quản lý, các dữ liệu đó sẽ được rút trích
tạo nên các báo cáo cần thiết.
Ứng dụng di động dành cho người bị giám sát, được xây dựng trên nền hệ điều
hành Android. Ứng dụng này thực hiện công việc gửi vị trí hiện tại của người bị giám
sát về phía server, và nó sẽ cập nhật thường xuyên vị trí của người bị giám sát. Ngoài
ra ứng dụng này còn có thêm chức năng gửi yêu cầu trợ giúp khi người bị giám sát gặp
trục trặc hoặc gặp sự cố. Tất cả các chức năng này đều thực hiện theo hệ thống thời
gian thực.
Từ việc phân tích ở trên, tôi tóm tắt lại các công việc cần thực hiện như sau:
Về phía website quản lý:
1. Lưu thông tin tin nhắn được gửi từ người bị giám sát gửi đến webserver
và được lưu vào database bao gồm các thông tin sau: vị trí, thời gian và
tốc độ. Kiểm tra nếu tốc độ vượt quá quy định thì gửi tin nhắn cảnh báo
đến người bị giám sát.
2. Hiển thị vị trí hiện tại của các đối tượng bị giám sát trên website.
3. Báo cáo lịch trình đi, vị trí bắt đầu, vị trí kết thúc của đối tượng bị giám
sát theo ngày, tuần, tháng.

4. Báo cáo xe chạy vượt quá tốc độ trong ngày, tuần, tháng.
Về phía ứng dụng di động chạy trên nền hệ điều hành Android:
1. Kết nối đến hệ thống: mặc định 15s gửi tin nhắn đến webserver bao gồm các
thông tin sau: vị trí hiện tại, giờ hiện tại và tốc độ. Ngoài ra, khi cập nhật lại
vị trí hiện tại, ứng dụng sẽ thực hiện các công việc sau:
- Tính khoảng cách giữa vị trí mới và vị trí cũ,
- Tính vận tốc,
- Gửi thông tin đến hệ thống: vị trí mới, khoảng cách, vận tốc,
thời gian.
2. Ngắt kết nối: gửi tin nhắn đến webserver thông tin vị trí hiện tại, giờ hiện
tại, thông báo trạng thái ngừng kết nối.
3. Gửi yêu cầu trợ giúp đến hệ thống webserver khi cần thiết.
16
II. Mô hình chức năng bài toán giám sát
1. Mô hình chức năng dành cho Người quản trị (Người giám sát)
Dang nhap
Ban do
Truc tuyen
Bao cao
Nguoi giam sat
Giup do
Hình 2.1. Mô hình chức năng dành cho người giám sát
2. Mô hình chức năng dành cho Người bị giám sát
Dang nhap
Ket noi/Ngat ket noi
Nguoi bi giam sat
Giup do
Hình 2.2. Mô hình chức năng dành cho người bị giám sát
17
III. Mô hình hoạt động bài toán giám sát

Hình 2.3. Mô hình hoạt động hệ thống giám sát
Theo mô hình hoạt động ở hình vẽ 2.3, cụ thể các công việc cần thực hiện và
ứng dụng các công nghệ như sau:
1. Xây dựng tầng dịch vụ (ứng dụng di động chạy trên nền hệ điều hành
Android) giúp điện thoại liên lạc và gửi dữ liệu lên webserver.
2. Sử dụng TimerTask class(Java) để liên tục gửi vị trí người bị giám sát lên
webserver. Vị trí người dùng sẽ được cập nhật thông qua tầng dịch vụ và
lưu vào database.
3. Sử dụng công nghệ XMPP – Openfire để cho phép duy trì kết nối liên tục
giữa người bị giám sát với người giám sát khi đăng nhập thành công.
4. Sử dụng Google Maps API ( Google Geocoding API) để tìm kiếm theo địa
điểm. Sử dụng Google Places API để tìm kiếm địa điểm theo thể loại. Sử
dụng Google Directions để xác định lộ trình đường đi giữa hai điểm.
5. Xây dựng Website giúp người quản lý (người giám sát) theo dõi trực tuyến
đối tượng cần được giám sát.
6. Sử dụng MySQL xây dựng cơ sở dữ liệu (DB) để quản lý dữ liệu của hệ
thống. Cụ thể hệ thống dữ liệu bao gồm các bảng dữ liệu như sau:
a.  Bảng ofNews
Bảng ofNews lưu trữ thông tin tin tức, giúp người giám sát và người bị giám
sát có thể theo dõi thông tin mới của công ty. Cấu trúc của bảng như sau:
18
Filed Data Type Description
ID BIGINT Mã tin tức
TITLE TEXT Tựa đề tin tức
CONTENT TEXT Nội dung tin tức
DATE VARCHAR(100) Ngày đăng tin
Bảng 2.1. Bảng thông tin tin tức
b. Bảng ofEmployees
Bảng ofEmployees lưu trữ thông tin của người bị giám sát (nhân viên bị
giám sát). Cấu trúc của bảng như sau:

Filed Data Type Description
ID BIGINT Mã nhân viên
FULLNAME VARCHAR(200) Tên đầy đủ của nhân viên
BIRTH VARCHAR(100) Ngày tháng năm sinh
ADDRESS TEXT Địa chỉ nhân viên
PHONE VARCHAR(20) Số điện thoại nhân viên
AREA BIGINT Mã vùng nhân viên đó sống
Bảng 2.2. Bảng thông tin người bị giám sát
c. Bảng ofHelp
Bảng ofHelp lưu trữ thông tin cần giúp đỡ của người bị giám sát. Khi người
bị giám sát gặp bất kì sự cố nào, họ sẽ chọn thao tác giúp đỡ, hệ thống sẽ
nhận được, và phát sinh ra một mã lệnh cần giúp đỡ ID, chi tiết về thông tin
cần giúp đỡ đó bao gồm mã người cần giúp đỡ ofEmployees_ID, đây cũng là
khoá ngoại của bảng ofHelp, để xác định được chính xác đối tượng cần giúp
đỡ thông qua bảng ofEmployees. Khi người bị giám sát yêu cầu cần giúp đỡ,
hệ thống sẽ nhận được thông tin về vĩ độ (lat) và kinh độ (lng) của người bị
giám sát. Cấu trúc của bảng như sau:
19
Filed Data Type Description
ID BIGINT Mã số
ofEmployees_ID BIGINT Khóa ngoại – Mã nhân viên
LAT VARCHAR(100) Vĩ độ trên bảng đồ
LNG VARCHAR(100) Kinh độ trên bảng đồ
STATUS INT
Tình trạng của giúp đỡ ( 0/1) Thể
hiện đã xử lý tình trạng giúp đỡ này
chưa
TIME VARCHAR(100) Giờ/Phút/Giây gửi yêu cầu giúp đỡ
DATE VARCHAR(100) Ngày/Tháng/Năm gửi yêu cầu
DESCRIPTION TEXT Thông tin mô tả về yêu cầu giúp đỡ

STREET_NUMBER VARCHAR(100)
Địa chỉ con đường đang đi khi gửi
yêu cầu
ROUTE VARCHAR(200) Tên con đường đang đi
SUBLOCALITY VARCHAR(200) Phường
AREA_LEVEL_2 VARCHAR(200) Quận
AREA_LEVEL_1 VARCHAR(200) Thành phố
Bảng 2.3. Bảng thông tin người cần giúp đỡ
d. Bảng ofArea
Bảng ofArea lưu trữ thông tin về khu vực. Cấu trúc của bảng như sau:
Filed Data Type Description
ID BIGINT Mã số của khu vực
NAME VARCHAR(100) Tên khu vực
DES TEXT Mô tả về khu vực
REGION_ID BIGINT Mã vùng
Bảng 2.4. Bảng thông tin khu vực
e. Bảng ofRegion(ID, name, des)
20
Bảng ofRegion lưu trữ thông tin vùng. Mỗi một vùng (region) có nhiều khu
vực (area), mỗi khu vực được xác định thông qua một mã số là ID, chi tiết
khu vực gồm tên name và những mô tả chi tiết khác des. Thông qua khoá
ngoại region_id trong table sẽ gọi được mã vùng của ofRegion_ ID. Cấu
trúc của bảng như sau:
Filed Data Type Description
ID BIGINT Mã số của vùng
NAME VARCHAR(100) Tên vùng
DES TEXT Mô tả về vùng
Bảng 2.5. Bảng thông tin vùng
f. Bảng ofRoute
Bảng ofRouter lưu lại tuyến đường của xe đang đi ứng với từng người bị

giám sát (ofEmployees_ID). Cấu trúc của bảng như sau:
Filed Data Type Description
ID BIGINT Mã số
ofEmployees_ID BIGINT Khóa ngoại – Mã nhân viên
LAT NVARCHAR(100) Vĩ độ trên bản đồ
LNG NVARCHAR(100) Kinh độ trên bảng đồ
STATUS INT
0 : Ngắt kết nối
1 : Kết nối và có khách
2 : Kết nối và không có khác
TIME VARCHAR(100) Thời gian kết nối tới trung tâm
DATE VARCHAR(100) Ngày kết nối tới trung tâm
Bảng 2.6. Bảng thông tin lịch trực tuyến
g. Bảng ofHistory
Bảng ofHistory lưu lại tất cả chi tiết về hành trình đi của các đối tượng bị
giám sát theo thời gian, địa điểm một cách chi tiết. Cấu trúc của bảng như
sau:
21
Filed Data Type Description
ID BIGINT Mã số
ofEmployees_ID BIGINT Khóa ngoại – Mã nhân viên
LAT NVARCHAR(100) Vĩ độ trên bản đồ
LNG NVARCHAR(100) Kinh độ trên bảng đồ
TIME VARCHAR(100) Giờ /phút/giây ghi nhận khi thay đổi
tuyến đường đang đi
DATE VARCHAR(100) Ngày/Tháng/Năm ghi nhận thay đổi
tuyến đường đang đi
ROUTE VARCHAR(200) Tên đường đang đi
SUBLOCALITY VARCHAR(200) Phường
AREA_LEVEL_2 VARCHAR(200) Quận

AREA_LEVEL_1 VARCHAR(200) Tỉnh / Thành phố
Bảng 2.7. Bảng thông tin lịch sử hành trình
22
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG PHẦN MỀM GIÁM SÁT
I. Công nghệ sử dụng
1. Google Maps APIs
là website của Google cho phép tìm kiếm địa điểm ở
khắp mọi nơi trên trái đất, trên một nền cơ sở dữ liệu vô cùng lớn của Google. Người
dùng có thể thực hiện các chức năng tìm đường đi đến một điểm, tìm đường đi giữa
hai điểm khác nhau, tìm kiếm vị trí xung quanh, v.v… Ngoài ra một số doanh nghiệp
cũng có thể đăng ký với Google để hình ảnh của công ty mình được xuất hiện trên
Google Map.
Bên cạnh việc cung cấp dịch vụ tìm kiếm địa điểm, Google Maps còn cung cấp
các APIs cho phép người phát triển có thể tương tác với cơ sở dữ liệu của Google
thông qua tầng dịch vụ. Người lập trình chỉ cần truyền tham số yêu cầu là chuỗi địa chỉ
trên thanh địa chỉ của browser. Tất cả mọi thứ cần cho người phát triển ứng dụng, đều
được Google Maps cho phép tra cứu và tìm kiếm ngay trên website ( theo tài liệu trên
/>Trong đề tài này, tôi sử dụng một plus được Google phát triển cho phép lập
trình viên tương tác dễ dàng với tầng dịch vụ của Google cũng như hiển thị dữ liệu, đó
là Google Maps UI Javascript Version 3. Đây là bộ plus cực kì mạnh mẽ. Với gói này
chúng ta có thể:
- Xây dựng website tìm kiếm địa điểm một nơi nào đó,
- Tìm lộ trình đường đi giữa hai điểm khác nhau,
- Tìm kiếm các địa điểm như : Trạm xăng, quán bar, cà phê, trường học, bệnh
viện, v.v…
- Tương tác với tầng dịch vụ của Google như :
o Google Directions
o Distance Matrix
o Elevation
o Geocoding

o Places
- Tùy chỉnh dữ liệu để trình bày thật đẹp mắt trên bản đồ Google Maps.
2. Realtime “Openfire” APIs
Công nghệ Realtime Onpenfire, cho phép truyền và nhận dữ liệu theo hệ thống
thời gian thực. Chi tiết tại website . Công nghệ
Openfire xây dựng giao thức truyền và nhận dữ liệu theo thời gian thực dựa trên giao
thức truyền và nhận dữ liệu của XMPP.
Extensible Messaging and Presence Protocol ( XMPP ) là của Jabber xây dựng
nên. XMPP là giao thức mở, dựa trên nền tảng XML dùng trong nhắn tin nhanh
(instant messaging) và thông tin hiện diện trực tuyến (presence information). Theo Hội
Tiêu chuẩn XMPP (XMPP Standards Foundation, trước đây là Jabber Software
Foundation, JSF), phần mềm dựa trên Jabber được triển khai tại hàng ngàn máy phục
vụ trên Internet và được hơn 10 triệu người trên khắp thế giới sử dụng.
23
Đặc trưng của hệ thống có hỗ trợ giao thức XMPP là nó có các cổng. Bằng cách
đăng ký tài khoản truy cập, người dùng sẽ được liên kết với mạng để truyền và gửi tin
nhắn. Tài khoản người dùng truy cập thường có dạng giống địa chỉ email:
<Tên người dùng>@<Tên miền>
Bằng cách đó, chỉ cần sử dụng phần mềm có hỗ trợ kết nối dựa trên XMPP ở
phía client thì người dùng đều có thể đăng nhập và sử dụng.
• Openfire Server
Về phía server, Openfire cung cấp các API cho phép nhận kết nối từ các client,
quản lý kết nối tạo người dùng và cấp quyền. Server sẽ luôn lắng nghe thay đổi từ các
kết nối ở client truyền lên và xử lý.
Phiên bản Openfire Server được tải tại:
/>• Client
Về phía client, sử dụng API của Smack client hoặc Spack client để thực thi việc
kết nối tới server, truyền và nhận dữ liệu cho các client khác thông qua server.
Để thực thi kết nối tới server, các client đều được cấp tài khoản để truy cập, sau
đó sử dụng giao thức XMPP để kết nối.

Sau đây là một số lớp dùng để tương tác trong hệ thống thời gian thực
1. org.jivesoftware.smack.ConnectionConfiguration
Cấu hình kết nối: Bao gồm địa chỉ server, port, v.v… Lớp này cung cấp một số
phương thức cho phép cấu hình một kết nối được chứng thực và an toàn tới server.
2. org.jivesoftware.smack.XMPPConnection
Tạo ra đối tượng kết nối tới server, dựa trên cấu hình kết nối do đối tượng
ConnectionConfiguration định nghĩa. Kết nối này sẽ được duy trì cho đến khi hết thời
gian cho phép kết nối ở phía server cho phép hoặc người dùng ngắt kết nối.
3. org.jivesoftware.smack.Roster
Là đối tượng nắm giữa thông tin của client, chứa thông tin và danh sách các tên
của client.
4. org.jivesoftware.smack.packet.Presence
Đối tượng thuộc lớp này cho phép hiển thị người dùng đang trực tuyến hoặc
không trực tuyến trên server. Hay nói đúng hơn là những người đang kết nối tới server
và có trạng thái là online.
5. org.jivesoftware.smack.ChatManager
Quản lý trò chuyện của client với client thông qua server. Đối tượng của lớp
này nắm giữ thông tin về đối tượng mà client đang trò chuyện là client nào, sau đó sẽ
thực hiện việc gửi một message thuộc lớp org.jivesoftware.smack.packet.Message đến
client đích.
6. Listener
24
Ngoài các lớp ở trên, chúng ta cũng sẽ băt gặp các listener, các listener này sẽ
thực hiện việc lắng nghe trong suốt quá trình client kết nối, sau đó sẽ thực hiện nhiệm
vụ đã do chúng ta cài đặt. Các listener hay dùng:
org.jivesoftware.smack.ConnectionListener
org.jivesoftware.smack.RosterListener
org.jivesoftware.spark.ui.PresenceListener
org.jivesoftware.smack.MessageListener
3. Hệ điều hành Android

Hệ điều hành Android được Google phát triển ngày càng trở nên phổ bến trên
các thiết bị smartphone. Bên cạnh đó một kho các phần mềm cho android cũng được
phát triển ngày càng nhiều, đáp ứng hầu hết nhu cầu trong cuộc sống.
Trong đề tài này, tôi xây dựng một ứng dụng chạy trên hệ điều hành Android
tương tác với Website, xây dựng đa luồng. Áp dụng Openfire cho việc truyền và nhận
dữ liệu giữa các thiết bi động và Server Openfire.
Cũng giống như browser, việc Android tương tác với Website cũng như vậy.
Hệ điều hành Android cung cấp lớp HttpClient cho phép người dùng Android có thể
tương tác với Website như một hành động bình thường giống trên browser thông qua
giao thức Http.
Với HttpClient chúng ta có thể thiếp lập các tham số cần truyền lên cho
website, định nghĩa phương thức HttpPost và HttpGet để thực thi hành động , kết quả
sau khi thực thi sẽ được đối tượng HttpResponse nắm giữ.
Khi gọi phương thức executeHttpGet hoặc executeHttpPost chúng ta sẽ nhận
được kết quả do server trả về là kiểu String. Chúng ta chỉ cần lấy giá trị đó về xử lý.
Giả sử chúng ta có đường link truy cập website để lấy danh sách các thành viên
dưới dạng JSON sau đó khi lấy danh sách về chúng ta trình bày lên ListView của
Android.
• JSON
Javascript Object Noattion là một định dạng hoán vị dữ liệu nhanh, chúng dễ
dàng cho chúng ta đọc và viết, dễ dàng cho việc phân tích và xử lý. Chúng là cơ sở
dựa trên tập hợp của ngôn ngữ lập trình Javascript.
JSON được xây dựng dựa trên hai cấu trúc
- Là tập hợp của các cặp tên và giá trị ( name và value).
- Là tập hợp các giá trị được sắp xếp. Trong hầu hết các ngôn ngữ chúng được
nhận thấy như là một mảng, vector hay là một dãy các đối tượng nối với nhau.
Cấu trúc JSON rất phổ biến trong các ngôn ngữ lập trình dựa trên những dữ liệu
và định nghĩa cấu trúc mà hầu hết các ngôn ngữ lập trình hiện nay đều hỗ trợ.
Những kiểu định dạng trong JSON
- Mô tả đối tượng trong JSON

object:{
name: value
}
25
- Mô tả một mảng trong JSON
array:[
object1:{
name1:value1,
name2:value2
},
object2:{
name1:value1,
name2:value2
}
]
Các kiểu giá trị trong JSON có thể là kiểu : string, number,
object,array,boolean, null, v.v . . .
Xử lý đa luồng trong Android
Đa luồng trong Android là một mảng khó đối với người lập trình ứng dụng. Khi
lập trình các ứng dụng Android, lúc chạy ứng dụng chúng ta chỉ có một luồng duy
nhất, luồng này sẽ nhận các hành động của người dùng để thực thi.
Với xử lý đa luồng, cùng một lúc chúng ta phải làm việc với nhiều luồng dữ
liệu khác nhau, có thể đó là luồng chính hoặc luồng do chính bạn tạo ra, hoặc một
luồng nào đó luôn chạy để xử lý dữ liệu của bạn.
Do vậy ngoài giao diện chính của màn hình và cách thực thi trên giao diện,
chúng ta cần biết được những luồng nào đang chạy ngầm để xử lý, việc đa luồng sẽ
gặp không ít phiền phức, và tiêu hao năng lượng. Nhưng để phản ứng kịp thời những
thay đổi của người dùng, thì việc xử lý đa luồng là cần thiết cũng như luôn lắng nghe
sự thay đổi trong hệ thống thời gian thực.
Tương tác giữa các luồng trong Android chúng ta sử dụng đối tượng Handler

và đẩy một luồng lên giao diện chính bằng đối tượng Runnable.
Luồng chạy nền giao tiếp với luồng chính thông qua phương thức
obtainMessage() . Khi luồng thực thi, nó sẽ phản hồi lại, và những phản hồi này sẽ
được luồng gửi lên MessageQueue ( hàng đợi ) bằng phương thức sendMessage().
Cuối cùng dữ liệu sẽ được đẩy lên luồng chính thông qua phương thức post().
Openfire và Android
Trong phần này chúng ta sử dụng APIs của Smack Client để viết phần hỗ trợ
duy trì kết nối tới trung tâm (Server) . Phía trung tâm (Server – người giám sát) sẽ luôn
lắng nghe những thay đổi với người dùng Android (người bị giám sát). Đồng thời sẽ
khởi tạo luồng cho phép chạy để lắng nghe khi có thông điệp gửi đi hoặc nhận thông
điệp. Chúng ta sẽ áp dụng để cho phép tương tác liên lạc giữa hai điện thoại android
với nhau.
II. Xây dựng ứng dụng bài toán giám sát
Đề tài được viết hoàn toàn bằng ngôn ngữ Java, phần website sử dụng Struts
Framework Java , xây dựng module tương tác cho phép quản lý hệ thống trên website
đồng thời tạo ra tầng dịch vụ lấy dữ liệu từ điện thoại Android.

×