HC VIỆN CÔNG NGH U CHÍNH VIỄN THÔNG
KHOA CƠ BẢN I
BỘ MÔN IOT VÀ NG DNG
Báo cáo bài tập lớn
Ging viên hưng dn
: Nguyn Quc Uy
H và tên sinh viên
: Nguyn Khc Hưng
: B21DCAT099
Lớp
: IOT và ng dng
Nhóm
: 06
Hà Ni 2024
1
I. thuyết 3
1. Đt vn đ 3
2. Mc tiêu 3
3. Các thiết b đưc sử dng 3
3.1 ESP32 CH340 3
3.2. DHT11 4
3.3 Cảm biến ánh sáng 4
3.4 LED đ 5
4. ng ngh sử dng 5
4.1 NodeJS 5
4.2 MQTT 6
II. Thc hành 7
1. Thiết kế mch và cách hot đng 7
2. DATAbase : 9
3. Giao din web : 9
4. Code BE 12
4.1 file back_end.js 12
4.2 file Server.js 14
5. API doc và test các api vi POSTMAN 22
5.1 Th nghim vi api/switch-state 22
5.2 Th nghim vi /api/search-switch-state 23
5.3 Th nghim vi /api/search-sensor-data 24
2
I. thuyết
1. Đt vn đ
Một hệ thống thời gian thực cho phép truyền dữ liệu từ cảm
biến để hiển thị cho người dùng. Người dùng thể tương tác
ngược lại cho thiết bị. Một hệ thống IoT đơn giản.
2. Mc tiêu
Hệ thống sử dụng hai cảm biến để thông báo nhiệt độ độ ẩm,
ánh sáng cho người dùng thông qua trang web thể truy cập
với mạng LAN. Trang web sẽ cung cấp nhiệt độ độ ẩm, ánh
sáng với dashboard hiển thị dễ nhìn, cho phép người dùng
thể xem thông tin nhiệt độ độ ẩm trực tiếp thời gian thực
thể điều khiển led.
3. Các thiết b đưc sử dng
3.1 ESP32 CH340
ESP32 CH340 một phiên bản của dòng ESP32 được trang bị
chip nạp (USB-to-Serial) CH340. Phiên bản này giá thành hợp lý,
dễ dàng kết nối với máy tính qua cổng USB, được sử dụng phổ
biến trong các dự án IoT tự động hóa. Dưới đây một số thông tin
chi tiết về ESP32 CH340.
ESP32 một vi điều khiển mạnh mẽ do Espressif Systems
phát triển, tích hợp cả Wi-Fi Bluetooth, giúp bạn dễ dàng
xây dựng các dự án IoT với khả năng kết nối không dây.
CH340 chip chuyển đổi USB-to-Serial phổ biến, giúp dễ
dàng kết nối ESP32 với máy tính nạp code từ các IDE như
Arduino IDE hoặc PlatformIO.
Với chip CH340, bạn cần cài đặt driver tương ứng cho máy
tính để thể nhận dạng thiết bị. Driver này thể tải về từ
trang web của nhà sản xuất.
Thông số kỹ thuật :
Cổng nạp: Type C || Micro (tùy chọn trong phần phân
loại)
hình: ESP32 30 chân
Điện áp nguồn (USB): 5V DC
Đầu vào/Đầu ra điện áp: 3.3V DC
Công suất tiêu thụ: 5μA trong hệ thống treo chế độ
3
Hiệu suất: Lên đến 600 DMIPS
Tần số: lên đến 240MHz
Bộ nhớ: 448 Kbyte ROM, 520 Kbyte SRAM, 6 Kbyte
SRAM trên RTC QSPI Hỗ trợ đèn flash / SRAM chip
Chip USB-Serial: CP2102 hoặc CH340 (tùy chọn
trong phânloại).
Ăng ten: PCB
Bảo mật: IEEE 802.11, bao gồm cả WFA,
WPA/WPA2 WAPI
Phần cứng tăng tốc mật học: AES, SHA-2, RSA,
hình elip mật Đường Cong (ECC), số ngẫu nhiên Máy
phát điện (RNG)
3.2. DHT11
Cảm biến DHT11 một loại cảm biến được sử dụng phổ biến
trong các dự án IoT, nhà thông minh, hệ thống tự động hóa. Đây
một cảm biến tích hợp dùng để đo nhiệt độ độ ẩm với thiết kế nhỏ
gọn, giá thành hợp dễ dàng sử dụng.
Thông số kỹ thuật :
Điện áp hoạt động: 5VDC.
Chuẩn giao tiếp: TTL, 1 wire.
Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH.
Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C.
Tần số lấy mẫu tối đa 1Hz (1 giây / lần).
Kích thước: 28mm x 12mm x10m.
DHT11 4 chân: VCC, DATA, NC, GND
Module DHT11 đã được gắn sẵn điện trở led báo
nguồn, nên 3 chân.
VCC: Nguồn 3.3 - 5.5VDC
DATA: Chân dữ liệu
GND: Nối đất, cực âm
3.3 Cảm biến ánh sáng
4
Cảm biến ánh sáng quang trở CDS tích hợp sẵn Op-amp
biến trở so sánh mức tín hiệu giúp cho việc nhận biết tín hiệu trở nên
dễ dàng, Cảm biến ánh sáng này thường dùng để nhận biết, bật tắt
thiết bị theo cường độ ánh sáng môi trường.
THÔNG SỐ KỸ THUẬT:
Nguồn: 3.3 5VDC
Sử dụng quang trở CDS.
4 chân: VCC, GND, Analog, Digital
Kích thước nhỏ gọn: 36x16mm
Xuất tín hiệu Digital rất dễ sử dụng
3.4 LED đ
THÔNG TIN SẢN PHẨM:
Góc sáng : 120°
Đường kính led : 5mm.
Màu led : đỏ
` Màu phát ra: Đỏ (620-625nm)
Cường độ sáng: 1000-2000
mcd
Điện áp / Dòng điện : 2V-2.2V | 20mA
4. Công ngh sử dng
4.1 NodeJS
Node.js là mt nn tng mã ngun m, đa nn tng, cho phép thc thi
JavaScript trên phía máy ch (server-side). Đưc phát trin bi Ryan Dahl
vào năm 2009, Node.js đã nhanh chóng tr thành mt trong nhng công
ngh ph biến nht trong lĩnh vc phát trin web nh vào kh năng x lý
không đng b (asynchronous) và hiu năng cao.
Node.js đưc xây dng da trên JavaScript Engine V8 ca Google
Chrome, cho phép thc thi mã JavaScript vi tc đ cc nhanh. Điu này
đã giúp Node.js tr thành la chn hàng đu cho các ng dng web thi
gian thc (real-time), h thng máy ch có lưu lưng truy cp ln, và các
ng dng cn hiu năng cao.
Đc đim ni bt ca Node.js
Không đng b và hưng sự kin (Asynchronous & Event-driven):
5
- Node.js sử dng mô hình non-blocking I/O, giúp ti ưu hóa hiu
sut khi x lý nhiu yêu cu cùng lúc mà không làm chm h
thng.
- Thích hp cho các ng dng cn kh năng phn hi nhanh như
chat, truyn phát video trc tiếp, hoc các h thng thông tin
liên lc.
Hiu năng cao:
- Đưc xây dng trên nn tng V8 Engine ca Google, Node.js có
kh năng biên dch và thc thi JavaScript rt nhanh.
- Node.js sử dng single-threaded event loop, cho phép x lý
đng thi hàng nghìn kết ni mà không cn sử dng nhiu
lung x lý.
Kh năng m rng (Scalability):
- H tr kiến trúc Microservices và API-first, giúp d dàng m
rng và bo trì h thng.
- Node.js có kh năng m rng c theo chiu dc (vertical
scaling) và theo chiu ngang (horizontal scaling).
Cộng đng và h sinh thái phong phú:
- NPM (Node Package Manager), kho thư vin mã ngun m ln
nht thế gii, cung cp hàng triu gói thư vin (packages) giúp
các nhà phát trin tiết kim thi gian và công sức.
- Cộng đng Node.js ln mnh vi nhiu tài liu và h tr t các
nhà phát trin trên toàn cu.
ng dng ca Node.js
-ng dng web thi gian thc: Chat trc tuyến, truyn phát
video, và h thng thông báo tc thi.
-API server: Xây dng các dch v web da trên API RESTful
và GraphQL.
4.2 MQTT
MQTT (Message Queuing Telemetry Transport) là mt giao thc truyn
thông nh đưc thiết kế đ truyn ti d liu gia các thiết b có kết ni mng
vi hiu qu cao, đ tin cy và mc tiêu th băng thông thp. MQTT đưc phát
trin bi Andy Stanford-Clark (IBM) và Arlen Nipper (Eurotech) vào năm 1999,
vi mc đích ban đu là ti ưu hóa vic truyn d liu t các thiết b t xa qua
mng không n đnh hoc có băng thông hn chế.
6
Đc đim ca giao thc MQTT
Nh và hiu qu:
- MQTT sử dng rt ít tài nguyên và băng thông, thích hp cho
các thiết b có phn cng hn chế như cm biến, thiết b IoT, và
h thng nhúng.
- Kích thưc gói tin nh giúp gim thiu đ tr khi truyn ti d
liu.
Kiến trúc hưng ch đ (Topic-based):
- MQTT sử dng mô hình publish/subscribe (xut bn/đăng ký)
thay vì mô hình truyn thng client-server.
- D liu đưc gi đến các topic (ch đ) và các thiết b có th
subscribe (đăng ký) các topic đ nhn d liu liên quan.
Tính linh hot và kh năng m rng cao:
- MQTT phù hp cho các h thng phân tán vi số lưng ln
thiết b kết ni, ví d như nhà thông minh, h thng giám sát t
xa,
hoc các ng dng IoT quy mô ln.
- H tr các cu hình bo mt như SSL/TLS, giúp đm bo an
toàn cho d liu truyn ti.
ng dng ca MQTT
Internet of Things (IoT): MQTT là la chn ph biến trong các ng dng
IoT, như:
- Nhà thông minh: Điu khin đèn, qut, máy điu hòa, hoc các
cm biến đo nhit đ và đ m.
- Giám sát t xa: Thu thp d liu t các cm biến, như cm biến
môi trưng, h thng cnh báo cháy n.
- Theo dõi tài sản: Dùng cho các ng dng theo dõi xe c, vn
chuyn hàng hóa.
Dch v thi gian thc:
- H thng cnh báo, ng dng chat, và các dch v yêu cu cp
nht nhanh chóng.
- Truyn phát d liu t các thiết b IoT vi đ tr thp.
II. Thực hành
1. Thiết kế mch và cách hot đng
7
Hình 1: Mch đ đưc thiết kế
Mch bao gm:
+4 LED trong đó có 3 LED dùng điu khin và 1 LED cnh báo:
- LED1 : DPIN 18
- LED2 : DPIN19
- LED3 : DPIN21
- LED4 : DPIN22
+ 2 cm biến DHT11 và cm biến ánh sáng CDS
- DHT11 : DPIN4
- Cảm biến ánh sáng CDS
Cách thc hot đng ca mô hình :
8
Hình 2: Biu đ hot đng ca web
2. DATAbase :
+Bao gm có 4 bng :
Hình 3: Bảng Database
- Bảng Bai_5 : Lưu li giá tr ca bài thc hành 5
- Bảng Devices : Lưu li các thiết b
- Bảng esp32_data : Lưu li giá tr cm biến
- Bảng switch_states: Lưu li khi bt tt thiết b
3. Giao din web :
DashBoard: Bao gm 3 tag đ hin th các thông tin , bng điu khin
thiết b, biu đ:
9
Hình 4: Giao din Dashboard
Device History : Bao gm bng hin th bt tt thiết b , tìm kiếm
theo ngày tháng
Hình 5: Giao din Device History
Data Sensor :Bao gm bng hin th thông tin t các cm biến , có
th tìm kiếm theo các giá tr đưc la chn như nhit đ , đ m , ánh sáng
, ngày tháng
10
Hình 6: Giao din DataSensor
User Profile: Bao gm các thông tin cá nhân ca sinh viên:
Hình 7: Giao din User Profile
Bài 5 : Bao gm các tag đ hin th tc đ gió , biu đ tc d
gió và cnh báo nếu tc đ gió vưt quá 60m/s
11
Hình 8: Giao din bài báo cáo
4. Code BE
4.1 file back_end.js
- Bao gm các kết ni liên quan đến phn gi data v database và ly trng
thái bt tt thiết b bt tt.
Hình 9: file back_end.js
12
Hình 10: file back_end.js
4.2 file server.js
- Bao gm các API giúp ly data t database và gi thông tin bt tt t FE v
esp32 đ thc hin bt bt thiết b.
Hình 11: Hàm giúp gi yêu cu v esp32 thông qua topic esp32/devices_control
13
4.2 file Server.js
- import các thư vin và kết ni vi cơ sở d liu mysql
Hình 12: Khi to các thư vin và kết ni vi mysql
14
- Hàm kết ni vi mqtt qua cng mc đnh
Hình 13: khởi tạo kết nối với mqtt hàm gửi yêu cầu lên esp32/devices_control
15
- Api giúp tìm kiếm data lấy data từ sở dữ liệu
Hình 13: Api search sensor data
16
Hình 13: Api search sensor data
- Api giúp tìm kiếm thông tin liên quan đến bt tt thiết b
17
Hình 14: Api search switch state
18
Hình 15: API search switch state
19
Hình 16: API search switch state
20

Preview text:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CƠ BẢN I
BỘ MÔN IOT VÀ ỨNG DỤNG
Báo cáo bài tập lớn
Giảng viên hướng dẫn : Nguyễn Quốc Uy
Họ và tên sinh viên : Nguyễn Khắc Hưng Mã sinh viên : B21DCAT099 Lớp : IOT và ứng dụng Nhóm : 06
Hà Nội – 2024 1 I. Lý thuyết 3 1. Đặt vấn đề 3 2. Mục tiêu 3
3. Các thiết bị được sử dụng 3 3.1 ESP32 CH340 3 3.2. DHT11 4 3.3 Cảm biến ánh sáng 4 3.4 LED đỏ 5 4. Công nghệ sử dụng 5 4.1 NodeJS 5 4.2 MQTT 6 II. Thực hành 7
1. Thiết kế mạch và cách hoạt động 7 2. DATAbase : 9 3. Giao diện web : 9 4. Code BE 12 4.1 file back_end.js 12 4.2 file Server.js 14
5. API doc và test các api với POSTMAN 22
5.1 Thử nghiệm với api/switch-state 22
5.2 Thử nghiệm với /api/search-switch-state 23
5.3 Thử nghiệm với /api/search-sensor-data 24 2 I. Lý thuyết 1. Đặt vấn đề
Một hệ thống thời gian thực cho phép truyền dữ liệu từ cảm
biến để hiển thị cho người dùng. Người dùng có thể tương tác
ngược lại cho thiết bị. Một hệ thống IoT đơn giản. 2. Mục tiêu
Hệ thống sử dụng hai cảm biến để thông báo nhiệt độ và độ ẩm,
ánh sáng cho người dùng thông qua trang web có thể truy cập
với mạng LAN. Trang web sẽ cung cấp nhiệt độ và độ ẩm, ánh
sáng với dashboard hiển thị dễ nhìn, cho phép người dùng có
thể xem thông tin nhiệt độ và độ ẩm trực tiếp ở thời gian thực
và có thể điều khiển led.
3. Các thiết bị được sử dụng 3.1 ESP32 CH340
ESP32 CH340 là một phiên bản của dòng ESP32 được trang bị
chip nạp (USB-to-Serial) CH340. Phiên bản này có giá thành hợp lý,
dễ dàng kết nối với máy tính qua cổng USB, và được sử dụng phổ
biến trong các dự án IoT và tự động hóa. Dưới đây là một số thông tin chi tiết về ESP32 CH340.
ESP32 là một vi điều khiển mạnh mẽ do Espressif Systems
phát triển, tích hợp cả Wi-Fi và Bluetooth, giúp bạn dễ dàng
xây dựng các dự án IoT với khả năng kết nối không dây.
CH340 là chip chuyển đổi USB-to-Serial phổ biến, giúp dễ
dàng kết nối ESP32 với máy tính và nạp code từ các IDE như Arduino IDE hoặc PlatformIO.
● Với chip CH340, bạn cần cài đặt driver tương ứng cho máy
tính để có thể nhận dạng thiết bị. Driver này có thể tải về từ
trang web của nhà sản xuất. ● Thông số kỹ thuật :
Cổng nạp: Type C || Micro (tùy chọn trong phần phân loại) Mô hình: ESP32 30 chân
Điện áp nguồn (USB): 5V DC
Đầu vào/Đầu ra điện áp: 3.3V DC
Công suất tiêu thụ: 5μA trong hệ thống treo chế độ 3
Hiệu suất: Lên đến 600 DMIPS Tần số: lên đến 240MHz
Bộ nhớ: 448 Kbyte ROM, 520 Kbyte SRAM, 6 Kbyte
SRAM trên RTC và QSPI Hỗ trợ đèn flash / SRAM chip
Chip USB-Serial: CP2102 hoặc CH340 (tùy chọn trong phânloại). Ăng ten: PCB
Bảo mật: IEEE 802.11, bao gồm cả WFA, WPA/WPA2 và WAPI
Phần cứng tăng tốc mật mã học: AES, SHA-2, RSA,
hình elip mật mã Đường Cong (ECC), số ngẫu nhiên Máy phát điện (RNG) 3.2. DHT11
Cảm biến DHT11 là một loại cảm biến được sử dụng phổ biến
trong các dự án IoT, nhà thông minh, và hệ thống tự động hóa. Đây là
một cảm biến tích hợp dùng để đo nhiệt độ độ ẩm với thiết kế nhỏ
gọn, giá thành hợp lý và dễ dàng sử dụng. Thông số kỹ thuật :
Điện áp hoạt động: 5VDC.
Chuẩn giao tiếp: TTL, 1 wire.
Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH.
Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C.
Tần số lấy mẫu tối đa 1Hz (1 giây / lần).
Kích thước: 28mm x 12mm x10m.
DHT11 có 4 chân: VCC, DATA, NC, GND
Module DHT11 đã được gắn sẵn điện trở và led báo nguồn, nên có 3 chân. VCC: Nguồn 3.3 - 5.5VDC DATA: Chân dữ liệu GND: Nối đất, cực âm 3.3 Cảm biến ánh sáng 4
Cảm biến ánh sáng quang trở CDS có tích hợp sẵn Op-amp và
biến trở so sánh mức tín hiệu giúp cho việc nhận biết tín hiệu trở nên
dễ dàng, Cảm biến ánh sáng này thường dùng để nhận biết, bật tắt
thiết bị theo cường độ ánh sáng môi trường. THÔNG SỐ KỸ THUẬT: Nguồn: 3.3 – 5VDC Sử dụng quang trở CDS.
4 chân: VCC, GND, Analog, Digital
Kích thước nhỏ gọn: 36x16mm
Xuất tín hiệu Digital rất dễ sử dụng 3.4 LED đỏ THÔNG TIN SẢN PHẨM: Góc sáng : 120° Đường kính led : 5mm. Màu led : đỏ `
Màu phát ra: Đỏ (620-625nm)
Cường độ sáng: 1000-2000 mcd
Điện áp / Dòng điện : 2V-2.2V | 20mA
4. Công nghệ sử dụng 4.1 NodeJS
Node.js là một nền tảng mã nguồn mở, đa nền tảng, cho phép thực thi
JavaScript trên phía máy chủ (server-side). Được phát triển bởi Ryan Dahl
vào năm 2009, Node.js đã nhanh chóng trở thành một trong những công
nghệ phổ biến nhất trong lĩnh vực phát triển web nhờ vào khả năng xử lý
không đồng bộ (asynchronous) và hiệu năng cao.
Node.js được xây dựng dựa trên JavaScript Engine V8 của Google
Chrome, cho phép thực thi mã JavaScript với tốc độ cực nhanh. Điều này
đã giúp Node.js trở thành lựa chọn hàng đầu cho các ứng dụng web thời
gian thực (real-time), hệ thống máy chủ có lưu lượng truy cập lớn, và các
ứng dụng cần hiệu năng cao.
Đặc điểm nổi bật của Node.js
Không đồng bộ và hướng sự kiện (Asynchronous & Event-driven): 5
- Node.js sử dụng mô hình non-blocking I/O, giúp tối ưu hóa hiệu
suất khi xử lý nhiều yêu cầu cùng lúc mà không làm chậm hệ thống.
- Thích hợp cho các ứng dụng cần khả năng phản hồi nhanh như
chat, truyền phát video trực tiếp, hoặc các hệ thống thông tin liên lạc. Hiệu năng cao:
- Được xây dựng trên nền tảng V8 Engine của Google, Node.js có
khả năng biên dịch và thực thi JavaScript rất nhanh.
- Node.js sử dụng single-threaded event loop, cho phép xử lý
đồng thời hàng nghìn kết nối mà không cần sử dụng nhiều luồng xử lý.
Khả năng mở rộng (Scalability):
- Hỗ trợ kiến trúc Microservices và API-first, giúp dễ dàng mở
rộng và bảo trì hệ thống.
- Node.js có khả năng mở rộng cả theo chiều dọc (vertical
scaling) và theo chiều ngang (horizontal scaling).
Cộng đồng và hệ sinh thái phong phú:
- NPM (Node Package Manager), kho thư viện mã nguồn mở lớn
nhất thế giới, cung cấp hàng triệu gói thư viện (packages) giúp
các nhà phát triển tiết kiệm thời gian và công sức.
- Cộng đồng Node.js lớn mạnh với nhiều tài liệu và hỗ trợ từ các
nhà phát triển trên toàn cầu. Ứng dụng của Node.js
-Ứng dụng web thời gian thực: Chat trực tuyến, truyền phát
video, và hệ thống thông báo tức thời.
-API server: Xây dựng các dịch vụ web dựa trên API RESTful và GraphQL. 4.2 MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức truyền
thông nhẹ được thiết kế để truyền tải dữ liệu giữa các thiết bị có kết nối mạng
với hiệu quả cao, độ tin cậy và mức tiêu thụ băng thông thấp. MQTT được phát
triển bởi Andy Stanford-Clark (IBM) và Arlen Nipper (Eurotech) vào năm 1999,
với mục đích ban đầu là tối ưu hóa việc truyền dữ liệu từ các thiết bị từ xa qua
mạng không ổn định hoặc có băng thông hạn chế. 6
Đặc điểm của giao thức MQTT Nhẹ và hiệu quả:
- MQTT sử dụng rất ít tài nguyên và băng thông, thích hợp cho
các thiết bị có phần cứng hạn chế như cảm biến, thiết bị IoT, và hệ thống nhúng.
- Kích thước gói tin nhỏ giúp giảm thiểu độ trễ khi truyền tải dữ liệu.
Kiến trúc hướng chủ đề (Topic-based):
- MQTT sử dụng mô hình publish/subscribe (xuất bản/đăng ký)
thay vì mô hình truyền thống client-server.
- Dữ liệu được gửi đến các topic (chủ đề) và các thiết bị có thể
subscribe (đăng ký) các topic để nhận dữ liệu liên quan.
Tính linh hoạt và khả năng mở rộng cao:
- MQTT phù hợp cho các hệ thống phân tán với số lượng lớn
thiết bị kết nối, ví dụ như nhà thông minh, hệ thống giám sát từ xa,
hoặc các ứng dụng IoT quy mô lớn.
- Hỗ trợ các cấu hình bảo mật như SSL/TLS, giúp đảm bảo an
toàn cho dữ liệu truyền tải. Ứng dụng của MQTT
Internet of Things (IoT): MQTT là lựa chọn phổ biến trong các ứng dụng IoT, như:
- Nhà thông minh: Điều khiển đèn, quạt, máy điều hòa, hoặc các
cảm biến đo nhiệt độ và độ ẩm.
- Giám sát từ xa: Thu thập dữ liệu từ các cảm biến, như cảm biến
môi trường, hệ thống cảnh báo cháy nổ.
- Theo dõi tài sản: Dùng cho các ứng dụng theo dõi xe cộ, vận chuyển hàng hóa.
Dịch vụ thời gian thực:
- Hệ thống cảnh báo, ứng dụng chat, và các dịch vụ yêu cầu cập nhật nhanh chóng.
- Truyền phát dữ liệu từ các thiết bị IoT với độ trễ thấp. II. Thực hành
1. Thiết kế mạch và cách hoạt động 7
Hình 1: Mạch đẵ được thiết kế Mạch bao gồm:
+4 LED trong đó có 3 LED dùng điều khiển và 1 LED cảnh báo: - LED1 : DPIN 18 - LED2 : DPIN19 - LED3 : DPIN21 - LED4 : DPIN22
+ 2 cảm biến DHT11 và cảm biến ánh sáng CDS - DHT11 : DPIN4 - Cảm biến ánh sáng CDS
Cách thức hoạt động của mô hình : 8
Hình 2: Biểu đồ hoạt động của web 2. DATAbase : +Bao gồm có 4 bảng : Hình 3: Bảng Database
- Bảng Bai_5 : Lưu lại giá trị của bài thực hành 5
- Bảng Devices : Lưu lại các thiết bị
- Bảng esp32_data : Lưu lại giá trị cảm biến
- Bảng switch_states: Lưu lại khi bật tắt thiết bị 3. Giao diện web :
DashBoard: Bao gồm 3 tag để hiển thị các thông tin , bảng điều khiển thiết bị, biểu đồ: 9 Hình 4: Giao diện Dashboard
Device History : Bao gồm bảng hiển thị bật tắt thiết bị , tìm kiếm theo ngày tháng
Hình 5: Giao diện Device History
Data Sensor :Bao gồm bảng hiển thị thông tin từ các cảm biến , có
thể tìm kiếm theo các giá trị được lựa chọn như nhiệt độ , độ ẩm , ánh sáng , ngày tháng 10
Hình 6: Giao diện DataSensor
User Profile: Bao gồm các thông tin cá nhân của sinh viên:
Hình 7: Giao diện User Profile
Bài 5 : Bao gồm các tag để hiển thị tốc độ gió , biểu đồ tốc dộ
gió và cảnh báo nếu tốc độ gió vượt quá 60m/s 11
Hình 8: Giao diện bài báo cáo 4. Code BE 4.1 file back_end.js
- Bao gồm các kết nối liên quan đến phần gửi data về database và lấy trạng
thái bật tắt thiết bị bật tắt. Hình 9: file back_end.js 12 Hình 10: file back_end.js 4.2 file server.js
- Bao gồm các API giúp lấy data từ database và gửi thông tin bật tắt từ FE về
esp32 để thực hiện bật bắt thiết bị.
Hình 11: Hàm giúp gửi yêu cầu về esp32 thông qua topic esp32/devices_control 13 4.2 file Server.js
- import các thư viện và kết nối với cơ sở dữ liệu mysql
Hình 12: Khởi tạo các thư viện và kết nối với mysql 14
- Hàm kết nối với mqtt qua cổng mặc định
Hình 13: khởi tạo kết nối với mqtt cà hàm gửi yêu cầu lên esp32/devices_control 15
- Api giúp tìm kiếm data và lấy data từ cơ sở dữ liệu
Hình 13: Api search sensor data 16
Hình 13: Api search sensor data
- Api giúp tìm kiếm thông tin liên quan đến bật tắt thiết bị 17
Hình 14: Api search switch state 18
Hình 15: API search switch state 19
Hình 16: API search switch state 20