.14 Truyền dữ liệu thành công

Một phần của tài liệu Đồ án nghiên cứu và phát triển hệ thống định vị trong nhà (Trang 51)

ESP32 Web Server:

Hình 3.15 Sơ đồ ESP32 Web Server

Máy chủ điều khiển một đèn LED được kết nối với ESP32 GPIO 2. Đây là đèn LED trên bo mạch của ESP32.

Trang máy chủ web hiển thị hai nut: ON và OFF – để bật và tắt, đồng thời hiển thị trạng thái GPIO hiện tại.

Hình 3.16 Cách WebServer hoạt động

 ESP32 chạy mã máy chủ web dựa trên thư viện ESPAsyncWebServer ;

 Các tệp HTML và CSS được lưu trữ trên ESP32 SPIFFS (Hệ thống tệp Flash giao diện ngoại vi nối tiếp);

 Khi thực hiện yêu cầu trên một URL cụ thể bằng trình duyệt, ESP32 sẽ phản hồi với các tệp được yêu cầu;

 Khi nhấp vào nut BẬT, chuyển hướng đến URL gốc, theo sau là / Onvà đèn LED được bật;

 Khi nhấp vào nut TẮT, chuyển hướng đến URL gốc, theo sau là / OFF và đèn LED bị tắt;

 Trên trang web, có một trình giữ vị trí cho trạng thái GPIO. Trình giữ vị trí cho trạng thái GPIO được ghi trực tiếp trong tệp HTML giữa các dấu%, ví dụ %

STATE% .

- Các bước thực hiện như sau:

Hình 3.17 Cách tổ chức các tệp+ Tạo tệp index.html, style.css với nội dung như hình dưới + Tạo tệp index.html, style.css với nội dung như hình dưới

Hình 3.19 Tệp css

+ Sau đó tiến hành upload filesystem, nạp code chính và để ESP32 kết nối với Wifi và tạo WebSever theo yêu cầu.

Hình 3.21 Kết nối với Wifi thành công

+ 1 webserver sẽ được tạo và ta có thể truy cập vào địa chi IP 192.168.1.147 để tương tác bật tắt LED ở trên board.

1.3 Đo khoảng cách giữa 2 Tag va Anchor

Đầu tiên ta cần setup cho 1 module làm tag và 1 module làm achor bằng cách nạp code cho mỗi module.

Cần tải xuống DWM1000_library mới nhất của jrengminton.

- Code cho tag:

+ Khai báo các chân SPI và thư viện

Hình 3.22 Khai báo các chân SPI và thư viện+ Cấu hình module hoạt động như 1 tag và khai báo địa chi của nó + Cấu hình module hoạt động như 1 tag và khai báo địa chi của nó

+ Khai báo thư viện và các chân SPI tương tự như tag và khai báo địa chi anchor + Cấu hình module hoạt động là anchor

Hình 3.24 Cấu hình cho anchor

-Sau khi upload các file cấu hình cho tag và anchor ta sẽ nhận được thông tin về khoảng cách và cường độ tín hiệu.

Hình 3.25 Cửa sổ Serial hiển thị khoảng cách giữa tag và anchor

1.4 Độ trễ Antenna của DWM1000 BU01

Với ví dụ đo khoảng cách giữa 2 tag và anchor ở 1.3 thì ta đặt khoảng cách giữa anchor và tag là 1m nhưng khoảng cách thực tế lại khoảng 2,33m. Điều này liên quan đến độ trễ Antenna.

Độ trễ Antenna DW1000 nằm trong chip và không có trong TOF, nhưng được bao gồm trong độ trễ lan truyền từ dấu thời gian truyền để nhận dấu thời gia:

● ToF = Thời gian bay

● tMeasured = Thời gian đo được từ dấu thời gian truyền đến dấu thời gian nhận

● tADTX = Độ trễ của antenna truyền

● tADRX = Độ trễ của antenna nhận

Hình 3.26 Độ trễ của Antenna

Sự delay bên trong các thiết bị DW1000 khác nhau một chut từ chip này sang chip khác. Cũng có thể có các biến thể do các thành phần giữa DW1000 và antenna. Khi nhà sản xuất tạo ra IC/mô-đun, họ không thể đặt độ trễ khác nhau trong phần cứng, vì vậy họ cần người dùng thiết lập hoặc hiệu chinh (calib antenna) điều này trong phần mềm.

- Cách hiệu chinh độ trễ của antenna

+ Đầu tiên, tải thư viện DWM1000 mới nhất của Jim rengminton + Cấu hình 1 module làm tag

+ Đặt tag và anchor với 1 khoảng cách cố định(ví dụ 8m), khoảng cách này càng chính xác, hiệu quả của việc hiệu chinh càng cao

+ Sử dụng code autocalibrate, đặt khoảng cách ban đầu là 8m và nạp code vào anchor

+ Đặt thông số Adelay (độ trễ Antenna) ban đầu là 16384 theo mặc định

Hình 3.28 Đặt thông số Adelay ban đầu

+ Nạp code vào Anchor, quá trình calib sẽ diễn ra tự động như hình bên dưới

+ Sau khi có hệ số Adelay mới, nhập Adelay vào code mới để cấu hình cho Anchor ta sẽ thu được khoảng cách tính toán giữa tag và anchor chính xác hơn so với ban đầu.

Hình 3.30 Nhập Adelay sau khi calib được vào anchor

+ Khoảng cách giữa tag và anchor xuất ra màn hình sẽ lấy trung bình cộng 10 lần các khoảng cách mà chip đo được.

1.5 Lưu đờ thuật tốn calib Antenna This_anchor_target_dist dist This_delta Adelay_delta 100 last_delta0 < 3 This_anchor_Adelay *last_delta <0 Adelay_delta last_delta = this_delta Y N N Y > 0 < 0 This_anchor_Adelay = This_anchor_Adelay + Adelay_delta This_anchor_Adelay = This_anchor_Adelay - Adelay_delta print print

Hình 3.31 Lưu đồ thuật toán calib antennaprint print

Chương 4: KẾT QUẢ THỰC NGHIỆM

1.1 Với điêu kiện LoS

Gắn thêm 1 bảng led lên tag để theo dõi khoảng cách đo được và cường độ tín hiệu nhận được.

Hình 4.1 Module tag

Thực hiện calib antenna với khoảng cách lần lượt là 8m, 16m và 20m. Các bước calib như đã mô tả ở chương 3.

Thay hệ số vừa tính được vào code set_up_anchor để nạp hệ số adelay mới vào anchor.

Hình 4.3 Nạp hệ số adelay mới vào anchor

Tương tự với khoảng cách 16m và 20m, ta calib ra 2 hệ số Adelay nữa và tiến hành đo thực nghiệm với các hệ số này để khảo sát xem hệ số nào là tối ưu nhất cho hệ thống này.

Thực hiện khảo sát với 4 giá trị Adelay là 16384 (giá trị mặc định), 16539 (calib 8m), 16532 (calib 16m), 16537 (calib 20m). Với mỗi phép đo, lấy 4 giá trị đo được cùng cường độ tín hiệu, bước nhảy cho mỗi khoảng đo là 2,5m cho đến khi đạt đến tầm đo tối đa.

Hình 4.4 Kết quả thực nghiệm với Adelay mặc định

-Nhận xét:

Với Adelay mặc định là 16384 ta nhận được khoảng cách đo được và khoảng cách thực tế sai lệch rất lớn, gần 1m. Nguyên nhân là do đây là hệ số Adelay mặc định và chưa được calib.

Hình 4.5 Kết quả thực nghiệm với Adelay 16539 (calib 8m)

- Nhận xét:

Sau khi calib với khoảng cách là 8m ra được hệ số Adelay=16539, kết quả đo được bám sát với giá trị mong muốn. Sai lệch khoảng cách nằm trong khoảng 5cm. Tổng bình phương sai lệch là 0,0128.

Thiết bị sẽ mất tín hiệu khi đạt khoảng cách 65m với cường độ tín hiệu dưới -101db.

Hình 4.6 Kết quả thực nghiệm với Adelay 16532 (calib 16m)

- Nhận xét:

Với hệ số adelay 16532 sau khi calib khoảng cách đặt 16m, giá trị sai lệch khoảng cách nằm trong khoảng 5-7cm, kém hơn một chut so với giá trị calib ở 8m.

Hình 4.7 Kết quả thực nghiệm với Adelay 16537 (calib 20m)

- Nhận xét:

Với khoảng cách calib antenna là 20m, ta được giá trị Adelay 16537, giá trị sai lệch ban đầu nằm trong khoảng 8-10cm, dần ổn định khi về giữa và thiết bị mất tín hiệu ở khoảng cách 65m với cường độ tín hiệu dưới -100db.

Hình 4.8 Biểu đồ thể hiện các giá trị khi đo ở điều kiện LOS

1.2 Với điêu kiện NLOS

Nhận thấy kết quả calib 16m là chính xác nhất ta lấy hệ số đó để thử nghiệm với điều kiện NLOS

Hình 4.10 Kết quả đo được với điều kiện NLOS

1.3 Khi thay đổi góc Antenna

Trong lần đo này sẽ thực hiện thay đổi các góc antenna 180,135, 90, 45 và để khảo sát xem với góc quay nào thì tín hiệu antenna sẽ tốt nhất.

