Nhóm thực hiện đề tài Huỳnh Thiện Nhân Trang 9 Tóm Tắt Trang i TÓM TẮT Đề tài “Thiết kế mô hình nhà thông minh điều khiển qua trợ lý ảo Google Assistant kết hợp phần mềm Sinric Pro, s
TỔNG QUAN
Đặt vấn đề
Ngày nay, Wi-Fi là một trong những công nghệ không dây phổ biến nhất, cho phép kết nối mạng WLAN hiệu quả trong khoảng cách từ vài mét đến vài chục mét Trong bối cảnh công nghiệp hóa và hiện đại hóa, việc phát minh và chế tạo các thiết bị điều khiển từ xa đang ngày càng trở nên phổ biến.
Nhằm đáp ứng nhu cầu công nghệ hiện đại, nhóm thực hiện báo cáo đã phát triển đồ án "Thiết kế mô hình nhà thông minh điều khiển qua trợ lý ảo Google Assistant kết hợp phần mềm Sinric Pro, sử dụng NodeMCU ESP8266 và ESP32 CAM" Mặc dù đề tài này đã được nghiên cứu nhiều, nhưng chủ yếu chỉ dừng lại ở việc đo đạc và hiển thị thông tin thiết bị Nhóm đã quyết định bổ sung tính năng tương tác qua các nút nhấn, cho phép hiển thị trạng thái hoạt động trên Web, Google Home và Sinric Pro Mô hình thiết kế của nhóm đã áp dụng thành công các phương pháp điều khiển cần thiết để xây dựng các Module thiết bị, kết nối với những nghiên cứu về hệ thống nhà thông minh trước đó.
Giải pháp nhà thông minh đang ngày càng tiến bộ, không chỉ mang lại lợi ích kinh tế mà còn cung cấp sự tiện lợi trong việc giám sát và điều khiển thiết bị.
Mục tiêu
Mục tiêu của đồ án tốt nghiệp là kết hợp và điều khiển các thiết bị thông minh, thông qua việc sử dụng Module ESP8266 và ESP-32CAM
Khám phá và phát triển các module trong hệ thống nhà thông minh, cho phép điều khiển thiết bị bằng giọng nói bằng tiếng Việt, tương thích với cả hệ điều hành iOS và Android.
Hiển thị hình ảnh thu thập từ Camera
Hẹn giờ bật/tắt các thiết bị
Tạo “kịch bản hoạt cảnh”
Chia sẻ điều khiển thiết bị
Nội dung nghiên cứu
Đề tài “Thiết kế mô hình nhà thông minh điều khiển thông qua trợ lý ảo Google
Assistant kết hợp phần mềm Sinric Pro, sử dụng NodeMCU ESP8266 và ESP32 CAM” có những nội dung chính sau đây:
+ Tìm hiểu cách hoạt động của mô hình nhà thông minh đã có trước đó + Lựa chọn giải pháp cho mô hình nhà thông minh
+ Tính toán số thiết bị trong việc thiết kế mô hình (vi điều khiển, relay đóng ngắt)
+ Lựa chọn ứng dụng điều khiển (Sinric Pro, Google Home)
+ Thiết kế chương trình kết nối cho Module vi điều khiển
+ Chạy thử nghiệm, lắp ráp mô hình
+ Chỉnh sửa lỗi và đánh giá kết quả
+ Viết báo cáo đồ án
+ Báo cáo đề tài tốt nghiệp
Giới hạn
Đề tài “Thiết kế mô hình nhà thông minh điều khiển thông qua trợ lý ảo Google
Assistant kết hợp phần mềm Sinric Pro, sử dụng NodeMCU ESP8266 và ESP32 CAM” có những khó khăn sau:
+ Hệ thống sẽ bị gián đoạn nếu việc kết nối giữa vi điều khiển và sóng không dây gặp gián đoạn
+ Việc bảo mật trên WebServer còn hạn chế
+ Còn hạn chế ở số lượng thiết bị mở rộng.
Bố cục
Nội dung đề tài gồm các phần sau:
- Mục tiêu của đề tài
CƠ SỞ LÝ THUYẾT
Giới thiệu các thiết bị sử dụng trong đề tài
- Thiết bị đầu vào: nút nhấn
+ Thiết bị công suất: đèn, quạt, động cơ
+ Thiết bị giao tiếp công suất: transistor, relay
- Thiết bị điều khiển trung tâm: NodeMCU ESP8266, NodeMCU ESP32CAM
- Thiết bị giao diện điều khiển: điện thoại, máy tính,
- Phần mềm điều khiển: Google Home, Sinric Pro, …
Định nghĩa SmartHome
SmartHome là một ngôi nhà mà các thiết bị điện tử kết nối với nhau qua giao thức truyền thông để quản lý, điều khiển và tự động hóa Tại Việt Nam, Nhà Thông Minh được hiểu là giải pháp đáp ứng nhu cầu điều khiển của con người thông qua lệnh giọng nói hoặc thao tác trực tiếp trên thiết bị nhờ công nghệ không dây.
Hình 2.1: Mô hình tổng quát về nhà thông minh
Chương 3: Tính Toán – Thiết Kế Trang 6
2.2.1 Các Thành Phần Chính Trong Một Hệ Thống Nhà Thông Minh:
Hệ thống thiết bị bao gồm nhiều cảm biến nhằm phát hiện các thông số như nhiệt độ, độ ẩm và tốc độ, sau đó gửi thông tin này về nền tảng quản lý.
Nền tảng IoT là một cơ sở dữ liệu trực tuyến, thường được gọi là điện toán đám mây, cho phép các thiết bị kết nối và tương tác với nhau Nhiệm vụ chính của IoT-Platform là thu thập dữ liệu từ các thiết bị, sau đó phân tích, xử lý và phát hiện thông tin để hiển thị trên hệ thống.
Kết nối Internet là yếu tố quan trọng nhất để giao tiếp trong hệ thống IoT, với sóng Wi-Fi là giải pháp hàng đầu Ứng dụng được phát triển dành cho người sử dụng cuối, giúp hiển thị thông tin, điều khiển và thiết lập một cách dễ dàng.
2.2.2 Tổng Quan Nguyên Lý Hoạt Động Và Phương Pháp:
Để xây dựng một hệ thống SmartHome hiệu quả, việc giải quyết bài toán giao tiếp giữa các thiết bị điện tử là rất quan trọng Giao thức truyền thông (protocol) đóng vai trò then chốt trong việc liên kết và truyền nhận dữ liệu chính xác, kịp thời Mấu chốt của vấn đề nằm ở khả năng “nhận” và “truyền” dữ liệu giữa các thiết bị một cách nhanh chóng và hiệu quả.
Phương pháp điều khiển thiết bị điện tử chủ yếu có hai hình thức: có dây và không dây Trong hệ thống điều khiển có dây, các thiết bị được kết nối trực tiếp với trung tâm điều khiển, hoạt động dựa trên tín hiệu từ thao tác tại trung tâm mà không cần tín hiệu không dây Ngược lại, trong hệ thống điều khiển không dây, thiết bị điện tử kết nối qua bộ xử lý trung tâm, bộ xử lý này liên lạc với modem mạng để truyền dữ liệu lên server đã được thiết lập trước đó.
Chương 3: Tính Toán – Thiết Kế Trang 7 truyền nhận với Server đồng nhất thông tin dữ liệu điều khiển để trao đổi dữ liệu Bắt buộc dùng sóng để điều khiển các thiết bị điện tử
2.2.3 Các Giải Pháp Mô Hình Nhà Thông Minh:
Giải pháp hệ thống chiếu sáng hiện đại cho phép điều khiển các thiết bị chiếu sáng một cách linh hoạt qua hai hình thức: trực tiếp và không dây Người dùng có thể điều khiển trực tiếp thông qua công tắc vật lý hoặc relay, đồng thời cũng có thể sử dụng smartphone để điều khiển không dây, mang lại sự tiện lợi và hiệu quả trong việc quản lý ánh sáng.
Giải pháp giám sát an ninh: sử dụng camera quan sát, bằng hệ thống điều khiển thông qua app Sinric Pro kết hợp Google Home
Giải pháp hẹn giờ bật/tắt quạt và điều hòa qua thao tác bằng tay hoặc qua phần mềm hệ thống thông qua giọng nói
Giải pháp thiết lập kịch bản, kết hợp từng hoạt cảnh phù hợp nhu cầu tùy chỉnh
Mô phỏng định hướng và lựa chọn thiết bị mô hình nhà IoT:
+ Các thiết bị được sử dụng dự kiến bao gồm: Bóng đèn, máy lạnh, quạt, thiết bị quan sát…
Bóng đèn có thể được điều khiển bằng cách sử dụng công tắc vật lý hoặc relay thông qua kết nối có dây Ngoài ra, người dùng cũng có thể điều khiển bóng đèn một cách không dây thông qua ứng dụng trên điện thoại thông minh, bằng cách chạm vào màn hình hoặc ra lệnh bằng giọng nói nhờ vào sự hỗ trợ của Google Home.
Chương 3: Tính Toán – Thiết Kế Trang 8
Công nghệ Wi-fi
Wi-Fi là một tập hợp các giao thức mạng không dây, sử dụng công nghệ sóng vô tuyến để kết nối các thiết bị trong mạng cục bộ Công nghệ này cho phép chia sẻ dữ liệu với tốc độ cao, giúp các thiết bị truyền nhận thông tin một cách nhanh chóng trong phạm vi của mạng Wi-Fi.
WiFi, viết tắt của Wireless Fidelity, là thuật ngữ chỉ tiêu chuẩn IEEE802.11 cho mạng cục bộ không dây (WLANs) Sự phổ biến của công nghệ sóng Wi-Fi đã biến nó thành một trong những phương thức truyền nhận dữ liệu phổ biến nhất toàn cầu hiện nay.
Hình 2.2: Hình ảnh tổng quan về mạng Wi-fi
2.3.2 Công nghệ truyền nhận dữ liệu theo chuẩn Wi-Fi
In 1977, the Institute of Electrical and Electronics Engineers (IEEE) introduced the 802.11 standard, which was the first for Wireless Local Area Networks (WLAN) This groundbreaking standard supported a maximum bandwidth of 2 Mbps and laid the foundation for all Wi-Fi technology used today.
Thế hệ kế tiếp của chuẩn 802.11 sử dụng tần số 2.4GHz, cho phép băng thông lên đến 11Mbps, tương đương với Ethernet truyền thống Chuẩn này có những ưu điểm nổi bật như chi phí thấp, phạm vi tín hiệu rộng và khả năng kháng cự tốt với các trở ngại sóng.
Chương 3: Tính Toán – Thiết Kế Trang 9
Chuẩn 802.11g phát triển song song với 802.11b, nhưng hỗ trợ tốc độ cao gấp 5 lần, đạt 54Mbps và sử dụng băng tần 5GHz để hạn chế nhiễu Tuy nhiên, khoảng cách tiếp nhận tín hiệu của 802.11g không bằng 802.11b.
Vào đầu năm 2003, chuẩn Wi-Fi thế hệ thứ 3 mang tên 802.11g ra đời, kết hợp ưu điểm của chuẩn 802.11a và 802.11b Chuẩn này tận dụng băng tần 2.4GHz của 802.11b để đảm bảo khả năng tiếp nhận tín hiệu ở khoảng cách xa, đồng thời cung cấp tốc độ cao lên đến 54Mbps từ chuẩn 802.11a Tuy nhiên, phạm vi tín hiệu của 802.11g chỉ đạt từ 80-120m và vẫn có nguy cơ bị nhiễu từ các thiết bị điện tử khác.
Chuẩn 802.11n được cải tiến từ chuẩn 802.11g thông qua công nghệ MIMO (Multiple-Input Multiple Output), cho phép sử dụng nhiều anten thu phát sóng hơn Chuẩn này hỗ trợ tốc độ tối đa lên đến 600Mbps và hoạt động đồng thời trên cả hai băng tần 2.4GHz và 5GHz, với phạm vi phủ tín hiệu từ 100-250m Đặc biệt, 802.11n có khả năng chống nhiễu từ các nguồn bên ngoài cao gấp ba lần so với các chuẩn trước đó.
Ra đời vào năm 2013, Wi-Fi thế hệ thứ 5 dựa trên chuẩn 802.11n đã được cải thiện đáng kể về tốc độ, có thể đạt tới 1730 Mbps Tuy nhiên, chuẩn này chỉ hỗ trợ băng tần 5GHz, dẫn đến phạm vi hoạt động bị rút ngắn từ 100-200m.
Chuẩn 802.11ax, được giới thiệu vào năm 2019, đánh dấu một bước tiến vượt bậc trong công nghệ Wi-Fi Với tốc độ tối đa đạt 9.6Gbps, chuẩn này hoạt động hiệu quả trên cả hai băng tần 2.4GHz và 5GHz Nó không chỉ giảm độ trễ lên tới 75% so với chuẩn 802.11n mà còn cải thiện khả năng bảo mật và quản lý băng thông cho nhiều thiết bị kết nối cùng lúc.
Chương 3: Tính Toán – Thiết Kế Trang 10
GIỚI THIỆU PHẦN CỨNG
NodeMCU ESP8266 là một dòng chip có khả năng kết nối mạng không dây được nghiên cứu, phát triển bởi đội ngũ đến từ Espressif
Hình 2.3: Chip NodeMCU ESP8266 và công ty phát triển
ESP8266 có thể hoạt động như một thiết bị độc lập hoặc đóng vai trò là bộ chuyển đổi UART sang Wi-Fi, giúp các vi điều khiển khác dễ dàng kết nối với mạng Wi-Fi.
Người dùng có thể kết nối Chip ESP8266 với Module Arduino để nâng cao khả năng Wi-Fi cho bo mạch Arduino Ứng dụng hiệu quả nhất của việc này là sử dụng ESP8266 như một thiết bị độc lập.
Với ESP8266, người dùng có khả năng điều khiển đầu vào và đầu ra tương tự như Arduino, nhưng nổi bật với tính năng kết nối Wi-Fi Điều này cho phép người dùng đưa các dự án của mình lên mạng, rất lý tưởng cho các ứng dụng tự động hóa gia đình và Internet vạn vật.
Chính vì vậy, ESP8266 lại được ưa chuộng chủ yếu vì những lý do sau:
+ Chi phí thấp: người sử dụng có thể mua bo mạch ESP8266 với giá thành phải chăng tùy thuộc vào cấu hình
+ Tiêu thụ ít năng lượng: Nguồn năng lượng mà ESP8266 tiêu thụ rất ít năng lượng khi so sánh với các bộ vi điều khiển khác
ESP8266 có khả năng tạo mạng Wi-Fi riêng (điểm truy cập) hoặc kết nối với các mạng Wi-Fi khác (trạm) để truy cập internet, mang đến sự linh hoạt cho người dùng trong việc thiết lập kết nối mạng.
Chương 3: Tính Toán – Thiết Kế Trang 11 nghĩa là ESP8266 có thể truy cập các dịch vụ trực tuyến để thực hiện các yêu cầu HTTP hoặc lưu dữ liệu vào đám mây Nó cũng có thể hoạt động như một máy chủ web để bạn có thể truy cập nó bằng trình duyệt Web và có thể điều khiển và giám sát bảng của bạn từ xa
ESP8266 hoàn toàn tương thích với ngôn ngữ lập trình Arduino, giúp những lập trình viên đã quen thuộc với bo mạch Arduino dễ dàng lập trình và phát triển ứng dụng trên ESP8266 một cách hiệu quả.
ESP8266 hoàn toàn tương thích với MicroPython, cho phép người dùng lập trình vi điều khiển này dễ dàng MicroPython là một phiên bản tối ưu của Python 3, được thiết kế đặc biệt cho các bộ vi điều khiển và hệ thống nhúng, mang lại sự linh hoạt và hiệu quả trong việc phát triển ứng dụng.
Hình 2.4: Một số Chip ESP8266 trên thị trường và ESP mà nhóm sử dụng a Cấu trúc phần cứng của dòng chip ESP8266
Cấu trúc phần cứng của dòng Chip NodeMCU ESP8266 gồm:
+ 32-bit MCU core có tên là Tensilica
+ Không được tích hợp bộ nhớ Flash cho việc lưu chương trình
+ 50KB RAM lưu dữ liệu ứng dụng khi chạy
+ Có đầy đủ các ngoại vi chuẩn để giao tiếp như 17 GPIO, 10bit-ADC, 3 SPI, 1 I2C, 1 I2S, 2 UART, 2 PWM
+ Tích hợp các mạch RF cho việc truyền nhận dữ liệu ở tần số 2.4GHz + Dải nhiệt độ hoạt động ổn định: ~40℃ − ~125℃
Chương 3: Tính Toán – Thiết Kế Trang 12
Do không hỗ trợ bộ nhớ Flash, các board sử dụng ESP8266 cần gắn thêm chip Flash bên ngoài, thường là Flash SPI, để cho phép ESP8266 giao tiếp với chuẩn SDIO hoặc SPI Cấu trúc chân của dòng chip ESP8266 cũng rất quan trọng trong việc thiết lập kết nối này.
Hình 2.5: Sơ đồ chân Module thu phát Wifi ESP8266 NodeMCU
Chương 3: Tính Toán – Thiết Kế Trang 13
Chức năng các chân của vi điều khiển:
+ Có các chân xuất nguồn 3.3VDC và GND để nạp nguồn cho các thiết bị ngoại vi
+ Chân ADC0: ESP8266 chỉ hỗ trợ đọc analog trong một GPIO GPIO đó được gọi là ADC0 và nó thường được đánh dấu trên Hình 2.4 và trên Module là A0
Các chân SDIO trên module ESP8266 được sử dụng cho bộ nhớ Flash Việc sử dụng không cẩn thận có thể dẫn đến gián đoạn hoặc ngừng hoạt động của chương trình đang chạy.
+ Chân GPIO4 (D2): thường được sử dụng cho việc thu và xuất dữ liệu, giao tiếp I2C và có khả năng xuất PWM
+ Các chân GPIO1, GPIO2, GPIO3: sử dụng cho việc thu và xuất dữ liệu, giao tiếp UART
Các chân GPIO13 và GPIO15 được sử dụng cho việc thu và xuất dữ liệu qua giao tiếp UART và SPI, trong đó GPIO15 còn hỗ trợ xuất PWM Tương tự, các chân GPIO12 và GPIO14 cũng phục vụ cho việc thu và xuất dữ liệu qua giao tiếp SPI và có khả năng xuất PWM.
+ Đèn LED trên board mạch: thường được kết nối với GPIO2, đèn sáng khi có tích cực mức thấp
Chân RST của ESP8266 sẽ thực hiện chức năng reset khi được kích hoạt ở mức thấp Người dùng có thể dễ dàng thao tác với chân RST này thông qua nút nhấn reset được tích hợp sẵn trên module.
Chương 3: Tính Toán – Thiết Kế Trang 14
Hình 2.6: Vị trí nút nhấn Reset trên Module
Chân Flash là nút trên Module được kết nối với chân GPIO0 của vi điều khiển Khi chân GPIO0 ở mức thấp, mạch sẽ chuyển sang trạng thái nạp dữ liệu.
Hình 2.7: Vị trí nút nhấn Flash trên Module
Chương 3: Tính Toán – Thiết Kế Trang 15
ESP32-CAM là một bo mạch dựa trên ESP32-S, tích hợp cảm biến camera OV2640, thẻ nhớ microSD và nhiều GPIO để kết nối thiết bị ngoại vi Nhóm đã phân tích và tính toán để tích hợp Module ESP32-CAM vào dự án phát triển này.
ESP32-CAM là một giải pháp lý tưởng cho các ứng dụng IoT đa dạng, bao gồm thiết bị thông minh gia đình, điều khiển không dây trong công nghiệp, giám sát không dây và tín hiệu hệ thống định vị.
Mạch thu phát WiFi BLE ESP32 do đội ngũ AI – Thinker thiết kế, nổi bật với độ ổn định và bền bỉ cao Sản phẩm sử dụng camera OV2640, mang lại hình ảnh sắc nét, không nhiễu sọc và không bị treo nhờ IC cấp nguồn chất lượng Tuy nhiên, chất lượng hình ảnh hiển thị chủ yếu phụ thuộc vào mạng Wi-Fi.
Hình 2.8: Hình ảnh sơ đồ chân ESP32-CAM AI-Thinker
Chương 3: Tính Toán – Thiết Kế Trang 16
Mạch thu phát Wifi BLE ESP32-CAM Ai-Thinker này có thể sử dụng phần mềm Arduino IDE để biên dịch và nạp chương trình điều khiển
Thông số cơ bản của ESP32-CAM:
+ IC chính: ESP32-S (AI-Thinker)
+ Hỗ trợ nhiều chuẩn giao tiếp, như: UART/SPI/I2C/PWM/ADC/ DAC + Hỗ trợ cảm biến máy ảnh OV2640 và OV7670, đèn Flash tích hợp
+ Hỗ trợ tải hình ảnh lên WebServer thông qua mạng không dây
GIỚI THIỆU CHUẨN GIAO TIẾP SỬ DỤNG
Chuẩn giao tiếp Universal Asynchronous Receiver-Transmitter (UART) là phương pháp truyền dữ liệu nối tiếp bất đồng bộ, bao gồm một đường phát (Transmitter) và một đường nhận (Receiver) mà không cần tín hiệu xung Clock Điều này có nghĩa là cả bên phát và bên nhận phải tự tạo xung Clock đồng bộ với nhau, được gọi là tốc độ Baud, với các mức tốc độ phổ biến như 4800 baud, 9600 baud, và 115200 baud.
Hình 2.13: Chuẩn giao tiếp UART
Số lượng dây sử dụng 2 dây
Phương pháp truyền Bất đồng bộ
Số lượng thiết bị chủ 1
Số lượng thiết bị tớ 1
Bảng 2.1: Chuẩn thông tin chung giao tiếp UART
Chương 3: Tính Toán – Thiết Kế Trang 21
Cách thức truyền nhận của giao tiếp UART:
Giao tiếp UART truyền dữ liệu từ Data Bus, bao gồm CPU, RAM và vi điều khiển Dữ liệu được chuyển từ Data Bus đến UART1 dưới dạng tín hiệu song song Sau khi quá trình truyền dữ liệu song song hoàn tất, UART1 thêm vào một Bit Start, một Bit chẵn lẻ và một Bit Stop để tạo gói Data Gói Data sau đó được truyền nối tiếp từng bit từ chân Tx của UART1 đến chân Rx của UART2 UART2 nhận tín hiệu tại chân Rx, chuyển đổi dữ liệu trở về dạng song song, và loại bỏ Bit Start, Bit chẵn lẻ và Bit Stop, cuối cùng chuyển gói dữ liệu thành dạng song song với bit data ở phía nhận.
Hình 2.14: Hình ảnh UART kết nối với DATA BUS
Chương 3: Tính Toán – Thiết Kế Trang 22
Trong truyền dữ liệu UART, thông tin được tổ chức thành các gói tin (packet) Mỗi gói tin bao gồm một bit bắt đầu (start bit), từ 5 đến 9 bit dữ liệu, một bit kiểm tra chẵn hoặc lẻ, và một hoặc hai bit dừng (stop bit).
Bit Bắt Đầu (Start Bit) là trạng thái khởi đầu trong giao tiếp UART, khi không có dữ liệu được truyền, mức điện áp giữ ở trạng thái cao Để bắt đầu quá trình truyền dữ liệu, UART sẽ chuyển mức điện áp xuống thấp trong một chu kỳ xung Khi nhận thấy sự thay đổi từ cao xuống thấp, UART sẽ tiến hành đọc các bit dữ liệu với tần số tương ứng với tốc độ truyền.
- Khung Dữ Liệu (Data Frame):
Khung dữ liệu chứa thông tin cần truyền, với kích thước có thể là 5 bit hoặc 8 bit khi sử dụng bit chẵn Nếu không sử dụng bit chẵn lẽ, có thể mở rộng lên 9 bit Dữ liệu được truyền theo quy tắc bit có trọng số bé nhất (LSB), với bit này được truyền trước tiên.
Chương 3: Tính Toán – Thiết Kế Trang 23
Bit chẵn lẻ (Parity Bits) được sử dụng để mô tả tính chẵn lẻ của một số trong quá trình truyền dữ liệu Chúng được thêm vào để kiểm tra sự thay đổi dữ liệu khi truyền Nếu bit parity trả về 0, tổng số bit trong khung dữ liệu là chẵn; nếu trả về 1, tổng số bit là lẻ.
Hình 2.18: Hình Bit chẵn lẻ
Khi quá trình truyền tín hiệu hoàn tất, UART ở phía gửi sẽ chuyển tín hiệu từ trạng thái thấp sang trạng thái cao trong khoảng thời gian từ 1 đến 2 bit, tùy theo quy ước cụ thể.
Chương 3: Tính Toán – Thiết Kế Trang 24
CÁC BƯỚC TRUYỀN DỮ LIỆU UART:
❖ Bước 1: UART truyền dữ liệu song song từ Data Bus
Hình 2.20: Hình data từ data bus đến bus truyền
❖ Bước 2: UART truyền thêm vào bit start, bit chẵn lẻ và Stop bit vào khung dữ liệu
Hình 2.21: Hình khung dữ liệu UART ở phía Tx
Chương 3: Tính Toán – Thiết Kế Trang 25
❖ Bước 3: Dữ liệu được gửi đi nối tiếp từ UART truyền đến UART nhận
Hình 2.22: Hình Đường truyền UART
❖ Bước 4: UART nhận loại bỏ Start bit, bit chẵn lẻ và stop bit khỏi khung dữ liệu
Hình 2.23: Hình khung dữ liệu UART ở phía Rx
Chương 3: Tính Toán – Thiết Kế Trang 26
❖ Bước 5: UART nhận chuyển đổi dữ liệu nối tiếp thành dữ liệu song song và chuyển về từng bus dữ liệu ở đầu nhận
Hình 2.24: Hình UART Nhận Tới bus dữ liệu
Chương 3: Tính Toán – Thiết Kế Trang 27
GIỚI THIỆU PHẦN MỀM
2.6.1 Giới thiệu tổng quan phần mềm lập trình Arduino IDE
Arduino IDE là môi trường lập trình lý tưởng cho các dự án từ đơn giản đến phức tạp trên board mạch điện tử Phần mềm này hỗ trợ người dùng viết, biên dịch và nhúng mã lên hầu hết các dòng vi xử lý hiện nay Được phát triển bằng ngôn ngữ Java và mã nguồn mở, Arduino IDE hỗ trợ ngôn ngữ C và C++, rất phù hợp cho các ứng dụng IOT, ML, AI Với các tính năng tiện lợi như làm nổi bật cú pháp và canh dòng tự động, phần mềm trở nên dễ sử dụng và hữu ích Hơn nữa, Arduino IDE được hỗ trợ bởi một cộng đồng lớn và thư viện mã phong phú, cùng với các mã nguồn mở tối ưu cho từng ứng dụng cụ thể.
Hình 2.25: Giao diện phần mềm Arduino IDE
Chương 3: Tính Toán – Thiết Kế Trang 28
2.6.2 Giới thiệu tổng quan phần mềm Sinric Pro Ứng dụng Sinric Pro được biết đến như một trong những giải pháp cho vấn đề ngôi nhà thông minh Với giao diện thân thiện và dễ dàng sử dụng, ứng dụng dễ dàng mang đến sử thoải mái cho người sử dụng trong quá trình điều khiển Ưu điểm lớn nhất khi nhóm báo cáo quyết định chọn ứng dụng này để đưa vào đồ án nằm ở hai chỗ Thứ nhất, ứng dụng có khả năng cho phép kết nối với ESP 32Cam, giúp người sử dụng dễ dàng điều khiển, quan sát thông qua ứng dụng trên các nền tảng thiết bị di động hoặc Web Thứ hai, đối với các thiết bị di động hoặc Web có đăng nhập tài khoản trước đó, ứng dụng này sẽ gửi thông báo nhận/ngắt kết nối thiết bị với hệ thống Với thông báo thiết bị bị ngắt kết nối, người sử dụng có thể dễ dàng hiểu được ngôi nhà của mình đã bị mất điện tạm thời và ngược lại với thông báo nhận kết nối thiết bị
Sinric Pro là nền tảng mã nguồn mở chuyên dụng cho các ứng dụng IoT, cho phép người dùng điều khiển từ xa, hiển thị thông tin điều khiển và thiết lập hẹn giờ một cách dễ dàng.
Sinric Pro App: cho phép tạo giao diện tùy biến từ các Option có sẵn như Room,
Chương 3: Tính Toán – Thiết Kế Trang 29
Hình 2.26: APP Sinric Pro Android
Sinric Pro Server: Truyền tải thông tin từ Smarthome và thiết bị Sinric Pro Server lưu trữ dữ liệu thiết lập qua Web Server hoặc App Sinric Pro
Chương 3: Tính Toán – Thiết Kế Trang 30
Sinric Pro Libraries: Cung cấp các lệnh kết nối từ phần cứng đến Server, xử lý các luồng dữ liệu đến và đi
Hình 2.28: Sinric Pro Library Để bắt đầu Sinric Pro bạn cần gì?
Thiết bị dùng các bộ kit phát triển như ESP8266, ESP32, Arduino,…
Cài dặt trực tiếp từ cửa hàng CH Play: https://play.google.com/store/apps/details?id=pro.sinric&hl=vi&gl=US&pli
Chương 3: Tính Toán – Thiết Kế Trang 31
2.6.3 Ứng dụng Google Home và trợ lý ảo Google Assistant
Google là một công ty hàng đầu trong lĩnh vực phần mềm, với các sản phẩm ngày càng đa dạng và tiện lợi cho người dùng Ứng dụng Google Home ra đời nhằm biến ngôi nhà trở nên thông minh hơn, cho phép người dùng dễ dàng điều khiển các thiết bị gia dụng hàng ngày Để sử dụng ứng dụng này, người dùng cần kết nối phần cứng với một thiết bị phát Wifi trong nhà và sau đó kết nối thiết bị vào ứng dụng Google Home Chủ nhà có thể thêm các thành viên qua tài khoản Google, giúp mọi người dễ dàng theo dõi và điều khiển tình trạng bật/tắt của các thiết bị trong nhà, đặc biệt khi có các thiết bị thông minh khác được trang bị.
Bạn có thể dễ dàng thêm TV vào ứng dụng này và điều khiển chúng từ điện thoại thông minh Điều này biến điện thoại của bạn thành một thiết bị điều khiển TV thông minh từ xa.
Trợ lý ảo Google Assistant, được phát triển bởi Google vào năm 2016, cho phép người dùng tương tác thông qua giọng nói hoặc văn bản Với các chức năng cơ bản như tìm kiếm thông tin trên Internet, đặt sự kiện và báo thức, cũng như điều chỉnh cài đặt phần cứng trên thiết bị, Google Assistant mang đến trải nghiệm tiện lợi cho người dùng Ngoài ra, trợ lý này còn có khả năng điều khiển và hiển thị trạng thái của các thiết bị thông qua phần mềm Google Home.
Hình 2.29: Hình ảnh mô phỏng Google Home và trợ lý ảo Assistant
TÍNH TOÁN – THIẾT KẾ
Giới thiệu
Chương này giới thiệu cách tính toán và sơ đồ khối của các board mạch hệ thống, bao gồm mạch điều khiển thiết bị gia dụng và mạch nguồn cung cấp điện cho toàn bộ hệ thống.
Tính toán – thiết kế hệ thống
3.2.1 Thiết kế sơ đồ khối hệ thống
Hình 3.1: Sơ đồ khối hệ thống
Chương 3: Tính Toán – Thiết Kế Trang 33
Khối Xử Lý Trung Tâm sử dụng ESP8266 để thiết lập dữ liệu đầu vào và kết nối với mạng Internet trong ngôi nhà Khối này liên kết các thiết bị trong mạng lưới và gửi dữ liệu đến khối điều khiển để hiển thị thông tin.
Khối Ứng dụng và Hiển Thị sử dụng ESP32 CAM để thu thập dữ liệu hình ảnh và đưa lên Webserver Hình ảnh từ module ESP32 CAM được hiển thị trực tiếp trên phần mềm Sinric Pro thông qua Server Sinric Pro, đồng thời cho phép theo dõi trạng thái bật/tắt của thiết bị Hệ thống hỗ trợ tạo câu lệnh điều khiển qua trợ lý ảo Google Assistant và thiết lập giao diện trên ứng dụng Sinric Pro, Google Home Dữ liệu thu thập được sẽ được gửi về khối ứng dụng và hiển thị.
Khối Nút Nhấn: Bao gồm các phím cứng cùng với module relay có chức năng điều khiển bật/tắt thiết bị ngoại vi
Khối Ngõ Ra Công Suất: Cách ly giữa mạch công suất và mạch điều khiển
Khối Nguồn cung cấp điện cho toàn bộ hệ thống, bao gồm hai loại nguồn: nguồn 5VDC cho các module như ESP32CAM, ESP8266 và module relay 5VDC, cùng với nguồn điện 220VAC cho các thiết bị ngoại vi có công suất cao.
Chương 3: Tính Toán – Thiết Kế Trang 34
3.2.2 Tính toán và thiết kế:
❖ Khối xử lý trung tâm:
Khối điều khiển sử dụng vi điều khiển ESP8266 đáp ứng được yêu cầu đặt ra và có khả năng mở rộng điều khiển cho nhiều thiết bị
Board được cấp nguồn 5VDC Chi tiết kết nối giữa board mạch và các khối khác được thể hiện trong hình bên dưới:
Hình 3.2: Sơ đồ nối chân của ESP8266
Chân Vin và GND được sử dụng để cấp nguồn cho vi điều khiển, trong khi người dùng có thể cung cấp nguồn 5VDC cho Module thông qua cổng Micro-USB.
Chân 3.3VDC, GND cung cấp điện áp đầu vào cho Relay, chân D1 dùng là chân điều khiển đóng/ngắt Relay
Chân 3.3VDC và D8 được nối với nút nhấn vật lý
Chương 3: Tính Toán – Thiết Kế Trang 35
Mạch nguyên lý của ESP8266
Board ESP8266 chỉ cần thạch anh, chip SPI Flash và một số linh kiện điện trở đơn giản, giúp việc tích hợp giao tiếp mạng không dây Wi-Fi vào ứng dụng trở nên dễ dàng và nhanh chóng.
Mô hình lập trình ứng dụng với ESP8266 có thể chia làm 2 loại như sau:
+ Sử dụng firmware được cung cấp bởi Espressif và giao tiếp thông qua AT commands
+ Lập trình firmware trực tiếp vào ESP8266 sử dụng bộ thư viện SDK cung cấp bởi Espressif
Hình 3.3: Sơ đồ nguyên lý ESP8266
Chương 3: Tính Toán – Thiết Kế Trang 36
Hình 3.4: Cấu trúc chân ESP32-CAM
Hình 3.5: Sơ đồ nguyên lý ESP32-CAM
Chương 3: Tính Toán – Thiết Kế Trang 37
ESP32-CAM có ba chân GND, hai chân Vin và 5V để cấp nguồn dương, cùng với chân 3.3V để cung cấp năng lượng cho các thiết bị khác Mạch ESP32-CAM được thiết kế để kết nối với nguồn 5VDC thông qua chân 5V và GND.
Hình 3.6: Chân cấp nguồn cho ESP32-CAM
GPIO 1 và GPIO 3 là các chân nối tiếp (tương ứng TX và RX) Vì dòng ESP32- CAM không được tích hợp bộ kit nạp chương trình sẵn như các dòng ESP32 khác vì vậy dữ liệu được giao tiếp bằng giao thức UART từ các mạch vi điều khiển khác GPIO1 và GPIO3 có thể kết nối với các thiết bị ngoại vi khác như cảm biến, nút nhấn
Phương án tối ưu mà nhóm chọn truyền dữ liệu là sử dụng trình lập trình qua đế ESP32-CAM-MB có sẵn ngoài thị trường
Chương 3: Tính Toán – Thiết Kế Trang 38
Hình 3.7: ESP32-CAM kết nối chân GPIO 0 giao tiếp với hệ thống
GPIO 0 được kết nối với một điện trở 10k Ohm kéo lên Khi GPIO0 được kết nối với chân GND, ESP32-CAM sẽ chuyển sang chế độ nạp dữ liệu và cho phép truyền dữ liệu vào ESP Sau khi nạp dữ liệu vào ESP32-CAM thành công chúng ta cần ngắt kết nối giữa GPIO0 và GND để ESP hoạt động đúng chức năng đã thiết lập từ chương trình Tất cả các chân GPIO 2, 4,12,13,14 và 15 đều hỗ trợ RTC và ADC vì vậy ở ESP32- CAM được dùng giao tiếp với thẻ nhớ SD để lưu trữ dữ liệu từ cảm biến camera
Thẻ nhớ SD ESP32-CAM
Bảng 3.1: Thống kê kết nối chân ESP32-CAM và Thẻ SD
Chương 3: Tính Toán – Thiết Kế Trang 39
GPIO 4 (Flashlight) được kết nối trực tiếp với LED tích hợp vào ESP32-CAM nhằm mục đích hỗ trợ ánh sáng cho cảm biến hình ảnh Tuy nhiên, GPIO4 cũng được dùng đồng bộ DATA1 của chức năng thẻ nhớ, LED sẽ được bật khi sử dụng ở chế độ này
Hình 3.8: LED báo hiệu kết nối không dây
GPIO 33 (RED LED) được kết nối trực tiếp với LED đỏ trên board mạch Mục đích báo hiệu tín hiệu kết nối không dây thành công RED LED được sáng khi cấp điện áp thấp và sẽ tắt khi cấp điện áp cao
Chương 3: Tính Toán – Thiết Kế Trang 40
Hình 3.9: Kết nối giữa cảm biến Camera OV2640 và ESP32-CAM
CAMERA OV2640 ESP32 TÊN BIẾN
XCLK GPIO 0 XCLK_ GPIO_NUM
PCLK GPIO 22 PCLK_GPIO_NUM
VSYNC GPIO 25 VSYNC_ GPIO_NUM
HREF GPIO 23 HREF_ GPIO_NUM
SDA GPIO 26 SIOD_ GPIO_NUM
SCL GPIO 27 SIOC_ GPIO_NUM
POWER PIN GPIO 32 PWDN_ GPIO_NUM
Bảng 3.2: Thống kê chân và tên biến ESP32-CAM
Chương 3: Tính Toán – Thiết Kế Trang 41
Khối nguồn là thành phần thiết yếu trong mạch, cung cấp điện áp cần thiết cho hoạt động của toàn bộ hệ thống Do đó, nhóm đã lựa chọn IC 7805 làm bộ ổn áp, đảm bảo cung cấp nguồn điện áp ổn định 5V cho mạch.
Hình 3.10: Sơ đồ khối nguồn
- Điệp áp vào lớn nhất: 20V
- Điệp áp vào nhỏ nhất: 8V
- Nhiệt độ hoạt động lớn nhất: 85°c
- Nhiệt độ hoạt động nhỏ nhất: -20°c
- Điện áp ổn định: 5VDC
Khi đo điện áp đầu ra, giá trị thực tế có thể nằm trong khoảng 4.8-5.2 V Do đó, nếu điện áp đo được là 4.85 V, không nên vội kết luận rằng IC đã bị hỏng.
- Chức năng: cung cấp nguồn điện áp 5VDC cho toàn mạch hoạt động
Chương 3: Tính Toán – Thiết Kế Trang 42
STT Tên linh kiện Điện áp (V) Dòng tiêu thụ
Bảng 3.3: Dòng điện tiêu thụ trong hệ thống
Dựa trên bảng thống kê, dòng điện tiêu thụ cơ bản là 0.95A, vì vậy nhóm đã chọn sử dụng adapter 5VDC/1A để cung cấp và duy trì nguồn điện cho toàn bộ hệ thống Bên cạnh đó, các thiết bị dân dụng như đèn và quạt khi được kết nối với relay để điều khiển việc đóng/ngắt cũng cần được cấp nguồn từ nguồn điện dân dụng 220VAC.
Dòng điện tiêu thụ biến đổi theo quy mô thiết kế của hệ thống, chủ yếu phụ thuộc vào số lượng thiết bị kết nối điều khiển tại từng hộ gia đình.
❖ Thiết kế khối công suất ngõ ra:
Hình 3.11: Sơ đồ khối Relay
Các bộ phận chính của Relay:
Khối tiếp thu, thường được hình thành từ cuộn dây, có chức năng tiếp nhận thông tin đầu vào Cuộn dây này bắt đầu ở mức 1, và khi có tín hiệu tác động, nó sẽ giảm xuống mức 0.
Chương 3: Tính Toán – Thiết Kế Trang 43
THI CÔNG HỆ THỐNG
Giới thiệu
Chương này trình bày về quá trình thi công mô hình, lưu đồ hệ thống cũng như phần mềm lập trình điều khiển hệ thống.
Thi công mô hình
Quá trình lắp ráp, thi công mô hình trải qua các bước sau:
B1: Hàn chân kết nối các thiết bị
Hình 4.1: Hàn chân vào các thiết bị
Chương 4: Thi Công Hệ Thống Trang 52
B2: Kết nối Module ESP8266 với Module Relay 5VDC
Hình 4.2: ESP8266 kết nối với Module Relay trong mô hình
B3: Kết nối Module ESP8266 với nút nhấn
Hình 4.3: ESP8266 kết nối với nút nhấn
Chương 4: Thi Công Hệ Thống Trang 53
B4: Kết nối Module ESP32-CAM vào hệ thống
Hình 4.4: ESP32-CAM kết nối vào hệ thống
B5: Lắp các thiết bị vào mô hình
Hình 4.5: Tổng quan hệ thống
Chương 4: Thi Công Hệ Thống Trang 54
B6: Cấp nguồn 5VDC cho mạch
Hình 4.6: ESP8266 với nguồn 5VDC
B7: Đo kiểm tra từng chân của các thiết bị đã kết nối hết chưa
B8: Cuối cùng nạp chương trình và kiểm tra lại toàn bộ hệ thống
Chương 4: Thi Công Hệ Thống Trang 55
KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ
Giới thiệu
Trong quá trình thực hiện đề tài, nhóm đã kết hợp kiến thức học được với kinh nghiệm thực tế từ thực tập tại doanh nghiệp Kết quả là nhóm đã thiết kế thành công “Mô hình nhà thông minh” có khả năng điều khiển thông qua trợ lý ảo Google Assistant và ứng dụng Sinric Pro, sử dụng các thiết bị NODEMCU ESP8266 và ESP32 CAM.
Kết quả đạt được
Hệ thống sử dụng hai module ESP8266 và ESP32-CAM, trong đó ESP32-CAM đóng vai trò là mạch điều khiển chính Các module đã được thi công hoàn chỉnh và kiểm tra, cho thấy hoạt động hiệu quả trong thực tế.
Hệ thống phản hồi chính xác bằng giọng nói thông qua trợ lý ảo Google Assistant
Thiết kế, thi công mô hình điều khiển thiết bị bằng công tắc vật lý cho kết quả chính xác
Mô hình có thể điều khiển, hiển thị thông tin hình ảnh từ Camera qua App Sinric Pro
Tùy chỉnh thiết lập hẹn giờ bật/tắt và kịch bản hoạt cảnh cho các thiết bị kết nối, đồng thời đồng bộ kết quả từ mô hình và ứng dụng Sinric Pro Ứng dụng này cũng hỗ trợ kết nối với Google Home để mở rộng thêm thiết bị từ bên thứ ba.
Tương thích trên nhiều hệ điều hành: IOS, Android, Windows PC
Có thể chia sẻ chức năng điều khiển cho người dùng khác
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 59
Kết quả thực nghiệm
Hình 5.1: Mô Hình Hệ Thống
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 60
5.3.2 Điều Khiển và Giám Sát Thiết Bị
Hình 5.2: Giao diện Devices Android vs IOS
Sau khi đăng nhập thành công vào ứng dụng Sinric Pro và thiết lập các thiết bị kết nối, giao diện ứng dụng sẽ hiển thị rõ ràng, cho phép người dùng dễ dàng điều khiển bật/tắt các thiết bị Hệ thống phản hồi nhanh chóng với các lệnh điều khiển Ứng dụng cũng hỗ trợ việc bật/tắt Camera, và khi Camera được bật, người dùng có thể nhấn vào để xem hình ảnh trực tiếp từ ESP-32CAM.
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 61
Hình 5.3: Giao diện Rooms Android vs IOS
Giao diện Rooms hiển thị thông tin trạng thái bật/tắt của từng thiết bị trong từng phòng riêng biệt, giúp người dùng dễ dàng theo dõi và điều khiển Các thiết bị đã được thiết lập trước đó, và giao diện này hỗ trợ việc quản lý hiệu quả, đặc biệt khi có nhiều thiết bị, nhằm tránh nhầm lẫn.
Hình 5.4: Giao diện Scenes Android vs IOS
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 62
Giao diện Scenes cho phép người dùng tạo kịch bản hoạt động riêng biệt cho từng trường hợp Ví dụ, như trong Hình 5.4, có hai kịch bản: “Mở ổ cắm 1, tắt ổ cắm 2” và ngược lại Khi người dùng chọn một trong các hoạt cảnh này, ứng dụng sẽ tự động thực hiện các lệnh đã được thiết lập trước đó cho từng kịch bản.
Hình 5.5: Giao diện Camera Android vs IOS
Hình ảnh từ ESP-32CAM sẽ được hiển thị trên ứng dụng Sinric Pro theo thời gian thực, giúp người dùng dễ dàng theo dõi tình hình an ninh trong khu vực hoạt động của camera.
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 63
Ứng dụng Sinric Pro cung cấp tính năng đặt lịch hẹn bật/tắt thiết bị theo tuần và thời gian cụ thể, giúp người dùng dễ dàng chọn thiết bị cần thực hiện lệnh vào thời điểm mong muốn Múi giờ được tính theo giờ Việt Nam (GMT+07.00), như thể hiện trong Hình 5.6.
Hình 5.7: Giao diện Google Home
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 64
Giao diện Google Home cho phép người dùng theo dõi trạng thái thiết bị một cách trực quan Từ đây, người dùng có thể dễ dàng thao tác bằng cách nhấn vào biểu tượng của thiết bị để thực hiện việc đóng hoặc ngắt chúng.
Ứng dụng Google Home cho phép người dùng chia sẻ quyền điều khiển thiết bị với các thành viên khác thông qua tài khoản Google Chỉ với một vài thao tác đơn giản, người sử dụng có thể thêm và quản lý các thành viên điều khiển, như minh họa trong Hình 5.8.
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 65
Hình 5.9: Điều khiển thiết bị qua Google Assistant
Trợ lý ảo Google thu thập và xử lý thông tin, sau đó truyền tải qua ứng dụng Google Home để thực hiện các lệnh điều khiển Đồng thời, nó cũng học hỏi thói quen sử dụng của người tiêu dùng, từ đó cải thiện trải nghiệm người dùng.
Sau khi trợ lý ảo của Google thực hiện thành công câu lệnh, trạng thái thiết bị sẽ được hiển thị rõ ràng, như trong Hình 5.9, giúp người dùng dễ dàng quan sát và thao tác.
Chương 5: Kết Quả, Nhận Xét Và Đánh Giá Trang 66