HC VI N CÔNG NGH BƯU CHÍNH VI N
THÔNG
KHOA CÔNG NGH THÔNG TIN 1
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯
⎯⎯⎯⎯⎯⎯
⎯⎯
⎯⎯
⎯⎯
⎯⎯⎯⎯
BÁO CÁO BÀI T P IOT VÀ NG D NG
Đ TÀI: XÂY DNG H TH NG CM BI N IOT
Mã sinh viên: B21DCCN575
Nhóm l p h c: 05
Ging viên gi ng d y: Nguy n Qu c Uy
HÀ N I 2024
2
Mc l c
Chương .................................................................................................... 41: Gii thiu
I. T ng quan d án ................................................................................................. 4
1. Mc đích ca d án IoT Dashboard .................................................................. 4
2. c tính năng chính ca h thng ..................................................................... 4
II. Công ngh s dng ............................................................................................. 5
1. Backend (Node.js, Express.js) ........................................................................... 5
2. Frontend (React.js) ............................................................................................ 5
3. s d liu (MySQL với Prisma ORM) ........................................................ 5
4. Giao thc truyn thông MQTT ......................................................................... 5
5. Phn cng ESP32, DHT11 ................................................................................ 5
Chương din 2: Giao ..................................................................................................... 6
I. Trang Dashboard ............................................................................................ 6
II. Trang Data Sensor .......................................................................................... 7
III. Trang Action History ...................................................................................... 8
IV. Trang Profile .................................................................................................... 9
Chương 3: Thiết kế tng th chi tiết và .................................................................... 10
I. Kiến trúc h thng ............................................................................................ 10
1. Sơ đ tng quan v kiến trúc h thng ............................................................ 10
2. Mô t lung d liu và tương tác gia các thành phn ................................... 10
II. Thiết kế Backend .............................................................................................. 10
1. Cấu trúc thư mc và file .................................................................................. 10
2. API ............................................................................ 11endpoints và chc năng
3. X lý d điu khin thiết b liu cm biến và ................................................. 11
III. Kết ni MQTT ................................................................................................... 11
1. Cấu hình MQTT broker ................................................................................... 11
2. X lý tin ESP32 ..................................................................... 12nhn MQTT t
3. Gi lnh điu khin qua MQTT ...................................................................... 12
IV. hình d liu ................................................................................................. 12
1. Cấu trúc d liu cm biến bng ....................................................................... 12
2. Cấu trúc bng lch s hành đng ..................................................................... 13
V. Lập trình ESP32 ............................................................................................... 13
1. Cấu hình kết ni WiFi và MQTT .................................................................... 13
3
2. Đc qua MQTT .................................................... 13d liu t cm biến và gi
3. Nhn lnh điu khin và thc thi .................................................................... 14
Chương 4: Kết qu ...................................................................................................... 14
I. Chc năng đã hoàn thành ................................................................................ 14
1. Lit kê các ................................................ 14tính năng đã trin khai thành công
II. Hiu sut h thng ............................................................................................ 15
1. Đánh giá v tc đ phn hi ............................................................................ 15
2. Đ chính xác ca d liu cm biến ................................................................. 16
III. Ci tiến trong .................................................................................... 16tương lai
1. Tăng cường bo mt ........................................................................................ 16
2. Cải thin kh năng m rng ............................................................................ 16
3. Nâng cao tri nghim ngưi dùng ................................................................... 16
4. Mrng kh năng tương thích ........................................................................ 16
5. Ti ưu hóa năng lưng .................................................................................... 16
6. Cải thin kh năng phân tích ........................................................................... 16
7. Tăng cường đ tin cy ..................................................................................... 17
Li cm ơn .................................................................................................................... 18
4
Chương 1: Gii thiu
I. Tổng quan d án
1. Mc án IoT Dashboard đích ca d
D án IoT Dashboard được phát trin nhm mc đích to ra mt h thng
giám sát và điu khin thông minh cho môi trường trong nhà. H thng này kết hợp
công phép ngh Internet of Things (IoT) vi giao din người dùng trc quan, cho
người dùng theo dõi hông s môi trường và điu khin thiết b t các t các xa
mt cách d dàng và hiu qu.
Các mc tiêu chính ca d án bao gm:
1. Giám sát môi trường: Thu thp và hin th d liu v nhit đ, đ m và ánh
sáng trong thời gian thc.
2. Điu khin thiết b: Cung cp kh năng điu khin t xa các thiết b như đèn
LED, qut và không khí. điu hòa
3. Phân tích d liu: Lưu tr d liu lch s đ đưa ra các xu hướng và phân tích
và thông tin chi tiết v môi trường.
4. T đng hóa: Thiết lp các quy tc t đng đ điu chnh thiết b da trên
các điu kin môi trưng.
5. Giao din thân thin: Cung cp mt dashboard trc quan và d s dng
cho người dùng.
2. c tính năng chính ca h thng
Hin th d li u th i gian th c:
Biu đ , đ ng đ đng hin th nhit đ m và cư ánh sáng.
Cp nh t liên t các c m bi t n i. c t ến đưc kế
Điu khi n b t t t các thi t b khác t xa ế
Bng đi n tương tácu khi
Giao din tr i dùng d u khi n c quan cho phép ngư dàng xem và đi
thiết b.
Hin th tr ng thái hi n t i c t c t b a t các thiế đưc kết n i.
Lưu tr và truy xut d liu lch s
Lưu tr ến và hành đng đi tt c d liu cm bi u khin.
Cung c p kh li u l . năng xem và phân tích d ch s
Bo m t
Xác th m b o ch nh c y quy n m i c người dùng đ đ ng ngưi đư
có th truy c u khi n h th ng. p và đi
Mã hóa d li u truy n t i gi n c th ng. a các thành ph a h
API RESTful
Cung c p API cho phép tích h p v i các h th ng và ng d ng khác.
H tr truy v n d li u khi n thi t b thông qua các yêu c u u và đi ế
HTTP.
Kh năng m rng
Thiết k module cho phép d dàng thêm các lo i c m bi n và thi t b m i. ế ế ế
5
H tr nhi u phòng ho c khác nhau trong m t h th ng. c khu v
D án IoT Dashboard này không ch cung c p m t gi i pháp toàn di n cho vi c
giám sát và đi n môi trường trong nhà, mà còn đu khi t nn tng cho vic phát
trin và m r ng tng trong tương lai, hư i m t h sinh thái nhà thông minh
hoàn ch nh.
II. Công ngh s dng
D án IoT Dashboard s d ng m t lo t các công ngh hi xây d ng m t h n đi đ
thng giám sát và điu khi n toàn di t v các công ngh n. Dưới đây là chi tiế đưc
s d ng trong t ng ph n c a d án
1. Backend (Node.js, Express.js)
Node.js: N n t ng ch y JavaScript phía máy ch c s d xây d ng , đư ng đ
server.
Express.js: Framework web cho Node.js, giúp xây d ng API RESTful m t
cách nhanh chóng và hiu qu .
Prisma ORM: ORM (Object-Relational Mapping) hi i cho Node.js và n đ
TypeScript, giúp tương tác với cơ s d liu mt cách d dàng và type-safe.
2. Frontend (React.js)
React.js: Thư vi JavaScript đ n ngưn xây dng giao di i dùng, giúp to ra
các ng d ng và hi u qu . ng web đ
React Router: Thư vin đnh tuyến cho React, giúp xây dng ng dng mt
trang (SPA) v i nhi u route.
Chart.js: Thư vin JavaScript đ u đ, đư ng đ v bi c s d hin th d liu
cm bi i d th . ến dư ng đ
Axios: Thư vi a trên Promise, đưn HTTP client d c s d g i yêu c u ng đ
API t frontend đến backend.
WebSocket: Công ngh cho phép giao ti p hai chi u gi a client và server, ế
đư c s d cng đ p nht d liu th i gian thc.
3. s d liu (MySQL với Prisma ORM)
MySQL - H qu n tr d li u quan h mã ngu n m d cơ s ở, đưc s ng đ
Lưu tr , đ d liu cm biến (nhit đ m, ánh sáng) theo thi gian thc.
Ghi li l ch s ho ng c t b (b u hòa). t đ a các thiế t/tt đèn, qut, đi
Qun lý thông tin ngưi dùng và quyn truy cp.
4. Giao thc truyn thông MQTT
MQTT (Message Queuing Telemetry Transport): Giao thc truyn thông
nh, được s dng đ truyn d liu gia ESP32 và server.
HTTP/HTTPS: Giao thc truyn ti siêu văn bn, được s dng trong API
RESTful đ giao tiếp gia frontend và backend.
5. Phn cng ESP32, DHT11
6
Arduino IDE: Môi trưng phát trin tích hp đưc s dng đ lp trình cho
ESP32.
ESP32: Vi điu khin có kh năng kết ni WiFi và Bluetooth, được s dng
làm thiết b IoT chính.
DHT11: Cảm biến nhit đ và đ m, được s dng đ đo các thông s môi
trường.
LDR (Light Dependent Resistor): Cảm biến ánh sáng, được s dng đ đo
cường đ ánh sáng.
6. Công c phát trin qun lý mã ngun
Git: H thng qun lý phiên bn phân tán, được s dng đ qun lý mã ngun.
GitHub: Nn tng lưu tr mã ngun trc tuyến, đưc s dng đ lưu tr và
chia s mã ngun d án.
Postman: Công c phát trin API, được s dng đ kim th và tài liu hóa
API.
Vic s d ng các công ngh này cho phép xây d ng m t h th ng IoT Dashboard
mnh m , có kh r ng và d b o trì. S k t h năng m ế p gi a các công ngh
frontend hin đi, backend mnh m và thiết b IoT linh hot to nên mt gii
pháp toàn di n cho vi u khi ng thông minh. c giám sát và đi n môi trư
Chương 2: Giao din
I. Trang Dashboard
Hình 1. Trang Dashboard
Bng thông s hi n t i
Nhit đ t đ u tư (Temperature): Hin th nhi hin ti vi bi ng nhit
kế.
Đ m (Humidity): Hin th đ m hi n t i v i bi ng gi c. u tư t nư
Ánh sáng (Light): Hi n th cường đ ánh sáng hi n t i v i bi u tưng mt
tri.
7
Biu đ theo dõi
Biu đ kết hợp hin th d liu nhit đ đ m theo thời gian. và
- Đường màu đ th hin nhit đ.
- Đường màu xanh dương th hin đ m.
Biu đ ánh in th cường đ ánh sáng theo thời gian bng đường sáng h
màu vàng.
Điu khi n thi t b : ế
Phn "Device" hi n th các thiết b có th điu khi n
Qu t/tt (Fan): Bi ng qu t vu tư i công t c b t.
Điu hòa (Air Conditioner): Bi u hòa v i công t t. u tưng đi c bt/t
Đèn (Light): Bi i công tu tưng bóng đèn v c bt/tt.
Giao din này cho phép ngưi dùng:
Theo dõi các thông s môi trưng theo th i gian th c.
Xem xu hướng thay đ t đ, đi ca nhi m và ánh sáng qua thi gian.
Điu khi n các thi t b u hòa và t cách thu n ti n. ế như qut, đi đèn m
II. Trang Data Sensor
Hình 2. Trang Data Sensor
Thanh tìm kiếm:
Ô nhp li u cho phép tìm ki m theo ID, Temperature, Humidity, Light, ho c ế
Time.
Dropdown menu đ chn ph m vi tìm kiếm (hi n th "Tn đang hi t c ").
Nút "Search" đ thc hin tìm kiếm.
Bng d li u c m bi n: ế
Hin th d li i d ng b ng v u dư i các c t:
ID: S nh danh duy nh t cho m i b n ghi. đ
Temperature (°C): Nhit đ đưc đo.
Humidity (%): Đ m đưc đo.
8
Light (nits): Cường đ ợc đo. ánh sáng đư
Time: Thi gian ghi nh n d li u.
Mi c t có bi ng, cho phép s p x p d li u. u tượng mũi tên lên/xu ế
Trang Data Sensor này cho phép ngưi dùng
Xem d li u c m bi n chi ti t theo th i gian. ế ế
Tìm kiếm d li u c th d a trên các tiêu chí khác nhau.
Sp x p d li u theo b t k c ng. ế t nào đ phân tích xu hư
Theo dõi s thay đi ca các thông s môi trưng theo thi gian.
Giao din này r t h u ích cho vi c phân tích d li u l ch s , ki ng, và xác m tra xu hư
đ đinh bt k m b c giám sát. t thường nào trong môi trường đư
III. Trang Action History
Hình 3. Trang Action History
Thanh tìm kiếm:
Dropdown menu đ chn loi thiết b (hi n th n đang hi "ALL").
Ô nhp li u cho phép tìm ki m theo th i gian, v nh d ng "hh:mm:ss ế i đ
dd/mm/yyyy".
Nút "Search" đ thc hin tìm kiếm.
Bng lch s ng: hành đ
Hin th d li i d ng b ng v u dư i các c t:
ID: S nh danh duy nh t cho m ng. đ i hành đ
Device: Lo i thi t b ế đưc điu khin (AIR_CONDITIONER, LED, FAN).
Hành đng: Tr ế ng thái ca thi t b (ON ho c OFF).
Time: Thi gian th c hi ng. n hành đ
Trang Action History này cho phép ngưi dùng:
Xem l ch s chi ti t v u khi n thi t b . ế các hành đng đi ế
Tìm kiếm các hành đng c th da trên loi thiết b hoc thi gian.
9
Theo dõi th t và t n su t c u khi n. a các hành đng đi
Phân tích mô hình s d ng thi t b theo th i gian. ế
Giao din này r t h u ích cho vi c:
Kim tra lch s ho ng c t đ a h th ng.
Xác đnh các mô hình s dng thiết b.
Điu tra các v ho c n vi u khi n thi t b . n đ c s liên quan đế c đi ế
Ti ưu hóa ng năng lưvic s d ng bng cách phân tích thói quen s dng
thiết b.
IV. Trang Profile
Hình 4. Trang Profile
Th thông tin cá nhân: Đưc hin th dưi d ng m t th t màu xanh dương nh
gia trang.
nh đi din: Hình nh tròn ca ngưi dùng nm phía trên ca th.
Thông tin cơ bn:
n: Le Huy Hong Nhat
Chc danh: Student at PTIT
Thông tin chi tiết:
MSV (Mã sinh viên): B21DCCN575_D21HTTT06
Email: NhatLHH.B21CN575@stu.ptit.edu.vn (vi bi ng email) u tư
S đin tho i: 0949794366 (v i bi n tho i) u tượng đi
GitHub: Le Huy Hong Nhat (vi bi ng GitHub) u tư
Download PDF: Liên kế t đ t i xu ng tài li u PDF (v i bi ng tài li u) u tư
API Documentation: Liên kế ết đ n tài li u API (v i bi ng sách) u tư
Trang Profile này cung cp:
Thông tin cá nhân và hc tp c i dùng. a ngư
c phương thc liên lc (email, s đin thoi).
10
Liên k n tài kho n GitHub cá nhân. ế ết đ
Kh năng ti xung tài liu PDF ca d án.
Truy cp nhanh đến tài liu API ca d án.
Thiết k g n gàng và trế c quan này giúp:
Ngưi dùng d dàng xem và cp nht thông tin cá nhân.
Cung c p m liên h v i ch d án. t cách nhanh chóng đ
To điu kin thun li cho vic chia s thông tin d án và tài liu k thu t.
Giao di n này th hi n tính chuyên nghi p và cung c p m t cách ti p c n t ế p trung đ qun
lý thông tin cá nhân và tài li u d án trong m t h th ng IoT Dashboard.
Chương 3: Thiết kế tng th chi tiết
I. Kiến trúc h thng
1. Sơ đ tng quan v kiến trúc h thng
H th ng c n bao g m các thành ph n chính sau: a b
ESP32: Thi t b ph n cế ng đc d li u t c m bi ến và điu khi n các thi t ế
b u hòa. như qut, đèn LED, và đi
MQTT Broker: Trung gian truy n tin gi a ESP32 và Backend.
Backend (Node.js): X lý logic nghi p v d li u, và cung c p , lưu tr
API cho Frontend.
Database (MySQL): Lưu tr d liu cm biến và lch s ng. hành đ
Frontend (React): Giao di hi n th d li u khi n n ngưi dùng đ u và đi
thiết b.
2. Mô t lung d liu và tương tác gia các thành phn
a. Lu ng d li u c m bi n ế
ESP32 đ t đ, đc d liu t cm biến (nhi m, ánh sáng) ESP32 g i d
liu qua MQTT đến MQTT Broker Backend nh n d li u t MQTT Broker
và lưu vào database Frontend đ Backend đ nh k gi API t ly d liu
mi nh t và hi n th .
b. Lu ng điu khin thiết b
Người dùng tương tác v n trên Frontend đi giao di điu khin thiết b
Frontend g i yêu c u khi n Backend thông qua API Backend x u đi n đế
lý yêu c u và g i l nh đi n qua MQTT đếu khi n ESP32 ESP32 nh n l nh
và th c hi u khi n thi t b ng. n đi ế tương
II. Thiết kế Backend
1. Cấu trúc thư mc và file
11
Hình 5. Cu trúc thư mc BE
2. API endpoints và chc năng
a) D li u c m bi n: ế
GET /table/data: Ly d li u c m bi n v i các tùy ch n l c và phân trang. ế
POST /data: Lưu d liu cm biến mi (đưc g i t MQTT subscriber).
b) L ch s ng: hành đ
GET /table/action: L y l ch s hành đng v i các tùy ch n l c và phân trang.
3. X lý d điu khin thiết b liu cm biến và
D li u c m bi ến đưc nhn qua MQTT và lưu vào database thông qua hàm
createDataSensor trong models/dataSensor.js.
Lnh điu khin thiết b đưc nhn qua API, x lý trong
controllers/actionHistory.js, và gi qua MQTT đến ESP32.
III. Kết ni MQTT
1. Cấu hình MQTT broker
S d k t n i vng thư vin mqtt đ ế i MQTT broker.
Cu hình k t n ế i đưc đnh nghĩa trong src/index.js:
12
2. X lý tin MQTT nhn t ESP32
Subscribe vào các topic c n thi t: ế
X lý tin nh n nh c: n đư
3. Gi lnh điu khin qua MQTT
Khi nhận được yêu cầu điều khiển từ Frontend, Backend gửi lệnh qua MQTT:
IV. hình d liu
1. Cấu trúc d liu cm biến bng
13
2. Cấu trúc bng lch s hành đng
V. Lập trình ESP32
1. Cấu hình kết ni WiFi và MQTT
2. Đc d liu t cm biến và gi qua MQTT
14
3. Nhn lnh điu khin và thc thi
Chương 4: Kết qu
I. Chc năng đã hoàn thành
1. Lit kê các tính năng đã trin khai thành công
a) Thu th p và hi n th d li u c m bi n: ế
H th c thu th p d li u t các c m bi n nhi t ng đã thành công trong vi ế
đ, đ m và ánh sáng thông qua ESP32.
D li d li u MySQL. u đưc truyn qua MQTT và lưu tr trong cơ s
15
Frontend hi n th d li u c m bi i d ng b ng và bi th i gian ến dư u đ
thc.
b) Điu khin thiết b t xa:
Ngưi dùng có th u khi n qu u hòa thông qua giao đi t, đèn LED và đi
din web.
Lnh đi n đưu khi c gi t Frontend đến Backend, sau đó truyn qua
MQTT đến ESP32.
ESP32 thc hi n l u khi n và g i ph n h i v tr ng thái thi t b . nh đi ế
c) Lưu tr hành đ và hin th lch s ng:
H th ng ghi l i t t c u khi n thi t b . các hành đng đi ế
Ngưi dùng có th xem l ch s ng v i các tùy ch n l c và phân hành đ
trang.
d) Giao di i dùng thân thi n: n ngư
Frontend đưc phát trin bng React, cung cp giao din trc quan và d
s dng.
Ngưi dùng có th d dàng chuy i gi a các ch xem khác nhau: n đ ế đ
Dashboard, Data Sensor, Action History và Profile.
e) API linh ho t:
Backend cung c p các API endpoint cho phép truy xu t d li u c m bi n ế
và l ch s ng v i nhi u tùy ch n l p x p và phân trang. hành đ c, s ế
f) chế xóa d liu t đng:
H th ng t ng xóa các b gi l i 100 b n ghi m i nh đ n ghi cũ, ch t đ
ti ưu hóa hi t và không gian lưu tru su .
II. Hiu sut h thng
1. Đánh giá v tc đ phn hi
a) Th i gian ph n h i API:
Các API endpoint có th i gian ph n h i 200ms cho các i trung bình dư
truy v n. n cơ b
Đ i v i các truy vn phc t : tìm kip hơn (ví d ếm vi nhi u kiu đi n),
thi gian ph n h i v i 500ms. n dư
b) Đ tr điu khin thiết b:
Thi gian t i dùng g i l u khi n khi thi t b khi ngư nh đi n đế ế th c s
thay đi trng thái trung bình khong 1-2 giây.
Phn l tr này là do th i gian truy n tin qua MQTT và x lý trên ớn đ
ESP32.
16
c) C p nh t d li u th i gian th c:
D li u c m bi c c p nh t trên giao di i dùng m i 2 giây, ến đư n ngư
đ m bo thông tin luôn m i nht.
2. Đ chính xác ca d liu cm biến
a) Nhit đ:
Đ chính xác: ±0.5°C
Đ phân gii: 0.1°C
b) Đ m:
Đ chính xác: ±2% RH
Đ phân gii: 0.1% RH
c) Ánh sáng:
Đ đo chính xác: ±5% c a giá tr
Đ phân gii: 1 lux
III. Ci tiến trong tương lai
1. Tăng cưng b o m t
Trin khai h th ng xác th i dùng. c và phân quyn ngư
S d ng SSL/TLS cho k t n ế i MQTT và API.
Thêm cơ chế trong cơ s mã hóa d liu nhy cm d liu.
2. C i thi n kh r ng năng m
Trin khai cơ chế caching đ gim ti cho database.
Xem xét s d d li li u c m ng cơ s u NoSQL như MongoDB cho d
biến đ tăng hi t khi lưu tr u su d liu ln.
Trin khai load balancing cho Backend khi s lượng request tăng cao.
3. Nâng cao tr i nghi i dùng m ngư
Thêm tính năng thông báo và cnh báo khi các ch s ng. vượt ngư
Phát tri n ng d i dùng có th u khi n ng di đng đ ngư theo dõi và đi
t xa d dàng hơn.
ch h p trí tu nhân t xu t t ng d a o đ đưa ra các đ i ưu hóa năng lư
trên d li u c m bi n. ế
4. M r ng kh năng tương thích
H tr thêm các lo i c m bi n và thi t b IoT khác. ế ế
Phát tri cho phép các nhà phát tri n bên th ba tích h p v i h n SDK đ
thng.
5. Ti ưu hóa năng lưng
Trin khai ch ng sâu cho ESP32 khi không c n thu th p d li u. ế đ
Điu ch nh t n su t g i d li u d i c a các ch s . a trên mc đ thay đ
6. C i thi n kh năng phân tích
Thêm các công c phân tích d li cung c p insights v xu u nâng cao đ
hưng và mu tiêu th năng lưng.
17
ch h d c s dợp machine learning đ đoán và ti ưu hóa vi ng năng
lưng.
7. Tăng cường đ tin cy
Trin khai cơ chế backup và khôi phc d liu t đng.
Ci thi phát hi n và x lý s c nhanh chóng. n logging và monitoring đ
Nhng c i ti n và m r ế ng này s giúp h th ng tr nên m nh m , an toàn và linh
hot hơn, đáp ng đư u ngày càng tăng ca ngưc nhu c i dùng và thích ng v i các
xu hư ới trong lĩnh v n lý năng lưng công ngh m c IoT và qu ng thông minh.
18
Li c ảm ơn
Em xin gi l i c n th y Nguy n Qu c Uy, gi ng viên môn h c m ơn sâu sc đế
Internet of Things và ng d ng t i H n Công ngh n thông. c vi u chính Vi
Trong sut khóa h c, th t ki n th t cách t n tâm và chuyên y đã truyn đ ế c m
nghip, giúp em và các b n sinh viên hi u sâu s n c v lĩnh vc IoT đang phát tri
nhanh chóng. Nh ng bài gi ng và các ví d th c n ng sinh đ c tế a thy đã truy
cm h y ni i công ngh và m ra nhing cho chúng em, khơi d m đam mê v u cơ
hi m nghi p. ới trong tương lai ngh
Thy không ch là m i th y giàu kinh nghi m mà còn là m i c v n t n t ngư t ngư
ty. S hưng d n và ng h c a th y trong quá trình th c hin đ án này đã giúp
em vưt qua nhi n du khó khăn, t đó hoàn thi án mt cách tt nht.
Kiến th c và k môn h n s là n n t ng v ng năng em hc đưc t c này ch c ch
chc cho s phát tri n ngh nghi p c m a em trong tương lai. Em xin chân thành c
ơn th ng đóng góp quý báu này.y vì tt c nh
Kính chúc th y luôn m nh kh nh phúc và thành công trong s nghi p gi ng e, h
dy cao quý c a mình.
Trân trng,
Huy H ng Nh t