Hình 4.11 Góc Antenna 45

Vì kết quả calib 16m cho ra Adelay có bình phương sai lệch nhỏ nhất nên ta lấy hệ số này để làm hệ số Adelay cho anchor.

Hình 4.12 Kết quả đo được khi cho góc antenna 45

- Nhận xét:

Sau khi nghiêng antenna 1 góc 45 kết quả khoảng cách nhận được cho ra sai lệch rất nhỏ, dưới 5cm. Thiết bị sẽ mất tín hiệu ở khoảng cách 50m với cường độ tín hiệu dưới -95.5db.

Hình 4.14 Kết quả đo được khi cho góc antenna 90

- Nhận xét:

Với độ lệch antenna là 90 ta có được các kết quả như hình trên, bình phương sai lệch cho ra kết quả tốt hơn nhiều so với góc lệch 45.

Tương tự với các góc lệch 135 và 180 ta cũng có được các kết quả đo như sau:

Hình 4.15 Kết quả đo được khi cho góc antenna 135

- Nhận xét:

Kết quả đo góc này cho ra sai số xấp xi với trường hợp góc antennna 90. Tín hiệu sẽ bị mất khi tới khoảng cách 50m với cường độ dưới -96.

Hình 4.16 Kết quả đo được khi cho góc antenna 180

- Nhận xét:

Kết quả đo được khi cho góc antenna 180 cho ra sai lệch khá tốt, tuy nhiên không thể tốt bằng kết quả của 2 góc trước đó. Tín hiệu sẽ bị mất ở khoảng cách 50m với cường độ dưới -102,6db.

Hình 4.17 Biểu đồ thể hiện giá trị db khi thay đổi góc quay

1.4 Hiển thị khoảng cách giữa 1 tag va 3 anchor

Từ kết quả Calib ta nhận thấy kết quả Adelay khi calib ở 16m cho ra độ chính xác cao nhất.

Hình 4.19 Thực nghiệm 1 tag và 3 anchor

Sử dụng code hiển thị khoảng cách giữa 1 tag và 3 anchor, nạp vào tag.

Hình 4.20 Code hiển thị khoảng cách giữa 1 tag và 3 anchor

Hình 4.21 Kết quả khoảng cách

KẾT LUẬN

- Kết quả đạt được:

Hiển thị được khoảng cách giữa tag và anchor, thực hiện calib để cho ra hệ số Adelay đạt độ chính xác cao có sai lệch dưới 10cm.

Cho 1 tag có thể cùng luc truyền nhận và tính toán được khoảng cách đến 3 tag lân cận.

- Hướng phát triển đề tài:

Xây dựng được mô hình định vị trên máy tính hoặc điện thoại dựa trên dữ liệu từ khoảng cách của tag đến 3 anchor lân cận.

Tìm hiểu và ứng dụng các giải thuật mới, cho phép đo đạc, chuyển hệ trục tọa độ với sai số thấp nhất có thể.

Tối ưu hóa phần cứng, sử dụng nguồn pin nhỏ gọn có thời lượng làm việc lâu dài, đáp ứng các ứng dụng thực tế,…

Thêm khả năng đo tự động khoảng cách giữa các Anchor A1, A2, A3 để có thể thiết lập hệ trục tọa độ 1 cách linh động, áp dụng bất cứ nơi nào khi sử dụng hệ thống.

[1] Anders Lagerkvist, Construction of an indoor positioning system using UWB Anders Lagerkvist.

[2] Zwe Yint Aung, Indoor Localization System Using Ultra-Wide band Device.

[3] A. K. Rajendra, Y. Song, K. Gururaj, C. X. Wang, G. F. Cai, C. L. Law, W. P. Tay and H. P. Chow ST Engineering-NTU Corporate Lab Nanyang Technological University, Singapore, UWB based Real-Time Cooperative Localization System

[4] MDEK1001 Kit User ManualModule Development &Evaluation Kit for the DWM1001.

[5] Igor Dotlic, Andrew Connell, Hang Ma, Jeff Clancy, Michael McLaughlin, Angle of Arrival Estimation Using Decawave DW1000 Integrated Circuits.

[6] A.R. Jim´enez, F. Seco, Comparing Decawave and Bespoon UWB location systems: indoor/outdoor performance analysis.

[7] DWM1001 Gateway Quick Deployment Guide.

[8] https://www.makerfabs.cc/article/esp32-uwb-indoor-positioning-test.html [9] https://www.makerfabs.cc/article/esp32-uwb-antenna-delay-calibrating.html

Một phần của tài liệu Đồ án nghiên cứu và phát triển hệ thống định vị trong nhà (Trang 51)