TRIỂN KHAI THỰC HIỆN

Một phần của tài liệu ĐỊNH VỊ TRONG MẠNG CẢM BIẾN KHÔNG DÂY (có code) (Trang 55)

Ta thiết lập các thông số cho Xbee. Trước hết đặt Xbee ở chế độ API, dùng phần mềm X-CTU để cấu hình Xbee ở chế độ API mode như hình dưới:

Hình33 Đặt Command Mode cho Xbee ở API mode

Sau đó, ta đặt các địa chỉ nguồn cho các Xbee, cũng dùng X-CTU. Ở đây ta sử dụng 16bit-address như là source address nên cần thiết lập thông số MY của mỗi module, MY của các node cố định lần lượt là 1, 2, 3, 4; MY của node di động là 9. Lưu ý, thông số CH và ID của tất cả các node phải như nhau (mặc định CH: C, PAN ID: 3332)

Hình34 Cài đặt các địa chỉ nguồn MY cho Xbee

Ta cũng cài đặt công suất phát cho các Xbee, đều là ở mức 3-HIGH, ứng với công suất phát 18dBm.

Sau khi cài đặt các thông số cho Xbee, ta tiến hành viết chương trình điểu khiển Xbee ở các node cố định, node di động và node cơ sở (cũng là 1 node cố định). Lưu đồ giải thuật cho chương trình ở các node như sau:

Với node di động:

Với các node cố định 2,3,4 (không phải node cơ sở):

Start

Gửi qua UART 1/4s 1 lần các byte sau: (frame 10byte) send[0]=0x7E; //Star Byte

send[1]=0x00; //MSB send[2]=0x06; //LSB

send[3]=0x01; //TX (Transmit) Request: 16-bit address send[4]=0x00; //Broadcast has no FrameID

send[5]=0xFF; //Destination -->Broadcast send[6]=0xFF; //--

send[7]=0x00; //Option send[8]=0x00; //Data

Start

Nhận dữ liệu từ UART Cho vào buffer

Buffer=0x7E? Sai

Gán data[0]=0x7E (byte bắt đầu một frame)

Nhận đủ toàn bộ frame (10 byte) Data[3]=0x81? (Byte thứ 4 là 0x81) Sai Đúng Đúng Data[5]=0x09? (xem thử phải moving

node gửi tới không?)

Sai

Đúng

RSSI=data[6]

Tăng biến đếm số giá trị RSSI nhận được

RSSI[4] khác 0 ? (đã nhận đủ 5 lần?)

Sai

Đúng

Tính trung bình giá trị RSSI

avrRSSI=(RSSI [0]+ RSSI [1]+ RSSI [2]+ RSSI [3]+ RSSI [4])/5

Reset các giá trị RSSI[i] về 0 (i từ 0 đến 4) Gửi các avrRSSI về node cơ sở (node 1)

Frame dạng như sau (0x-hex):

Với node cố định cũng là node cơ sở (node 1):

Start

Nhận dữ liệu từ UART Cho vào buffer

Buffer=0x7E? Sai Đúng

Gán data[0]=0x7E (byte bắt đầu một frame)

Nhận đủ toàn bộ frame (10 byte) Data[3]=0x81? Byte thứ 4 là 0x81 Sai Đúng Data[5]=0x09? (xem thử phải moving

node gửi tới không?)

Sai

Đúng RSSI=data[6]

Tăng biến đếm số giá trị RSSI nhận được

RSSI[4] khác 0 ? (đã nhận đủ 5 lần?)

Sai

Đúng

Tính trung bình giá trị RSSI, có giá trị RSSI node1 là avrRSSI

avrRSSI=(RSSI [0]+ RSSI [1]+ RSSI [2]+ RSSI [3]+ RSSI [4])/5

Reset các giá trị RSSI[i] về 0 (i từ 0 đến 4)

Data[5]=0x02? Nhận dữ liệu từ

node2

Xem tiếp lưu đồ ở trang kế

Với các node 2, 3, 4 ta dùng vi điều khiển MSP430G2553 để điều khiển Xbee, như hình dưới: Data[5]=0x02? Nhận dữ liệu từ node2 Data[5]=0x03? Nhận dữ liệu từ node3 Data[5]=0x04? Nhận dữ liệu từ node4 Tiếp theo lưu

đồ trang trước

Đúng

Sai

Sai

Sai

Giá trị RSSI node2 là data[5] nhận đƣợc từ node2

