1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn control a 6lowpanipv6 network using hmi

34 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 5,52 MB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN ĐIỆN TỬ ——————– * ——————— BÁO CÁO BÀI TẬP LỚN Control a 6LoWPAN/Ipv6 network using HMI GVHD: TS Võ Quế Sơn SVTH: Ngô Văn Tuân - 1613861 SVTH: Phạm Quang Kiệt - 1511662 SVTH: Bùi Thanh Phong - 1512430 TP HỒ CHÍ MINH, Ngày 21 tháng năm 2020 Mục lục Danh sách hình vẽ GIỚI THIỆU VÀ MỤC TIÊU ĐỀ TÀI 1.1 Giới thiệu đề tài 1.2 Mục tiêu đề tài 3 THIẾT KẾ VÀ THỰC HIỆN 2.1 Topo network 2.2 Quy trình thực 4 KẾT QUẢ 3.1 Kịch mô 3.2 Kết mô 3.3 Kết luận 11 11 11 13 Danh sách hình vẽ 10 Topo network Tạo block Stream Adafrui IO Dashboard sau tạo block Adafruit IO Key để MQTT Client xác thực lấy liệu từ topic Cách điền vào field trigger dành cho Google Assistant Applet tạo sau thực hình quy trình Kết sau nói "turn on 2" Kết sau nói "turn off 2" Kết sau nói "turn on 3" Kết sau nói "turn off 3" 6 11 12 12 13 1.1 GIỚI THIỆU VÀ MỤC TIÊU ĐỀ TÀI Giới thiệu đề tài Trong bối cảnh Internet vạn vật (IoT) ngày phát triển, người dùng mong muốn họ tới gần thiết bị để điều khiển mà họ điều khiển từ xa thơng qua smartphone Trong đề tài nhóm xin trình bày cách thiết kế mạng cảm biến không dây điều khiển thông qua ứng dụng Google Assistant Google 1.2 Mục tiêu đề tài Mục tiêu đề tài tập trung vào thiết kế mô Cooja hệ thống gồm mạng cảm biến không dây ứng dụng khác cần thiết máy ảo hệ thống điều khiển đèn LED màu xanh Google Assistant 2.1 THIẾT KẾ VÀ THỰC HIỆN Topo network Topo network, bao gồm mạng cảm biến ứng dụng cần thiết trình bày qua sơ đồ sau Hình 1: Topo network Theo sơ đồ ta có phần tử quan trọng network sau • Google Assistant: thiết bị để chuyển giọng nói người thành chữ Google Assistant đảm nhiệm chức gửi text chuyển lên platform IFTTT để xử lý lệnh từ giọng nói • IFTTT: platform dùng để kết nối thiết bị ứng dụng với Cụ thể IFTTT kết nối Google Assistant với MQTT Broker Như vậy, Google Assistant gửi text tới IFTTT IFTTT đảm nhiệm vai trị publisher cho MQTT network publish cho MQTT Broker • MQTT Broker nơi chuyển tiếp message publish cho client subscribe vào topic tương ứng Trong topo này, MQTT Broker đóng vai trị trung gian để IFTTT giao tiếp với MQTT Client máy ảo • MQTT Client: ứng dụng chạy máy ảo để chuyển text chuyển từ Google Assistant trở thành command điều khiển led mạng cảm biến mô Cooja Lưu ý để nhận text từ Google Assistant MQTT Client lẫn IFTTT phải sử dụng MQTT Broker topic (trong topo topic tên “light”) • Mạng cảm biến: end user cuối topo mạng Mạng cảm biến bao gồm border router đóng vai trị liên kết mạng cảm biến với network bên ngoài, command từ MQTT Client truyền tới mote mạng cảm biến thông UDP Ipv6 2.2 Quy trình thực Adafruit IO Trước hết phải tạo MQTT Broker để text từ Google Assistant truyền tới MQTT Client Client sử dụng để điều khiển LED Ta vào https://io.adafruit.com đăng kí tài khoản Sau tạo topic "light" để IFTTT gửi cho MQTT Client, topic không tạo trực tiếp Adafruit IO mà phải thông qua tạo block Dashboard Block đơn vị hiển thị thông tin tương tác với feed việc tạo Block đồng thời tạo feed mới, nghĩa tạo topic Có nhiều loại block khác button, slider nhóm chọn block Stream để theo dõi message gửi lên Hình 2: Tạo block Stream Adafrui IO Như ta tạo topic mới, dashboard hiển thị block sau: Hình 3: Dashboard sau tạo block Tuy nhiên việc tạo topic ta cần lưu lại thông tin quan trọng để MQTT Client connect vào Adafruit IO Aafruit IO khơng phải public Broker nên có chế bảo mật riêng Vào Adafruit IO Key phía bên phải lưu lại username active key Hình 4: Adafruit IO Key để MQTT Client xác thực lấy liệu từ topic IFTTT IFTTT hoạt động thông qua việc người dùng tạo applet để kết nối ứng dụng với service Applet gồm trigger điều kiện kích hoạt applet service nơi applet thực Như đề tài trigger Google Assistant service MQTT Broker Cách làm applet sau: • Trước hết phải đăng ký tài khoản với IFTTT để tạo applet • Đăng nhập tài khoản IFTTT, sau bắt đầu tạo applet cách bấm vào nút "Create" góc bên phải • Khi yêu cầu chọn service cho t rigger applet ta chọn "Google Assistant" với kiểu kích hoạt "Say a phrase with both a number and a text ingredient" điều khiển Google Assistant ta mong muốn nói bật tắt mote ID • Điền vào trigger hình đây: Hình 5: Cách điền vào field trigger dành cho Google Assistant Như cú pháp để tắt mở đèn led "turn + (on/off) + mote ID" Ví dụ ta muốn mở đền LED mote số cần nói "turn on 2" • Trong phần action service ta chọn Adafruit chọn Send data to Adafruit IO Adafruit IO MQTT Broker mà IFTTT gửi data nhận trigger từ Google Assistant • Sau chọn Feed name "light", feed mà nhóm tạo trước feed Adafruit feed mà MQTT client subscribe Data to save {{NumberField}}_{{TextField}}, tương ứng (mote ID)_(on/off) Ví dụ tắt đèn led mode ID data gửi lên Adafruit IO 3_off Kết ta có applet sau: Hình 6: Applet tạo sau thực hình quy trình MQTT Client MQTT Client nhận data subscribe feed "light" chạy máy ảo MQTT Client viết python sử dụng thư viện Adafruit_io để ứng dụng tạo kết nối với MQTT Broker Adafruit IO lấy data Ngồi MQTT client cịn xử lý data lấy từ topic "light" chuyển thành command địa IPv6 cần gửi Code MQTT Client trình bày sau: import import import import logging paho m q t t c l i e n t a s m q t t time sys import s o c k e t HOST = [ ’ a a a a : : 2 : : : 2 ’ , ’ a a a a : : 2 : : : 3 ’ , ’ a a a a : : 2 : 4 : : 4 ’ ] # Standard loopback i n t e r f a c e address ( l o c a l h o s t ) PORT = 3000 USERNAME KEY = ’ tuannv ’ = ’ aio_vCRp50VNZfCzjGLQou8mf9mjBltj ’ ADAFRUIT_SERVER ADAFRUIT_PORT PATH # P o r t t o l i s t e n on ( non−p r i v i l e g e d p o r t s a r e > ) = ’ i o a d a f r u i t com ’ = 1883 = USERNAME + ’ / f e e d s / L i g h t ’ def on_connect ( c l i e n t , userdata , flags , rc ) : print ( ’ Connected ! ’ ) c l i e n t s u b s c r i b e (PATH) p r i n t ( ’ S u b s c r i b e d t o p a t h {0} ’ format (PATH ) ) def on_disconnect ( c l i e n t , userdata , rc ) : print ( ’ Disconnected ! ’ ) III Assignment 3: MAC Protocols Bỏ define PERIOD file c client Sử dụng file project-conf.h để thay đổi MAC driver PERIOD (thay đổi traffic) Contikimac - High traffic: Contikimac - Low traffic: Xmac - High traffic: Xmac - Low trafic: Thay đổi dense network loose network cách thay đổi cách bố trí node mạng mô phỏng:  Dense network: node xếp gần  Loose network: node kéo xa cho giao tiếp với node khác mạng Figure Contikimac - Dense network - High traffic Figure Contikimac - Dense network - Low traffic Figure Contikimac - Loose network - High traffic Figure Contikimac - Loose network - Low traffic Figure Cxmac - Dense network - High traffic Figure Cxmac - Dense network - Low traffic Figure Cxmac - Loose network - High traffic Figure Cxmax - Loose network - Low traffic 10 Điều kiện kiểm tra: #define NETSTACK_CONF_MAC csma_driver #define NETSTACK_CONF_RDC #define NETSTACK_CONF_FRAMER framer_802154 Mạng có 31 nodes:  server  30 clients High traffic: client gửi packet cho server với chu kì 1s Low traffic: client gửi packet cho server với chu kì 10s Dense network – High traffic Contiki mac Xmac Average RDC (%) 16.62 25.91 PRR (Packet reception 43.54 Rate %) 24.73 Average RDC (%) 6.95 11.43 PRR (Packet reception 97.47 Rate %) 79.86 Average RDC (%) 20.32 22.23 PRR (Packet reception 22.53 Rate %) 15.10 Average RDC (%) 9.29 12.01 PRR (Packet reception 94.29 Rate %) 74.32 Dense network – Low traffic Contiki mac Xmac Loose network – High traffic Contiki mac Xmac Loose network – Low traffic Contiki mac Xmac Nhận xét: Contiki mac cho RDC thấp PRR cao X-Mac  Contiki mac tốt X-Mac 11 Figure TSCH IV Assignment 4: 6LoWPAN Networks Node nạp chương trình border_router 12 Thực chỉnh sửa code thư mục udp-ipv6-echo-server 13 Khi node nhận data từ netcat lưu trữ biến uip_appdata ( biến trỏ kiểu Void), ta dùng hàm memcpy(buf, uip_appdata, len) lấy data nhận ép kiểu liệu thành chuỗi kí tự Char Ở data lưa vào biến buf Dùng hàm strcmp() để so sánh buf lệnh command để thực thi bật tắt led Nếu data từ netcat trùng với command: Note thực bật tắt led gửi messenger “Succeeded” để thông báo commad thực thi Nếu data từ netcat khác với command: Note gửi messenger “Error” để thông báo commad lỗi 14 Note mở Port 3000 lắng nghe kết nối UDP từ netcat Kết mô 15 13 16 Sử dụng lện ping6 để ping đến Node 17 Thực điều khiển Led commad truyền qua netcat 18 19

Ngày đăng: 20/09/2023, 15:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w