Sự ra đời của các hệ thống nhà thông minh mang đến những giải pháp tự động hóa cho hầu hết các hoạt động trong gia đình, từ việc điều khiển ánh sáng, điều hòa nhiệt độ, đến việc quản lý
Trang 1KHOA KỸ THUẬT MÁY TÍNH VÀ ĐIỆN TỬ
ĐỒ ÁN CƠ SỞ 4
XÂY DỰNG MÔ HÌNH HỆ THỐNG NHÀ
THÔNG MINH “SMARTHOME”
Sinh viên thực hiện : BÙI KIM THUẬN
: NGUYỄN THÀNH ĐẠT
Giảng viên hướng dẫn: TS NGUYỄN VŨ ANH QUANG
Trang 2Đà Nẵng, tháng 11 năm 2024
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Kỹ thuật máy tính và Điện tử
ĐỒ ÁN CƠ SỞ 4
XÂY DỰNG MÔ HÌNH HỆ THỐNG NHÀ
THÔNG MINH “SMARTHOME”
Sinh viên : BÙI KIM THUẬN Mã: 22IT.B200 Sinh viên : NGUYỄN THÀNH ĐẠT Mã: 22IT.B045 Giảng viên hướng dẫn: TS NGUYỄN VŨ ANH QUANG
Đà Nẵng, tháng 11 năm 2024
Trang 3Tuy đã cố gắng hết mình mới có thể hoàn thiện bài đồ án cơ sở lần này Tuy nhiên chúng em chắc chắn cũng không thể nào thoát ra khỏi khiếm khuyết Kính mongtiếp tục có những hướng dẫn và hỗ trợ của quý thầy cô cùng các bạn để sản phẩm của tụi chúng em ngày càng phát triển hoàn thiện hơn nữa.
Một lần nữa, chúng em xin trân trọng cảm ơn!
Sinh viên Bùi Kim Thuận, Nguyễn Thành Đạt
Trang 4NHẬN XÉT GIÁO VIÊN HƯỚNG DẪN
Trang 5
MỤC LỤC
LỜI CẢM ƠN 1
NHẬN XÉT GIÁO VIÊN HƯỚNG DẪN 2
DANH MỤC CÁC TỪ VIẾT TẮT 8
MỞ ĐẦU 9
1 Lý do chọn đề tài 9
2 Mục tiêu của đề tài 9
3 Nội dung và kế hoạch thực hiện 10
Chương 1 TỔNG QUAN VỀ DỰ ÁN 12
1.1 Tên đề tài 12
1.2 Vấn đề cần giải quyết 12
1.3 Giới thiệu dự án 12
1.3.1 Đóng mở cổng chính, cửa hầm xe tự động 12
1.3.2 Đóng mở cửa chính bằng cảm biến thẻ từ 13
1.3.3 Tự động bật tắt đèn ngoài trời bằng cảm biến ánh sáng 13
1.3.4 Bật tắt đèn trong nhà bằng cảm biến chạm 13
1.3.5 Hiển thị nhiệt độ, độ ẩm, trạng thái khí gas trên màn hình led 13
1.3.6 Đóng mở mái che tự động thông qua cảm biến mưa 13
1.3.7 Đóng mở quạt hút ẩm, máy lạnh thông qua cảm biến nhiệt độ 13
1.3.8 Sử dụng tất cả các chức năng trên thông qua Blynk IoT 13
1.4.Kết chương 1 14
Chương 2 GIỚI THIỆU CÔNG NGHỆ 15
2.1 C++ 15
2.2 PlatformIO 17
2.3 FIREBASE 19
2.4 Visual Studio Code 21
Trang 62.5 Blynk IoT 23
2.6 Linh kiện phần cứng sử dụng 24
2.6.1 ESP32 NodeMCU 38 pin 24
2.6.2 Động cơ servo SG90S 25
2.6.3 Động cơ giảm tốc 27
2.6.4 Module RFID mini RC522 29
2.6.5 Module cảm biến nhiệt độ và độ ẩm DHT11 31
2.6.6 Module cảm biến ánh sáng LM393 32
2.6.7 Module cảm biến khí gas MQ-2 34
2.6.8 Module cảm biến mưa 36
2.6.9 Còi báo động SFM27 37
2.6.10 Module cảm biến chạm TPP223 38
2.6.11 Màn hình LCD 16*02 và mạch chuyển đôi I2C 40
2.7 Kết chương 2 41
Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 42
3.1 Yêu cầu hệ thống và mô hình hóa yêu cầu hệ thống 42
3.1.1 Danh sách tác nhân 42
Bảng 3.1 Danh sách tác nhân 42
3.1.2 Yêu cầu phi chức năng 42
3.1.3 Yêu cầu chức năng 43
Bảng 3.2 Bảng chức năng người dùng 43
Bảng 3.3 Bảng chức năng người quản trị 44
3.1.4 Biểu đồ ca sử dụng 44
3.2 Mô hình hóa cấu trúc tĩnh 46
3.2.2 Biểu đồ lớp 46
3.3 Mô hình hóa hành vi 47
3.3.1 Biểu đồ hoạt động 47
Trang 73.3.2 Biểu đồ trạng thái 50
3.3.3 Biểu đồ tuần tự 52
Chương 4 GIỚI THIỆU DỰ ÁN 53
4.1 Hình ảnh dự án 53
4.2 Giao diện web điều khiển(Blynk IoT) 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 61
1 Kết quả đạt được 61
2 Ưu nhược điểm của dự án 61
TÀI LIỆU THAM KHẢO 62
1 Webiste 62
2 Documents 62
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 C++ 15
Hình 2 Platform IO 17
Hình 3 FIREBASE 19
Hình 4 Visual Studio Code 21
Hình 5 Blynk IoT 23
Hình 6 ESP32 38 PIN 24
Hình 7 Servo SG90S 26
Hình 8 Động cơ giảm tốc 27
Hình 9 Module RFID mini RC522 29
Hình 10 DHT11 31
Hình 11 Module LM393 32
Hình 12 Module MQ-2 34
Hình 13 Module cảm biến mưa 36
Hình 14 Còi báo động SFM27 37
Hình 15 Module TTP223 38
Hình 16 Màn hình LCD và mạch I2C 40
Hình 17 Biểu đồ ca sử dụng người dùng 44
Hình 18 Biểu đồ ca sử dụng admin 45
Hình 19 Biểu đồ lớp 46
Hình 20 Biểu đồ hoạt động cho ca sử dụng đóng mở cửa 47
Hình 21 Biểu đồ hoạt động ca sử dụng bật tắt đèn 48
Hình 22 Biểu đồ hoạt động ca sử dụng điều khiển thiết bị 49
Hình 23 Biểu đồ trạng thái cho ca sử dụng “Đóng mở cửa” 50
Hình 24 Biểu đồ trạng thái cho ca sử dụng “Bẩt tắt đèn” 51
Hình 25 Biểu đồ trạng thái cho ca sử dụng “Đóng mở cửa” 52
Trang 9Hình 26 Biểu đồ tuần tự cho ca sử dụng “Bật tắt đèn” 52
Hình 29 Hình ảnh tổng quan dự án 1 53
Hình 30 Hình ảnh tổng quan dự án 2 54
Hình 31 Hình ảnh tổng quan dự án 3 54
Hình 32 Hình ảnh tổng quan dự án 4 55
Hình 33 Hình ảnh tổng quan dự án 5 56
Hình 34 Hình ảnh cổng chính 56
Hình 35 Hình ảnh cửa chính 57
Hình 36 Hình ảnh hầm xe 57
Hình 37 Hình ảnh phòng ngủ 58
Hình 38 Hình ảnh phòng khách 59
Hình 40 Giao diện web điều khiển 60
Hình 41 Giao diện web chỉnh sửa chức năng 60
Trang 10DANH MỤC CÁC TỪ VIẾT TẮT
ESP-IDF Espressif IoT Development
Framework
Framework để lập trình và phát triển các ứng dụng IoT trên các dòng vi điều khiển ESP32 và ESP8266
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, nhà thông minh đã trở thành một trong những xu hướng công nghệ hàng
đầu, giúp thay đổi cách thức con người tương tác với môi trường sống hàng ngày Sự ra
đời của các hệ thống nhà thông minh mang đến những giải pháp tự động hóa cho hầu hết
các hoạt động trong gia đình, từ việc điều khiển ánh sáng, điều hòa nhiệt độ, đến việc
quản lý an ninh và theo dõi tiêu thụ năng lượng Những ứng dụng này không chỉ mang lại
sự tiện nghi mà còn góp phần cải thiện chất lượng cuộc sống, giúp con người tiết kiệm
thời gian và công sức Đặc biệt, trong bối cảnh hiện đại hóa và phát triển đô thị nhanh
chóng, nhu cầu về các hệ thống nhà thông minh không ngừng gia tăng, bởi chúng đáp
ứng được những yêu cầu ngày càng cao của con người về sự tiện lợi, an toàn và hiệu quả
Chính vì vậy, chúng em đã lựa chọn đề tài “Xây dựng mô hình hệ thống nhà thông
minh SmartHome” nhằm nghiên cứu và phát triển các chức năng thông minh phục vụ
cho đời sống con người Với mong muốn ứng dụng các tiến bộ công nghệ hiện đại vào
việc cải thiện chất lượng cuộc sống, đề tài này sẽ tập trung vào việc phát triển những giải
pháp nhà thông minh thực tế và khả thi, góp phần mang đến cho người dùng những trải
nghiệm tiện nghi và hiện đại nhất Hơn nữa, đề tài còn mở ra cơ hội để chúng em tiếp cận
với những công nghệ tiên tiến, phát triển kỹ năng trong lĩnh vực IoT, lập trình, và thiết kế
hệ thống, từ đó trang bị kiến thức và kinh nghiệm cần thiết để đáp ứng nhu cầu của ngành
công nghiệp công nghệ trong tương lai
2 Mục tiêu của đề tài
Xây dựng mô hình hệ thống nhà thông minh (SmartHome): Phát triển một mô hìnhnhà thông minh cơ bản, bao gồm các chức năng tự động hóa và điều khiển các thiết bị
trong gia đình như đèn, quạt, điều hòa, an ninh thông qua các giao thức kết nối mạng
không dây và có dây
Nâng cao chất lượng cuộc sống thông qua ứng dụng công nghệ: Đưa ra những giảipháp thông minh giúp gia đình kiểm soát các thiết bị một cách hiệu quả, tiết kiệm thời
gian và năng lượng, đồng thời tăng cường an ninh, giảm thiểu các rủi ro về an toàn trong
nhà
Tích hợp các thiết bị và cảm biến thông minh: Tích hợp các cảm biến và thiết bị tựđộng vào mô hình nhà thông minh để điều khiển ánh sáng, nhiệt độ, và giám sát an ninh
Nhiệm vụ này bao gồm việc thiết lập các chức năng điều khiển từ xa thông qua
smartphone hoặc các thiết bị di động khác
Trang 12Đánh giá và kiểm tra hiệu quả hệ thống: Thực hiện quá trình thử nghiệm mô hìnhSmartHome, đo lường hiệu quả hoạt động của hệ thống về mặt tiện lợi, an toàn, và tiếtkiệm năng lượng Đưa ra các kết luận và cải tiến dựa trên kết quả đánh giá.
Tiếp cận và nâng cao khả năng lập trình với các giao thức IOT, thiết bị đo, cảm biến, viđiều khiển
3 Nội dung và kế hoạch thực hiện
❖ Bước 1: Thiết kế các chức năng
Sử dụng vi điều khiển để điều khiển các thiết bị, cảm biến hoạt động một cách tự độnghoặc có thể điều khiển qua Blink IOT
❖ Bước 2: Thiết kế mô hình
Thiết kế mô hình nhà mini để gắn các thiết bị, cảm biến theo bản vẽ đã phát thảo trướcđó
❖ Bước 3: Chạy thử nghiệm
- Thử nghiệm hệ thống thông tin
- Cuối cùng là khắc phục các lỗi (nếu có)
- Viết test case theo yêu cầu
- Kết quả cuối cùng là một mô hình nhà thông minh với nhiều chức năng hiện đại, hỗ trợ tối ưu cho người dùng
-Viết báo cáo: Viết báo cáo chi tiết theo hướng dẫn của GVHD
Trang 13Thời gian Nội dung thực hiện
Từ tuần 1 đến tuần 3 Tìm hiểu về đề tài, tìm kiếm thông tin, tham khảo các
ứng dụng có sẳn
Từ tuần 3 đến tuần 4 Xây dụng các chức năng chính
Từ tuần 4 đến tuần 7 Thiết kế mô hình phù hợp
Sau phần Mở đầu, báo cáo được trình bày trong bốn chương, cụ thể như sau:
Chương 1 Tổng quan về dự án Trong chương này, báo cáo trình bày tên đề tài và vấn
đề cần giải quyết
Chương 2 Giới thiệu công nghệ Giới thiệu công nghệ và công cụ sử dụng để xây mô
hình nhà thông minh
Chương 3 Giới thiệu mô hình Chương này mô tả về frontend của ứng dụng
Chương 4 Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài.
Trang 14Ngày nay, mọi việc liên quan đến thông tin đã trở nên dễ dàng hơn bao giờ hếtnhờ vào kết nối internet Chỉ cần một thao tác tìm kiếm, người dùng có thể truy cập vàokho tàng kiến thức khổng lồ không chỉ trong nước mà còn trên toàn thế giới, dưới nhiềuhình thức như văn bản, hình ảnh và âm thanh.
Nhằm đáp ứng nhu cầu ngày càng cao của con người trong việc tận dụng công
nghệ để nâng cao chất lượng cuộc sống, nhóm chúng em đã chọn đề tài “Xây dựng mô hình hệ thống nhà thông minh SmartHome” Đề tài này hướng đến việc giúp người
dùng quản lý và điều khiển các thiết bị trong ngôi nhà một cách tiện lợi, hiện đại và hiệuquả ngay cả khi không có mặt tại nhà Hệ thống nhà thông minh không chỉ tạo sự thoảimái, tiết kiệm thời gian mà còn nâng cao mức độ an ninh và tiết kiệm năng lượng, đápứng xu hướng phát triển của xã hội hiện đại
Hiển thị nhiệt độ, độ ẩm, trạng thái khí gas trên màn hình led
Đóng mở mái che tự động thông qua cảm biến mưa
Đóng mở quạt hút ẩm, máy lạnh thông qua cảm biến nhiệt độ, độ ẩm
Sử dụng tất cả các chức năng trên thông qua Blynk IOT
1.3.1 Đóng mở cổng chính, cửa hầm xe tự động
Cổng chính: sẽ được mở, đóng thông qua cảm biến TTP223
Cửa hầm xe: sẽ được mở, đóng thông qua cảm biến TTP223
Trang 151.3.2 Đóng mở cửa chính bằng cảm biến thẻ từ
Người dùng tiến hành quét thẻ từ đã được xác nhận lên cảm biến thẻ từ RFID MiniRC522 I2C Nếu mã thẻ từ dùng để quét đúng, cửa sẽ tự động mở và đóng lại sau 5 giây.Thời gian và mã thẻ sẽ được lưu lại để dễ dàng kiểm soát người ra vào cổng
1.3.3 Tự động bật tắt đèn ngoài trời bằng cảm biến ánh sáng.
Hai bóng đèn led ngoài trời sẽ tự động bật tắt thông qua giá trị mà cảm biến ánh sángLM393 đọc được
Nếu cảm biến đọc được giá trị ánh sáng vượt mức chỉ định thì đèn sẽ được tắt
Nếu cảm biến đọc được giá trị ánh sáng thấp hơn mức chỉ định thì đèn sẽ được bật
1.3.5 Hiển thị nhiệt độ, độ ẩm, trạng thái khí gas trên màn hình led.
Cảm biến nhiệt độ độ ẩm DHT11, cảm biến khí gas MQ-2 sẽ đọc dữ liệu và được gửi vềmáy chủ, máy chủ phân tích và chuyển đổi dữ liệu sau đó hiển thị ra màn hình led LCD
1.3.6 Đóng mở mái che tự động thông qua cảm biến mưa.
Cảm biến mưa sẽ phát hiện mưa và điều khiển mái che đóng mở
1.3.7 Đóng mở quạt hút ẩm, máy lạnh thông qua cảm biến nhiệt độ
Hệ thống sẽ nhận dữ liệu của cảm biến nhiệt độ, độ ẩm DHT11 và phân tích, sau đó điềukhiển quạt, máy lạnh phù hợp với nhiệt độ và độ ẩm hiện tại
1.3.8 Sử dụng tất cả các chức năng trên thông qua Blynk IoT.
Sử dụng Blink IoT đề điều sử dụng các chức năng trên thông qua các nút nhấn, nhãndán,
1.4.Kết chương 1
Dự án SmartHome không chỉ cải thiện chất lượng cuộc sống, mà còn là minh chứng cho sự ứng dụng hiệu quả của công nghệ vào đời sống thực tế Các tính năng thông
Trang 16minh của hệ thống góp phần tối ưu hóa năng lượng, tăng cường an ninh, và đáp ứng nhu cầu hiện đại hóa của xã hội
Trang 17Chương 2 GIỚI THIỆU CÔNG NGHỆ
2.1 C++
C++ (C Plus Plus, CPP, IPA: /siː pləs pləs/) là một ngôn ngữ lập trình đa năng bậc cao(high-level) được tạo ra bởi Bjarne Stroustrup như một phần mở rộng của ngôn ngữ lậptrình C, hoặc "C với các Class", Ngôn ngữ đã được mở rộng đáng kể theo thời gian và C++ hiện đại có các tính năng: lập trình tổng quát, lập trình hướng đối tượng, lập trình thủtục, ngôn ngữ đa mẫu hình tự do có kiểu tĩnh, dữ liệu trừu tượng, và lập trình đa hình,ngoài ra còn có thêm các tính năng, công cụ để thao tác với bộ nhớ cấp thấp Từ thập niên
1990, C++ đã trở thành một trong những ngôn ngữ thương mại ưa thích và phổ biến củalập trình viên
C++ được thiết kế hướng tới lập trình hệ thống máy tính và phần mềm nhúng trên cácmạch vi xử lý, bao gồm cả hệ thống có tài nguyên hạn chế và tài nguyên khổng lồ, với ưuđiểm vượt trội về hiệu suất, hiệu quả và tính linh hoạt cao C++ có thể tìm thấy ở mọi nơi,với những điểm mạnh là cơ sở hạ tầng phần mềm và các ứng dụng bị hạn chế tài nguyên.bao gồm: phần mềm ứng dụng máy tính cá nhân, trò chơi điện tử, các hệ thống máy chủ(ví dụ: phần mềm thương mại điện tử, cỗ máy tìm kiếm trên web hoặc máy chủ SQL) vàcác ứng dụng ưu tiên về hiệu suất (ví dụ: tổng đài thông tin liên lạc hoặc thiết bị thăm dòkhông gian) C++ hầu hết được thực thi dưới dạng là một ngôn ngữ biên dịch, có thể chạytrên nhiều nền tảng khác nhau như Windows, Mac OS, Linux
Hình 1 C++
- Một số đặc điểm nổi bật của C++ bao gồm:
Trang 18+ Hướng đối tượng (Object-Oriented Programming - OOP): C++ hỗ trợ đầy đủ
các khái niệm của lập trình hướng đối tượng như lớp (class), đối tượng (object),
kế thừa (inheritance), đa hình (polymorphism), và đóng gói (encapsulation)
+ Hiệu suất cao: C++ cho phép lập trình gần với phần cứng, tối ưu hóa tài nguyên
hệ thống, mang lại hiệu suất cao Sử dụng hiệu quả bộ nhớ nhờ khả năng quản lýcon trỏ và cấp phát động
+ Đa dạng lập trình (Multiparadigm Programming): Hỗ trợ cả lập trình hướng đốitượng (OOP), lập trình thủ tục (procedural programming), và lập trình tổng quát(generic programming) Kết hợp linh hoạt các mô hình lập trình, phù hợp vớinhiều loại dự án
+ Thư viện phong phú (Standard Template Library - STL): C++ cung cấp STL,
bao gồm nhiều cấu trúc dữ liệu (vector, list, stack), thuật toán (sắp xếp, tìm kiếm),
và bộ chứa (containers)
+ Tính tương thích ngược (Backward Compatibility): C++ được xây dựng dựatrên ngôn ngữ C, vì vậy các chương trình C hầu hết có thể biên dịch và chạy đượctrong C++ Mang lại sự linh hoạt khi làm việc với các dự án hoặc mã nguồn cũ.+ Quản lý bộ nhớ thủ công: C++ cung cấp con trỏ và các cơ chế quản lý bộ nhớthủ công, cho phép lập trình viên kiểm soát chi tiết cách bộ nhớ được sử dụng Dùđòi hỏi kỹ năng lập trình cao, nhưng tính năng này mang lại hiệu suất vượt trộitrong các ứng dụng yêu cầu khắt khe
+ Hỗ trợ đa nền tảng (Cross-Platform Support): C++ có thể được biên dịch vàchạy trên nhiều hệ điều hành và kiến trúc phần cứng khác nhau Giúp phát triểnứng dụng linh hoạt và dễ dàng triển khai trên nhiều môi trường
+ Khả năng mở rộng cao: Ngôn ngữ cho phép xây dựng các chương trình từ đơngiản đến phức tạp C++ được sử dụng trong các lĩnh vực đa dạng như lập trình tròchơi, hệ thống nhúng, phát triển trình biên dịch, ứng dụng tài chính, và trí tuệnhân tạo
C++ là sự kết hợp giữa sức mạnh, tính linh hoạt và khả năng tối ưu hóa, đáp ứng mọi yêucầu từ các ứng dụng đơn giản đến hệ thống phức tạp Từ những đặc điểm nổi bật đó em
đã chọn ngôn ngữ C++ để lập trình các chức năng cho dự án
Trang 192.2 PlatformIO
Hình 2 Platform IO
- PlatformIO là một hệ sinh thái phát triển tích hợp (IDE) mã nguồn mở, mạnh mẽ và đanền tảng dành cho việc lập trình các hệ thống nhúng và IoT Đây là một công cụ pháttriển toàn diện hỗ trợ nhiều loại vi điều khiển và bo mạch như Arduino, ESP32, STM32,AVR, PIC, ARM Cortex, và nhiều loại khác
- Các đặc điểm chính của PlatformIO:
+ Hỗ trợ đa nền tảng: Nhiều vi điều khiển và bo mạch: Hỗ trợ hơn 1000 bo mạch
và 35 nền tảng phần cứng như Arduino, Espressif (ESP8266, ESP32), STM32,
Raspberry Pi, và Nordic
+ Đa IDE và tích hợp trình chỉnh sửa mã: Tích hợp với các IDE phổ biến như VS
Code, Atom, CLion, và có thể sử dụng từ dòng lệnh với PlatformIO Core (CLI).
+ Quản lý thư viện thông minh: PlatformIO cung cấp Library Manager, cho phéptìm kiếm, cài đặt, cập nhật, và quản lý hàng ngàn thư viện mã nguồn mở Tự động
xử lý phụ thuộc thư viện khi biên dịch
+ Công cụ xây dựng mạnh mẽ (Build System): Tự động nhận diện môi trườngphần cứng và phần mềm Hỗ trợ các tính năng biên dịch nâng cao như tối ưu hóa
mã, liên kết mã, và hỗ trợ trình biên dịch đa dạng (GCC, LLVM)
+ Tích hợp IoT: Hỗ trợ lập trình và giám sát các thiết bị IoT với nhiều frameworknhư Arduino, Zephyr, mbed OS Dễ dàng kết nối và quản lý các thiết bị IoT quagiao diện tích hợp
+ Công cụ gỡ lỗi (Debugger): Cung cấp khả năng gỡ lỗi toàn diện với hỗ trợ cả hardware debugging và software debugging
Trang 20+ Hỗ trợ mã nguồn mở và cộng đồng: PlatformIO được xây dựng dựa trên mãnguồn mở, cung cấp tài liệu chi tiết và cộng đồng hỗ trợ rộng lớn.
- PlatformIO là lựa chọn lý tưởng cho lập trình nhúng và IoT, cung cấp một nền tảng hiệnđại, mạnh mẽ và tối ưu hóa cho việc phát triển các ứng dụng thông minh
Trang 212.3 FIREBASE
Hình 3 FIREBASE
Firebase là một nền tảng giúp phát triển các ứng dụng di động trong web Bên cạnh đó,Firebase còn được hiểu là một dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây cloudvới hệ thống máy chủ mạnh mẽ của Google
Firebase chứa cơ sở dữ liệu mang đến khả năng code nhanh và thuận tiện hơn Lập trình viên
có thể dễ dàng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu sẵncó
Ban đầu, Firebase là một sáng chế của James Tamplin và Andrew Lee Tuy nhiên trải quanhiều cuộc huy động vốn, Firebase đã chính thức được Google mua lại vào năm 2014 Vìvậy, tính đến thời điểm hiện tại, nền tảng này là một phần và thuộc quyền sở hữu của Google.Các tính năng chính của Firebase:
Realtime Database là một cơ sở dữ liệu thời gian thực Ngay sau khi bạn đăng ký tàikhoản trên Firebase, bạn sẽ nhận được Realtime Database được lưu trữ dưới dạng JSON
và được đồng bộ hóa theo thời gian thực đối với mọi kết nối Đối với các ứng dụng đượcxây dựng trên đa nền tảng như Android, IOS và WebApp, tất cả client sẽ cùng sử dụngmột cơ sở dữ liệu Bên cạnh đó, hệ thống dữ liệu này sẽ tự động cập nhật khi lập trình
Trang 22viên phát triển ứng dụng Sau đó, tất cả dữ liệu này sẽ được truyền tải thông qua các kếtnối SSl có 2048 bit.
Authentication là tính năng giúp xác thực danh tính của người dùng ứng dụng Firebasecung cấp các bước xác thực thông qua Email, Facebook, Twitter, GitHub hay Google.Điều này giúp cho các thông tin cá nhân của khách hàng được bảo vệ một cách tốt nhất,hạn chế được tình trạng bị hacker đánh cắp Đồng thời việc xác thực danh tính quaFirebase sẽ giúp người dùng tiếp cận sản phẩm nhanh chóng và an toàn hơn
Cloud Storage là tính năng cho phép lưu trữ và quản lý nội dung đã tạo ra như ảnh, video,nội dung, văn bản, Firebase Storage cung cấp các API hỗ trợ bạn upload và downloadcác file từ ứng dụng một cách trơn tru mà không cần quan tâm đến chất lượng đườngtruyền mạng với độ bảo mật cao
Cloud Firestore được phát triển từ tính năng Realtime Database Trải qua nhiều lần nângcấp, Cloud Firestore có giao diện trực quan và khả năng mở rộng ưu việt hơn so vớiRealtime Database Tính năng này của Firebase giúp đồng bộ mọi dữ liệu trên các ứngdụng thông qua việc đăng ký thời gian thực và cung cấp hỗ trợ ngoại tuyến cho thiết bị diđộng cũng như ứng dụng
Với cơ sở dữ liệu khổng lồ, Firebase giúp lập trình viên phát triển ứng dụng di động một cáchnhanh chóng và giúp giảm thiểu chi phí Song song đó, Firebase cho phép phát triển ứng dụngtrên cả nền tảng iOS và Android nên có thể đáp ứng mọi yêu cầu về hệ điều hành
Trang 232.4 Visual Studio Code
Visual Studio Code là một trình chỉnh sửa mã nguồn mở, miễn phí, nhẹ và mạnh mẽ,được phát triển bởi Microsoft VS Code được thiết kế để hỗ trợ các nhà phát triển xâydựng và quản lý mã nguồn hiệu quả, đồng thời cung cấp nhiều tính năng nâng cao như gỡlỗi, quản lý phiên bản, và tích hợp công cụ lập trình
Hình 4 Visual Studio Code
- Các đặc điểm chính của Visual Studio Code:
+ Đa nền tảng: Hoạt động trên Windows, macOS, và Linux, phù hợp với hầu
hết các môi trường làm việc
+ Giao diện thân thiện và tùy chỉnh: Giao diện trực quan và dễ sử dụng Hỗ trợ
tùy chỉnh giao diện thông qua theme, icon pack, và bố cục hiển thị theo nhu
cầu
+ Hỗ trợ nhiều ngôn ngữ lập trình: Tích hợp sẵn hỗ trợ cho các ngôn ngữ phổ
biến như JavaScript, Python, C++, C#, Java, PHP, Go, Rust, HTML, và CSS
Có thể mở rộng để hỗ trợ thêm nhiều ngôn ngữ thông qua các extension
Trang 24+ Tích hợp Debugger: VS Code có trình gỡ lỗi tích hợp hỗ trợ các ngôn ngữ như Node.js, Python, C++, và nhiều hơn nữa Cho phép đặt điểm ngắt
(breakpoints), theo dõi biến, và kiểm soát luồng chương trình trong thời gian thực
+ Tích hợp Git và quản lý phiên bản: Tích hợp Git giúp dễ dàng theo dõi, commit, push, pull mã nguồn ngay trong giao diện của VS Code Hỗ trợ các hệ thống quản lý phiên bản khác như SVN thông qua extension
+ Hệ sinh thái mở rộng mạnh mẽ: Marketplace cung cấp hàng ngàn extension
để mở rộng tính năng như hỗ trợ ngôn ngữ lập trình (Python, C++, Java, v.v.), Công cụ phát triển (Docker, Kubernetes, PlatformIO, v.v.), Tích hợp
frameworks và công cụ (React, Angular, Django, Flask, v.v.)
- VS Code không chỉ là một trình chỉnh sửa mã mà còn là một nền tảng mạnh mẽ và linhhoạt, phù hợp cho các nhà phát triển ở mọi cấp độ, từ người mới học lập trình đến chuyêngia phát triển phần mềm
- VS Code kết hợp với PlatformIO là lựa chọn lý tưởng cho dự án IoT nhờ hỗ trợ đa nềntảng, đa framework (Arduino, ESP-IDF, STM32), và tích hợp công cụ lập trình hiện đạinhư IntelliSense, Debugger, và Git Hệ sinh thái mở rộng, quản lý thư viện thông minh,
và giao diện trực quan giúp tăng hiệu suất làm việc Ngoài ra, khả năng gỡ lỗi mạnh mẽ
và hỗ trợ phát triển từ xa giúp dễ dàng triển khai và kiểm tra các thiết bị IoT
Trang 252.5 Blynk IoT
Hình 5 Blynk IoT
- Blynk IoT là một nền tảng IoT toàn diện giúp các nhà phát triển dễ dàng kết nối, điềukhiển và giám sát các thiết bị từ xa thông qua ứng dụng di động, giao diện web hoặc API
Được thiết kế để hỗ trợ nhiều loại phần cứng như ESP32, Arduino, Raspberry Pi, và
nhiều hơn nữa, Blynk IoT cho phép người dùng xây dựng các hệ thống tự động hóa hoặcứng dụng IoT một cách nhanh chóng
- Các tính năng chính của Blynk IoT:
+ Điều khiển từ xa: Gửi lệnh hoặc kiểm tra trạng thái thiết bị thông qua ứng dụnghoặc trình duyệt web
+ Giao diện tùy chỉnh: Thiết kế dashboard với các nút nhấn, thanh trượt, đồ thị,hoặc biểu đồ hiển thị dữ liệu
+ Hỗ trợ đa phần cứng: Hoạt động với nhiều loại vi điều khiển và module IoT phổ biến
+ Tích hợp thời gian thực: Nhận dữ liệu hoặc thông báo ngay lập tức từ thiết bị.+ API và Webhooks: Kết nối dễ dàng với các hệ thống khác thông qua RESTfulAPI hoặc tích hợp vào các ứng dụng của bên thứ ba
- Với những tính năng của Blynk IoT như trên chúng em đã kết hợp với ESP32 để xâydựng các chức năng điều khiển từ xa cho dự án nhà thông minh “SmartHome”
Trang 262.6 Linh kiện phần cứng sử dụng.
2.6.1 ESP32 NodeMCU 38 pin
- ESP32 38 pin là một phiên bản của ESP32, một vi điều khiển mạnh mẽ và phổ biếntrong các dự án IoT (Internet of Things) ESP32 được sản xuất bởi Espressif Systems vànổi bật với khả năng kết nối Wi-Fi và Bluetooth tích hợp, giúp nó trở thành sự lựa chọn
lý tưởng cho các ứng dụng IoT, tự động hóa nhà thông minh, và nhiều ứng dụng nhúngkhác
Hình 6 ESP32 38 PIN
- Thông số kĩ thuật của ESP32 38 PIN:
+ Điện áp nguồn (TYPE C): 5V DC
+ Đầu vào/Đầu ra điện áp: 3.3V DC
+ Dòng điện : 5μA trong hệ thống treo chế độ
Trang 27+ Cổng ADC : 12bit – 18 Kênh.
- ESP32 38 pin là một lựa chọn tuyệt vời cho các dự án IoT nhờ vào sự kết hợp giữa hiệu
suất mạnh mẽ, khả năng kết nối không dây, và tính linh hoạt trong việc kết nối với các
cảm biến và thiết bị khác Việc lập trình và triển khai các ứng dụng trên ESP32 trở nên dễdàng nhờ vào các công cụ như Arduino IDE và PlatformIO
- Cấu tạo của động cơ servo:
+ Motor DC: Động cơ điện một chiều giúp tạo ra chuyển động quay.
+ Hộp số (Gearbox): Hệ thống bánh răng giúp giảm tốc độ quay và tăng
mô-men xoắn
+ Bảng mạch điều khiển (Control Circuit): Nhận tín hiệu điều khiển và điều chỉnh
góc quay của động cơ
+ Potentiometer: Cảm biến vị trí giúp nhận diện góc quay và cung cấp thông tinphản hồi để điều chỉnh vị trí của động cơ
- Nguyên lý hoạt động: Động cơ servo nhận tín hiệu điều khiển dưới dạng xung PWM
(Pulse Width Modulation), trong đó chiều rộng của mỗi xung quyết định góc quay của
động cơ
Trang 28- Động cơ giảm tốc (hay motor giảm tốc) là loại động cơ điện được thiết kế để giảm tốc
độ quay của trục đầu ra, đồng thời tăng mô-men xoắn Điều này giúp nó thích hợp với
Trang 29các ứng dụng cần lực kéo lớn mà không yêu cầu tốc độ quay nhanh, như trong các máymóc công nghiệp, robot, xe tự động, hoặc các thiết bị cơ khí khác.
- Cấu tạo của động cơ giảm tốc:
+ Động cơ điện: Thường là động cơ điện DC hoặc AC, có chức năng cung cấpnăng lượng quay
+ Hệ thống giảm tốc (gearbox): Một bộ truyền động bao gồm các bánh răng cóchức năng giảm tốc độ quay của động cơ và tăng mô-men xoắn
- Nguyên lí hoạt động: Động cơ giảm tốc hoạt động dựa trên nguyên lý sử dụng hệ thốngbánh răng để giảm tốc độ quay của động cơ Khi động cơ quay, nó truyền động cho cácbánh răng trong bộ giảm tốc Các bánh răng này làm giảm tốc độ quay của trục ra nhưngđồng thời làm tăng mô-men xoắn
Hình 8 Động cơ giảm tốc
- Thông số kĩ thuật:
+ Điện áp hoạt động:3V~ 9V DC (Hoạt động tốt nhất từ 6 - 8V)
+ Mômen xoắn cực đại: 800gf cm min 1:48 (3V)