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
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
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à
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.
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
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
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
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 đỡ
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
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.
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
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.