Đúng Giá trị RSSI node3 là data[5] nhận

đƣợc từ node3

Đúng Giá trị RSSI node4 là data[5] nhận

đƣợc từ node4

Start

Nhận dữ liệu từ UART Cho vào buffer

Hình36 MSP430 và mạch nạp

Ta dùng phần mềm Code Composer Studio để viết chương trình điều khiển MSP430 theo như lưu đồ giải thuật trên, ngôn ngữ sử dụng ở đây là ngôn ngữ C.

Với node cơ sở-node 1, ta dùng ngôn ngữ C# để viết một chương trình, vừa có chức năng như một node di động, vừa có chức năng xử lý các thông tin thu được để hiển thị lên một giao diện đồ họa vị trí của node di động.

Hình38 Viết chương trình cho node cơ sở-node 1

Với chương trình định vị, ta sử dụng thuật toán Min-Max như đã trình bày ở

phần lý thuyết, bởi vì thuật toán này đơn giản, dễ thực hiện, và tốn ít tài nguyên xử lý. Dưới đây là giao diện đồ họa khi chạy chương trình định vị:

Test bed sử dụng ở đây là tại sân bóng của trường, là môi trường outdoor. Như hình bên dưới là dựng cọc tại 4 vị trí node cố định, và đánh dấu các vị trí sẽ khảo sát định vị.

Hình40 Test bed sân bóng

Ta khảo sát test bed với kích thước 20mx20m, các điểm khảo sát như mô hình bên dưới:

Hình41 Mô hình test bed và các điểm khảo sát

Tại test bed, ta tiến hành bố trí các thiết bị theo sơ đồ, với các module Xbee, ta sử dụng thêm anten để tăng cường độ tín hiệu nhận được.

Hình42 Anten của node cố định (bên trái) và node di động (bên phải)

Dưới đây là những hình ảnh các node đang hoạt động:

Hình44 Node cơ sở (node 1)

Hình45 Các node cố định 2,3,4 (không phải node cơ sở)

Sau khi bố trí các thiết bị xong xuôi, ta tiến hành đo đạc.

4. KẾT QUẢ THỰC HIỆN

Ta tiến hành khảo sát nhƣ sau:

- Trước hết ta khảo sát giá trị n-hệ số suy giảm môi trường, sử dụng 1 node cố định là node cơ sở luôn, và 1 node di động. Ta cho node di động di chuyển đến các mốc khoảng cách 1m, 5m, 10m, 15m, 20m. Ghi nhận các giá trị RSSI thu được (ở đây có viết 1 chương trình nhỏ dùng để đọc giá trị RSSI thu được). Sau đó, ta lặp lại các bước khoảng cách như trên nhưng với 1 hướng đo khác, tiến hành đo càng nhiều hướng càng tốt.

- Sau khi có giá trị n và giá trị RSSI tại vị trí d0, ta tiến hành khảo sát. Lần lượt di chuyển node di động tới các vị trí khảo sát, quan sát trên màn hình laptop ở node 1 vị trí ước lượng được, ghi lại các số liệu gồm: RSSI từ node di động đến các node cố định, khoảng cách từ node cố định đến các node di động, tọa độ ước lượng được. Lặp lại quá trình ghi số liệu khoảng 10 lần. Sau đó di chuyển node di động qua vị trí khác.

Chẳng hạn ta cho node di động đến vị trí số 6 (tọa độ 10mx10m, ứng với tọa độ trong màn hình hiển thị là 200pixelx200pixel), lúc này ta có màn hình hiển thị như sau:

Số liệu đo đạc đƣợc:

- Trước hết là số liệu để tính hệ số suy giảm môi trường – n:

Ta có bảng số liệu các giá trị RSSI thu được tại các bước giá trị 1m, 5m, 10m, 15m, 20m, sau khi tính giá trị trung bình ở các hướng khác nhau:

Bảng 6 Giá trị RSSI theo khoảng cách

Khoảng cách (m) RSSI [dBm] 1 -48 5 -61 10 -67 15 -71 20 -75

Với bảng giá trị trên, ta tính toán giá trị n dựa vào phương pháp sai số bình phương cực tiểu (MMSE):

