



















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 ĐỀ TÀI:
HỆ THỐNG THEO DÕI THÔNG SỐ TRONG NHÀ: NHIỆT
ĐỘ, ĐỘ ẨM, ÁNH SÁNG
Giảng viên: Nguyễn Quốc Uy Nhóm: 23 Vũ Hữu Đức B21DCCN259
Hà Nội, tháng năm 202 9 4
............................................................................................................................................................................................ 1 I.
Giới thiệu hệ thống................................................................................................................................................ 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, KIT WIFI NODEMCU ESP8266 CH340............................................................................................ 3
3.2. Cảm biến nhiệt độ độ ẩm DHT11........................................................................................................... 5
3.3. Cảm biến ánh sáng quang trở.................................................................................................................. 6
3.4. Led....................................................................................................................................................................... 6
4.1. Reactjs(front-end)......................................................................................................................................... 7
4.2. Nestjs(back-end)............................................................................................................................................ 8
4.3. Websocket......................................................................................................................................................... 8
4.4. MQTT................................................................................................................................................................ 9 II.
Các sơ đồ thiết kế............................................................................................................................................ 10 1.
Sơ đồ mạch........................................................................................................................................................ 10 2.
Sơ đồ luồng dữ liệu........................................................................................................................................ 10 3.
Sơ đồ tuần tự.................................................................................................................................................... 12 4.
Đặc tả cấp độ IOT.......................................................................................................................................... 13 III.
Giao diện hệ thống......................................................................................................................................... 23
I. Giới thiệu hệ thống 1. Đặt vấn đề
Hiện nay với sự phát triển mạnh mẽ của công nghệ giúp cho các thiết bị
điều khiển ngày càng phổ biến hơn. Hệ thống cho phép người dùng bật
tắt các thiết bị điều khiển như đèn, quạt, máy lạnh, máy lọc không khí…
và sẽ gửi dữ liệu nhiệt độ, độ ẩm, áng sáng từ môi trường về cho người
dùng trong thời gian thực. 2. Mục tiêu
- Tích hợp các chức năng đo nhiệt độ, độ ẩm, ánh sáng sử dụng các cảm biến
- Giao diện của hệ thống điều khiển thông qua trang web được kết nối wifi
với cá cảm biến, từ giao diện người dung có thể nắm bắt được các thông
số như nhiệt độ, độ ẩm, áng sáng để từ đó điều led phù hợp(điều khiển thiết bị).
- Phạm vi sử dụng hệ thống điều khiển: Cá nhân.
3. Các thiết bị được sử dụng
3.1, KIT WIFI NODEMCU ESP8266 CH340
a, Mô tả KIT WIFI NODEMCU ESP8266 CH340
- KIT WIFI NODEMCU ESP8266 CH340 là một bảng mạch phát triển dựa trên
vi điều khiển ESP8266, được thiết kế để dễ dàng kết nối và giao tiếp qua mạng WiFi
- Vi điều khiển ESP8266: Đây là vi điều khiển tích hợp module WiFi, cho phép
kết nối Internet hoặc mạng nội bộ qua WiFi. Nó cung cấp khả năng xử lý và kết
nối mạng mạnh mẽ cho các ứng dụng IoT (Internet of Things).
- Chip CH340: Đây là chip chuyển đổi USB sang UART (serial), cho phép kết
nối ESP8266 với máy tính qua cổng USB. CH340 giúp giao tiếp dữ liệu giữa vi
điều khiển và máy tính khi lập trình hoặc truyền dữ liệu.
- Cổng USB: Bảng mạch được trang bị cổng USB để kết nối với máy tính. Bạn
có thể sử dụng cổng này để cấp nguồn cho mạch và lập trình vi điều khiển
- Chân GPIO: KIT này có nhiều chân GPIO (General Purpose Input/Output)
cho phép kết nối với các thiết bị ngoại vi như cảm biến, relay, và các module
khác. Các chân này có thể được lập trình để thực hiện các chức năng đầu vào hoặc đầu ra.
- Kết nối WiFi: ESP8266 hỗ trợ kết nối WiFi, cho phép KIT giao tiếp với các
dịch vụ trực tuyến, gửi và nhận dữ liệu qua mạng không dây. -
Đèn LED: Thường có một đèn LED tích hợp để hiển thị trạng thái hoạt động
của mạch, chẳng hạn như khi có kết nối WiFi hoặc đo cảm biến. -
b, Thông số kỹ thuật:
- Vi xử lý: ESP8266, dựa trên kiến trúc RISC 32-bit.
- Tần số hoạt động: 2.4 GHz.
- Giao tiếp ngoại vi: GPIO (General Purpose Input/Output), UART
- Bộ nhớ: Flash tích hợp 4MB.
- Điện áp hoạt động: 3V.
- Kích thước: Thông thường là 4.8 cm x 2.5 cm.
3.2. Cảm biến nhiệt độ độ ẩm DHT11 a, Mô tả
Cảm biến nhiệt độ và độ ẩm DHT11 là một cảm biến giá rẻ và phổ biến
trong các dự án liên quan đến đo nhiệt độ và độ ẩm môi trường. Nó được sử
dụng để đo và cung cấp thông tin về nhiệt độ và độ ẩm hiện tại trong một môi trường cụ thể
Cảm biến DHT11 sử dụng giao thức 1-wire đơn giản để giao tiếp với vi
điều khiển. Nó truyền dữ liệu nhiệt độ và độ ẩm dưới dạng tín hiệu kỹ thuật số qua chân Data.
Cảm biến DHT11 thường được sử dụng trong các ứng dụng như đo nhiệt
độ và độ ẩm trong phòng, điều khiển tự động, hệ thống quản lý môi trường và
các dự án IoT. Để sử dụng cảm biến, bạn cần cài đặt thư viện DHT11 cho vi
điều khiển hoặc vi xử lý mà bạn đang sử dụng và thực hiện các lệnh đọc dữ liệu
từ cảm biến thông qua chân Data
b, DHT11 có một thiết kế đơn giản với ba chân cắm
- VCC: Chân nguồn dương, được kết nối với nguồn cung cấp 3.3V - 5V.
- Data: Chân dữ liệu, được sử dụng để giao tiếp với vi điều khiển hoặc vi
xử lý để truyền dữ liệu nhiệt độ và độ ẩm.
- GND: Chân nguồn âm, được kết nối với chân GND của nguồn cung cấp và vi điều khiển.
c, Đặc điểm kỹ thuật chính của cảm biến nhiệt độ và độ ẩm DHT11 bao gồm:
- Phạm vi đo nhiệt độ: 0°C đến 50°C với độ chính xác ±2°C.
- Phạm vi đo độ ẩm: 20% đến 90% RH với độ chính xác ±5% RH.
- Điện áp hoạt động: 3.3V - 5V.
- Điện áp logic: 3.3V - 5V (hỗ trợ giao tiếp với các vi điều khiển 3.3V và 5V).
- Tốc độ truyền dữ liệu: Tối đa 1Hz (1 lần đo dữ liệu mỗi giây).
- Kích thước: Thường có kích thước nhỏ gọn và hình dạng hình hộp chữ nhật.
3.3. Cảm biến ánh sáng quang trở
Cảm biến ánh sáng quang trở CDS (Cadmium Sulfide) là một loại cảm biến
ánh sáng đơn giản và phổ biến. Nó hoạt động dựa trên sự thay đổi điện trở của vật liệu
bán dẫn khi ánh sáng chiếu vào. Khi có ánh sáng, điện trở của cảm biến giảm, và khi
ánh sáng yếu hoặc không có ánh sáng, điện trở tăng lên.
Đặc điểm của cảm biến ánh sáng quang trở CDS:
- Phạm vi nhạy sáng: Cảm biến nhạy cảm với ánh sáng nhìn thấy, phù hợp cho
các ứng dụng đo cường độ ánh sáng xung quanh.
- Hoạt động đơn giản: Chỉ cần đo sự thay đổi điện trở, nên thường được sử
dụng trong các mạch đơn giản.
- Ứng dụng: Được dùng trong đèn tự động, thiết bị đo ánh sáng, điều khiển thiết
bị theo cường độ ánh sáng (ví dụ như bật/tắt đèn khi trời tối). 3.4. Led
LED 2 chân (Light Emitting Diode) là một loại diode phát sáng khi có dòng
điện đi qua theo chiều thuận. Nó là một linh kiện điện tử phổ biến, được sử
dụng rộng rãi trong các thiết bị điện tử để chiếu sáng hoặc làm đèn báo hiệu. Cấu tạo: - 2 chân:
+ Chân dương (Anode): Đây là chân dài hơn, được kết nối với cực
dương (+) của nguồn điện.
+ Chân âm (Cathode): Chân này ngắn hơn và được kết nối với cực âm (-) của nguồn điện. Nguyên lý hoạt động:
- Khi có dòng điện đi từ Anode sang Cathode (theo chiều thuận của
diode),các electron sẽ chuyển động và tái hợp với các lỗ trống trong cấu
trúc vật liệu bán dẫn của LED. Quá trình này giải phóng năng lượng dưới dạng ánh sáng.
- LED là một diode nên chỉ phát sáng khi dòng điện đi theo một hướng
nhất định (từ chân dương sang chân âm). Nếu kết nối ngược chiều, LED sẽ không sáng. Đặc điểm:
- Tiêu thụ năng lượng thấp: LED sử dụng ít năng lượng hơn so với các loại đèn khác.
- Tuổi thọ cao: LED có tuổi thọ dài, có thể hoạt động hàng nghìn giờ.
- Kích thước nhỏ gọn: Thường rất nhỏ và dễ dàng tích hợp vào các mạch điện tử.
- Ánh sáng đa dạng: LED có thể phát ra nhiều màu sắc khác nhau (đỏ,
xanh lá, xanh dương, trắng, vàng, v.v.) tùy thuộc vào loại vật liệu bán dẫn được sử dụng.
4. Công ghệ sử dụng 4.1. Reactjs(front-end)
ReactJS là thư viện JavaScript phát triển bởi Facebook, dùng để xây dựng giao
diện người dùng (UI), đặc biệt là các ứng dụng một trang (SPA). React cho phép tạo
các thành phần (components) có thể tái sử dụng, giúp dễ quản lý và phát triển. Các tính năng chính:
- Component-based: Xây dựng UI bằng các thành phần có thể tái sử dụng.
- Virtual DOM: Cải thiện hiệu suất bằng cách cập nhật DOM hiệu quả.
- One-Way Data Binding: Dữ liệu được truyền theo một chiều, giúp dễ kiểm soát. 4.2. Nestjs(back-end)
NestJS là một framework phát triển backend dựa trên Node.js, được xây dựng
dựa trên các nguyên tắc của TypeScript và kết hợp nhiều mô hình từ các
framework hiện đại như Angular, giúp việc phát triển ứng dụng dễ dàng và có
tính module hóa cao. NestJS hỗ trợ đầy đủ các tính năng như Dependency
Injection (DI), MVC (Model-View-Controller), và các middleware phổ biến,
giúp ứng dụng có tính mở rộng và quản lý dễ dàng. Các tính năng chính:
- Hỗ trợ TypeScript: Viết mã dễ đọc, an toàn và có tính module hóa cao.
- Modularity: Cho phép chia nhỏ ứng dụng thành các module riêng lẻ.
- Routing: Định nghĩa các routes để điều hướng yêu cầu từ client đến các controllers.
-Middleware và Guards: Hỗ trợ các lớp middleware và guard để quản lý luồng dữ liệu, bảo mật.
- Dependency Injection: Đảm bảo khả năng mở rộng, giảm sự phụ thuộc của các module với nhau.
- Hỗ trợ WebSockets và GraphQL: Tích hợp dễ dàng với các công nghệ mới. 4.3. Websocket
WebSocket là một giao thức truyền thông cho phép mở một kết nối hai chiều,
liên tục giữa client (ví dụ: trình duyệt web) và server. Không giống như giao thức
HTTP, WebSocket cho phép truyền dữ liệu ngay lập tức theo cả hai hướng mà không
cần yêu cầu liên tục, giúp giảm độ trễ và cải thiện hiệu suất, đặc biệt trong các ứng
dụng cần cập nhật thời gian thực.
Đặc điểm chính của WebSocket:
- Kết nối hai chiều: Sau khi kết nối được mở, cả client và server đều có thể gửi
dữ liệu cho nhau bất cứ lúc nào mà không cần yêu cầu từ phía client.
- Giảm độ trễ: Vì không cần thực hiện các yêu cầu HTTP liên tục, WebSocket
giảm thiểu việc phải tạo lại kết nối cho mỗi lần trao đổi dữ liệu.
- Giao tiếp thời gian thực: WebSocket thích hợp cho các ứng dụng cần trao đổi
dữ liệu liên tục và thời gian thực như chat, theo dõi dữ liệu thời gian thực, chơi
game trực tuyến, hoặc các ứng dụng IoT.
- Sử dụng ít băng thông hơn: So với HTTP, WebSocket tiêu tốn ít băng thông
hơn vì giảm overhead do không phải gửi liên tục các header HTTP. 4.4. MQTT
MQTT (Message Queuing Telemetry Transport) là một giao thức truyền thông
nhẹ được thiết kế cho các ứng dụng yêu cầu truyền dữ liệu trong môi trường có băng
thông hạn chế, độ tin cậy thấp, hoặc thiết bị có tài nguyên giới hạn. MQTT chủ yếu
được sử dụng trong các hệ thống IoT (Internet of Things) để kết nối các thiết bị như
cảm biến, bộ điều khiển, và các hệ thống giám sát từ xa.
Đặc điểm chính của MQTT:
1. Nhẹ và hiệu quả: Giao thức MQTT được tối ưu hóa để sử dụng ít băng thông,
với kích thước gói dữ liệu nhỏ và overhead thấp. Điều này giúp tiết kiệm tài
nguyên, rất phù hợp với các thiết bị IoT có dung lượng bộ nhớ và khả năng xử lý hạn chế.
2. Mô hình Publish/Subscribe (Xuất bản/Đăng ký):
- Publisher (Người xuất bản): Các thiết bị hoặc ứng dụng xuất bản thông
tin lên một chủ đề (topic) cụ thể.
- Subscriber (Người đăng ký): Các thiết bị hoặc ứng dụng đăng ký theo
dõi một chủ đề để nhận thông báo khi có thông điệp mới.
- Broker: Trung gian giữa publisher và subscriber, chịu trách nhiệm tiếp
nhận và chuyển tiếp các thông điệp giữa các client. MQTT broker giúp
quản lý việc truyền thông tin một cách hiệu quả và đáng tin cậy. 3. Topic (Chủ đề):
- Chủ đề là kênh mà các thông điệp được truyền qua. Mỗi thông điệp
được gửi tới một chủ đề và tất cả các client đăng ký với chủ đề đó sẽ nhận được thông báo.
4. Quality of Service (QoS): MQTT hỗ trợ ba mức độ chất lượng dịch vụ (QoS)
để đảm bảo mức độ đáng tin cậy của việc gửi thông điệp:
- QoS 0: Gửi một lần, không có xác nhận. Thông điệp có thể bị mất.
- QoS 1: Gửi ít nhất một lần. Broker sẽ đảm bảo thông điệp được nhận ít nhất một lần.
- QoS 2: Gửi chính xác một lần. Đảm bảo không có sự trùng lặp và thông
điệp được nhận đúng một lần.
5. Giữ kết nối và phiên làm việc:
- MQTT hỗ trợ keep-alive để duy trì kết nối giữa client và broker. Nếu kết
nối bị gián đoạn, broker có thể lưu trữ các thông điệp quan trọng cho
đến khi client kết nối lại (hỗ trợ tính năng "session persistence").
II. Các sơ đồ thiết kế 1. Sơ đồ mạch
2. Sơ đồ luồng dữ liệu
3. Sơ đồ tuần tự
4. Đặc tả cấp độ IOT 5. Database
- Led table: dùng để lưu trạng hiện tại của led
- LedLog table: dùng để lưu lịch sử bật tắt của led
- Sensor table: dùng để lưu dữ liệu của cảm biến theo thời gian 6. Code - Mqtt setup và Mqtt service + setup + service: - Websocket:
+ Định nghĩa gateway để gửi/nhận dữ liệu: - Sensor: + entity: + service: - Led: + entity: + service: