TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
-----🙞🙜🕮🙞🙜-----
BÁO CÁO MÔN HỌC
INTERNET VẠN VẬT VÀ ỨNG DỤNG – IT4375
Đề tài:
Thiết kế hệ thống IOT cho phịng làm việc thơng minh
Hà Nội, 2022
1. Giới thiệu đề tài
Thuật ngữ "Internet of Things" được Kevin Ashton đặt ra vào năm 1999 để
chỉ sự kết nối của Internet với thế giới vật chất thông qua các cảm biến. Kể từ đó,
thuật ngữ này đã được sử dụng để mô tả bất kỳ thiết bị nào tương tác với thế giới
vật chất xung quanh nó bằng cách thu thập dữ liệu cảm biến hoặc bằng cách cung
cấp các tương tác trong thế giới thực thông qua bộ phát, thường được kết nối với
các thiết bị khác hoặc internet. Cảm biến thu thập thông tin từ thế giới, chẳng hạn
như để đo tốc độ, nhiệt độ hoặc vị trí. Bộ truyền động chuyển đổi tín hiệu điện
trong thế giới thực. Các tương tác như bật công tắc, bật đèn, tạo âm thanh hoặc
gửi tín hiệu điều khiển đến phần cứng khác. IoT là một lĩnh vực công nghệ khơng
chỉ là thiết bị: Nó bao gồm các dịch vụ dựa trên đám mây có thể xử lý dữ liệu từ
các cảm biến hoặc gửi yêu cầu đến các thiết bị truyền động được kết nối. Điều
này bao gồm các thiết bị khơng có kết nối internet, thường được gọi là bộ xử lý
biên. Các thiết bị này có thể tự xử lý và phản hồi các phản hồi dữ liệu cảm biến,
thường sử dụng các mơ hình AI được đào tạo trên nền tảng đám mây.
Chữ T trong IoT là viết tắt của Things – các thiết bị tương tác với thế giới
vật chất xung quanh bằng cách thu thập dữ liệu từ các cảm biến hoặc cung cấp
các tương tác trong thế giới thực thông qua bộ truyền động. Các thiết bị để sản
xuất hoặc sử dụng thương mại, như bộ theo dõi sức khỏe hoặc bộ điều khiển máy
công nghiệp thường được sản xuất theo yêu cầu. Họ sử dụng bảng mạch tùy chỉnh
hay bộ xử lý tùy chỉnh, thiết kế để đáp ứng nhu cầu của tác vụ cụ thể như để vừa
với cổ tay hoặc đủ chắc chắn để làm việc trong môi trường nhà máy nhiệt độ cao,
căng thẳng cao hoặc rung động cao. Dù là nhà phát triển đang tìm hiểu về IoT hay
đang chế tạo một thiết bị thử nghiệm cũng cần bắt đầu với bộ công cụ dành cho
nhà phát triển. Đây là các thiết bị IoT có mục đích chung được thiết kế cho các
nhà phát triển sử dụng, thường có các tính năng mà trên thiết bị sản xuất khơng
có, như một chân cắm bên ngồi để kết nối cảm biến hoặc bộ truyền động; phần
cứng để hỗ trợ gỡ lỗi hoặc các tài nguyên bổ sung. Các bộ công cụ dành cho nhà
phát triển thường chia thành hai loại: bộ vi điều khiển và máy tính một bảng mạch.
Điện thoại cũng được coi là một thiết bị IoT có mục đích chung, với các cảm biến
và thiết bị truyền động được tích hợp sẵn, sử dụng các ứng dụng khác nhau với
các dịch vụ đám mây khác nhau.
Thành quả của công nghiệp 4.0 mang lại cho con người rất nhiều thuận lợi
trong công việc, sinh hoạt cuộc sống...giúp nâng cao hiệu quả công việc, rút ngắn
thời gian làm việc thực tế; tiết kiệm quỹ thời gian, chất lượng cuộc sống cho bản
thân. Hệ thống IOT là một trong những thành quả rõ nhất của công nghiệp 4.0;
trong thực tiễn chúng ta bắt gặp rất nhiều ứng dụng IOT trong các lĩnh vực khác
nhau như: nông nghiệp; nhà thông minh; cấp nước; giám sát, phân phối điện năng;
2
giám sát vận hành vận tải; giám sát chất lượng khơng khí; đỗ xe; thu gom giác;
bán hàng, nhà kho...Trong khn khổ đề tài của nhóm đề cập đến thiết kế hệ thống
IOT cho phịng làm việc thơng minh với mục đích giám sát, điều khiển, quản lý,
chăm sóc các thiết bị, vật dụng trong phòng làm việc như hệ thống chiếu sáng;
điều hịa, quạt làm mát, máy tính, camera an ninh; các thiết bị báo khói, báo cháy;
khóa cửa, bể cá thủy sinh, cây cảnh...Lợi ích của hệ thống mang lại nhiều hiệu
quả cho con người trong việc giám sát, điều khiển các thiết bị, chăm sóc các vật
dụng khi khơng có mặt tại phịng làm việc vì lý do đi cơng tác, du lịch dài ngày...
Hình 1: Phịng làm việc cá nhân
2. Thiết kế hệ thống IOT
2.1. Sơ đồ thiết kế tổng quan:
Hình 2: Sơ đồ thiết thế tổng quan
3
2.2. Phân tích chi tiết các thành phần của hệ thống:
2.2.1. Phần cứng:
*, Mạch vi điều khiển ESP8266:
- Các thiết bị IOT là các bộ vi điều khiển ESP8266 có chức năng thu thập
các dữ liệu về điều kiện, chỉ số của môi trường từ các cảm biến để gửi đến server
thông qua nền tảng dịch vụ Firebase để tạo tài nguyên dữ liệu. Các bộ vi điều
khiển ESP8266 cũng nhận lệnh từ các clients thông qua giao tiếp với server để
điều khiển các thiết bị chấp hành như bật, tắt đèn; điều hịa, quạt gió làm mát,
bơm tưới cây... mà người sử dụng đã cài đặt vào hệ thống; hoặc lấy dữ liệu từ
database.
Hình 3: Mạch vi điều khiển ESP8266 nodeMCU
Bảng 1: Thông số kĩ thuật vi điều khiển ESP8266
Chip
WiFi
Điện áp hoạt động
Điện áp vào
Số chân I/O
Số chân Analog Input
Bộ nhớ Flash
Giao tiếp
ESP8266EX
2.4 GHz hỗ trợ chuẩn 802.11 b/g/n.
3.3V
5V thông qua cổng USB
11 (tất cả các chân I/O đều có
Interrupt/PWM/I2C/One-wire, trừ chân D0)
1 (điện áp vào tối đa 3.3V)
4MB
Cable Micro USB
*, Các cảm biến:
- Để quan sát, đo lường về điều kiện, chỉ số của môi trường (nhiệt độ, độ
ẩm, cường độ ánh sáng, mật độ khói cháy (nồng độ khí CO, CO2 trong khơng
khí, cảm biến chuyển động và gửi các thông tin về các thiết bị IOT (các Bộ vi
điều khiển ESP8266) đó dưới dạng chuẩn truyền thơng.
Hình 4: Cảm biến chuyển động
4
- Cảm biến chuyển động là một thiết bị điện sử dụng cảm biến để phát
hiện chuyển động gần đó. Một thiết bị như vậy thường được tích hợp như
một thành phần của hệ thống tự động thực hiện một nhiệm vụ hoặc cảnh báo
người dùng về chuyển động trong một khu vực. Chúng tạo thành một thành phần
quan trọng của an ninh, điều khiển ánh sáng tự động , điều khiển nhà, tiết kiệm
năng lượng và các hệ thống hữu ích khác.
Bảng 2: Thơng số kĩ thuật cảm biến chuyển động
Phạm vi phát hiện
Nhiệt độ hoạt động
Điện áp hoạt động
Mức tiêu thụ dịng
Thời gian báo
Độ nhạy
Kích thước
góc 360 độ hình nón, độ xa tối đa 6m
32-122 ° F (50 ° C)
DC 3.8V – 5V
≤ 50 uA
30 giây có thể tùy chỉnh bằng biến trở
có thể điều chỉnh bằng biến trở
1,27 x 0,96 x 1.0 ( 32,2 x 24,3 x 25,4 mm)
Hình 5: Cảm biến độ ẩm
- Cảm biến đo độ ẩm là dòng cảm biến dùng để đo độ ẩm khơng khí hoặc đo
độ ẩm đất. Cảm biến đo độ ẩm được ứng dụng trong nhiều ngành và lắp đặt nhiều
ứng dụng khác nhau. Cảm biến đo độ ẩm thường được tìm thấy ở nơi cần kiểm
sốt độ ẩm. Ví dụ, Trong một ngơi nhà có thể sử dụng chúng trong một hệ thống
kiểm soát độ ẩm, giám sát các khu vực khác nhau của ngôi nhà để ngăn ngừa nấm
mốc phát triển. Tương tự trong nhà kính, phịng tắm hơi, bảo tàng và máy ấp trứng
cũng sử dụng máy đo độ ẩm để đảm bảo lượng ẩm không khí ở mức thích hợp
cho cây, người…và trứng trong khu vực kín.
Bảng 3: Thơng số kĩ thuật cảm biến độ ẩm
Điện áp hoạt động
Kích thước PCB
Led
DO
3.3V-5V
3cm * 1.6cm
đỏ báo nguồn vào, xanh báo độ ẩm.
Đầu ra tín hiệu số (0 và 1)
5
A0
Ic so sánh
Đầu ra Analog (Tín hiệu tương tự)
LM393
Hình 6: Cảm biến phát hiện lửa
- Cảm biến phát hiện lửa flame sensor thường được sử dụng cho các ứng
dụng phát hiện lửa như: xe robot chữa cháy, cảm biến lửa,… Tầm phát hiện trong
khoảng 80cm, góc quét là 60 độ, có thể phát hiện lửa tốt nhất là loại có bước sóng
từ 760nm – 1100nm. Cảm biến phát hiện lửa (flame sensor) có hai ngõ ra tín hiệu
là Digital và Analog rất dễ dử dụng.
Bảng 4: Thông số kĩ thuật cảm biến lửa
Nguồn cấp
Dịng tiêu thụ
Tín hiệu ra
Khoảng cách
Góc qt
Kích thước
3.3V - 5VDC
15mA
Digital 3.3 - 5VDC tùy nguồn cấp hoặc Analog
80 cm
60 độ
3.2 x 1.4 cm
*, Clients:
- Là các computers hoặc smart phone giao tiếp với server thơng qua trình
web hoặc app android; người sử dụng có thể điều khiển hệ thống từ xa thơng qua
trình web hoặc app android trên giao diện của clients.
*, Thiết bị chấp hành:
- Là các thiết bị chấp hành để phục vụ mục đích cuối cùng của người sử dụng
như điều khiển điều hòa, quạt gió làm mát khi nhiệt độ trong phịng tăng cao, bơm
tưới nước chăm sóc cây cảnh khi độ ẩm khơng khí trong phịng thấp...
*, Server:
- Firebase là một nền tảng sở hữu bởi google giúp chúng ta phát triển các
ứng dụng di động và web. Họ cung cấp rất nhiều cơng cụ và dịch vụ tiện ích để
phát triển ứng dụng nên một ứng dụng chất lượng. Điều đó rút ngắn thời gian phát
triển và giúp ứng dụng sớm ra mắt với người dùng. Firebase cung cấp cho người
dùng các dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây với hệ thống
6
máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính của firebase là giúp người
dùng lập trình ứng dụng, phần mềm trên các nền tảng web, di động bằng cách đơn
giản hóa các thao tác với cơ sở dữ liệu. Với firebase, bạn có thể tạo ra những ứng
dụng real-time như app chat, cùng nhiều tính năng như xác thực người dùng,
Cloud Messaging... Bạn có thể dùng firebase giống như phần backend của app.
Các dịch vụ của firebase hoàn tồn miễn phí, tuy nhiên bạn cần phải trả thêm tiền
nếu muốn nâng cấp lên. Điều này bạn nên cân nhắc nếu muốn xây dựng một ứng
dụng lớn sử dụng phần backend là firebase, vì cái giá khi muốn nâng cấp còn khá
đắt đỏ so với việc xây dựng backend truyền thống.
Hình 7: Nền tảng Firebase
- Firebase Realtime Database: là một cơ sở dữ liệu thời gian thực, NoSQL
được lưu trữ đám mây cho phép bạn lưu trữ và đồng bộ dữ liệu. Dữ liệu được lưu
trữ dưới dạng cây Json, và được đồng bộ theo thời gian thực đối với mọi kết nối.
Khi bạn xây dựng những ứng dụng đa nền tảng như Android, IOS và Web App,
tất cả các client của bạn sẽ kết nối trên cùng một cơ sở dữ liệu Firebase và tự động
cập nhật dữ liệu mới nhất khi có sự thay đổi. Cả một cơ sở dữ liệu là một cây json
lớn, với độ trễ thấp, Firebase realtime database cho phép bạn xây dựng các ứng
dụng cần độ realtime như app chat, hay game online…
- Firebase Authentication: là chức năng xác thực người dùng. Hiểu một
cách đơn giản, app của bạn cần phải đăng nhập/ đăng ký tài khoản để sử dụng,
Firebase cung cấp cho chúng ta chức năng xác thực người dùng bằng email, số
điện thoại, hay tài khoản Facebook, Google...
- Firebase Cloud Storage là một khơng gian lưu trữ dữ liệu, nó giống như
một chiếc ổ cứng. Bạn có thể upload và download các loại file bạn muốn. Đó có
thể là một file ảnh, hay file văn bản, .zip, …
- Firebase Cloud Function cho phép chúng ta viết những câu truy vấn
database lưu trữ trên cloud. Code của bạn được lưu trữ trong cloud của Google và
chạy trong một môi trường bảo mật, được quản lý. Bạn không cần quan tâm đến
vấn đề mở rộng các máy chủ. Với firebase, khi bạn muốn lấy dữ liệu bạn cần phải
viết các câu truy vấn trực tiếp từ client. Điều này có thể vơ tình để lộ một số thơng
tin nhạy cảm. Để khắc phục vấn đề đó, Cloud Function đã ra đời. Nhiều lúc, các
developers muốn kiểm soát logic trên server để tránh giả mạo phía client. Ngồi
ra, đơi khi khơng muốn mã của mình khi bị decode sẽ gây ra các vấn đề về bảo
mật. Cloud Functions được tách biệt hoàn toàn với client, vì vậy bạn có thể n
tâm nó bảo mật và ln thực hiện chính xác những gì bạn muốn.
7
- Firebase Analytics là tính năng giúp bạn phân tích hành vi của người sử
dụng trên ứng dụng của bạn. Cuối cùng nó sẽ đưa ra lời khuyên về lộ trình xây
dựng ứng dụng. Để làm việc này bạn cần cài đặt SDK (Software Development
Kit, cụ thể hơn là FirebaseAnalytics.unitypackage), chức năng phân tích sẽ trở
nên khả dụng. Khi đó, bạn không chỉ xem được hành vi của người dùng mà cịn
có thể biết được thơng tin về như hiệu quả quảng cáo, tình trạng trả phí... Với tính
năng này, bạn có thể biết người dùng của bạn thường xuyên truy cập tính năng
nào, từ đó bạn có thể đưa ra chiến lược phát triển sản phẩm của mình.
2.2.2. Phần mềm:
*, Truyền thông giao tiếp giữa các thiết bị: sử dụng mạng internet Wifi, 4G
*, Giao thức giao tiếp giữa ESP8266 với Server; giữa Server với Client:
- Sử dụng giao thức HTTP. HTTP là tên viết tắt của cụm từ HyperText
Transfer Protocol, dịch theo tiếng Việt là giao thức truyền tải siêu văn bản. HTTP
được dùng trong www (world wide web) với mục đích tạo nên nền tảng kết nối
giữa client và server. Client ở đây đại diện cho bất kỳ loại thiết bị hoặc chương
trình nào, có thể là PC, smartphone… Cịn Server được dùng để chỉ những máy
tính trên đám mây. HTTP là một giao thức cho phép trao đổi và sử dụng các nguồn
tài nguyên khác nhau, chẳng hạn như HTML doc. Một doc hoàn chỉnh sẽ được
tạo nên từ nhiều doc con bao gồm văn bản, layout, media, video, script…HTTP
lần đầu được giới thiệu vào những năm 90. Cho đến ngày nay, nó khơng ngừng
được mở rộng và chiếm một vị trí rất quan trọng trong thế giới Internet. HTTP
được coi như là một giao thức ứng dụng của bộ các giao thức nền tảng cho Internet
TCP/IP. Nó cũng có thể được gửi thơng qua kết nối TCP được mã hóa TLS.
- Cấu trúc hoạt động của HTTP rất đơn giản và dễ hiểu. HTTP là một nền
tảng cho phép sự giao tiếp giữa 2 phía là Client và Server. Client ở đây là người
dùng, thường truy cập vào HTTP thông qua một công cụ bất kỳ như trình duyệt
web. Cịn Server sẽ đại diện cho phía website, đằng sau giao diện web gồm có
kịch bản phản ứng từ máy chủ và cơ sở dữ liệu. Vậy hoạt động của giao thức
HTTP là gì? Quá trình giao tiếp của Client và Server sẽ dựa trên các message độc
lập. Đầu tiên, phía khách hàng sẽ gửi một message đến cho máy chủ, thường là
các yêu cầu lợi ích khiến khách hàng truy cập website này. Sau khi tiếp nhận yêu
cầu và xử lý, máy chủ sẽ trả lại một message được gọi là phản hồi. Mỗi một phản
hồi đều là độc lập. Phản hồi sau sẽ không biết và cũng không chịu bất kỳ tác động
nào từ phản hồi trước.
*, App Inventer:
8
- MIT App Inventor là một môi trường phát triển tích hợp ứng dụng web ban
đầu được cung cấp bởi Google và hiện được duy trì bởi Viện Cơng nghệ
Massachusetts (MIT). Nó cho phép những người mới học lập trình máy tính tạo
phần mềm ứng dụng (app) cho hai hệ điều hành (OS): Android và IOS, kể từ ngày
8 tháng 7 năm 2019, đang trong giai đoạn thử nghiệm beta cuối cùng. Đây là phần
mềm mã nguồn mở và miễn phí được phát hành theo giấy phép kép: giấy phép
Creative Commons Attribution ShareAlike 3.0 Unported và một Giấy phép
Apache 2.0 cho mã nguồn. Nó sử dụng giao diện người dùng đồ họa (GUI) rất
giống với ngơn ngữ lập trình Scratch (ngơn ngữ lập trình) và StarLogo, cho phép
người dùng kéo và thả các đối tượng trực quan để tạo một ứng dụng có thể chạy
trên thiết bị Android, trong khi App-Inventor Companion (Chương trình cho phép
ứng dụng chạy và gỡ lỗi) hoạt động trên các thiết bị chạy iOS vẫn đang được phát
triển. Khi tạo ra App Inventor, Google đã dựa trên những nghiên cứu quan trọng
trước đây về máy tính giáo dục và cơng việc được thực hiện trong Google trên các
môi trường phát triển trực tuyến. App Inventor và các dự án khác dựa trên và được
cung cấp thông tin bởi các lý thuyết học tập của nhà kiến tạo, trong đó nhấn mạnh
rằng lập trình có thể là một phương tiện để thu hút những ý tưởng mạnh mẽ thơng
qua học tập tích cực. Như vậy, nó là một phần của phong trào liên tục trong máy
tính và giáo dục, bắt đầu với cơng trình của Seymour Papert và MIT Logo Group
vào những năm 1960, và cũng đã thể hiện qua cơng trình của Mitchel Resnick
trên Lego Mindstorms và StarLogo. App Inventor cũng hỗ trợ việc sử dụng dữ
liệu đám mây thông qua thành phần Cơ sở dữ liệu thời gian thực Firebase thử
nghiệm.
Hình 8: Ứng dụng Web App Inventor
2.3. Các công nghệ sử dụng:
- Server: Sử dụng dịch vụ firebase có sẵn trên nền tảng Google.
- Truyền thông giao tiếp giữa các thiết bị: sử dụng mạng internet Wifi, 4G.
- Giao tiếp giữa ESP8266 với Server: Sử dụng giao thức HTTP request
methods (HTTP GET & HTTP POST) để gửi dữ liệu lên firebase. Dữ liệu từ
Server (Firebase database) trả về ESP8266 bằng HTTP RESPONSE.
- Giao tiếp giữa Clients với Server: Sử dụng trình duyệt Web server bằng
giao thức HTTP REQUEST GET qua giao diện (computers và smart phones) để
9
điều khiển các chân GPIO của ESP8266 cho việc bật, tắt các thiết bị chấp hành
(máy bơm nước tưới cây, quạt, đèn chiếu sáng, …)
3. Xây dựng triển khai:
3.1. Xây dựng các thành phần của hệ thống:
- Thiết lập Arduino IDE cho ESP8266:
+ Kết nối bo mạch ESP8266 với máy tính.
+ Nạp chương trình cho ESP8266.
+ Kết nối WiFi cho ESP8266
+ Kết nối cảm biến với ESP8266, gửi dữ liệu từ cảm biến lên Firebase
- Xây dựng một Web Server trên ESP8266 để điều khiển các chân GPIO
(bật, tắt các thiết bị chấp hành).
- Thiết kế app android điều khiển hoạt động của các thiết bị chấp hành.
- Xây dựng cơ chế đăng nhập, đăng ký tài khoản lưu trữ dữ liệu trên Firebase.
3.2. Minh họa code, kết quả, hình ảnh sản phẩm:
*, Video demo hoạt động:
/>*, Kết nối mạch điều khiển:
Hình 9: Sơ đồ kết nối các thiết bị
*, Xây dựng thiết kế web:
10
Hình 10: Đăng nhập tài khoản vào hệ thống điều khiển và giám sát
Hình 11: Đăng kí tài khoản lưu trữ trên Firebase
Hình 12: Giám sát và điều khiển các thiết bị chấp hành
*, Xây dựng và thiết kế app adroid qua App Invertor:
11
Hình 13: Thiết kế giao diện đăng nhập hệ thống giám sát và điều khiển trên thiết bị android
Hình 14: Thiết kế khối lệnh thực hiện quá trình đăng nhập tài khoản vào hệ thống
Hình 15: Thiết kế giao diện đăng ký tài khoản
12
Hình 16: Thiết kế khối lệnh thực hiện quá trình đăng ký tài khoản
Hình 17: Thiết kế giao diện màn hình chính giám sát và điều khiển hệ thống
Hình 18: Thiết kế khối lệnh giám sát hệ thống và điều khiển các thiết bị chấp hành
13
Hình 19: Sản phẩm app điều khiển trên hệ điều hành android
*, Trao đổi dữ liệu với Firebase:
Hình 20: Dữ liệu thu nhận từ cảm biến, web gửi về Firebase
4. Khối lượng cơng việc hồn thành của các thành viên:
Khối lượng cơng việc các thành viên đã hồn thành như sau:
Họ và tên
Mã số HV
Khối lượng công việc
14
Đánh giá