J(n) = 0 + (6.99n-13)2 + (10n-19)2 + (11.76n-23)2 + (13.01n-27)2 = 456.4178n2 –1805.24n +1178  𝜕𝐽 𝑛 𝜕𝑛 = 912.8356n – 1805.24 𝜕𝐽 𝑛 𝜕𝑛 = 0  912.8356n – 1805.24 = 0  n = 1.98 𝜎2 =𝐽(𝑛)5 = 0.6  𝜎 = 0.77 [dB] ≈ 1 [dB] - Tiếp theo là số liệu thu thập tại các vị trí khảo sát:

Bảng 8 Số liệu tại vị trí khảo sát số 2

Bảng 9 Số liệu tại vị trí khảo sát số 3

Bảng 10 Số liệu tại vị trí khảo sát số 4

Bảng 12 Số liệu tại vị trí khảo sát số 6

Bảng 13 Số liệu tại vị trí khảo sát số 7

Bảng 14 Số liệu tại vị trí khảo sát số 8

Bảng 15 Số liệu tại vị trí khảo sát số 9

Phân tích về kết quả thu đƣợc:

- Với công suất phát Pt=18dBm, ta tính được các giá trị Path Loss theo khoảng cách như bảng sau:

Bảng 16 Giá trị Path Loss theo khoảng cách

Khoảng cách (m) Path Loss [dB]

1 66

5 79

10 85

15 89

20 93

Từ đó, ta vẽ được biểu đồ Path Loss như sau:

Hình48 Biểu đồ Path Loss

Nhận thấy đường biểu diễn Path Loss gần như tuyến tính, phù hợp với mô hình ta đang chọn.

- Với số liệu thu thập tại các vị trí khảo sát, ta tổng hợp lại thành bảng sau:

Bảng 17 Bảng sai số giữa vị trí thực tế và vị trí ước lượng

+ Các tọa độ trục X và Y ước lượng được tính bằng giá trị trung bình tất cả các lần đo

+ Sai số trục X và sai số trục Y tính bằng giá trị tuyệt đối giữa hiệu các tọa độ ước lượng và thực tế, sau đó chia cho 20 để ra đơn vị m

+ Sai số khoảng cách tính bằng: 𝑆𝑎𝑖 𝑠 𝑡𝑟𝑐 𝑋2 + 𝑆𝑎𝑖 𝑠 𝑡𝑟𝑐 𝑌2 Ta có thể xem lại một cách trực quan bằng hình bên dưới:

Hình49 Tương quan giữa vị trí ước lượng và vị trí thực tế

Nhận thấy rằng các vị trí khảo sát số 1, số 3, số 4, số 6, số 7 thì vị trí ước lượng và vị trí thực tế sai số trong vòng phạm vi nhỏ hơn 1m, tức là không quá 5% chiều dài test bed. Các vị trí số 5, số 8, số 9 thì sai số không quá 12% chiều dài test bed. Riêng vị trí số 2 thì sai số là 16% chiều dài test bed.

Xét lại bảng số liệu thu được ở các vị trí 1 đến 9, tại mỗi thời điểm đo có thể có các giá trị khác nhau, sai số ở đây ảnh hưởng do môi trường, chẳng hạn do người đi lại xung quanh test bed, hoặc do xe chạy qua bên cạnh test bed. Ảnh hưởng cũng có thể

do gió thổi mạnh làm các anten xê dịch một chút so với vị trí ban đầu. Ta có bảng số liệu thể hiện sai số lớn nhất và nhỏ nhất trong các lần đo ở cùng 1 vị trí khảo sát, trong đó đơn vị % là so với chiều dài test bed là 20m:

Bảng 18 Sai số lớn nhất và nhỏ nhất trong các lần đo ở cùng 1 vị trí khảo sát

Tại các vị trí, giá trị RSSI giữa 2 node có thể không phản ánh tương đối được khoảng cách giữa 2 node, do đó các kết quả định vị cuối cùng có thể bị ảnh hưởng, ảnh hưởng lớn hay nhỏ tùy thuộc vào thuật toán. Chẳng hạn nếu RSSI ảnh hưởng vào một node nào đó mà không ảnh hưởng tới giá trị Min of Max hoặc Max of Min thì kết quả sẽ không ảnh hưởng, còn ngược lại, nếu giá trị RSSI ảnh hưởng tới giá trị Min of Max hoặc Max of Min, hiển nhiên kết quả định vị sẽ có sai khác ngay.

Lí do các giá trị RSSI thay đổi gồm 2 lí do, 1 phần là do thay đổi môi trường, tuy

nhiên thay đổi do môi trường khá nhỏ bởi phương sai 𝜎 ≈ 1[dB]; phần kia chính là do

