BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN TRẦN QUANG HUY NGUYỄN MINH SƠN QUẢN LÝ VÀ ĐỊNH VỊ THIẾT BỊ IoT TRÊN NỀN TẢNG ĐIỆN TOÁN ĐÁM MÂY Ngành Công Nghệ Thông Tin Giảng.
CƠ SỞ LÝ THUYẾT THIẾT BỊ
Giới thiệu về Raspberry Pi 3
2.3.1 Tổng quan về Raspberry pi 3
Máy tính Raspberry Pi 3 Model B (Made in UK) được nhập khẩu chính hãng từ
RS Component mang lại sản phẩm máy tính nhúng có chất lượng tốt, độ bền cao và chi phí hợp lý, là lựa chọn phù hợp cho người mới bắt đầu tìm hiểu về máy tính nhúng hoặc các bạn sinh viên làm đồ án và các ứng dụng cần tối ưu chi phí phần cứng như IoT, Robot, Smart Home hay Media Center Ưu điểm của Raspberry Pi 3 so với các phiên bản cũ bao gồm tích hợp Wi‑Fi và Bluetooth 4.1 trên bo mạch, hiệu năng mạnh mẽ hơn với vi xử lý quad‑core 1.2 GHz dựa trên BCM2837, RAM 1 GB và khả năng xử lý đa nhiệm tốt hơn; khả năng kết nối mạng và các thiết bị ngoại vi dễ dàng, giúp tiết kiệm chi phí cho dự án IoT hoặc làm máy chủ media center tại gia; nhờ vậy Raspberry Pi 3 trở thành lựa chọn phổ biến cho các dự án học tập và ứng dụng nhúng có yêu cầu tối ưu chi phí, độ ổn định và sự linh hoạt.
CPU phiên bản mới BCM2837 từ Boardcom với tốc độ 1.2Ghz 4 nhân với kiến trúc ARM Cortex-A53 64-bit
Tích hợp Wifi chuẩn 802.11n và Bluetooth 4.1
Tương thích ngược với thiết kế phần cứng và phần mềm trên các phiên bản cũ là Raspberry Pi 1 và 2
Thông số kỹ thuật chi tiết:
Sản xuất tại: nhà máy Sony tại Anh (Made in UK), chính hãng RS Components
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
1.2GHz 64-bit quad-core ARM Cortex-A53 CPU (BCM2837)
On-board Wireless LAN - 2.4 GHz 802.11 b/g/n (BCM43438)
On-board Bluetooth 4.1 + HS Low-energy (BLE) (BCM43438)
4 x USB 2.0 ports, Combined 3.5mm analog audio and composite video jack, MicroSD slot
10/100 Ethernet, Camera interface (CSI), Display interface (DSI)
40 GPIO pins, Full size HDMI 1.3a port
VideoCore IV multimedia/3D graphics core @ 400MHz/300MHz
Bạn có thể kết nối Raspberry Pi 3 với máy tính trực tiếp bằng SSH và VNC thông qua một cáp Ethernet, không cần bộ định tuyến hay WiFi, cho phép giao tiếp chỉ giữa Pi và máy tính Để dự án này, hãy chuẩn bị một Raspberry Pi 3 có cổng Ethernet, thẻ microSD đã được flash với hệ điều hành Raspbian mới nhất, một cáp Ethernet và nguồn cấp phù hợp cho Pi và máy tính Sau khi thiết lập, bạn có thể truy cập Pi bằng SSH và quản lý qua VNC mà không cần kết nối Internet.
Trên máy tính xách tay tải xuống các công cụ mà chúng ta sẽ sử dụng SSH ta sẽ sử dụng Putty, một ứng dụng SSH cho máy tính
Cài đặt Putty để cấu hình SSH
Cài đặt VNC Viewer để sử dụng như remote desktop kết nối với Raspberry pi3
Thẻ nhớ SD Raspberry Pi lấy thẻ nhớ SD ra khỏi Pi và sử dụng bộ chuyển đổi thẻ
Đầu tiên cắm thẻ SD (đọc thẻ nhớ) vào máy tính Ổ đĩa xuất hiện và được gọi là BOOT, chứa những tệp tin thiết yếu để Raspberry Pi có thể khởi động Trong thư mục BOOT có một tệp tên là cmdline.txt (có thể trông giống cmdline trên Windows), cho phép người dùng chỉnh sửa tham số khởi động của hệ điều hành Raspberry Pi.
Mở tệp cmdline.txt bằng Notepad và thêm một bước cấu hình sẽ đặt địa chỉ IP của Pi thành giá trị được mã hóa cứng Chúng ta cần mã cứng địa chỉ IP để có thể đảm bảo IP luôn cố định và dễ quản lý khi truy cập từ xa, tránh sự thay đổi bất ngờ từ DHCP và tăng tính ổn định cho các dịch vụ chạy trên Pi.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 cho rằng có thể kết nối, vì vậy ta thêm vào dòng cuối của cmdline.txt là ip 10.0.0.1; sau đó tạo một tệp mới trong phân vùng BOOT có tên ssh và cuối cùng rút thẻ SD khỏi thiết bị để lắp vào Raspberry Pi.
Sử dụng VNC Viewer để sử dụng Raspberry
Hình 2 2 Giao diện raspberry pi 3
Tổng quan về kĩ thuật định vị
Hình 2 3 Các vệ tinh trong hệ thống GPS
Hệ thống Định vị Toàn cầu (tiếng Anh: Global Positioning System – GPS) là hệ thống xác định vị trí dựa trên vị trí của các vệ tinh nhân tạo, do Bộ Quốc phòng Hoa Kỳ thiết kế, xây dựng, vận hành và quản lý.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Mỹ là hệ dẫn đường dựa trên một mạng lưới 24 quả vệ tinh được Bộ Quốc phòng Hoa Kỳ đặt trên quỹ đạo không gian
GPS ban đầu chỉ dành cho các mục đích quân sự, nhưng từ năm 1980 chính phủ
Mỹ cho phép sử dụng trong dân sự GPS hoạt động trong mọi điều kiện thời tiết, mọi nơi trên Trái Đất, 24 giờ một ngày
2.2.2 Các thành phần của GPS
GPS hiện tại có 3 thành phần chính:
Gồm 24 vệ tinh (21 hoạt động, 3 dự phòng) nằm trên quỹ đạo xoay Trái đất cách mặt đất 20.200 km, quay 2 vòng quỹ đạo trong khoảng thời gian 24h và được bố trí sao cho các máy thu GPS trên mặt đất có thể nhìn thấy tối thiểu 4 vệ tinh vào bất kì thời điểm nào
Phần kiểm soát: Để kiểm soát vệ tinh đi đúng hướng theo quỹ đạo và thông tin thời gian chính xác
Có 5 trạm kiểm soát đặt rải rác trên mặt đất (4 hoạt động tự động, 1 trạm kiểm soát là trung tâm) Bốn trạm tự động sẽ nhận thông tin từ vệ tinh và gởi các thông tin này đến trạm kiểm soát trung tâm Ngoài ra còn có 1 trạm trung tâm dự phòng và
6 trạm quan sát chuyên biệt
Là thiết bị nhận tín hiệu vệ tinh GPS và người sử dụng thiết bị này
2.2.3 Sự hoạt động của GPS
Các vệ tinh GPS bay quanh Trái Đất theo một quỹ đạo rất chính xác và phát tín hiệu xuống Trái Đất chứa thông tin thời gian và vị trí Máy thu GPS nhận các tín hiệu này và bằng phép đo lượng giác có thể xác định vị trí của người dùng với độ chính xác cao Về bản chất, máy thu GPS so sánh thời gian tín hiệu phát đi từ các vệ tinh với thời gian nhận tại thiết bị, từ đó tính được khoảng cách tới mỗi vệ tinh; khi có dữ liệu từ nhiều vệ tinh, hệ thống định vị GPS ghép các khoảng cách đó lại để xác định vị trí người dùng một cách chính xác.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 cho biết máy thu GPS nhận tín hiệu từ nhiều vệ tinh và đo thời gian tín hiệu được nhận Sai lệch thời gian giữa tín hiệu từ vệ tinh và đồng hồ của máy thu cho biết khoảng cách giữa máy thu GPS và từng vệ tinh Với nhiều khoảng cách đo được tới nhiều vệ tinh, máy thu có thể tính toán vị trí của người dùng và hiển thị trên bản đồ điện tử của thiết bị.
Máy thu GPS phải nhận tín hiệu của ít nhất ba vệ tinh để tính toán vị trí hai chiều (kinh độ và vĩ độ) và theo dõi chuyển động Khi nhận được tín hiệu của ít nhất bốn vệ tinh, máy thu có thể tính được vị trí ba chiều (kinh độ, vĩ độ và độ cao).
2.2.4 Độ chính xác của GPS
Máy thu GPS ngày nay có độ chính xác cực kỳ cao nhờ thiết kế nhiều kênh hoạt động song song và khả năng xử lý tín hiệu từ nhiều nguồn cùng lúc, giúp cải thiện độ chính xác vị trí Các máy thu GPS có độ chính xác trung bình khoảng 15 mét, giúp người dùng định vị nhanh chóng và đáng tin cậy.
Máy thu hiện đại với khả năng WAAS (Wide Area Augmentation System) có thể tăng độ chính xác trung bình lên dưới 3 mét Người dùng cũng có thể đạt độ chính xác cao hơn nhờ GPS vi sai (DGPS) sửa lỗi tín hiệu GPS, giúp độ chính xác trong khoảng từ 3 đến 5 mét.
Module định vị GPS U-Blox NEO-M8N-0-10
Hình 2 4 Module định vị GPS U-Blox NEO-M8N-0-10
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Module định vị GPS U-Blox NEO-M8N-0-10 tích hợp ăng-ten, sử dụng giao tiếp UART có thể kết nối với bất kỳ vi điều khiển nào và đi kèm bộ chuyển đổi USB cho kết nối trực tiếp với máy tính Mạch có thiết kế nhỏ gọn, độ nhạy cao và phù hợp cho các ứng dụng trong nhà, cho phép thu nhận tín hiệu GPS ổn định ngay cả khi môi trường có tín hiệu yếu.
Chi tiết thông số kỹ thuật của Module định vị GPS U-Blox NEO-M8N-0-10 Điện áp cung cấp: 3,3V – 5V DC, Ăng ten GPS riêng biệt 18 x 18 mm Dòng điện hoạt động: 45mA
Tốc độ truyền: 9600 (cấu hình từ 4800 đến 115200)
Tốc độ cập nhật điều hướng: tối đa 5Hz (1HZ theo mặc định)
Thời gian khởi động: 27 giây (nhanh nhất) bắt đầu khởi động nóng: 1 giây Phạm vi nhiệt độ hoạt động: -40 đến + 85 ° C
Kích thước: 22 x 30 x 13 mm, Cân nặng: 19g
Các chân có các chức năng như sau:
TXD là chân truyền của cổng nối tiếp mô-đun ở mức TTL và không thể kết nối trực tiếp với mức RS232, nên nó có thể được kết nối với RXD của vi điều khiển để truyền dữ liệu RXD là chân nhận của cổng nối tiếp ở mức TTL và cũng không thể kết nối trực tiếp với mức RS232 Vì vậy, khi giao tiếp giữa module và thiết bị RS232 hoặc vi điều khiển, cần dùng bộ chuyển đổi mức hoặc tuân thủ chuẩn TTL-RS232 để đảm bảo tín hiệu tương thích.
PPX: góc đầu ra xung
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
2.2.5.4 Sơ đồ cấu hình trên mạch
Hình 2 5 Sơ đồ cấu hình trên mạch
Ngôn ngữ sử dụng
React Native là một framework được Facebook phát triển nhằm tối ưu hóa hiệu suất ứng dụng Hybrid và giảm thiểu số lượng ngôn ngữ Native cần sử dụng trên nền tảng di động Thông qua React Native, việc xây dựng các ứng dụng Native cho nhiều nền tảng cùng lúc trở nên dễ dàng hơn, giúp tiết kiệm thời gian và công sức phát triển mà vẫn đảm bảo trải nghiệm người dùng mượt mà và nhất quán.
2.3.2 Cách hoạt động của react native
Bằng cách tích hợp hai thread là Main Thread và JS Thread cho ứng dụng di động, Main Thread đảm nhiệm cập nhật giao diện người dùng (UI) và xử lý tương tác của người dùng, trong khi JS Thread chịu trách nhiệm thực thi và xử lý mã JavaScript Hai luồng này hoạt động độc lập với nhau, và để chúng có thể giao tiếp với nhau, một Bridge (cầu nối) được sử dụng để truyền dữ liệu và lệnh giữa hai thread mà không làm phụ thuộc lẫn nhau.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 18 sang thread khác Dữ liệu từ hai Thread được vận hành khi tiếp nối dữ liệu cho nhau
Hình 2 6 Hoạt động của React native 2.3.1.2 Ưu và nhược điểm của react native Ưu điểm của React Native:
Tiết kiệm chi phí Đội ngũ phát triển ứng dụng không quá lớn Ứng dụng tin cậy, ổn định
Nhược điểm của React Native:
Hiệu năng kém hơn so với Native App
Bảo mật chưa thật sự tốt do dùng JS
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
JavaScript là một ngôn ngữ lập trình đa nền tảng (cross-platform), ngôn ngữ lập trình kịch bản, hướng đối tượng
JavaScript là một ngôn ngữ nhỏ gọn và nhẹ, và khi chạy trong một môi trường host, nó có thể kết nối với các object của môi trường đó và cung cấp các cách quản lý chúng, hỗ trợ phát triển ứng dụng web và phần mềm linh hoạt hơn.
2.3.2.2 Cách hoạt động của JavaScript
JavaScript có thể được nhúng trực tiếp vào một trang web hoặc được tham chiếu thông qua một file js riêng biệt Đây là ngôn ngữ lập trình ở phía khách hàng, nghĩa là các script được tải xuống và xử lý trực tiếp trên máy của người dùng đang truy cập, thay vì được xử lý trên máy chủ rồi mới gửi kết quả về cho trình duyệt.
Client-side JavaScript - JavaScript phía máy khách, JavaScript được mở rộng bằng cách cung cấp các object để quản lý trình duyệt và Document Object Model (DOM) của nó
Server-side JavaScript – JavaScript phía Server, JavaScript được mở rộng bằng cách cung cấp thêm các đối tượng cần thiết để chạy JavaScript trên máy chủ
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
2.3.2.3 Ưu và nhược điểm của JavaScript Ưu điểm của JavaScript:
JavaScript là ngôn ngữ lập trình dễ học
Lỗi của JavaScript dễ phát hiện hơn và vì vậy dễ sửa hơn
JavaScript hoạt động trên nhiều trình duyệt, nền tảng
JavaScript giúp website tương tác tốt hơn với khách truy cập
JavaScript nhanh hơn và nhẹ hơn các ngôn ngữ lập trình khác
Có thể được dùng để thực thi mã độc trên máy tính của người dùng
Python là ngôn ngữ lập trình hướng đối tượng đa năng có cấu trúc dữ liệu cấp cao và hệ thống thư viện phong phú, phục vụ cho nhiều lĩnh vực từ phát triển web đến khoa học dữ liệu Python hoàn toàn là ngôn ngữ có kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động, giúp lập trình viên viết mã ngắn gọn, dễ đọc và dễ bảo trì Cú pháp của Python rõ ràng, đơn giản và thân thiện với người mới bắt đầu, đồng thời được hỗ trợ bởi cộng đồng lớn và kho thư viện rộng lớn.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
2.3.3.2 Tính năng chính của Python
Python là ngôn ngữ lập trình nhập môn, do Guido van Rossum thiết kế nhằm mang đến sự đơn giản và dễ hiểu Chính vì vậy, cấu trúc Python rất rõ ràng và nhất quán, giúp người học làm quen nhanh chóng và viết mã lệnh với tối thiểu số lần gõ phím, tối ưu cho quá trình học tập và phát triển dự án một cách hiệu quả.
Python là ngôn ngữ lập trình mã nguồn mở và hoàn toàn miễn phí Khác với nhiều ngôn ngữ lập trình bậc cao khác, Python cho phép người dùng tự do sử dụng và phát triển phần mềm viết bằng Python mà không phải trả phí, nhờ đó các chương trình xây dựng trên Python dễ tiếp cận và phổ biến rộng rãi.
Tương thích nhiều nền tảng: Python dễ dàng tương thích với nhiều nền tảng như Windows, MacOS, Linux
Khả năng nhúng và mở rộng: Có thể kết hợp cùng các ngôn ngữ lập trình khác để phát triển các ứng dụng phức tạp
Tự động chuyển đổi code: Khi dùng Python, người sử dụng hoàn toàn không phải lo các vấn đề về quản lý bộ nhớ, dọn dẹp dữ liệu…
Thư viện lớn: Nhờ số lượng thư viện khổng lồ của mình Python hoàn toàn đáp ứng được mọi nhu cầu lập trình khác nhau
Ngôn ngữ lập trình hướng đối tượng: Dù được đơn giản hóa cho người mới học song Python vẫn giữ bản chất hướng đối tượng.
Phần mềm sử dụng
Visual Studio Code là trình biên tập mã nguồn do Microsoft phát triển, hoạt động trên Windows, Linux và macOS Ứng dụng hỗ trợ gỡ lỗi (debug), tích hợp Git quản lý mã nguồn, đồng thời cung cấp syntax highlighting, tự động hoàn thành mã thông minh và các snippet, giúp tăng năng suất lập trình và cải thiện chất lượng mã nguồn.
Nó cho phép tùy chỉnh linh hoạt, cho phép người dùng thay đổi theme, phím tắt và nhiều tùy chọn khác theo nhu cầu Ứng dụng miễn phí và là phần mềm mã nguồn mở, mặc dù gói tải xuống chính đi kèm với giấy phép sử dụng.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Visual Studio Code dựa trên Electron, một nền tảng dùng để triển khai các ứng dụng Node.js trên máy tính để bàn Nó chạy trên động cơ trình duyệt Blink, giúp VS Code có tính tương thích và hiệu suất cao trên nhiều hệ điều hành.
Visual Studio Code là một trình biên tập mã phổ biến, hỗ trợ nhiều ngôn ngữ và các chức năng phụ thuộc vào ngôn ngữ được sử dụng như mô tả trong bảng tính năng Nhiều chức năng của VS Code không hiển thị trực tiếp trong menu hay giao diện người dùng mà được gọi thông qua khung nhập lệnh hoặc qua các tập tin json tùy chỉnh (ví dụ như cấu hình người dùng) Khung nhập lệnh là một giao diện theo dòng lệnh, nhưng nó sẽ biến mất khi người dùng nhấp nơi khác hoặc tương tác với các yếu tố ở bên ngoài khung, và các lệnh tốn thời gian để xử lý cũng có thể bị hủy khi gặp sự cố đó.
Android Studio is the official Integrated Development Environment (IDE) for the Android platform, developed by Google It is used to create the majority of the apps we use every day.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Android studio hoạt động dựa vào IntelliJ IDEA, là một IDE Java tốt nhất hiện nay
Một số tính năng chính của Android Studio:
Build system dựa trên Gradle
Lựa chọn để xem trước một layout trên nhiều cấu hình màn hình trong khi chỉnh sửa
Build ra nhiều loại tập tin apk
Lint tools (được sử dụng catch usability, hiệu suất, tương thích phiên bản và những vấn đề khác)
Hỗ trợ phát triển các ứng dụng Android Wear, TV và Auto
Cho phép tích hợp ứng dụng với Google Cloud Platform (App Engine và Google Cloud Messaging)
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
KIẾN THỨC NỀN TẢNG
Tổng quan về IoT
Thiết bị (device): Đối với Internet Of Things, đây là một phần của cả hệ thống với chức năng bắt buộc là truyền thông và chức năng không bắt buộc là: cảm biến, thực thi, thu thập dữ liệu, lưu trữ và xử lý dữ liệu
Internet Of Things: Là một cơ sở hạ tầng mang tính toàn cầu cho xã hội thông tin, mang đến những dịch vụ tiên tiến bằng cách kết nối các “Things” (cả physical lẫn virtual) dựa trên sự t n tại của thông tin, dựa trên khả năng tương tác của các thông tin đó, và dựa trên các công nghệ truyền thông
Trong Internet of Things (IoT), “Thing” là một đối tượng thuộc thế giới vật chất (physical things) hoặc thế giới thông tin ảo (virtual things) Những “Thing” này có khả năng được nhận diện và có thể được tích hợp vào mạng lưới thông tin liên lạc để trao đổi dữ liệu, giao tiếp và tương tác với các thiết bị khác trong hệ sinh thái IoT.
Mạng lưới vạn vật kết nối Internet, hay còn gọi là IoT, là một kịch bản của thế giới nơi mỗi vật thể và cả con người được cấp một định danh riêng và có khả năng truyền tải, trao đổi thông tin và dữ liệu qua một mạng duy nhất mà không cần tương tác trực tiếp giữa người với người hay giữa người với máy tính IoT kết nối các thiết bị và hệ thống để thu thập dữ liệu, giao tiếp với nhau và thực thi các tác vụ một cách tự động, từ đó tối ưu hoá vận hành trong cuộc sống hàng ngày và trong kinh doanh Nhờ IoT, các ứng dụng thông minh ngày càng phổ biến, giúp tiết kiệm thời gian, nâng cao hiệu quả và cải thiện trải nghiệm của người dùng.
3.1.3.1 Đặc tính cơ bản Đặc tính cơ bản của IoT bao gồm:
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Tính kết nối liên thông (interconnectivity) là nền tảng của IoT, cho phép bất cứ thiết bị hay hệ thống nào cũng có thể kết nối với nhau thông qua mạng lưới thông tin và cơ sở hạ tầng liên lạc tổng thể Với IoT, mọi thiết bị từ gia đình, văn phòng đến công nghiệp có thể giao tiếp và trao đổi dữ liệu một cách liền mạch, mở rộng khả năng tự động hóa và tối ưu hóa quy trình vận hành Tính liên thông này tạo nên một hệ sinh thái số thông minh, nơi dữ liệu được luân chuyển nhanh chóng giữa các thành phần để đưa ra quyết định và cải thiện trải nghiệm người dùng.
Trong IoT, tính không đồng nhất là đặc điểm nổi bật khi các thiết bị có phần cứng khác nhau và hoạt động trên các mạng khác nhau Sự đa dạng này đồng nghĩa với nhiều cấu hình, giao thức và chuẩn kết nối khác nhau, làm cho việc quản lý và tích hợp thiết bị trở nên phức tạp Tuy nhiên, sự liên kết giữa các mạng và các giao thức được chuẩn hóa cho phép các thiết bị ở các mạng khác nhau có thể tương tác với nhau, từ đó cho phép trao đổi dữ liệu và thực thi các tác vụ IoT một cách liên tục và hiệu quả.
Thay đổi linh hoạt là khả năng tự động điều chỉnh trạng thái của các thiết bị, cho phép trạng thái thiết bị tự động thay đổi theo điều kiện vận hành, ví dụ từ ngủ sang thức dậy, từ kết nối sang bị ngắt, từ vị trí hiện tại sang vị trí mới, và tốc độ hoạt động được điều chỉnh tự động Hơn nữa, số lượng thiết bị tham gia có thể tự động thay đổi theo nhu cầu quản lý, giúp tối ưu hóa hiệu suất hệ thống và tăng tính linh hoạt cho mạng lưới thiết bị.
Quy mô lớn cho thấy sẽ có một số lượng rất lớn các thiết bị được quản lý và giao tiếp với nhau Số lượng này vượt xa số lượng máy tính kết nối Internet hiện nay.
3.1.3.2 Yêu cầu ở mức cao đối với hệ thống IoT
Một hệ thống IoT phải thoả mãn các yêu cầu sau:
Kết nối dựa trên sự nhận diện: Nghĩa là các “Things” phải có ID riêng biệt
Hệ thống IOT cần hỗ trợ các kết nối giữa các “Things”, và kết nối được thiết lập dựa trên định danh (ID) của Things
Khả năng cộng tác: hệ thống IoT khả năng tương tác qua lại giữa các mạng và Things
Khả năng tự quản của mạng: Bao gồm tự quản lý, tự cấu hình, tự recovery, tự tối ưu hóa và tự có cơ chế bảo vệ
Các khả năng dựa vào vị trí trong IoT cho phép cung cấp thông tin liên lạc và các dịch vụ liên quan dựa trên vị trí thực tế của các thiết bị (Things) và người dùng Thông tin vị trí của thiết bị và người dùng được hệ thống IoT tự động nhận diện và theo dõi, từ đó tối ưu hóa quyền truy cập, tương tác và thông báo nhắm mục tiêu theo vị trí để nâng cao hiệu suất và trải nghiệm người dùng.
Trong môi trường IoT, nhiều “Things” được kết nối với nhau, tạo thành một hệ sinh thái thiết bị thông minh và phức tạp Điều này làm tăng rủi ro bảo mật, có thể dẫn tới tiết lộ bí mật thông tin, xác thực sai và dữ liệu bị thay đổi hoặc giả mạo Vì vậy, bảo mật IoT cần tập trung vào các biện pháp ngăn chặn như xác thực mạnh, mã hóa dữ liệu, quản lý quyền truy cập và giám sát liên tục để bảo đảm tính toàn vẹn và an toàn của dữ liệu trên toàn mạng lưới.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Để bảo vệ tính riêng tư, mọi “Things” (thiết bị IoT) đều có chủ sở hữu và người sử dụng của nó Dữ liệu thu thập từ các thiết bị này có thể chứa thông tin cá nhân liên quan đến chủ sở hữu hoặc người dùng, vì vậy quản lý quyền riêng tư và an toàn dữ liệu là ưu tiên hàng đầu Cần minh bạch về cách thu thập, lưu trữ và xử lý dữ liệu, đồng thời cho phép người dùng kiểm soát thông tin mà họ chia sẻ Khi thiết kế và triển khai các hệ thống liên quan, hãy chú trọng bảo mật từ nguồn gốc và giảm thiểu rủi ro rò rỉ dữ liệu để bảo vệ quyền riêng tư của người dùng.
Khả năng quản lý: hệ thống IoT cần phải hỗ trợ tính năng quản lý các
Thiết bị IoT (Internet of Things) là yếu tố then chốt để các mạng lưới hoạt động bình thường và ổn định Ứng dụng IoT thường vận hành tự động mà không cần sự tham gia của con người, giúp tối ưu hóa quy trình và nâng cao hiệu suất Tuy nhiên, toàn bộ quá trình vận hành của các thiết bị IoT nên được quản lý bởi các bên liên quan nhằm đảm bảo an toàn, tin cậy và tuân thủ các chuẩn mực cũng như quy định liên quan.
3.1.4 Mô hình của một hệ thống IoT
Bất kỳ một hệ thống IoT nào cũng được xây dựng lên từ sự kết hợp của 4 layer sau:
Lớp ứng dụng (Application Layer)
Lớp Hỗ trợ dịch vụ và hỗ trợ ứng dụng (Service support and application support layer)
Lớp thiết bị (Device Layer)
Hình 3 1 Mô hình hệ thống IoT
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Các giao thức truyền nhận dữ liệu
3.2.1 Các giao thức dùng trong IOT
MQTT (Message Queue Telemetry Transport):
MQTT là một giao thức gửi tin nhắn theo mô hình publish/subscribe, được thiết kế dành cho các thiết bị IoT Giao thức này tối ưu cho băng thông thấp và đảm bảo độ tin cậy cao, giúp dữ liệu được trao đổi liên tục dù mạng có biến động Nhờ tính nhẹ và hiệu quả, MQTT là giải pháp lý tưởng cho các ứng dụng IoT cần giao tiếp ổn định trên các mạng có giới hạn băng thông và biến động.
CoAP là một giao thức truyền tải tài liệu theo mô hình client/server dựa trên Internet, tương tự như HTTP nhưng được thiết kế cho các thiết bị hạn chế tài nguyên Giao thức này hỗ trợ giao tiếp một-đối-một để trao đổi trạng thái thông tin giữa client và server.
AMQP (Advanced Message Queue Protocol):
AMQP là một giao thức làm trung gian cho các gói tin ở lớp ứng dụng, được thiết kế để thay thế các hệ thống truyền tin độc quyền và không tương thích Các tính năng chính của AMQP gồm định hướng message, hàng đợi và định tuyến, với các chế độ từ point-to-point đến publish-subscribe, giúp truyền tin có cấu trúc và tin cậy cao AMQP còn chú trọng bảo mật và độ tin cậy cho mọi thông điệp được xử lý và chuyển tiếp trong hệ thống.
XMPP (Extensible Messaging và Presence Protocol):
XMPP (trước đây gọi là “Jabber”) là giao thức truyền thông dùng cho định hướng tin nhắn trung gian dựa trên ngôn ngữ XML
DDS (Data Distribution Service) là một middleware dựa trên dữ liệu tập trung, được thiết kế để tối ưu hóa khả năng mở rộng, xử lý thời gian thực và độ tin cậy cao khi trao đổi dữ liệu giữa các thành phần hệ thống Với DDS, dữ liệu được quản lý và phân phối một cách nhất quán giữa các tiến trình và nút mạng, giúp các ứng dụng phân tán giao tiếp và đồng bộ một cách hiệu quả Theo hướng tiếp cận tập trung vào dữ liệu và luồng dữ liệu, DDS tối ưu hóa việc trao đổi và chịu lỗi, cho phép mở rộng quy mô dễ dàng theo nhu cầu Đây là một chuẩn mở cho trao đổi dữ liệu thời gian thực và phối hợp giữa các hệ thống phân tán, phù hợp với các ứng dụng yêu cầu hiệu suất cao và độ tin cậy cao.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
3.2.2 Các giao thức truyền qua mạng
Hypertext Transfer Protocol (HTTP) is the protocol for transferring hypertext data on the Internet It is one of the five standard Internet protocols HTTP is used to exchange information between a web server and a web client It operates in the client–server model used for the World Wide Web.
Post Office Protocol phiên bản 3 (POP 3):
POP3 phiên bản 3 là một giao thức tầng ứng dụng dùng để lấy thư điện tử từ máy chủ mail thông qua kết nối TCP/IP Phiên bản này cho phép client tải nội dung hoàn chỉnh từ hộp thư trên máy chủ và đồng thời xóa thư khỏi máy chủ sau khi tải xuống Cổng mặc định của POP3 là 110, trong khi cổng POP3 bảo mật là 995 (POP3S) Việc nắm vững POP3 giúp tối ưu hóa quá trình nhận email và quản lý dung lượng lưu trữ trên máy chủ.
Internet Message Access Protocol (IMAP):
IMAP (Internet Message Access Protocol) là giao thức chuẩn của Internet được các ứng dụng email sử dụng để truy xuất thư điện tử từ máy chủ thư qua kết nối TCP/IP, cho phép quản lý thư trực tiếp trên máy chủ và không xóa nội dung khỏi hộp thư; cổng mặc định của IMAP là 143, trong khi cổng IMAP bảo mật là 993.
Hypertext Transfer Protocol over SSL/TLS (HTTPS):
HTTPS (Hypertext Transfer Protocol over SSL/TLS) là phiên bản an toàn của HTTP, kết hợp HTTP với SSL/TLS để mã hóa và bảo vệ dữ liệu khi trao đổi trên Internet Nhờ việc mã hóa và xác thực, HTTPS giúp ngăn chặn nghe lén, giả mạo và sửa đổi thông tin giữa người dùng và máy chủ Để kết nối an toàn, trình duyệt và máy chủ phải thiết lập một lớp bảo mật SSL/TLS trước khi gửi dữ liệu Cổng mặc định cho HTTPS là 443, và hầu hết trang web an toàn sẽ sử dụng cổng này cho các kết nối bảo mật.
MQTT = Message Queue Telemetry Transport
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 29 cho biết đây là một giao thức truyền thông điệp theo mô hình publish/subscribe (xuất bản – theo dõi), cho phép các thành phần hệ thống đăng ký nhận thông tin theo chủ đề và nhận nội dung liên quan Giao thức này sử dụng băng thông thấp, có độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.
MQTT là một giao thức nhắn tin gọn nhẹ được thiết kế để liên lạc hiệu quả giữa các thiết bị và hệ thống máy tính Ban đầu MQTT được thiết kế cho các mạng SCADA, các kịch bản sản xuất và môi trường băng thông thấp; nhờ tính nhẹ và độ tin cậy cao, nó đã trở nên phổ biến do sự phát triển của Internet-of-Things (IoT).
Kiến trúc mức cao (high-level) của MQTT gồm 2 phần chính là Broker và Clients
Clients are divided into two roles—publishers and subscribers—forming lightweight, flexible software components that run on edge devices In a publish/subscribe messaging model, a client typically performs at least one of two actions: it publishes messages to a specific topic, or it subscribes to a topic to receive messages from that topic.
MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có: MAC
OS, Windows, LInux, Androids, iOS…
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Trong một hệ thống sử dụng giao thức MQTT, nhiều node trạm (gọi là mqtt client, viết tắt là client) kết nối tới một broker MQTT Mỗi client sẽ đăng ký một vài kênh (topic), ví dụ như “/client1/channel1”, “/client1/channel2” Quá trình đăng ký các kênh này được gọi là subscribe, và khi một client gửi dữ liệu tới kênh đó, thao tác này được gọi là publish.
QoS: Ở đây có 3 tuỳ chọn QoS (Qualities of service) khi “publish” và “subscribe”:
QoS0 Broker/client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi được xác nhận bởi chỉ giao thức TCP/IP, giống kiểu đem con bỏ chợ
QoS 1 trong MQTT đảm bảo broker hoặc client gửi dữ liệu và nhận được ít nhất một lần xác nhận từ phía nhận Điều này có nghĩa là có thể có nhiều hơn một lần xác nhận đã nhận được dữ liệu, do các trường hợp tái gửi khi xác nhận bị mất hoặc trễ có thể xảy ra Với cơ chế "at least once", dữ liệu sẽ được giao tới đích và có thể có bản sao trùng lặp, vì vậy các hệ thống cần xử lý duplicate messages và thiết kế để idempotent để đảm bảo tính nhất quán của dữ liệu.
QoS2 Broker/client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận được đúng 1 lần, quá trình này phải trải qua 4 bước bắt tay
Trong hệ thống này, một gói tin có thể được gửi ở bất kỳ mức QoS nào và các client có thể subscribe với bất kỳ yêu cầu QoS nào Điều này có nghĩa là client sẽ chọn QoS tối đa mà nó có để nhận tin, từ đó tối ưu hóa chất lượng nhận dữ liệu dựa trên khả năng và nhu cầu của từng thiết bị hoặc ứng dụng.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Retain là một cờ (flag) được gắn cho một message của giao thức MQTT Retain chỉ nhận giá trị 0 hoặc 1 (tương ứng 2 giá trị logic false hoặc true)
In MQTT, when the retain flag is set to 1, the broker stores the most recent message for a topic along with its corresponding QoS When a client subscribes to that topic, it immediately receives the retained message.
Tổng quan về Google Cloud IoT
Quản lý và kết nối thiết bị an toàn
Cloud IoT Core là một dịch vụ được quản lý hoàn toàn, cho phép bạn kết nối, quản lý và nhập dữ liệu từ hàng triệu thiết bị phân tán trên toàn cầu một cách dễ dàng và an toàn Nền tảng này tối ưu về bảo mật và khả năng mở rộng, giúp doanh nghiệp thu thập và phân tích dữ liệu IoT từ mọi nơi, đồng thời quản lý thiết bị và theo dõi trạng thái một cách tập trung Nhờ đó, bạn có thể vận hành hệ thống IoT hiệu quả hơn, tối ưu hóa quy trình và tăng cường hiệu suất hoạt động mà không cần quản trị hạ tầng phức tạp.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 35 Đưa ra quyết định sáng suốt ở quy mô toàn cầu
Cloud IoT Core kết nối với Cloud Pub/Sub để thu thập dữ liệu từ các thiết bị phân tán, tổng hợp chúng thành một hệ thống toàn cầu duy nhất và tích hợp một cách liền mạch với các dịch vụ phân tích dữ liệu của Google Cloud.
Kết nối an toàn mạng thiết bị hiện tại của bạn
Đảm bảo kết nối an toàn cho một số lượng nhỏ hoặc hàng triệu thiết bị phân tán trên toàn cầu của bạn thông qua các điểm cuối giao thức được tối ưu, kết hợp cân bằng tải tự động và chia tỷ lệ ngang để nhập dữ liệu trơn tru, ổn định và có độ sẵn sàng cao trong mọi điều kiện mạng.
Thiết lập giao tiếp hai chiều với các thiết bị và đưa dữ liệu từ thiết bị vào công việc hàng ngày của bạn thông qua đường truyền dữ liệu IoT an toàn và thông minh do Cloud IoT Core cung cấp Với Cloud IoT Core, bạn dễ dàng đẩy các bản cập nhật thiết bị của riêng mình, giúp quản lý hệ thống IoT từ xa, tối ưu hóa hiệu suất và tăng cường bảo mật cho các thiết bị của bạn.
Hình 3 5 Hình mô hình xây dựng và huấn luyện ML moudels trên Cloud 3.3.1.2 Đặc trưng
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Trình quản lý thiết bị cho phép cấu hình và quản lý an toàn cho từng thiết bị riêng lẻ một cách chi tiết, giúp đảm bảo tính an toàn và hiệu quả vận hành Việc quản lý có thể thực hiện nhanh chóng qua một giao diện điều khiển trực tiếp hoặc thông qua lập trình, mang đến sự linh hoạt và kiểm soát toàn diện cho người quản trị.
Cầu giao thức cung cấp các điểm cuối kết nối cho nhiều giao thức và tự động cân bằng tải cho mọi kết nối thiết bị, tối ưu hóa hiệu suất và khả năng mở rộng của hệ thống Đồng thời, nó có hỗ trợ riêng cho các kết nối an toàn trên các giao thức tiêu chuẩn công nghiệp như MQTT và HTTP, giúp đảm bảo bảo mật và độ tin cậy cho mạng IoT.
Cho phép bảo mật đầu cuối bằng cách sử dụng xác thực khóa bất đối xứng qua TLS 1.2
Hệ thống toàn cầu duy nhất
Kết nối tất cả các thiết bị và cổng vào Google Cloud qua các giao thức chuẩn như MQTT và HTTP, thông qua các điểm cuối giao thức và quản lý tất cả thiết bị của bạn dưới dạng một hệ thống toàn cầu Dịch vụ sử dụng Cloud Pub/Sub làm nền tảng và lưu trữ dữ liệu trong bảy ngày.
Quản lý đầy đủ và có thể mở rộng
Đây là một dịch vụ không máy chủ, không yêu cầu cài đặt phần mềm phía trước và có thể mở rộng quy mô ngay lập tức mà không giới hạn, nhờ tận dụng quy mô ngang của Google Cloud Platform để xử lý lưu lượng lớn một cách linh hoạt và ổn định.
Kiểm soát truy cập cấp vai trò (RBAC) là yếu tố then chốt trong quản trị bảo mật thông tin Bằng cách áp dụng vai trò IAM cho các cơ quan đăng ký thiết bị, hệ thống sẽ gán quyền truy cập dựa trên vai trò của người dùng, từ đó kiểm soát quyền truy cập của người dùng vào thiết bị và dữ liệu Điều này giúp tối ưu hoá an ninh, hạn chế quyền vượt mức, và tăng khả năng quản lý truy cập một cách có cấu trúc cho toàn tổ chức Việc triển khai vai trò IAM cho cơ quan đăng ký thiết bị cũng hỗ trợ quản lý linh hoạt, audit dễ dàng và cải thiện trải nghiệm người dùng khi làm việc với thiết bị và dữ liệu nhạy cảm.
Triển khai thiết bị ở quy mô
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Sử dụng API REST để tự động quản lý việc đăng ký, triển khai và vận hành các thiết bị theo tỷ lệ
Cho phép giao tiếp tần số cao, độ trễ thấp
Gửi lệnh hoặc chỉ thị cấu hình cho các thiết bị được kết nối với Cloud IoT Core
Các thành phần chính của Cloud IoT Core là trình quản lý thiết bị và cầu nối giao thức:
Trình quản lý thiết bị để đăng ký thiết bị với dịch vụ, do đó bạn có thể theo dõi và định cấu hình chúng
Hai cầu nối giao thức (MQTT và HTTP) mà các thiết bị có thể sử dụng để kết nối với Google Cloud Platform
Dữ liệu từ xa từ các thiết bị được chuyển tiếp đến một chủ đề trên Cloud Pub/Sub, từ đó có thể được sử dụng để kích hoạt Chức năng đám mây (Cloud Functions) và thực thi các xử lý tự động theo sự kiện Việc kết nối dữ liệu này cho phép xử lý sự kiện theo thời gian thực, tăng tính mở rộng cho hệ thống và tối ưu hóa hoạt động IoT của doanh nghiệp.
Sơ đồ tóm tắt các thành phần dịch vụ và luồng dữ liệu:
Hình 3 6 Thành phần và luồng dữ liệu IoT core
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Pub/Sub là một dịch vụ quản lý gửi và nhận tin nhắn theo thời gian thực giữa các ứng dụng độc lập, mang lại sự linh hoạt và tin cậy cho việc trao đổi tin nhắn từ tầng trung gian của doanh nghiệp đến môi trường đám mây Đây là khái niệm cơ bản của hệ thống nhắn tin phát hành–đăng ký: các thành phần phát hành (publisher) xuất bản thông điệp và các thành phần tiêu thụ (subscriber) đăng ký nhận, giúp tối ưu hóa khả năng mở rộng và đảm bảo tin nhắn được truyền đi giữa các ứng dụng một cách hiệu quả.
Topic: Một tài nguyên được đặt tên mà các tin nhắn(message) được gửi bởi các nhà xuất bản (Publisher)
Subscription là một tài nguyên được đặt tên đại diện cho luồng tin nhắn từ một chủ đề (Topic) cụ thể, duy nhất, và sẽ được gửi đến ứng dụng đã đăng ký nhận.
Thông điệp là sự kết hợp giữa dữ liệu và các thuộc tính (tùy chọn) mà nhà xuất bản gửi tới một chủ đề (Topic), và cuối cùng được phân phối tới người đăng ký (Subscribers) Sự kết hợp này cho phép nội dung được tùy biến theo chủ đề và đối tượng nhận, tăng tính liên quan và nâng cao hiệu quả phân phối thông tin Từ nhà xuất bản đến chủ đề, thông điệp sẽ được phát đi và sau đó lan tỏa đến tất cả người đăng ký, đảm bảo họ nhận nội dung phù hợp tại đúng thời điểm.
Message Attribute: Một cặp khóa-giá trị mà nhà xuất bản (Publisher) có thể xác định cho một tin nhắn
3.3.2.2 Mối liên hệ giữa Publisher và Subcriber
Trong Cloud Pub/Sub có chứa nhiều Topic, một Topic có thể có nhiều Subscription, mỗi Subcription chứ nhiều Message
Mối quan hệ giữa Publisher (Nhà xuất bản) và Subcriber (Người đăng kí): Một ứng dụng Publisher tạo và gửi tin nhắn đến một Topic
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 39: Ứng dụng Subscriber cho phép tạo một Subscription đến một Topic để nhận dữ liệu từ Topic đó Cách kết nối có thể là một-nhiều, nhiều-một hoặc nhiều-nhiều, đáp ứng mọi nhu cầu truyền dữ liệu giữa các thành phần hệ thống.
Hình 3 7 Mối quan hệ giữa publisher và subcriber 3.3.2.3 Luồng xử lý
Hình 3 8 Luồng xử lý trong cloud pub/sub
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
A publisher creates a topic on the Google Cloud Pub/Sub service and publishes a message to that topic The message contains its content and may include optional attributes (message attributes) to describe or categorize it.
Google Map API
Google Maps là dịch vụ ứng dụng và công nghệ bản đồ trực tuyến miễn phí do Google cung cấp, cho phép người dùng tra cứu địa chỉ, tìm vị trí và xem bản đồ ở nhiều chế độ xem khác nhau Dịch vụ này tích hợp nhiều chức năng của Google, nổi bật nhất là khả năng dẫn đường và chỉ đường chính xác, giúp người dùng di chuyển thuận tiện đến bất cứ đâu Bên cạnh đó, Google Maps còn hỗ trợ các dịch vụ khác của Google như tìm kiếm địa điểm, xem hình ảnh Street View và cập nhật thông tin địa điểm theo thời gian thực, mang lại trải nghiệm bản đồ toàn diện và tối ưu cho người dùng.
Đó là một phương thức cho phép 1 website B sử dụng dịch vụ bản đồ của site
Map API (gọi là Google Maps API) cho phép bạn nhúng bản đồ Google vào website của mình (gọi là site B) Site A là Google Maps, còn site B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của Google để tương tác với bản đồ—ví dụ rê chuột, phóng to/thu nhỏ và đánh dấu các vị trí trên bản đồ Việc tích hợp Map API mang lại trải nghiệm người dùng tốt hơn, hiển thị địa điểm một cách trực quan và hỗ trợ các chức năng như chỉ đường, xác định vị trí và quản lý điểm đánh dấu trên website Để triển khai, bạn cần nắm vững khái niệm cơ bản của Google Maps API, cách tạo và bảo vệ khóa API, cũng như tuân thủ các điều khoản dịch vụ của Google và tối ưu hóa cho SEO địa điểm trên trang web.
Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhân thông qua các thẻ javascripts do vậy việc sử dụng API google rất dễ dàng
Google Directions API là một dịch vụ tính toán hướng giữa các địa điểm, giúp chỉ đường từ địa điểm bắt đầu đến địa điểm kết thúc cho các phương thức di chuyển như đi bộ, đi xe đạp hoặc lái xe Dịch vụ này có thể được tích hợp vào ứng dụng hoặc website để cung cấp các tuyến đường tham khảo và chỉ dẫn chi tiết cho người dùng, từ đó hỗ trợ chọn lộ trình nhanh chóng và phù hợp với loại hình di chuyển mong muốn.
Một Directions API có dạng như sau: http://maps.googleapis.com/maps/api/directions/output?parameters
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Với output có thể là một trong các giá trị sau: JSON và XML
Bảng 3 2 Các tham số sử dụng trong Google Directions API
Origin là địa chỉ hoặc tọa độ vĩ độ/kinh độ của vị trí bắt đầu trong một lộ trình, cho phép xác định điểm xuất phát một cách chính xác để tính toán đường đi và dẫn đường Bạn có thể cung cấp một địa chỉ cụ thể hoặc tọa độ để làm origin Ví dụ: đi từ Đại học Công Nghiệp TP.HCM, origin được mã hóa thành origin=Đại+học+Công+Nghiệp+TP.HCM.
Destination Địa chỉ hoặc vĩ độ/kinh độ của vị trí kết thúc
Ví dụ: đến Đại học Sư phạm kĩ thuật TP.HCM destination=Đại+học+Sư+phạm+kĩ+thuật+TP.HCM
Sensor cho biết có sử dụng thiết bị định vị tọa độ hay không, với giá trị bắt buộc là true hoặc false để đảm bảo tính nhất quán của dữ liệu định vị Mode xác định chế độ di chuyển và được thiết lập mặc định là chế độ lái xe, giúp người dùng nhanh chóng khởi tạo cấu hình phù hợp với mục đích sử dụng.
Ví dụ: mode=walking: đi bộ mode=bicyling: đi xe đạp mode=driving: phương tiện ô
Waypoints, hay còn gọi là điểm tham chiếu, là một tập hợp các địa điểm được đánh dấu trên đường chỉ dẫn nhằm hỗ trợ lái xe, người đi bộ và người đi xe đạp xác định hướng di chuyển một cách dễ dàng và an toàn Những điểm tham chiếu này giúp nhận diện tuyến đường, tối ưu hóa lộ trình và cung cấp thông tin về hướng đi, khoảng cách cùng các điểm dừng quan trọng trên tuyến đường.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 43 sử dụng waypoints trên đường đi waypoints=cầu+vượt+trạm+2
Alternatives Cung cấp nhiều hướng đi khác nhau có thể
Avoid Mang các giá trị như: bridges/highways
Chọn các loại chỉ dẫn để tránh cầu hay đường cao tốc
Language Ngôn ngữ kết quả trả về
Unit Đơn vị sử dụng khi hiển thị ra kết quả Sử dụng km và mét trong một số trường hợp thì sử dụng dặm và bước chân
Region Mã vùng, quy định như một giá trị chưa cấp phát chính thức
Ví dụ: region=uk: Vương quốc Anh region=vn: Việt Nam
Departure_time Quy định thời gian khởi hành theo giây
Arrival_tiem Quy định thời gian đến theo giây
Bảng 3 3 Các dữ liệu trả về trong Google Directions API
Trạng thái trả về Ý nghĩa
OK - Cho thấy có kết quả hợp lệ
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
NOT_FOUND - Địa điểm tới hoặc địa điểm xuất phát không tồn tại
ZERO_RESULTS - Không tìm thấy đường đi giữa điểm xuất phát và điểm kết thúc MAX_WAYPOINTS_EXCEEDED - Waypoints vượt ngưỡng cho phép
INVALID_REQUEST - Yêu cầu không hợp lệ
OVER_QUERY_LIMIT - Yêu cầu vượt quá giới hạn cho phép
REQUEST_DENIED - Dịch vụ từ chối ứng dụng của bạn
UNKNOWN_ERROR - Lỗi máy chủ khi chỉ đường
Thông tin trả về Ý nghĩa
Tuyến đường legs [] - API Directions sẽ trả về một mảng các tuyến đường (JSON) và các (XML)
Mỗi phần tử trong mảng này lưu trữ một kết quả chỉ dẫn đường đi từ điểm xuất phát đến đích, bao gồm tóm tắt ngắn về tuyến đường, các điểm dừng (waypoints), các giới hạn của tuyến đường, quyền tác giả và một số cảnh báo.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Trong hệ thống di chuyển, mỗi phần tử của các bước di chuyển là một mảng duy nhất khi không chứa các điểm waypoint Đối với các tuyến có các điểm waypoint, hành trình được cấu thành từ nhiều bước di chuyển cụ thể nhằm mô tả chi tiết cuộc hành trình và tối ưu hóa quá trình di chuyển.
Bước di chuyển steps [] - Mỗi phần tử trong bước di chuyển mô tả một hướng dẫn cụ thể duy nhất trên cuộc hành trình
Distance - Chỉ ra tổng khoảng cách của đường đi nó có thông tin là độ dài đường đi tính theo met và một đoạn text để mô tả
Duration - Cho biết tổng thời gian thực hiện của bước di chuyển này, nó có thông tin là giá trị thời gian và một đoạn text để mô tả
End_location - Chứa vị trí điểm kết thúc của bước di chuyển này, nó có thông tin bao gồm vĩ độ và kinh độ của điểm này
Start_location - Chứa vị trí điểm kết thúc của bước di chuyển này, nó có thông tin bao gồm vĩ độ và kinh độ của điểm này
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Html_instructions - Chứa các hướng dẫn định dạng cho bước này, được trình bày theo chuỗi văn bản HTML
Polyline - Đường vẽ cho bước đi này
Travel_mode - Phương tiện di chuyển
3.4.3 Google Places API Ở ứng dụng này, chúng ta sử dụng Google Places API để lấy thông tin địa chỉ của ứng dụng từ tọa độ
Hình 3 9 Google Places API lấy thông tin địa chỉ
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Google Cloud Platform
Google Cloud Platform (GCP) là bộ dịch vụ điện toán đám mây do Google cung cấp, chạy trên cùng một cơ sở hạ tầng mà Google dùng nội bộ cho các sản phẩm tiêu dùng như Google Search và YouTube Bên cạnh các công cụ quản lý, GCP cung cấp một loạt dịch vụ đám mây mô-đun bao gồm điện toán, lưu trữ dữ liệu, phân tích dữ liệu và học máy Việc đăng ký Google Cloud Platform yêu cầu cung cấp thẻ tín dụng hoặc chi tiết tài khoản ngân hàng.
Google Cloud Platform cung cấp Cơ sở hạ tầng dưới dạng dịch vụ, Nền tảng là dịch vụ và môi trường máy tính Serverless
Google Cloud Platform (GCP) là một thành phần của Google Cloud, cung cấp cơ sở hạ tầng đám mây công cộng và các dịch vụ liên quan, đồng thời tích hợp G Suite cho doanh nghiệp với phiên bản doanh nghiệp của Android và Chrome OS và các API cho học máy cũng như lập bản đồ dịch vụ doanh nghiệp.
Firebase
Firebase là một giải pháp backend mạnh mẽ tích hợp lưu trữ dữ liệu, xác thực người dùng và hosting tĩnh, giúp tối ưu hóa hiệu suất và trải nghiệm người dùng cho ứng dụng Nhờ Firebase, lập trình viên có thể tập trung vào việc cải thiện giao diện và tính năng mà bỏ qua phần hạ tầng phức tạp.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Dữ liệu trong cơ sở dữ liệu Firebase được lưu trữ ở định dạng JSON và đồng bộ theo thời gian thực tới mọi kết nối client Khi bạn xây dựng các ứng dụng đa nền tảng cho Android, iOS và JavaScript SDKs, tất cả các client sẽ chia sẻ trên một cơ sở dữ liệu Firebase duy nhất và tự động cập nhật với dữ liệu mới nhất.
Tự động tính toán quy mô ứng dụng của bạn
Các tính năng bảo mật lớp đầu
Database realtime
Hình 3 11 Biểu tượng Firebase Realtime Database
Nhắc tới Firebase, không thể bỏ qua Realtime Database — tính năng khởi thủy và là dịch vụ trung tâm trong hệ sinh thái Firebase, hay còn được gọi là “Ngọn lửa” Đây là giải pháp đồng bộ dữ liệu theo thời gian thực, được cấu hình và chạy sẵn ở nền (background), giúp ứng dụng luôn cập nhật và phản hồi nhanh Với ưu điểm realtime và sự dễ tiếp cận, các lập trình viên chỉ cần tận dụng các hàm có sẵn để xây dựng ứng dụng một cách nhanh chóng và hiệu quả.
Dữ liệu trong Firebase Realtime Database được lưu trữ dưới dạng JSON và đồng bộ thời gian thực tới mọi thiết bị và trình duyệt client Khi xây dựng ứng dụng đa nền tảng cho Android, iOS và JavaScript SDKs, tất cả các client sẽ chia sẻ một cơ sở dữ liệu Firebase duy nhất và tự động cập nhật với dữ liệu mới nhất.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Tự động tính toán quy mô ứng dụng của bạn
Các tính năng bảo mật lớp đầu
Với NoQuery, bạn có thể lưu trữ và đồng bộ dữ liệu trên cơ sở dữ liệu đám mây của chúng tôi Dữ liệu được đồng bộ hóa trên tất cả các máy khách theo thời gian thực và vẫn khả dụng kể cả khi ứng dụng của bạn hoạt động ở chế độ ngoại tuyến.
Firebase là cơ sở dữ liệu thời gian thực lưu trữ trên đám mây, cho phép dữ liệu được đồng bộ hóa theo thời gian thực giữa mọi máy khách kết nối Dữ liệu được lưu trữ dưới dạng JSON và tự động cập nhật cho tất cả các client khi có thay đổi Khi xây dựng các ứng dụng đa nền tảng với Firebase SDK cho iOS, Android và JavaScript, tất cả người dùng sẽ chia sẻ một phiên bản của cơ sở dữ liệu thời gian thực và nhận các bản cập nhật dữ liệu mới nhất một cách liên tục.
Việc kết hợp giữa "realtime" và "database" tạo thành một hệ thống cơ sở dữ liệu được cập nhật liên tục và không gián đoạn, dựa trên các tương tác giữa thiết bị khách (client) và máy chủ (server), ở đây là Firebase Khi một thiết bị gửi các thông tin về sự thay đổi, bao gồm vị trí (position, tức là "key") và nội dung (content, tức là dữ liệu), hệ thống sẽ ghi nhận và đồng bộ ngay lập tức với các client khác, đảm bảo dữ liệu nhất quán và phản hồi thời gian thực trong toàn bộ ứng dụng.
Trong Firebase Realtime Database, mỗi khi có sự thay đổi dữ liệu, hệ thống ngay lập tức phân tích và áp dụng các thay đổi đó, đồng thời gửi các cập nhật tới các thiết bị khác đang lắng nghe cùng một cơ sở dữ liệu để chúng cập nhật dữ liệu ngay tức thì Nhờ cơ chế đồng bộ thời gian thực, dữ liệu được đồng bộ nhanh chóng và nhất quán trên tất cả các thiết bị tham gia, mang lại trải nghiệm ứng dụng mượt mà và phản hồi tức thì cho người dùng.
3.7.2 Mô hình của Firebase Realtime Database
Firebase Realtime Database được tổ chức theo dạng cây (trees), giống như dạng cây thư mục (folder tree) mà các bạn đã quá quen thuộc trong Windows Explorer Tuy nhiên, một nhánh (branch) không được chứa đồng thời nhiều dữ liệu khác nhau Trong Windows Explorer 1 thư mục mẹ có thể chứa nhiều thư mục con và các tập tin nằm ngang hàng với các thư mục con kia, trong thư mục con lại có các thư mục cháu và các tập tin cùng hàng với thư mục cháu
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Trong Firebase Realtime Database, mỗi nhánh được xem như một container chứa dữ liệu, hoặc là giá trị tương ứng với key hiện tại, hoặc là một tập hợp các nhánh con được tổ chức theo một cấu trúc tương tự Hiểu rõ sự phân cấp của nhánh giúp tối ưu hóa truy vấn dữ liệu, quản lý dữ liệu hiệu quả và mở rộng hệ thống theo mô hình cây có nhánh và nhánh con rõ ràng.
Hình 3 12 Mô hình Firebase Realtime Database
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
XÂY DỰNG VÀ TRIỂN KHAI HỆ THỐNG
Mô hình triển khai hệ thống
Hình 4 1 Mô hình triển khai hệ thống
Rasbperry kết nối với GPS Neo-M8N được gắn trên phương tiện và dùng các thư viện pynmea2 và gpsd để lấy tọa độ hiện tại.
Tạo Iot Registry trên IoT Core và đăng kí thiết bị với IoT Registry thông qua cặp khóa RS256_X509 được sinh ra trên thiết bị
Tạo hệ cơ sở dữ liệu thời gian thực Tạo Topic Pubsub và Cloud Function tương ứng cho thiết bị
Cài đặt thư viện Paho-mqtt hỗ trợ giao tiếp với IoT Core qua phương thức MQTT Chạy mã nguồn Python để gửi dữ liệu đến IoT core
Dữ liệu tọa độ từ thiết bị IoT được cập nhật liên tục mỗi một giây đến Cloud IOT core, sau đó chuyển hướng đến Topic Pub/Sub
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Google Cloud Functions được kích hoạt mỗi khi Pub/Sub nhận dữ liệu mới, sau đó xử lý và đẩy dữ liệu lên Firebase Realtime Database Dữ liệu được lưu trữ trong cơ sở dữ liệu thời gian thực của Firebase để đảm bảo đồng bộ và cập nhật nhanh chóng Ứng dụng di động truy cập Firebase thông qua các yêu cầu API và hiển thị dữ liệu tọa độ liên tục cho người dùng.
Triển khai hệ thống
4.2.1 Cài đặt các thư viện cần thiết
Cài đặt pip sudo apt-get install python-pip
Cài đặt pynmea2 sudo pip install pynmea2
Cài đặt thư viện GPS sudo apt-get install gpsd gpsd-clients python-gps minicom
Chỉnh sửa file config.txt bằng dòng lệnh: sudo nano /boot/config.txt
Và ở cuối file thêm dòng sau: dtparam=spi=on dtoverlay=pi3-disable-bt core_freq%0 enable_uart=1 force_turbo=1 init_uart_baud00
Khởi động lại hệ thống:
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 53 sudo reboot now
Cấu hình các module: stty -F /dev/ttyAMA0 9600
Kết nối AMA0 vào GPS Software F sudo killall gpsd sudo nano /etc/default/gpsd
Chỉnh sửa file /etc/default/gpsd và thêm serial port của bạn vào thiết bị, như sau: sudo systemctl enable gpsd.socket sudo systemctl start gpsd.socket
4.2.2 Xây dựng ứng dụng React Native android cho hệ thống
Hình 4 2 Cấu trúc thư mục
Trong đó có các thành phần quan trọng như:
Screens: chứa các màn hình sẽ được sử dụng trong ứng dụng
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Components: là những thành phần có thể chia nhỏ để tái sử dụng
Constaint : chứa các quy ước hằng số thường được sử dụng trong ứng dụng như: định dạng ngày, màu cơ bản
Navigation: chứa module đảm nhận việc điểu hướng trên các màn hình cho ứng dụng
Models: chứa tất cả các class sẽ được sử dụng trong ứng dụng
Store : lưu thông tin trạng thái tất cả các state của ứng dụng và quản lí bằng thư viện React-Redux
4.2.3 Triển khai Cơ sở dữ liệu thời gian thực FireBase cho hệ thống
Tạo mới một hệ cơ sở dữ liệu Firebase cho ứng dụng với các trường như sau:
Hình 4 3 Cơ sở dữ liệu Firebase
4.2.3.1 Cấu hình thư viện React-Native Firebase
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 55 npm install save @react-native-firebase/app
Tạo thông tin đăng nhập Android, trên bảng điền khiển Firebase, “Android packet name ” khớp với “package name” trong thẻ manifest trong tệp:
/android/app/src/main/AndroidManifest.xml
Tải xuống google-services.json và đặt nó trong hệ thống tại vị trí:
/android/app/google-services.json
Cấu hình Firebase với thông tin đăng nhập Android:
Thêm google-service plugin dưới dạng phụ thuộc bên trong tệp:
/android/build.gradle buildscript { dependencies {
// other dependencies classpath 'com.google.gms:google-services:4.2.0'
Thêm plugin: apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services'
4.2.4 Cấu hình IoT Cloud cho thiết bị Raspberry pi
Tạo một registry cho thiết bị
Vào trang Cloud IOT trong Cloud Console
2 Điền my-registry cho Registry ID
3 Chọn khu vực bạn mong muốn
4 Chọn MQTT cho giao thức
5 Trong danh sách Default telemetry topic d, chọn Create a topic
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
6 Trong ô Create a topic , điền my-device-events vào trường Name
7 Click Create trong ô Create a topic
8 Click Create trong trang Cloud IoT Core
Khởi tạo thành công một registry cho thiết bị với một Cloud Pub/Sub topic giúp cho việc đưa dữ liệu từ thiết bị
Tạo một khóa đôi dành cho việc đăng kí thiết bị
Open the command-line interface and use OpenSSL to generate an RS256 key pair for device authentication by running: openssl req -x509 -newkey rsa:2048 -keyout rsa_private.pem -nodes -out rsa_cert.pem -subj "/CN=unused" This produces a private key (rsa_private.pem) and a self-signed certificate (rsa_cert.pem) for secure device authentication.
Thêm thiết bị vào Registry
1 Trong trang Registries , chọn my-registry
2 Chọn Devices tab và click Create a device
3 Điển my-device cho Device ID
4 Chọn Allow cho Device communication
5 Thêm Public key vừa tạo vào trường Authentication fields
Copy tất cả nội dung của rsa_cert.pem vào clipboard
Chọn định dạng RS256_X509 cho Public key format
Dán public key lúc nãy vào Public key value
Click Add để liên kết khóa RS256_X509 với thiết bị
Khóa RS256_X509 sẽ xuất hiện trong trang Device details của thiết bị của bạn
Create a Cloud Function to receive data from the application's Pub/Sub topic This function, exported as helloPubSub, accepts the Pub/Sub data and context parameters, stores the message in pubSubMessage, and declares a location variable It decodes the message payload from base64, converts it to a string, and parses the JSON to extract location details, using a try block to handle parsing errors This serverless approach enables real-time ingestion of Pub/Sub messages and downstream processing of location data with proper error handling.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn – 16077101 57 console.log(location);
} catch(err){ console.log(err);
} const fetch = require('node-fetch'); fetch(`https://clouddhttest.firebaseio.com/Device/${location.name}/Location. json`, { method: 'PATCH', headers: {
}, body: JSON.stringify({ lat: location.lat, lng: location.lng
}); console.log(`this is device name, ${location.name}`); console.log(`this is device lat, ${location.lat}`); console.log(`this is device lng, ${location.lng}`);
Với mỗi dữ liệu tọa độ được gửi tới Cloud Function từ Topic Pub/Sub, chương trình trên sẽ lấy tọa độ đó và gửi vào Cơ sở dữ liệu thời gian thực Firebase
4.2.5 Chạy chương trình để lấy tọa độ từ GPS và gửi đến Firebase
Cấu trúc thư mục trên Raspberry như sau
Hình 4 4 Cấu trúc thư mục trên Raspberry pi 3
paho-mqtt là thư viện hỗ trợ giao thức MQTT để có thể kết nối tới IoT Core; rsa_cert.pem và rsa_private.pem là cặp khóa dùng để xác thực thiết bị, còn roots.pem được dùng để chứng nhận dịch vụ IoT, đảm bảo quá trình giao tiếp giữa thiết bị và IoT Core được bảo mật và tin cậy.
Chạy chương trình tracklocation.py ta được kết quả như sau ở raspberry:
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Hình 4 5 Kết quả chạy chương trình tracklocation.py Ở Cloud Function cũng đã nhận dữ liệu:
Hình 4 6 Kết quả dữ liêu ở Cloud Funtion Đồng thời ở Firebase tọa độ cũng được cập nhật
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Hình 4 7 Kết quả tọa độ Firebase 4.2.6 Chạy chương trình trên ứng dụng Android
Người quản trị thiết bị Iot đăng nhập vào ứng dụng
Sau khi đăng nhập, chuyển sang tab THIẾT BỊ CÓ THỂ XEM và kiểm tra trong mục THIẾT BỊ CỦA BẠN để thấy thiết bị có tên Thiết bị IoT – Device2 Đây chính là Raspberry đã được kết nối với Module GPS của chúng ta, cho phép quản lý và theo dõi vị trí từ thiết bị IoT này.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Hình 4 9 Giao diện ứng dụng thiết bị có thể xem
Click vào Device 2 ta thấy được tọa độ và địa chỉ của thiết bị
Hình 4 10 Tọa độ và địa chỉ Device2
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Khi di chuyển thiết bị IOT, ta thấy tọa độ và địa chỉ trên màn hình cũng thay đổi
Hình 4 11 Tọa độ thay đổi trên bản đồ
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Hình 4 12 Tọa độ thay đổi trên bản đồ 2
Người dùng thiết bị di động lần đầu dùng ứng dụng và đăng kí tài khoản và mật khẩu như sau:
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Sau khi đăng ký thành công và được cấp tài khoản, người dùng sẽ đăng nhập vào ứng dụng Trong quá trình đăng nhập, hệ thống sẽ khởi tạo một thiết bị mới tương ứng với tài khoản để liên kết và quản lý dữ liệu trên từng thiết bị một cách an toàn và đồng bộ Quá trình này giúp bảo mật tài khoản và tối ưu trải nghiệm người dùng khi sử dụng ứng dụng ở nhiều thiết bị.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Nguyễn Minh Sơn có mã người dùng 16077101, thuộc danh sách 64 người dùng của hệ thống Người dùng có thể tự chọn tên thiết bị và tên đăng nhập (user name) cho tài khoản của mình, trong khi userId và deviceId là các giá trị mặc định do hệ thống cung cấp cho người dùng.
Khi đăng nhập thành công chúng ta sẽ vào màn hình chính sử dụng và người dùng User8 thấy những Tab sau:
Hình 4 14 Giao diện hệ thống
Người dùng truy cập yêu cầu quyền truy cập vào thiết bị di động Device1 và thiết bị IoT Device2
Yêu cầu sẽ được gửi tới quản trị viên để xem xét, và người dùng liên quan sẽ nhận được thông báo yêu cầu phê duyệt Người dùng sẽ có thể sử dụng quyền hoặc tính năng mong muốn ngay khi quản trị viên và người dùng kia đồng ý phê duyệt yêu cầu.
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Hình 4 15 Giao diện hệ thống cấp quyền
Sau đó, người quản trị Device2 sẽ đăng nhập vào hệ thống và tiến hành cấp quyền truy cập cho User8 là User đã yêu cầu
Hình 4 16 Giao diện đăng nhập và cấp quyền
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Người dùng thiết bị di động Device1 cũng đăng nhập và cấp quyền truy cập vị trí cho User8
Hình 4 17 Giao diện đăng nhập và cấp quyền 2
User8 chuyển sang Tab “THIẾT BỊ CÓ THỂ XEM” và thấy mình đã có quyền truy cập vị trí Device2 và Device1
Hình 4 18 Giao diện người dùng
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Khi người dùng chọn vào một thiết bị bất kỳ, hệ thống sẽ hiển thị tọa độ của 3 thiết bị trên bản đồ và cung cấp đầy đủ thông tin chi tiết của thiết bị Device8, đồng thời cho biết khoảng cách từ Device8 đến Device2 cũng như từ Device8 đến Device1.
Hình 4 19 Giao diện thông tin chi tiết Device8
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây
Tương tự như vậy, ta cũng có được thông tin chi tiết về Device2 và Device1 cũng như khoảng cách giữa chúng
Hình 4 20 Giao diện thông tin chi tiết Device2 và Device 1
Khóa luận tốt nghiệp ngành CNTT Quản lý và định vị thiết bị IoT trên nền tảng điện toán đám mây