Preview text:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGH THÔNG TIN 1
⎯⎯⎯⎯⎯⎯⎯⎯⎯
BÁO CÁO BÀI TP IOT VÀ NG DNG
ĐỀ TÀI: XÂY DNG H THNG CM BIN IOT
H và tên: Lê Huy Hng Nht Mã sinh viên: B21DCCN575
Nhóm l
p hc: 05
Gi
ng viên ging dy: Nguyn Quc Uy
HÀ NI 2024 Mc lc
Chương 1: Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
I. Tng quan d án . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1. Mục đích của dự án IoT Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Các tính năng chính của hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
II. Công nghệ sử dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1. Backend (Node.js, Express.js) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Frontend (React.js) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Cơ sở dữ liệu (MySQL với Prisma ORM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Giao thức truyền thông MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
5. Phần cứng ESP32, DHT11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Chương 2: Giao diện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
I. Trang Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
II. Trang Data Sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
III. Trang Action History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
IV. Trang Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Chương 3: Thiết kế tổng thểchi tiết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I. Kiến trúc hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Sơ đồ tổng quan về kiến trúc hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2. Mô tả luồng dữ liệu và tương tác giữa các thành phần . . . . . . . . . . . . . . . . . . 10
II. Thiết kế Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1. Cấu trúc thư mục và file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2. API endpoints và chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3. Xử lý dữ liệu cảm biến và điều khiển thiết bị . . . . . . . . . . . . . . . . . . . . . . . . . 11
III. Kết nối MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1. Cấu hình MQTT broker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2. Xử lý tin nhắn MQTT từ ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3. Gửi lệnh điều khiển qua MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
IV. Mô hình dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1. Cấu trúc bảng dữ liệu cảm biến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2. Cấu trúc bảng lịch sử hành động . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
V. Lập trình ESP32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Cấu hình kết nối WiFi và MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2
2. Đọc dữ liệu từ cảm biến và gửi qua MQTT . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Nhận lệnh điều khiển và thực thi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Chương 4: Kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
I. Chức năng đã hoàn thành . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1. Liệt kê các tính năng đã triển khai thành công . . . . . . . . . . . . . . . . . . . . . . . . 14
II. Hiệu suất hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1. Đánh giá về tốc độ phản hồi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. Độ chính xác của dữ liệu cảm biến . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
III. Cải tiến trong tương lai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1. Tăng cường bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2. Cải thiện khả năng mở rộng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3. Nâng cao trải nghiệm người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4. Mở rộng khả năng tương thích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5. Tối ưu hóa năng lượng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
6. Cải thiện khả năng phân tích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7. Tăng cường độ tin cậy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Lời cảm ơn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3
Chương 1: Gii thiu
I. Tổng quan dự án
1. Mục đích của dự án IoT Dashboard
Dự án IoT Dashboard được phát triển nhằm mục đích tạo ra một hệ thống
giám sát và điều khiển thông minh cho môi trường trong nhà. Hệ thống này kết hợp
công nghệ Internet of Things (IoT) với giao diện người dùng trực quan, cho phép
người dùng theo dõi các thông số môi trường và điều khiển các thiết bị từ xa
một cách dễ dàng và hiệu quả.
Các mục tiêu chính của dự án bao gồm:
1. Giám sát môi trường: Thu thập và hiển thị dữ liệu về nhiệt độ, độ ẩm và ánh
sáng trong thời gian thực.
2. Điều khiển thiết bị: Cung cấp khả năng điều khiển từ xa các thiết bị như đèn
LED, quạt và điều hòa không khí.
3. Phân tích dữ liệu: Lưu trữ và phân tích dữ liệu lịch sử để đưa ra các xu hướng
và thông tin chi tiết về môi trường.
4. Tự động hóa: Thiết lập các quy tắc tự động để điều chỉnh thiết bị dựa trên
các điều kiện môi trường.
5. Giao diện thân thiện: Cung cấp một dashboard trực quan và dễ sử dụng cho người dùng.
2. Các tính năng chính của hệ thống
➢ Hiển thị dữ liệu thời gian thực:
• Biểu đồ động hiển thị nhiệt ộ đ , độ ẩm và c ờ ư ng độ ánh sáng.
• Cập nhật liên tục từ các cảm biến được kết nối.
➢ Điều khiển bật tắt các thiết bị khác từ xa
➢ Bảng điều khiển tương tác
• Giao diện trực quan cho phép người dùng dễ dàng xem và điều khiển thiết bị.
• Hiển thị trạng thái hiện tại của tất cả các thiết bị được kết nối.
➢ Lưu trữ và truy xuất dữ liệu lịch sử
• Lưu trữ tất cả dữ liệu cảm biến và hành động điều khiển.
• Cung cấp khả năng xem và phân tích dữ liệu lịch sử. ➢ Bảo mật
• Xác thực người dùng để đảm bảo chỉ những người được ủy quyền mới
có thể truy cập và điều khiển hệ thống.
• Mã hóa dữ liệu truyền tải giữa các thành phần của hệ thống. ➢ API RESTful
• Cung cấp API cho phép tích hợp với các hệ thống và ứng dụng khác.
• Hỗ trợ truy vấn dữ liệu và điều khiển thiết bị thông qua các yêu cầu HTTP. ➢ Khả năng mở rộng
• Thiết kế module cho phép dễ dàng thêm các loại cảm biến và thiết bị mới. 4
• Hỗ trợ nhiều phòng hoặc khu vực khác nhau trong một hệ thống.
Dự án IoT Dashboard này không chỉ cung cấp một giải pháp toàn diện cho việc
giám sát và điều khiển môi trường trong nhà, mà còn đặt nền tảng cho việc phát
triển và mở rộng trong tương lai, hướng tới một hệ sinh thái nhà thông minh hoàn chỉnh.
II. Công nghệ sử dụng
Dự án IoT Dashboard sử dụng một loạt các công nghệ hiện đại để xây dựng một hệ
thống giám sát và điều khiển toàn diện. Dưới đây là chi tiết về các công nghệ được
sử dụng trong từng phần của dự án
1. Backend (Node.js, Express.js)
• Node.js: Nền tảng chạy JavaScript phía máy chủ, được sử dụng để xây dựng server.
• Express.js: Framework web cho Node.js, giúp xây dựng API RESTful một
cách nhanh chóng và hiệu quả.
• Prisma ORM: ORM (Object-Relational Mapping) hiện đại cho Node.js và
TypeScript, giúp tương tác với cơ sở dữ liệu một cách dễ dàng và type-safe. 2. Frontend (React.js)
• React.js: Thư viện JavaScript để xây dựng giao diện người dùng, giúp tạo ra
các ứng dụng web động và hiệu quả.
• React Router: Thư viện định tuyến cho React, giúp xây dựng ứng dụng một
trang (SPA) với nhiều route.
• Chart.js: Thư viện JavaScript để vẽ biểu đồ, được sử dụng để hiển thị dữ liệu
cảm biến dưới dạng đồ thị.
• Axios: Thư viện HTTP client dựa trên Promise, được sử dụng để gửi yêu cầu
API từ frontend đến backend.
• WebSocket: Công nghệ cho phép giao tiếp hai chiều giữa client và server,
được sử dụng để cập nhật dữ liệu thời gian thực.
3. Cơ sở dữ liệu (MySQL với Prisma ORM)
MySQL - Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở, được sử dụng để
• Lưu trữ dữ liệu cảm biến (nhiệt ộ
đ , độ ẩm, ánh sáng) theo thời gian thực.
• Ghi lại lịch sử hoạt động của các thiết bị (bật/tắt đèn, quạt, điều hòa).
• Quản lý thông tin người dùng và quyền truy cập.
4. Giao thức truyền thông MQTT
• MQTT (Message Queuing Telemetry Transport): Giao thức truyền thông
nhẹ, được sử dụng để truyền dữ liệu giữa ESP32 và server.
• HTTP/HTTPS: Giao thức truyền tải siêu văn bản, được sử dụng trong API
RESTful để giao tiếp giữa frontend và backend. 5. Phần cứng ESP32, DHT11 5
• Arduino IDE: Môi trường phát triển tích hợp được sử dụng để lập trình cho ESP32.
• ESP32: Vi điều khiển có khả năng kết nối WiFi và Bluetooth, được sử dụng làm thiết bị IoT chính .
• DHT11: Cảm biến nhiệt độ và độ ẩm, được sử dụng để đo các thông số môi trường.
• LDR (Light Dependent Resistor): Cảm biến ánh sáng, được sử dụng để đo cường độ ánh sáng.
6. Công cụ phát triển quản lý mã nguồn
• Git: Hệ thống quản lý phiên bản phân tán, được sử dụng để quản lý mã nguồn.
• GitHub: Nền tảng lưu trữ mã nguồn trực tuyến, được sử dụng để lưu trữ và
chia sẻ mã nguồn dự án.
• Postman: Công cụ phát triển API, được sử dụng để kiểm thử và tài liệu hóa API.
Việc sử dụng các công nghệ này cho phép xây dựng một hệ thống IoT Dashboard
mạnh mẽ, có khả năng mở rộng và dễ bảo trì. Sự kết hợp giữa các công nghệ
frontend hiện đại, backend mạnh mẽ và thiết bị IoT linh hoạt tạo nên một giải
pháp toàn diện cho việc giám sát và điều khiển môi trường thông minh.
Chương 2: Giao din I. Trang Dashboard Hình 1. Trang Dashboard
➢ Bảng thông số hiện tại
• Nhiệt độ (Temperature): Hiển thị nhiệt độ hiện tại với biểu tượng nhiệt kế.
• Độ ẩm (Humidity): Hiển thị độ ẩm hiện tại với biểu tượng giọt nước.
• Ánh sáng (Light): Hiển thị cường độ ánh sáng hiện tại với biểu tượng mặt trời. 6 ➢ Biểu đồ theo dõi
• Biểu đồ kết hợp hiển thị dữ liệu nhiệt độ và độ ẩm theo thời gian.
- Đường màu đỏ thể hiện nhiệt độ.
- Đường màu xanh dương thể hiện độ ẩm.
• Biểu đồ ánh sáng hiển thị cường độ ánh sáng theo thời gian bằng đường màu vàng.
➢ Điều khiển thiết bị:
Phần "Device" hiển thị các thiết bị có thể điều khiển
• Quạt (Fan): Biểu tượng quạt với công tắc bật/tắt.
• Điều hòa (Air Conditioner): Biểu tượng điều hòa với công tắc bật/tắt.
• Đèn (Light): Biểu tượng bóng đèn với công tắc bật/tắt.
➢ Giao diện này cho phép người dùng:
• Theo dõi các thông số môi trường theo thời gian thực.
• Xem xu hướng thay đổi của nhiệt độ, độ ẩm và ánh sáng qua thời gian.
• Điều khiển các thiết bị như quạt, điều hòa và đèn một cách thuận tiện. II. Trang Data Sensor Hình 2. Trang Data Sensor ➢ Thanh tìm kiếm:
• Ô nhập liệu cho phép tìm kiếm theo ID, Temperature, Humidity, Light, hoặc Time.
• Dropdown menu để chọn phạm vi tìm kiếm (hiện đang hiển thị "Tất cả").
• Nút "Search" để thực hiện tìm kiếm.
➢ Bảng dữ liệu cảm biến:
• Hiển thị dữ liệu dưới dạng bảng với các cột:
• ID: Số định danh duy nhất cho mỗi bản ghi.
• Temperature (°C): Nhiệt độ được đo.
• Humidity (%): Độ ẩm được đo. 7
• Light (nits): Cường độ ánh sáng được đo.
• Time: Thời gian ghi nhận dữ liệu.
Mỗi cột có biểu tượng mũi tên lên/xuống, cho phép sắp xếp dữ liệu.
➢ Trang Data Sensor này cho phép người dùng
• Xem dữ liệu cảm biến chi tiết theo thời gian.
• Tìm kiếm dữ liệu cụ thể dựa trên các tiêu chí khác nhau.
• Sắp xếp dữ liệu theo bất kỳ cột nào để phân tích xu hướng.
• Theo dõi sự thay đổi của các thông số môi trường theo thời gian.
Giao diện này rất hữu ích cho việc phân tích dữ liệu lịch sử, kiểm tra xu hướng, và xác
định bất kỳ điểm bất thường nào trong môi trường được giám sát.
III. Trang Action History Hình 3. Trang Action History ➢ Thanh tìm kiếm: •
Dropdown menu để chọn loại thiết bị (hiện đang hiển thị "ALL"). •
Ô nhập liệu cho phép tìm kiếm theo thời gian, với ị đ nh dạng "hh:mm:ss dd/mm/yyyy". •
Nút "Search" để thực hiện tìm kiếm.
➢ Bảng lịch sử hành động: •
Hiển thị dữ liệu dưới dạng bảng với các cột: •
ID: Số định danh duy nhất cho mỗi hành động. •
Device: Loại thiết bị được điều khiển (AIR_CONDITIONER, LED, FAN). •
Hành động: Trạng thái của thiết bị (ON hoặc OFF). •
Time: Thời gian thực hiện hành động.
➢ Trang Action History này cho phép người dùng: •
Xem lịch sử chi tiết về các hành động điều khiển thiết bị.
• Tìm kiếm các hành động cụ thể dựa trên loại thiết bị hoặc thời gian. 8 •
Theo dõi thứ tự và tần suất của các hành động điều khiển. •
Phân tích mô hình sử dụng thiết bị theo thời gian.
➢ Giao diện này rất hữu ích cho việc:
• Kiểm tra lịch sử hoạt động của hệ thống.
• Xác định các mô hình sử dụng thiết bị.
• Điều tra các vấn đề hoặc sự cố liên quan đến việc điều khiển thiết bị.
• Tối ưu hóa việc sử dụng năng lượng bằng cách phân tích thói quen sử dụng thiết bị. IV. Trang Profile Hình 4. Trang Profile
➢ Thẻ thông tin cá nhân: Được hiển thị dưới dạng một thẻ màu xanh dương nhạt ở giữa trang.
➢ Ảnh đại diện: Hình ảnh tròn của người dùng nằm ở phía trên của thẻ. ➢ Thông tin cơ bản: • Tên: Le Huy Hong Nhat
• Chức danh: Student at PTIT • Thông tin chi tiết:
• MSV (Mã sinh viên): B21DCCN575_D21HTTT06
• Email: NhatLHH.B21CN575@stu.ptit.edu.vn (với biểu tượng email)
• Số điện thoại: 0949794366 (với biểu tượng điện thoại)
• GitHub: Le Huy Hong Nhat (với biểu tượng GitHub)
• Download PDF: Liên kết ể
đ tải xuống tài liệu PDF (với biểu tượng tài liệu)
• API Documentation: Liên kết ế
đ n tài liệu API (với biểu tượng sách)
➢ Trang Profile này cung cấp:
• Thông tin cá nhân và học tập của người dùng.
• Các phương thức liên lạc (email, số điện thoại). 9 • Liên kết ế
đ n tài khoản GitHub cá nhân.
• Khả năng tải xuống tài liệu PDF của dự án.
• Truy cập nhanh đến tài liệu API của dự án.
➢ Thiết kế gọn gàng và trực quan này giúp:
• Người dùng dễ dàng xem và cập nhật thông tin cá nhân.
• Cung cấp một cách nhanh chóng để liên hệ với chủ dự án.
• Tạo điều kiện thuận lợi cho việc chia sẻ thông tin dự án và tài liệu kỹ thuật.
Giao diện này thể hiện tính chuyên nghiệp và cung cấp một cách tiếp cận tập trung để quản
lý thông tin cá nhân và tài liệu dự án trong một hệ thống IoT Dashboard.
Chương 3: Thiết kế tng th và chi tiết
I. Kiến trúc hệ thống
1. Sơ đồ tổng quan về kiến trúc hệ thống
➢ Hệ thống của bạn bao gồm các thành phần chính sau:
➢ ESP32: Thiết bị phần cứng đọc dữ liệu từ cảm biến và điều khiển các thiết
bị như quạt, đèn LED, và điều hòa.
➢ MQTT Broker: Trung gian truyền tin giữa ESP32 và Backend.
➢ Backend (Node.js): Xử lý logic nghiệp vụ, lưu trữ dữ liệu, và cung cấp API cho Frontend.
➢ Database (MySQL): Lưu trữ dữ liệu cảm biến và lịch sử hành động.
➢ Frontend (React): Giao diện người dùng để hiển thị dữ liệu và điều khiển thiết bị.
2. Mô tả luồng dữ liệu và tương tác giữa các thành phần
a. Luồng dữ liệu cảm biến
ESP32 đọc dữ liệu từ cảm biến (nhiệt độ, độ ẩm, ánh sáng) → ESP32 gửi dữ
liệu qua MQTT đến MQTT Broker → Backend nhận dữ liệu từ MQTT Broker
và lưu vào database → Frontend định kỳ gọi API từ Backend để lấy dữ liệu
mới nhất và hiển thị.
b. Luồng điều khiển thiết bị
Người dùng tương tác với giao diện trên Frontend để điều khiển thiết bị →
Frontend gửi yêu cầu điều khiển đến Backend thông qua API → Backend xử
lý yêu cầu và gửi lệnh điều khiển qua MQTT đến ESP32 → ESP32 nhận lệnh
và thực hiện điều khiển thiết bị tương ứng.
II. Thiết kế Backend
1. Cấu trúc thư mục và file 10
Hình 5. Cấu trúc thư mục BE
2. API endpoints và chức năng a) Dữ liệu cảm biến:
GET /table/data: Lấy dữ liệu cảm biến với các tùy chọn lọc và phân trang.
POST /data: Lưu dữ liệu cảm biến mới (được gọi từ MQTT subscriber). b) Lịch sử hành động:
GET /table/action: Lấy lịch sử hành động với các tùy chọn lọc và phân trang.
3. Xử lý dữ liệu cảm biến và điều khiển thiết bị
➢ Dữ liệu cảm biến được nhận qua MQTT và lưu vào database thông qua hàm
createDataSensor trong models/dataSensor.js.
➢ Lệnh điều khiển thiết bị được nhận qua API, xử lý trong
controllers/actionHistory.js, và gửi qua MQTT đến ESP32.
III. Kết nối MQTT 1. Cấu hình MQTT broker
Sử dụng thư viện mqtt để kết nối với MQTT broker.
Cấu hình kết nối được định nghĩa trong src/index.js: 11
2. Xử lý tin nhắn MQTT từ ESP32
Subscribe vào các topic cần thiết:
Xử lý tin nhắn nhận được:
3. Gửi lệnh điều khiển qua MQTT
Khi nhận được yêu cầu điều khiển
từ Frontend, Backend gửi lệnh qua MQTT:
IV. Mô hình dữ liệu
1. Cấu trúc bảng dữ liệu cảm biến 12
2. Cấu trúc bảng lịch sử hành động
V. Lập trình ESP32
1. Cấu hình kết nối WiFi và MQTT
2. Đọc dữ liệu từ cảm biến và gửi qua MQTT 13
3. Nhận lệnh điều khiển và thực thi
Chương 4: Kết qu
I. Chức năng đã hoàn thành
1. Liệt kê các tính năng đã triển khai thành công
a) Thu thập và hiển thị dữ liệu cảm biến:
➢ Hệ thống đã thành công trong việc thu thập dữ liệu từ các cảm biến nhiệt
độ, độ ẩm và ánh sáng thông qua ESP32.
➢ Dữ liệu được truyền qua MQTT và lưu trữ trong cơ sở dữ liệu MySQL. 14
➢ Frontend hiển thị dữ liệu cảm biến dưới dạng bảng và biểu đồ thời gian thực.
b) Điều khiển thiết bị từ xa:
➢ Người dùng có thể điều khiển quạt, đèn LED và điều hòa thông qua giao diện web.
➢ Lệnh điều khiển được gửi từ Frontend đến Backend, sau đó truyền qua MQTT đến ESP32.
➢ ESP32 thực hiện lệnh điều khiển và gửi phản hồi về trạng thái thiết bị.
c) Lưu trữ và hiển thị lịch sử hành động:
➢ Hệ thống ghi lại tất cả các hành động điều khiển thiết bị.
➢ Người dùng có thể xem lịch sử hành động với các tùy chọn lọc và phân trang.
d) Giao diện người dùng thân thiện:
➢ Frontend được phát triển bằng React, cung cấp giao diện trực quan và dễ sử dụng.
➢ Người dùng có thể dễ dàng chuyển đổi giữa các chế độ xem khác nhau:
Dashboard, Data Sensor, Action History và Profile. e) API linh hoạt:
➢ Backend cung cấp các API endpoint cho phép truy xuất dữ liệu cảm biến
và lịch sử hành động với nhiều tùy chọn lọc, sắp xếp và phân trang.
f) Cơ chế xóa dữ liệu tự động:
➢ Hệ thống tự động xóa các bản ghi cũ, chỉ giữ lại 100 bản ghi mới nhất để
tối ưu hóa hiệu suất và không gian lưu trữ.
II. Hiệu suất hệ thống
1. Đánh giá về tốc độ phản hồi
a) Thời gian phản hồi API:
➢ Các API endpoint có thời gian phản hồi trung bình dưới 200ms cho các truy vấn cơ bản.
➢ Đối với các truy vấn phức tạp hơn (ví dụ: tìm kiếm với nhiều điều kiện),
thời gian phản hồi vẫn dưới 500ms.
b) Độ trễ điều khiển thiết bị:
➢ Thời gian từ khi người dùng gửi lệnh điều khiển đến khi thiết bị thực sự
thay đổi trạng thái trung bình khoảng 1-2 giây.
➢ Phần lớn độ trễ này là do thời gian truyền tin qua MQTT và xử lý trên ESP32. 15
c) Cập nhật dữ liệu thời gian thực:
➢ Dữ liệu cảm biến được cập nhật trên giao diện người dùng mỗi 2 giây,
đảm bảo thông tin luôn mới nhất.
2. Độ chính xác của dữ liệu cảm biến a) Nhiệt độ:
➢ Độ chính xác: ±0.5°C
➢ Độ phân giải: 0.1°C b) Độ ẩm:
➢ Độ chính xác: ±2% RH
➢ Độ phân giải: 0.1% RH c) Ánh sáng:
➢ Độ chính xác: ±5% của giá trị đo ➢ Độ phân giải: 1 lux
III. Cải tiến trong tương lai 1. Tăng cường bảo mật
➢ Triển khai hệ thống xác thực và phân quyền người dùng.
➢ Sử dụng SSL/TLS cho kết nối MQTT và API.
➢ Thêm cơ chế mã hóa dữ liệu nhạy cảm trong cơ sở dữ liệu.
2. Cải thiện khả năng mở rộng
➢ Triển khai cơ chế caching để giảm tải cho database.
➢ Xem xét sử dụng cơ sở dữ liệu NoSQL như MongoDB cho dữ liệu cảm
biến để tăng hiệu suất khi lưu trữ dữ liệu lớn.
➢ Triển khai load balancing cho Backend khi số lượng request tăng cao.
3. Nâng cao trải nghiệm người dùng
➢ Thêm tính năng thông báo và cảnh báo khi các chỉ số vượt ngưỡng.
➢ Phát triển ứng dụng di động để người dùng có thể theo dõi và điều khiển từ xa dễ dàng hơn.
➢ Tích hợp trí tuệ nhân tạo để đưa ra các đề xuất tối ưu hóa năng lượng dựa
trên dữ liệu cảm biến.
4. Mở rộng khả năng tương thích
➢ Hỗ trợ thêm các loại cảm biến và thiết bị IoT khác.
➢ Phát triển SDK để cho phép các nhà phát triển bên thứ ba tích hợp với hệ thống.
5. Tối ưu hóa năng lượng
➢ Triển khai chế độ ngủ sâu cho ESP32 khi không cần thu thập dữ liệu.
➢ Điều chỉnh tần suất gửi dữ liệu dựa trên mức độ thay đổi của các chỉ số.
6. Cải thiện khả năng phân tích
➢ Thêm các công cụ phân tích dữ liệu nâng cao để cung cấp insights về xu
hướng và mẫu tiêu thụ năng lượng. 16
➢ Tích hợp machine learning để dự đoán và tối ưu hóa việc sử dụng năng lượng.
7. Tăng cường độ tin cậy
➢ Triển khai cơ chế backup và khôi phục dữ liệu tự động.
➢ Cải thiện logging và monitoring để phát hiện và xử lý sự cố nhanh chóng.
Những cải tiến và mở rộng này sẽ giúp hệ thống trở nên mạnh mẽ, an toàn và linh
hoạt hơn, đáp ứng được nhu cầu ngày càng tăng của người dùng và thích ứng với các
xu hướng công nghệ mới trong lĩnh vực IoT và quản lý năng lượng thông minh. 17
Li cảm ơn
Em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Quốc Uy, giảng viên môn học
Internet of Things và Ứng dụng tại Học viện Công nghệ Bưu chính Viễn thông.
Trong suốt khóa học, thầy đã truyền đạt kiến thức một cách tận tâm và chuyên
nghiệp, giúp em và các bạn sinh viên hiểu sâu sắc về lĩnh vực IoT đang phát triển
nhanh chóng. Những bài giảng sinh động và các ví dụ thực tế của thầy đã truyền
cảm hứng cho chúng em, khơi dậy niềm đam mê với công nghệ và mở ra nhiều cơ
hội mới trong tương lai nghề nghiệp.
Thầy không chỉ là một người thầy giàu kinh nghiệm mà còn là một người cố vấn tận
tụy. Sự hướng dẫn và ủng hộ của thầy trong quá trình thực hiện đồ án này đã giúp
em vượt qua nhiều khó khăn, từ đó hoàn thiện dự án một cách tốt nhất.
Kiến thức và kỹ năng em học được từ môn học này chắc chắn sẽ là nền tảng vững
chắc cho sự phát triển nghề nghiệp của em trong tương lai. Em xin chân thành cảm
ơn thầy vì tất cả những đóng góp quý báu này.
Kính chúc thầy luôn mạnh khỏe, hạnh phúc và thành công trong sự nghiệp giảng dạy cao quý của mình. Trân trọng, Lê Huy Hồng Nhật 18