hướng tính của anten.

Ta khảo sát sơ bộ hướng tính anten ở các node cố định:

Ta dùng một node cố định (node cơ sở) và một node di động gồm anten của chúng để khảo sát hướng tính anten. Node cố định sẽ đặt lần lượt ở các vị trí ở vị trí node 1, 2, 3, 4 như test bed đã khảo sát. Node di động sẽ ở cách node cố định với khoảng cách 10m, và nó sẽ di chuyển tới các vị trí góc -45 độ đến 45 độ (-45 độ là cạnh test bed bên trái, +45 độ là cạnh test bed bên phải, 0 độ chính là đướng chéo của test bed đi qua vị trí node cố định đang khảo sát), mỗi bước là 15 độ.

Lưu ý là trong quá trình di chuyển node di động thì anten của node di động luôn cố định 1 hướng nhất định (ở đây chọn hướng ra đường Lý Thường Kiệt). Ta ghi nhận các giá trị RSSI thu được và có bảng sau đây:

Bảng 19 Khảo sát hướng tính anten ở các node cố định

Ta xét tại mỗi node riêng biệt, giá trị RSSI thu ở các hướng là có chênh lệch: ở node 1 chênh lệch lớn nhất là 1dB, ở node 2 là 4dB, ở node 3 là 2dB, ở node 4 chênh lệch lớn nhất là 5dB.

Như vậy, hướng tính của anten ở node cố định có phương sai lớn nhất có thể lên tới 5dB, còn ở node di động, khảo sát tương tự thì cũng có phương sai vào khoảng 3dB, đây chính là những yếu tố ảnh hướng lớn đến kết quả cuối cùng.

5. KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

Các khái niệm và các vấn đền liên quan đến mạng cảm biến vẫn còn là vấn đề khá mới mẻ với nhiều người. Định vị node cảm biến lại là một vấn đề quan trong trong mạng cảm biến. Trong phạm vi của đề tài này, em đã nghiên cứu được khái quát về mạng cảm biến không dây, tìm hiểu các phương pháp định vị, các thuật toán định vị; tìm hiểu chuẩn giao tiếp Zigbee và module Xbee; và tiến hành định vị sử dụng kỹ thuật RSSI cùng với thuật toán Min-Max.

Qua quá trình thực hiện đề tài, em đã có được những trải nghiệm quá báu, từ việc lập trình cho vi điều khiển, lập trình giao diện đồ họa cho đến việc mua các linh kiện, đồ dùng phục vụ cho đề tài,…

Kết quả định vị thu được có sai số trong phạm vi chấp nhận được, tuy nhiên nó vẫn chưa đủ để ứng dụng trong thực tế được, bởi vì còn nhiều yếu tố chưa loại trừ được để kết quả thêm chính xác, chẳng hạn là hướng tính anten, hay tính chất phản xạ sóng của mặt đất,…

Đề tài thực hiện áp dụng thuật toán định vị tương đối đơn giản là thuật toán Min-Max, nên kết quả sẽ có những hạn chế do thuật toán Min-Max mang lại. Bởi vậy, nếu có thể kết hợp thêm được ưu điểm của các thuật toán khác thì kết quả sẽ thêm chính xác hơn.

Một lần nữa, em xin gửi lời cám ơn chân thành nhất đến thầy Tạ Trí Nghĩa đã hết lòng giúp đỡ em hoàn thành đề tài này.

6. TÀI LIỆU THAM KHẢO

[1] Zhikui Chen et al, “A Localization Method for the Internet of Things” [Online]

[2] Tie Qiu et al, “A Localization Strategy Based on N-times Trilateral Centroid with

Weight” [Online]

[3] Xiaowei Luo et al, “Comparative evaluation of Received Signal-Strength Index (RSSI) based indoor localization techniques for construction jobsites” [Online]

[4] Giovanni Zanca et al, “Experimental comparison of RSSI-based localization

algorithmsfor indoor wireless sensor networks” [Online]

[5] Thanapong Chuenurajit et al, “Implementation of RSSI-Based 3D Indoor

Localization using Wireless Sensor Networks Based on ZigBee Standard” [Online]

[6] António Grilo, “Localization & positioning,” in Wireless Sensor Networks

Một phần của tài liệu ĐỊNH VỊ TRONG MẠNG CẢM BIẾN KHÔNG DÂY (có code) (Trang 55)