Professional Documents
Culture Documents
Lab04 - Build IoT Dashboard Complete A Basic IoT Platform
Lab04 - Build IoT Dashboard Complete A Basic IoT Platform
1
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
CÔNG NGHỆ
4 INTERNET OF THINGS
HIỆN ĐẠI
A. MỤC TIÊU
▪ Giới thiệu tổng quan về lập trình website cơ bản để hiển thị dữ liệu IoT.
▪ Giới thiệu các thành phần Web UI, API, Database trong mô hình IoT.
▪ Tổng quan về việc xây dựng, kết hợp các thành phần để tạo nên một mô hình IoT cơ bản
hoàn chỉnh.
B. GIỚI THIỆU
1. Tổng quan mô hình thực hiện
Tại bài thực hành này, sinh viên xây dựng Website hiển thị và điều khiển trong mô hình
• Web UI: thành phần dùng để thể hiện các giá trị cảm biến, thực hiện các tác vụ liên
quan đến điều khiển thiết bị và hiển thị logs cho người quản trị theo dõi.
• API: tương tự như ở bài thực hành trước đã giới thiệu, đây là thành phần trung gian
để người dùng có thể tương tác với cơ sở dữ liệu, xử lý các tác vụ tính toán,...
• Database: cơ sở dữ liệu của hệ thống, giúp cấu trúc các dữ liệu, lưu trữ để phục vụ
nhu cầu khai thác thông tin của nhiều người sử dụng từ một hoặc nhiều ứng dụng
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
3
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
2. Web UI
UI là viết tắt của từ User Interface có nghĩa là giao diện người dùng. Hiểu một cách đơn
giản nhất thì UI bao gồm tất cả những gì người dùng có thể nhìn thấy như: màu sắc web, bố
cục sắp xếp như thế nào, fonts chữ, hình ảnh, biểu đồ,...
Để thuận tiện trong quá trình thực hiện bài thực hành, sinh viên có thể tìm hiểu và lựa
chọn một template để xây dựng nhanh giao diện website. Gợi ý các website có thể download
Tùy theo kiến thức, sinh viên có thể lựa chọn một template của một library/framework bất
kỳ để sử dụng và tùy chỉnh lại giao diện cho đúng với các yêu cầu của bài thực hành.
3. API
API là viết tắt của Application Programming Interface – phương thức trung gian kết nối
các ứng dụng và thư viện khác nhau. REST (Representational State Transfer) là một dạng
chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API.
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
4
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để
quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến
ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.
Chức năng quan trọng nhất của REST là quy định cách sử dụng các phương thức HTTP
(như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản
các resource 1.
4. Database
Giới thiệu cơ sở dữ liệu SQL
SQL là viết tắt của Structured Query Language có nghĩa là ngôn ngữ truy vấn có cấu trúc,
là một ngôn ngữ máy tính để lưu trữ, thao tác và truy xuất dữ liệu được lưu trữ trong một cơ
SQL là ngôn ngữ chuẩn cho hệ cơ sở dữ liệu quan hệ. Tất cả các hệ thống quản lý cơ sở
dữ liệu quan hệ (RDMS) như MySQL, MS Access, Oracle, Sybase, Informix, Postgres và SQL
System) dễ dàng mở rộng. Mục đích chính của việc sử dụng cơ sở dữ liệu NoSQL là dành
cho các kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu lớn. NoSQL được sử dụng cho Dữ
Hiện nay, trên thị trường có khá nhiều NoSQL Database Management System: MongoDB,
• Key-Value Database
• Document Database
• Column-Family Database
• Graph Database
1
Xem thêm tại: https://topdev.vn/blog/restful-api-la-gi/
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
5
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
BH1750 để lấy 3 loại dữ liệu cảm biến là nhiệt độ, độ ẩm, ánh sáng. Trên Wemos D1 sử
dụng DHT22/DHT11 và trên Raspberry Pi sử dụng BH1750, đồng thời lập trình để gửi các
giá trị cảm biến đến hệ thống và lưu trữ vào cơ sở dữ liệu thông qua các RESTful API.
Đối với phần Web UI, sinh viên thực hiện xây dựng giao diện Web hiển thị các thông tin cơ
bản như sau:
2. Dashboard: hiển thị các thông tin chung nhất về website, bao gồm: thông tin chào mừng
người sử dụng, thông tin nhóm, tình trạng thiết bị đang kết nối đến hệ thống (tên thiết bị,
thiết bị còn hoạt động hay không?, lần cuối cùng kết nối).
Lưu ý: số lượng thiết bị kết nối đến hệ thống phải từ 2 trở lên (1 Wemos D1, 1 Raspberry
Pi,...).
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
6
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
3. Màn hình chính: dùng để thể hiện các tương tác với hệ thống, bao gồm: thể hiện các giá
trị cảm biến ở thời điểm hiện tại (tên giá trị, giá trị của cảm biến), chức năng điều khiển 2
Gợi ý: để điều khiển được 2 đèn LED một cách real-time, sinh viên sử dụng MQTT để thực
hiện nội dung này. Xây dựng MQTT Broker trên Raspberry Pi và button trên website để
publish message lên topic "led/n1" hoặc "led/n2", Wemos D1 gắn với đèn thực hiện subcribe
3. Biểu đồ: dùng để thể hiện các giá trị cảm biến thu thập được từ phần thiết bị một cách
trực quan bằng biểu đồ, bảng biểu. Cụ thể như sau: các giá trị cảm biến bao gồm 3 loại
(nhiệt độ, độ ẩm, ánh sáng), yêu cầu thể hiện 3 loại giá trị này ở 3 dạng biểu đồ khác nhau.
https://canvasjs.com/,...
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
7
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
Mở rộng: các biểu đồ thể hiện các giá trị cảm biến được biểu diễn một cách real-time.
4. Logs: thể hiện các log của hệ thống để người quản trị có thể dễ dàng tương tác, quản lý
đối với hệ thống. Cụ thể như sau: ghi lại các giá trị cảm biến từ phần thiết bị gửi đến (ID
của thiết bị, tên thiết bị, địa chỉ IP, tên giá trị, giá trị cảm biến, thời gian nhận dữ liệu). Có
chức năng phân trang để hạn chế dữ liệu khổng lồ được tải về, chức năng "refresh" để
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
8
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
Hình 6. Giao diện minh hoạ log cảm biến của hệ thống
Mở rộng: hiển thị dữ liệu một cách real-time mà không cần sử dụng tính năng "refresh".
Đồng thời, người dùng có thể lọc lại các dữ liệu mà họ mong muốn hoặc download toàn
5. (Mở rộng) thêm chức năng đăng nhập xác thực với username và password cho hệ thống
website.
Đối với phần API, Database sinh viên thực hiện các yêu cầu sau:
6. Sử dụng một ngôn ngữ lập trình bất kỳ để lập trình các RESTful API. Tất cả các phương
thức HTTP (GET, POST, PUT, DELETE) đều phải thực hiện dưới dạng JSON như sau:
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn
9
Lab 04: Xây dựng Dashboard và hoàn thiện cơ bản mô hình IoT
{
"error": true,
"message": "this is a message of API",
"data": {
"temperature": value,
"light": value,
}
}
Gợi ý: một số ngôn ngữ lập trình, framework có thể sử dụng: NodeJS, Laravel - PHP,
ASP.NET,...
7. Đối với cơ sở dữ liệu, sinh viên có thể sử dụng một loại bất kỳ (SQL hoặc NoSQL),
khuyến khích sử dụng cơ sở dữ liệu NoSQL như MongoDB. Sinh viên cần trình bày cách
thiết kế cơ sở dữ liệu của nhóm vào báo cáo để dễ dàng theo dõi trong quá trình quan sát.
▪ Sinh viên báo cáo kết quả thực hiện và nộp bài bằng file. Trong đó:
- Trình bày chi tiết quá trình thực hành và trả lời các câu hỏi nếu có (kèm theo các
- Tải mẫu báo cáo thực hành và trình bày theo mẫu được cung cấp.
Nén tất cả các file và đặt tên file theo định dạng theo mẫu:
Mã lớp-LabX_MSSV1_MSSV2
Ví dụ: NT532.M21.1-Lab01_19520001_19520002
- Nộp báo cáo trên theo thời gian đã thống nhất tại website môn học.
- Các bài nộp không tuân theo yêu cầu sẽ KHÔNG được chấm điểm.
HẾT
Chúc các bạn hoàn thành tốt bài thực hành!
KHOA MẠNG MÁY TÍNH & TÀI LIỆU THỰC HÀNH CÔNG NGHỆ INTERNET OF THINGS HIỆN ĐẠI
TRUYỀN THÔNG GVHD: Phan Trung Phát – phatpt@uit.edu.vn