GIỚI THIỆU ĐỀ TÀI
Lý do chọn đề tài luận văn
Em chọn “Hệ thống điều khiển nhà thông minh” làm đề tài luận văn tốt nghiệp vì những lý do sau đây:
Nhà thông minh đang trở thành xu hướng phổ biến toàn cầu, giúp tiết kiệm thời gian và công sức nhờ công nghệ hiện đại Tại Việt Nam, công nghệ này ngày càng được ưa chuộng và trở thành lựa chọn hàng đầu của người tiêu dùng.
Vào thứ hai, em có thể áp dụng kiến thức lập trình vi điều khiển và các cảm biến như nhiệt độ, độ ẩm, ánh sáng, cũng như giao tiếp giữa hai vi điều khiển vào đề tài Đây là cơ hội để em mở rộng kiến thức mới, đồng thời rèn luyện tính tự chủ và tinh thần trách nhiệm trong công việc.
Thứ ba, dưới sự phổ biến của công nghệ nhà thông minh hiện nay, thì nhu cầu tìm hiểu và phát triển càng trở nên cấp thiết
Mục tiêu của em là phát triển một bộ điều khiển với những tính năng cơ bản, phù hợp cho việc áp dụng tại chính ngôi nhà của mình, điều này đã tạo động lực mạnh mẽ cho em trong việc thực hiện đề tài này.
Mục tiêu của đề tài
Ngôi nhà thông minh có những đặc điểm và tính năng nổi bật, bao gồm hệ thống chiếu sáng thông minh, hệ thống báo cháy và báo trộm Việc hiểu rõ cấu trúc và chức năng của các hệ thống này giúp người dùng tận dụng tối đa tiện ích mà ngôi nhà thông minh mang lại.
Thiết kế và gia công bộ điều khiển ngôi nhà với những tính năng cơ bản sau:
Có khả năng bật, tắt các thiết bị trong nhà bằng tay hoặc tự động theo các kịch bản
Đọc và xử lý tín hiệu từ các cảm biến
Đóng mở cửa bán tự động sử dụng thẻ RFID
Báo trộm, rò khí gas
Cập nhật thời gian thực, hẹn giờ báo thức
Người dùng có thể điều khiển và giám sát hệ thống từ xa thông qua điện thoại kết nối Internet Để thực hiện điều này, mô hình ngôi nhà đã được xây dựng nhằm thử nghiệm bộ điều khiển hiệu quả.
Đối tượng và phạm vi nghiên cứu
Phạm vi của nhà thông minh rất rộng, từ cơ sở hạ tầng cho đến các chức năng, chế độ hoạt động
Bài viết này tập trung vào việc thiết kế hệ thống điều khiển bật tắt thiết bị trong nhà theo kịch bản, bao gồm các chức năng như báo trộm, phát hiện rò rỉ khí gas và hẹn giờ báo thức Hệ thống cho phép người dùng giám sát và điều khiển từ xa thông qua Internet, mang lại sự tiện lợi và an toàn cho người sử dụng.
Ý nghĩa của đề tài
Tài liệu này rất hữu ích cho những người mới bắt đầu khám phá hệ thống nhà thông minh, đặc biệt là những ai muốn tự thiết kế và chế tạo bộ điều khiển cho ngôi nhà với các tính năng cơ bản.
TỔNG QUAN
Nhà thông minh là gì?
Nhà thông minh là một ngôi nhà được trang bị hệ thống tự động thông minh, có khả năng điều phối hoạt động theo thói quen và nhu cầu của gia chủ Tất cả các thiết bị điện tử gia dụng được liên kết với thiết bị điều khiển trung tâm, cho phép chúng phối hợp thực hiện các chức năng Các thiết bị này có thể tự động xử lý tình huống đã được lập trình hoặc được điều khiển từ xa, nhằm mang lại cuộc sống tiện nghi, an toàn và sử dụng hợp lý tài nguyên.
Nhà thông minh là một hệ thống tiên tiến giúp kiểm soát ánh sáng, tiết kiệm điện và tạo không gian phù hợp cho các sự kiện như bữa tiệc tối Hệ thống này có khả năng điều chỉnh rèm cửa, kiểm soát nhiệt độ, giám sát qua camera, tự động khóa cửa và phòng ngừa trộm Ngoài ra, nhà thông minh còn tích hợp các ứng dụng sáng tạo như hệ thống giải trí tại gia, loa công suất khác nhau, điện thoại, liên lạc nội bộ và hệ thống tưới nước.
Các thiết bị trong nhà được kết nối giúp hệ thống máy tính trung tâm theo dõi trạng thái và đưa ra quyết định điều khiển phù hợp.
Nhà thông minh, từng là chủ đề trong các tác phẩm khoa học viễn tưởng, đã trở thành hiện thực từ thế kỷ 20 nhờ sự phát triển của điện và công nghệ thông tin Công nghệ này ngày càng tinh vi, cho phép các tín hiệu được mã hóa truyền qua hệ thống dây dẫn và mạng không dây đến các bộ chuyển mạch và ổ điện, từ đó điều khiển các thiết bị điện tử và đồ gia dụng trong ngôi nhà.
Sự tự động hóa của ngôi nhà đặc biệt có ích cho người lớn tuổi và người tàn tật, những người muốn sống tự lập
Lắp đặt các sản phẩm thông minh mang lại nhiều lợi ích cho ngôi nhà và chủ nhân, tương tự như những tiện ích mà công nghệ và máy tính cá nhân đã cung cấp trong nhiều năm qua Những lợi ích này bao gồm sự tiện nghi, tiết kiệm thời gian, tiền bạc và năng lượng.
Các thành phần cơ bản trong nhà thông minh
2.2.1 Hệ thống quản lý chiếu sáng:
Việc sử dụng các thiết bị chiếu sáng như bóng đèn sợi đốt, đèn neon và đèn ngủ ngày càng phổ biến, nhưng nếu không phối hợp hợp lý, có thể dẫn đến ô nhiễm ánh sáng và lãng phí điện năng Điều này không chỉ ảnh hưởng đến môi trường mà còn làm giảm tuổi thọ của thiết bị Hơn nữa, với số lượng đèn lớn trong gia đình, việc bật tắt và điều chỉnh độ sáng trở nên bất tiện cho gia chủ.
Hệ thống chiếu sáng có thể được tích hợp với các hệ thống khác hoặc hoạt động độc lập, nhằm tối ưu hóa hiệu suất và đơn giản hóa việc điều khiển cho gia chủ Các giải pháp tự động hóa sẽ được xem xét để nâng cao mức độ tiện lợi tối đa.
2.2.2 Hệ thống kiểm soát ra vào:
Khi chủ nhà không có mặt, việc kiểm soát hệ thống ra vào là rất cần thiết để ngăn ngừa trộm cắp Hệ thống nhà thông minh cung cấp giải pháp quản lý ra vào, cho phép chủ nhà cấp quyền truy cập cho các thành viên trong gia đình và người thân.
Hệ thống cửa ra vào sẽ được trang bị khóa vân tay hoặc thẻ từ để nhận diện người trong nhà và khách, từ đó cấp quyền "đăng nhập" Bên cạnh đó, hệ thống còn có khả năng sử dụng công nghệ nhận diện khuôn mặt và giọng nói.
Mỗi khi có sự kiện mới, hệ thống kiểm soát ra vào sẽ tự động kích hoạt các hệ thống khác để lưu trữ những thay đổi mà người dùng đã thực hiện.
2.2.3 Hệ thống quan sát, thông tin liên lạc:
Một ngôi nhà tiêu chuẩn thường có từ 4 đến 5 phòng kín, dẫn đến những khó khăn trong việc giao tiếp giữa các phòng Để khắc phục vấn đề này, việc lắp đặt một hệ thống thông tin liên lạc nội bộ là giải pháp hiệu quả.
Hệ thống liên lạc nội bộ đơn giản, như điện thoại cố định, không chỉ phục vụ cho việc giao tiếp trong nhà mà còn cần kết nối với mạng điện thoại để nâng cao hiệu quả làm việc Để thực hiện điều này, việc sử dụng một bộ chuyển kênh là cần thiết.
Hệ thống quan sát sẽ giúp việc kiểm soát an ninh, người vào/ra ngôi nhà…giúp cho gia chủ nhận diện khách nhanh chóng thông qua camera
2.2.4 Hệ thống giải trí đa phương tiện:
Ngôi nhà là không gian sinh hoạt của gia đình, nơi có thể bao gồm nhiều thế hệ với nhu cầu giải trí đa dạng Một hệ thống giải trí đa phương tiện sẽ đáp ứng các hoạt động giải trí phù hợp cho từng thành viên trong gia đình.
2.2.5 Hệ thống quản lý tiêu thụ năng lượng: Đối với một ngôi nhà bình thường thì việc cung cấp và đo lường các chỉ số điện nước đều phải thông qua các cơ quan nhà nước
Ngôi nhà thông minh là giải pháp hiệu quả để theo dõi và báo cáo thường xuyên các thông số về điện và nước, kết hợp với bộ xử lý trung tâm và các hệ thống khác, nhằm tiết kiệm năng lượng tối ưu.
2.2.6 Hệ thống cảm biến và báo động:
Hệ thống cảm biến đóng vai trò thiết yếu trong mọi ngôi nhà, với nhiệm vụ truyền tải thông tin đo đạc về bộ xử lý trung tâm Điều này giúp đưa ra các giải pháp phù hợp cho từng loại dữ liệu và xử lý hiệu quả các tình huống phát sinh.
Các cảm biến cơ bản như cảm biến nhiệt độ, độ ẩm, cảm biến gas, cảm biến áp suất, cảm biến hồng ngoại…
2.2.7 Hệ thống kiểm soát môi trường:
Môi trường sống đóng vai trò quan trọng trong cuộc sống và ảnh hưởng trực tiếp đến sức khỏe của các thành viên trong gia đình Trong bối cảnh công nghiệp hóa, mức độ ô nhiễm môi trường đang gia tăng đáng kể Do đó, việc bảo vệ môi trường sống ngày càng được các nhà khoa học chú trọng.
Hệ thống kiểm soát môi trường đóng vai trò quan trọng trong việc duy trì môi trường trong nhà ở trạng thái tối ưu cho sức khỏe con người Các thiết bị như máy điều hòa và hệ thống quạt thông gió là những thành phần chính của hệ thống này, giúp cải thiện chất lượng không khí và tạo ra không gian sống thoải mái.
2.2.8 Hệ thống các công tắc điều khiển trạng thái:
Hệ thống công tắc và bảng hiển thị cung cấp thông tin và nhận lệnh điều khiển từ gia chủ, đảm bảo tương tác hai chiều giữa các thành viên và hệ thống tự động Hệ thống này bao gồm các điều khiển từ xa, công tắc gắn tường, bảng điều khiển tương tác HMI và điện thoại thông minh.
2.2.9 Hệ thống xử lý trung tâm, điều khiển, giám sát từ xa:
Ngôi nhà thông minh nổi bật với hệ thống điều khiển đồng nhất, cho phép xử lý tự động các thay đổi trong ngôi nhà thông qua một trung tâm điều khiển Hệ thống này liên kết và điều phối các thiết bị trong ngôi nhà theo các kịch bản và điều kiện môi trường đã được lập trình Sự phát triển của trí tuệ nhân tạo (AI) đã làm cho quá trình điều khiển ngôi nhà trở nên tinh vi hơn, mở ra nhiều khả năng mới cho người sử dụng.
Tình hình phát triển trong và ngoài nước
2.3.1 Đối với tình hình ngoài nước:
Trên toàn cầu, nhà thông minh đang phát triển mạnh mẽ với sự quan tâm từ các đại gia công nghệ như Microsoft, Apple, Google và Samsung Google đã mua lại Nest, công ty chuyên sản xuất bộ điều khiển nhiệt độ thông minh và thiết bị báo khói, trong khi Samsung giới thiệu hệ thống nhà thông minh tích hợp trong các sản phẩm của mình Apple cũng không đứng ngoài cuộc khi ra mắt nền tảng phát triển ứng dụng nhà thông minh HomeKit.
Ngoài các thương hiệu trong nước, những thương hiệu nhà thông minh nổi tiếng từ nước ngoài như Schneider (Pháp), Smartg4 (Mỹ) và Gamma (Đức) cũng rất được ưa chuộng Các sản phẩm thiết bị nhà thông minh quốc tế này nổi bật với thiết kế tinh tế, tính năng đa dạng và những giải pháp công nghệ tiên tiến, hiện đại.
2.3.2 Đối với tình hình trong nước:
Các doanh nghiệp Việt Nam đang tích cực theo đuổi công nghệ toàn cầu và nghiên cứu về nhà thông minh Nhiều công ty trong nước đã giới thiệu sản phẩm nhà thông minh mang thương hiệu “Made in Vietnam”.
Ta có thể kể tới:
- BKAV hiện đang cung cấp 2 sản phẩm Nhà thông minh là BKAV SmartHome thế hệ 2 và BKAV Smarthome Luxury
BKAV SmartHome kết nối tất cả thiết bị điện trong ngôi nhà thành một hệ thống mạng thông minh, cho phép người dùng điều khiển các thiết bị như đèn chiếu sáng, rèm cửa, điều hòa nhiệt độ, tivi, âm thanh, khóa cửa, bình nóng lạnh, quạt thông gió, camera an ninh, chuông cửa có hình, hệ thống bơm tưới nước tiểu cảnh và bể cá theo các kịch bản thông minh.
Các thiết bị thông minh của BKAV SmartHome được thiết kế tỉ mỉ với chất liệu cao cấp, có giá tương đương với các thương hiệu quốc tế như Seimens và Schneider Mặc dù chi phí cho hệ thống nhà thông minh của BKAV được xem là cao so với thị trường chung, nhưng điều này phản ánh định hướng phục vụ phân khúc cao cấp Cụ thể, BKAV SmartHome thế hệ 2 có giá từ 30 – 50 triệu đồng, trong khi BKAV SmartHome Luxury có mức giá khoảng 200 triệu đồng.
Nhà thông minh của BKAV mang đến tính năng điều khiển tiện lợi thông qua thiết bị gắn tường hoặc smartphone, máy tính bảng Nó hỗ trợ điều khiển bằng giọng nói, tích hợp các kịch bản ngữ cảnh thông minh và sử dụng hệ điều hành SmartHome OS do BKAV phát triển.
BKAV vừa ra mắt bộ thiết bị an ninh cao cấp BKAV SmartHome Security, cung cấp giải pháp bảo vệ ngôi nhà đa lớp từ tường rào, sân vườn đến từng khu vực và phòng ốc Khác biệt với các sản phẩm trên thị trường, BKAV SmartHome Security tích hợp trí tuệ nhân tạo (AI) để phát hiện thông minh, giảm thiểu cảnh báo sai và ngăn chặn các xâm nhập không mong muốn.
Lumi chuyên cung cấp giải pháp chiếu sáng thông minh, điều hòa không khí, rèm cửa tự động, bình nóng lạnh điều khiển từ xa, hệ thống âm thanh đa vùng, cùng với các giải pháp an ninh và kiểm soát môi trường cho không gian sống hiện đại.
Lumi SmartHome cho phép kết nối và điều khiển dễ dàng qua các thiết bị điện thông minh như công tắc cảm ứng, chiết áp cảm ứng, cảm biến và bộ điều khiển hồng ngoại Người dùng có thể giám sát và điều khiển hệ thống bằng smartphone hoặc máy tính bảng, cũng như thông qua lệnh giọng nói.
Các hệ thống nhà thông minh hiện tại đã đáp ứng hầu hết nhu cầu của người sử dụng, nhưng giá thành vẫn còn cao, khiến người có thu nhập thấp và trung bình khó tiếp cận Do đó, cần thiết phải giảm giá sản phẩm để nhà thông minh trở nên phổ biến hơn trong cộng đồng.
Phân tích, lựa chọn phương án thực hiện đề tài
Dựa trên những kiến thức đã được nghiên cứu về hệ thống nhà thông minh, luận văn sẽ thiết kế một ngôi nhà thông minh với các thành phần sau đây:
Khối chiếu sáng: gồm các đèn led, và hệ thống cửa sổ có thể đóng mở nhờ động cơ
Hệ thống kiểm soát ra vào sử dụng thẻ từ RFID kết hợp với cửa bán tự động, đảm bảo an ninh hiệu quả Khi có sự cố, hệ thống sẽ phát ra báo động bằng còi điện, giúp cảnh báo kịp thời.
Khối cảm biến: Sử dụng các cảm biến nhiệt độ, độ ẩm, mưa, ánh sáng, thân nhiệt chuyển động, gas để cung cấp thông tin cho bộ điều khiển
Khối điều hòa không khí: gồm quạt thông gió, cửa sổ
Khối xử lý trung tâm sử dụng kit STM32F407 Discovery kết hợp với module Wifi ESP8266 NodeMCU để kết nối Internet, cho phép đưa dữ liệu lên CloudMQTT và cập nhật thời gian thực Để điều khiển các thiết bị điện gia dụng, hệ thống còn tích hợp relay, phím bấm và màn hình LCD, giúp người dùng dễ dàng điều khiển trực tiếp.
Khối xử lý trung tâm
Khối kiểm soát ra vào
Khối điều hòa không khí
Hình 2.1: Sơ đồ khối tổng quan hệ thống
Trong mô hình nhà thông minh, các thiết bị như quạt và đèn sẽ được thay thế bằng đèn LED và quạt tản nhiệt 12V Tuy nhiên, để đảm bảo tính ứng dụng thực tế, các thiết bị này vẫn sẽ được điều khiển thông qua relay.
2.4.2 Phân tích phương án đã chọn: Để đảm bảo cho nhu cầu sử dụng của người dùng và hệ thống hoạt động tốt, ổn định thì việc lựa chọn vi điều khiển thích hợp cho bộ điều khiển trung tâm đóng vai trò rất quan trọng Vi điều khiển được dùng trong đề tài phải có những yêu cầu bắt buộc sau:
Hỗ trợ số lượng IO lớn
Có hỗ trợ các giao tiếp UART, I2C, SPI
Có bộ chuyển đổi ADC
Tốc độ xử lý cao, ổn định
Căn cứ vào những yêu cầu trên em quyết định chọn kit STM32F407 Discovery làm bộ xử lý trung tâm
Trong dự án của mình, ngoài việc sử dụng kit STM32F407 Discovery, tôi còn tích hợp ESP8266 NodeMCU để truyền nhận dữ liệu giữa hệ thống và Cloud ESP8266 NodeMCU có nhiều ưu điểm, như chip nạp CP2102 giúp giao tiếp UART ổn định, cho phép lập trình trực tiếp từ IDE của Arduino, làm cho quá trình lập trình trở nên dễ dàng Hơn nữa, giá thành của nó cũng rất hợp lý Để kết nối giữa kit STM32F407 Discovery và ESP8266 NodeMCU, tôi chọn giao thức UART, vì khoảng cách giữa hai vi điều khiển không xa và không yêu cầu tốc độ cao.
Hiện nay, có nhiều giao thức điều khiển thiết bị qua Internet, mỗi giao thức đều có những ưu nhược điểm riêng Trong luận văn, tôi đã lựa chọn giao thức MQTT nhờ vào những ưu điểm nổi bật như băng thông thấp, độ tin cậy cao, và khả năng hoạt động hiệu quả ngay cả trong môi trường mạng không ổn định Giao thức này tiêu tốn rất ít byte khi kết nối với server và cho phép giữ kết nối mở liên tục, đồng thời hỗ trợ kết nối nhiều thiết bị (MQTT client) thông qua một MQTT server (broker).
Giao thức MQTT rất phù hợp cho các ứng dụng IoT nhờ vào khả năng hoạt động hiệu quả trong môi trường có băng thông thấp và độ trễ cao Để triển khai giao thức này, cần có một máy chủ MQTT (hay còn gọi là broker) Có hai phương pháp để thiết lập một broker MQTT.
Tự tạo broker MQTT trên máy tính, raspberry, cách này tốn kém thêm chi phí, phức tạp
Sử dụng các dịch vụ MQTT broker có sẵn
Do khả năng còn hạn chế nên em quyết định chọn cách thứ hai là sử dụng MQTT broker có sẵn Ở đây em dùng broker được cung cấp bởi CloudMQTT (https://www.cloudmqtt.com/)
Để cập nhật thời gian thực cho hệ thống, tôi sử dụng ESP8266 NodeMCU kết nối Internet nhằm đồng bộ thời gian từ máy chủ NTP (Network Time Protocol) Phương pháp này giúp tiết kiệm phần cứng bằng cách loại bỏ sự cần thiết của các module thời gian thực thông thường.
TÌM HIỂU VỀ PHẦN CỨNG VÀ PHẦN MỀM
Kit STM32F407 Discovery
STM32F407VG là vi điều khiển 32-bit của STMicroelectronics, sử dụng lõi ARM Cortex-M, nổi bật với hiệu suất cao và chi phí hợp lý Dòng ARM Cortex™-M thiết lập tiêu chuẩn mới cho các thiết bị yêu cầu tiêu thụ năng lượng thấp và đáp ứng thời gian thực khắt khe.
Bộ kit STM32F4 Discovery mang đến cho người dùng khả năng phát triển ứng dụng dễ dàng với vi điều khiển STM32F407VG hiệu suất cao Kit này được tích hợp công cụ ST-LINK, giúp nạp chương trình và kiểm tra lỗi một cách nhanh chóng.
3.1.1 Các tính năng nổi bật:
Một số tính năng của kit [2]:
Bộ vi điều khiển STM32F407VGT6 có lõi ARM Cortex® 32-bit với lõi FPU, bộ nhớ Flash 1-Mbyte, RAM 192Kbyte trong gói LQFP100, tần số hoạt động 168MHz
Cổng USB 2.0 tốc độ cao
Camera 8-14 bits giao diện lên đến 54Mbytes/s
Board có ST-LINK/V2 trên STM32F4-DISCOVERY giúp nạp chương trình, gỡ lỗi
Board cấp nguồn: thông qua cổng USB hoặc nguồn 5V bên ngoài
Cảm biến chuyển động LIS302DL, ST MEMS 3 trục gia tốc
Cảm biến âm thanh MP45DT02 ST-MEMS, mic cảm biến âm thanh vô hướng kỹ thuật số
Bộ chuyển đổi DAC âm thanh CS43L22
- LD1: led báo cho giao tiếp USB
- 4 LED màu: LD3 (màu cam), LD4 (màu xanh lá), LD5 (màu đỏ), LD6 (màu xanh dương)
- 2 USB OTG LEDs LD7 (green) VBUS and LD8 (red) báo quá dòng
2 nút nhấn (reset và user)
USB OTG FS với cổng kết nối micro-AB
Header mở rộng cho tất cả các I/O LQFP100 để kết nối với board
Phần mềm miễn phí toàn diện bao gồm nhiều ví dụ, một phần của STM32 CubeF4 gói hoặc STSW-STM32068 cho việc sử dụng thư viện chuẩn
3.1.2 Các khối chức năng chính được sử dụng trong luận văn:
Khối ngõ vào ra đa chức năng (GPIO):
Đối với vi điều khiển STM32F407 loại 100 chân có 5 Port mỗi Port có 16 chân I/O đó là Port A, B, C, D và Port E ngoài ra còn có Port H có 2 chân I/O
Mỗi chân GPIO có khả năng được cấu hình bằng phần mềm, cho phép thiết lập chế độ đầu ra như push-pull hoặc open-drain, cùng với các tùy chọn pull-up và pull-down.
Dữ liê ̣u được xuất ra từ thanh ghi dữ liê ̣u hoă ̣c ngoa ̣i vi
Có thể cho ̣n tốc đô ̣ xử lý cho các chân I/O
Mỗi chân I/O lên đến 16 chức năng khác nhau
Có khả năng đổi tra ̣ng thái nhanh chỉ trong 2 chu kì xung clock
Hinh 3.2: Cấu trúc cơ bản của một chân I/O đa chức năng [3]
STM32F407VG hỗ trợ bốn bộ phát nhận đồng bộ/không đồng bộ (USART1, USART2, USART3, USART6) và hai bộ phát nhận không đồng bộ (USART4, USART5) Giao diện USART1 và USART6 cho phép truyền thông với tốc độ tối đa lên đến 10,5Mbit/s, trong khi các giao diện còn lại có tốc độ truyền thông đạt 5,25Mbit/s.
Một số đặc điểm chính của khối giao tiếp USART:
Giao tiếp bất đồng bộ song công
Đi ̣nh dạng tiêu chuẩn NRZ
Chiều dài kí tự dữ liê ̣u có thể lâ ̣p trình được (8 bit hoă ̣c 9 bit)
Có các bit cho phép tách biê ̣t đối với quá trình truyền và nhâ ̣n dữ liê ̣u
Có các cờ phát hiê ̣n chuyển đổi
10 nguồn ngắt được phát hiện với cờ
Hình 3.3: Sơ đồ cấu trúc khối giao tiếp USART [3]
I2C (inter-integrated circuit) là giao thức truyền thông nối tiếp hai dây, bao gồm một dây xung clock (SCL) và một dây dữ liệu (SDA) Các chip chủ và tớ được kết nối với nhau thông qua hai dây này và được hỗ trợ bởi điện trở kéo.
Kit hỗ trợ tối đa 3 đường I2C, hoạt động ở chế độ multimaster và slave Ở chế độ chuẩn, kit có thể hỗ trợ tần số lên đến 100KHz, trong khi ở chế độ nhanh, tần số có thể đạt tới 400KHz Nó cũng hỗ trợ chế độ địa chỉ 7/10 bit và địa chỉ kép 7 bit.
Có thể hoạt động như một Master hoặc Slave
Hình sau thể hiện cấu trúc của 1 chân I2C:
Hình 3.4: Cấu trúc của một chân I2C [3]
Module thu phát Wifi ESP8266 NodeMCU
Hình 3.5: Module thu phát Wifi 8266 NodeMCU [4]
Kit RF phát Wifi ESP8266 NodeMCU Lua là một bộ phát triển dựa trên chip Wifi SoC ESP8266, nổi bật với thiết kế thân thiện và khả năng lập trình dễ dàng thông qua trình biên dịch Arduino Điều này giúp đơn giản hóa quá trình phát triển và lập trình ứng dụng trên nền tảng ESP8266.
19 Được dùng cho các ứng dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT
IC chính: ESP8266 Wifi SoC
Phiên bản firmware: NodeMCU Lua
Chip nạp và giao tiếp UART: CP2102
GPIO tương thích hoàn toàn với firmware Node MCU
Cấp nguồn: 5VDC MicroUSB hoặc Vin
GIPO giao tiếp mức 3.3VDC
Tích hợp Led báo trạng thái, nút Reset, Flash
Tương thích hoàn toàn với trình biên dịch Arduino
Hình 3.6: Các chân của Module Wifi 8266 NodeMCU [4]
Các cảm biến được sử dụng
3.3.1 Cảm biến nhiệt độ, độ ẩm DHT11:
Hình 3.7: Cảm biến nhiệt độ, độ ẩm DHT11
Cảm biến DHT11 là một thiết bị phổ biến hiện nay nhờ chi phí thấp và khả năng thu thập dữ liệu dễ dàng thông qua giao tiếp 1 wire Với bộ tiền xử lý tín hiệu tích hợp, cảm biến này cung cấp dữ liệu chính xác mà không cần qua tính toán phức tạp.
Điện áp hoạt động: 3 đến 5 VDC
Dòng sử dụng lớn nhất: 2.5mA
Đo tốt ở độ ẩm 20% - 80%RH với sai số ±5%
Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C
Tần số lấy mẫu tối đa 1Hz
MCU gửi tín hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại
Hình 3.8: Tín hiệu start từ MCU và phản hồi của DHT11 [5]
Sau khi giao tiếp được DHT11 sẽ trả về giá trị nhiệt độ, độ ẩm dưới dạng 5 byte:
- Byte 1: Giá trị phần nguyên của độ ẩm
- Byte 2: Giá trị phần thập phân của độ ẩm
- Byte 3: Giá trị phần nguyên của nhiệt độ
- Byte 4: Giá trị phần thập phân của nhiệt độ
3.3.2 Cảm biến sáng quang trở CDS:
Hình 3.11: Cảm biến quang trở CDS
Cảm biến ánh sáng quang trở tích hợp opamp và biến trở, giúp nhận biết tín hiệu dễ dàng hơn Thiết bị này được sử dụng để phát hiện và điều khiển việc bật tắt thiết bị dựa trên cường độ ánh sáng môi trường.
Sử dụng quang trở CDS
Hình 3.12: Cảm biến mưa Thông số kỹ thuật:
1 đầu ra Digital và 1 đầu ra Analog
Độ nhạy có thể điều chỉnh thông qua chiết áp
Khi không có mưa đầu ra ở mức cao, có mưa đầu ra ở mức thấp
Kích thước tấm cảm biến mưa: 54mm x 40mm
Có lỗ cố định bu lông để gắn cảm biến
3.3.4 Cảm biến thân nhiệt chuyển động PIR HC – SR501:
Hình 3.13: Cảm biến thân nhiệt chuyển động PIR HC – SR501
Cảm biến thân nhiệt chuyển động PIR HC-SR501 là thiết bị chuyên dụng để phát hiện chuyển động của các vật thể phát ra bức xạ hồng ngoại như con người, động vật và các vật phát nhiệt khác Thiết bị cho phép điều chỉnh độ nhạy để xác định khoảng cách phát hiện và cường độ bức xạ của vật thể mong muốn Ngoài ra, cảm biến còn có tính năng điều chỉnh thời gian kích trễ, cho phép người dùng thiết lập thời gian giữ tín hiệu sau khi được kích hoạt thông qua biến trở tích hợp sẵn.
Phạm vi phát hiện : góc 120 độ hình nón, độ xa tối đa 7m
Điện áp hoạt động: 5 - 20VDC
Mức tiêu thụ dòng: 65mA
Thời gian báo: tối đa 5 phút có thể tùy chỉnh bằng biến trở
Độ nhạy có thể điều chỉnh bằng biến trở
Tín hiệu trả về: Digital
3.3.5 Cảm biến khí gas MQ-2:
Hình 3.14: Cảm biến khí gas
Cảm biến MQ-2 sử dụng phần tử SnO2, có độ dẫn điện thấp trong không khí sạch Khi có mặt khí dễ cháy, độ dẫn điện của cảm biến tăng lên; nồng độ khí càng cao, độ dẫn điện càng lớn và được chuyển đổi thành tín hiệu điện MQ-2 có độ nhạy cao với LPG, propane, hydrogen, mê-tan (CH4) và các hơi dễ bắt lửa khác, phù hợp cho nhiều ứng dụng khác nhau.
Cảm biến xuất ra cả hai dạng tín hiệu là Analog và Digital, tín hiệu Digital có thể điều chỉnh mức báo bằng biến trở.
Mạch RFID RC522 NFC
Hình 3.15: Mach RFID RC552 NFC
Module RFID RC522 sử dụng IC MFRC522 của Phillip, cho phép đọc và ghi dữ liệu cho thẻ NFC tần số 13.56MHz Với thiết kế nhỏ gọn và mức giá phải chăng, module này trở thành lựa chọn hàng đầu cho các ứng dụng liên quan đến ghi và đọc thẻ RFID.
Dòng ở chế độ chờ: 1013mA
Dòng ở chế độ nghỉ: < 80uA
Tần số sóng mang: 13.56MHz
Khoảng cách hoạt động: 0 - 60mm (mifare1 card)
Tốc độ truyền dữ liệu: tối đa 10Mbit/s
Các loại card RFID hỗ trợ: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire
Màn hình hiển thị LCD
Màn hình LCD1602 xanh dương, sử dụng driver HD44780, có khả năng hiển thị 2 dòng với 16 ký tự mỗi dòng, nổi bật với độ bền cao và tính phổ biến.
Điện áp hoạt động là 5 V
Chữ trắng, nền xanh dương
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn
Có thể được điều khiển với 6 dây tín hiệu
Hình 3.17: LCD text 2004 xanh dương
Màn hình LCD2004 xanh dương, sử dụng driver HD44780, nổi bật với khả năng hiển thị 4 dòng, mỗi dòng chứa 20 ký tự Với độ bền cao, màn hình này được ưa chuộng rộng rãi trong nhiều ứng dụng.
Điện áp hoạt động là 5 V
Chữ trắng, nền xanh dương
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn
Có thể được điều khiển với 6 dây tín hiệu
3.5.3 Mạch chuyển giao tiếp LCD 1602 và LCD 2004 sang I2C:
Hinh 3.18: Mạch chuyển giao tiếp LCD 1602 và LCD 2004 sang I2C
Để sử dụng các loại LCD có driver HD44780 như LCD 1602 và LCD 2004, cần ít nhất 6 chân của MCU kết nối với các chân RS, EN, D7, D6, D5 và D4 Tuy nhiên, với module chuyển giao tiếp LCD sang I2C, chỉ cần kết nối 2 chân (SDA và SCL) của MCU với module để hiển thị thông tin lên LCD Ngoài ra, độ tương phản có thể được điều chỉnh thông qua biến trở gắn trên module.
Bảng 3.1: Giao tiếp giữa mạch chuyển đổi LCD sang I2C với MCU
Mạch cho phép thay đổi địa chỉ I2C bằng cách kết nối các jump, giúp điều khiển nhiều LCD cùng lúc chỉ với một bộ I2C từ MCU.
Module 8 relay
Module 8 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AC hoặc
Các thiết bị DC tiêu thụ dòng lớn với thiết kế nhỏ gọn, tích hợp opto và transistor cách ly, cho phép kích đóng ở mức thấp (0V) Điều này phù hợp với mọi loại MCU và hỗ trợ việc sử dụng nguồn ngoài, mang lại sự linh động và dễ dàng trong ứng dụng.
Sử dụng điện áp nuôi 5VDC
8 Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho cả tín hiệu 5V hay 3v3 (cần cấp nguồn ngoài), mỗi Relay tiêu thụ dòng khoảng
Điện thế đóng ngắt tối đa: 250VAC - 10A hoặc 30VDC - 10A
Có đèn báo đóng ngắt trên mỗi Relay.
Các thiết bị khác
3.7.1 Đèn led, quạt: Để đảm bảo kích thước cho mô hình ngôi nhà, thay vì sử dụng các thiết bị điện 220VAC em đã sử dụng đèn led và quạt tản nhiệt DC thay thế Tuy nhiên các thiết bị này vẫn được điều khiển thông qua relay để đáp ứng tính ứng dụng của đề tài
Hình 3.20: Đèn hắt sang trắng 3 bóng Hình 3.21: Quạt tản nhiệt 4x4x1cm
Cả hai thiết bị trên đều sử dụng nguồn 12VDC
3.7.2 Động cơ RC Servo 9G: Động cơ RC Servo 9G có kích thước nhỏ, là loại được sử dụng nhiều nhất để làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng Động cơ RC Servo 9G có tốc độ phản ứng nhanh, động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM
Trong luận văn động cơ được sử dụng để đóng, mở cửa
Hình 3.22: Động cơ RC Servo 9G Thông số kỹ thuật [8]:
Điện áp hoạt động: 4.8-6VDC
Để điều khiển ta cần xuất xung có chu kì 20ms với độ rộng xung từ 1 đến 2ms ứng với vị trí từ -90° đến 90°
3.7.3 Cảm ứng một chạm điện dung TTP223B:
Hình 3.23: Cảm ứng một chạm điện dung TTP223B
Cảm ứng điện dung TTP223B mini có kích thước nhỏ gọn và giá thành phải chăng, thường được ứng dụng trong các thiết bị cảm ứng như bàn phím và công tắc cảm ứng.
Điện áp làm việc: 3 - 5VDC
Dòng điện tiêu thụ: 0.025mA
Cảm ứng xuyên qua các phi kim như kính, nhựa, acrylic,
Các phần mềm được sử dụng
Arduino IDE (Môi trường phát triển tích hợp) là một nền tảng mã nguồn mở giúp người dùng lập trình và tải mã lên board Arduino, hỗ trợ hầu hết các loại board hiện nay Phần mềm này cung cấp nhiều tính năng như viết và biên dịch code, kèm theo nhiều ví dụ mẫu và hỗ trợ các thư viện như SoftwareSerial, FirebaseArduino, SPI, ESP8266, Servo, và UART Phiên bản đầu tiên là Arduino 1.0, sau đó phát triển lên các phiên bản như 1.0.1, 1.0.2, và phiên bản mới nhất hiện tại là Arduino 1.8.7.
Trong luận văn Arduino IDE được sử dụng kèm với những thư viện PubSubClient, NTPClient, ESP8266WiFi,…để lập trình cho module Wifi ESP8266 NodeMCU
3.8.2 Keil uVision5 và STM32CubeMX:
Keil uVision5 là phần mềm hỗ trợ lập trình cho các vi điều khiển như Atmel và AVR Phần mềm này cho phép người dùng soạn thảo và biên dịch chương trình C, chuyển đổi chúng thành ngôn ngữ máy để nạp vào vi điều khiển, từ đó tạo điều kiện cho sự tương tác giữa vi điều khiển và lập trình viên.
STM32CubeMX là công cụ hiệu quả để cấu hình các ngoại vi và tạo dự án dựa trên những cấu hình này Một số lợi ích khi sử dụng STM32CubeMX bao gồm khả năng tối ưu hóa quy trình phát triển, giảm thiểu thời gian lập trình và dễ dàng quản lý các thiết lập phần cứng.
Giúp cấu hình ngoại vi dễ dàng Chọn các pin trên chip và chọn các tính năng mong muốn gắn với nó
STM32CubeMX tự động download các driver mới nhất của ST dành cho các dòng chip của mình
Tự động tạo project dựa trên cấu hình đã thiết lập
Trong luận văn đã sử dụng kết hợp hai phần mềm trên để lập trình cho kit STM32F407 Discovery.
Giao thức MQTT
3.9.1 Tìm hiểu giao thức MQTT:
MQTT (Message Queuing Telemetry Transport) là một giao thức publish/subscribe lý tưởng cho các thiết bị Internet of Things, với băng thông thấp, độ tin cậy cao và khả năng hoạt động trong mạng lưới không ổn định Giao thức này phù hợp cho các ứng dụng M2M (machine to machine) và IoT nhờ khả năng sử dụng băng thông hiệu quả trong môi trường có độ trễ cao Ngoài ra, MQTT cũng được ứng dụng trong các nền tảng như Facebook Messenger và YouTube.
HTTP là giao thức thích hợp cho việc truyền tải dữ liệu lớn như website, nhưng không hiệu quả khi gửi một vài byte dữ liệu như dữ liệu cảm biến Hơn nữa, tốc độ của HTTP không cao, do đó MQTT trở thành lựa chọn tối ưu trong trường hợp này.
MQTT là giao thức nhẹ và nhanh, tiêu tốn ít byte cho việc kết nối với server và duy trì trạng thái kết nối liên tục Ưu điểm của nó là giảm thiểu dữ liệu và thời gian giao tiếp so với giao thức HTTP Vì vậy, MQTT thường được lựa chọn thay vì các giao thức khác.
Trong hệ thống sử dụng giao thức MQTT, nhiều node trạm, hay còn gọi là mqtt client, kết nối tới một MQTT server, được gọi là broker Mỗi client sẽ đăng ký một số kênh (topic) cụ thể, chẳng hạn như "/client1/channel1" và "/client1/channel2".
Quá trình đăng ký nhận dữ liệu được gọi là "subscribe", tương tự như việc đăng ký nhận tin trên kênh Youtube Mỗi client sẽ nhận dữ liệu từ bất kỳ trạm nào gửi thông tin đến kênh mà họ đã đăng ký Khi một client gửi dữ liệu tới kênh đó, quá trình này được gọi là "publish".
Hình 3.24: Mô hình publish/ subscribe
Tầng ứng dụng QoS (Qualities of Service):
Có 3 tuỳ chọn QoS (Qualities of service) khi "publish" và "subscribe":
QoS0: Broker/client sẽ gởi dữ liệu đúng 1 lần, quá trình gởi được xác nhận bởi chỉ giao thức TCP/IP
QoS1: Trong giao thức này, broker/client sẽ gửi dữ liệu và yêu cầu ít nhất một lần xác nhận từ phía bên nhận Điều này có nghĩa là có thể nhận được nhiều hơn một lần xác nhận cho việc dữ liệu đã được nhận thành công.
QoS2: Broker/client đảm bảm khi gởi dữ liệu thì phía nhận chỉ nhận được đúng 1 lần, không trùng lặp, không thất lạc
QoS2 có độ tin cậy cao nhất
Một gói tin có thể được gửi với bất kỳ mức độ QoS nào, và các client có thể đăng ký với bất kỳ yêu cầu QoS nào Điều này có nghĩa là client sẽ chọn mức QoS tối đa mà họ có thể nhận Chẳng hạn, nếu một gói dữ liệu được phát hành với QoS2 nhưng client đăng ký với QoS0, gói dữ liệu sẽ được broker gửi với QoS0 Ngược lại, nếu một client khác đăng ký cùng kênh với QoS2, broker sẽ gửi dữ liệu cho client đó với QoS2.
Nếu một khách hàng đăng ký với QoS2 nhưng dữ liệu được gửi qua kênh đó lại được xuất bản với QoS0, thì khách hàng đó sẽ nhận dữ liệu với QoS0 từ Broker QoS càng cao thì độ tin cậy càng lớn, tuy nhiên, điều này cũng đồng nghĩa với việc yêu cầu về độ trễ và băng thông sẽ cao hơn.
Khi retain được thiết lập bằng 1, Broker sẽ lưu trữ gói tin với QoS khi gói tin được publish từ Client, và sẽ gửi gói tin đó đến bất kỳ Client nào đăng ký cùng kênh trong tương lai Khi một Client kết nối và subscribe, nó sẽ nhận được gói tin cuối cùng có retain = 1 cho bất kỳ topic nào mà nó đã đăng ký Tuy nhiên, nếu Broker nhận gói tin với QoS = 0 và retain = 1, nó sẽ xóa tất cả các gói tin retain = 1 trước đó và lưu gói tin mới, nhưng có thể hủy bỏ bất kỳ lúc nào.
Khi gửi một gói dữ liệu đến Client, Broker cần thiết lập retain = 1 nếu gói được gửi như kết quả của việc Client vừa mới subscribe (tương tự như tin nhắn ACK xác nhận subscribe thành công) Ngược lại, retain phải được đặt bằng 0 nếu không quan tâm đến kết quả của việc subscribe.
MQTT được thiết kế một cách nhẹ và linh hoạt nhất có thể Do đó nó chỉ có
1 lớp bảo mật ở tầng ứng dụng: bảo mật bằng xác thực (xác thực các client được quyền truy cập tới broker)
MQTT có thể được tích hợp với các giải pháp bảo mật đa tầng, chẳng hạn như sử dụng VPN ở tầng mạng hoặc SSL/TLS ở tầng transport để tăng cường mức độ an toàn cho dữ liệu truyền tải.
Cloud MQTT là một MQTT server dựa trên công nghệ điện toán đám mây CloudMQTT được quản lý bởi máy chủ Mosquitto Mosquitto thực hiện giao thức
MQ Telemetry Transport, cung cấp các giải pháp đơn giản để gởi tin nhắn bằng cách sử dụng các lệnh publish/subscribe
Cloud MQTT là một giải pháp thay thế cho việc tạo Broker server khi mà chúng ta vẫn còn thiếu kinh nghiệm về lập trình server
3.9.3 Ứng dụng điều khiển giám sát từ xa: Để điều khiển và giám sát hệ thống trên smartphone ta cần có một ứng dụng để giao tiếp với MQTT Broker
Do hạn chế về khả năng lập trình ứng dụng trên Android và iOS, tôi quyết định sử dụng ứng dụng IoT OnOff do Kris Van Hoye cung cấp Ứng dụng này có thể tải trực tiếp từ Google Play hoặc App Store.
Một số tính năng nổi bật của ứng dụng:
Có trên cả hai hệ điều hành cho smartphone phổ biến nhất hiện nay là Android và IOS
Thao tác thiết lập đơn giản
Giao diện đẹp, cho phép tùy biến cao
Giao tiếp được với tất cả MQTT Broker có hỗ trợ WebSoket
Tự động kết nối lại với Broker khi mất kết nối
Cập nhật thời gian thực từ NTP server
Network Time Protocol (NTP) là một giao thức phần mềm quan trọng giúp đồng bộ hóa thời gian giữa các máy tính và thiết bị công nghệ khác nhau NTP đảm bảo rằng tất cả các thiết bị trong mạng đều có thời gian chính xác, từ đó cải thiện hiệu suất và độ tin cậy của các ứng dụng và dịch vụ.
Máy chủ NTP (Network Time Protocol) là thiết bị quan trọng giúp đồng bộ hóa thời gian bằng cách phân phối tín hiệu thời gian thông qua thuật toán NTP Hầu hết các máy chủ NTP sử dụng nguồn thời gian UTC (Coordinated Universal Time), một hệ thống thời gian toàn cầu dựa trên đồng hồ nguyên tử Tín hiệu thời gian này có thể được truyền tải qua Internet, kết nối giữa các máy chủ NTP hoặc giữa máy chủ NTP và các thiết bị khách (NTP client) cần cập nhật thời gian.
Public NTP server là một NTP server trên Internet mà ai cũng có thể truy cập và nhận thông tin thời gian miễn phí Chúng ta có thể tìm thấy danh sách các Public NTP server tại trang web http://www.pool.ntp.org/
Trong luận văn em sử dụng thư viện “NTPClient” để lập trình cho module ESP8266 NodeMCU truy cập và nhận thông tin thời gian từ một Public NTP server.
THIẾT KẾ, THI CÔNG BỘ ĐIỀU KHIỂN VÀ MÔ HÌNH NGÔI NHÀ
Tổng quan hệ thống
Hình 4.1: Sơ đồ tổng quan hệ thống
Các cảm biến, thiết bị điện (đèn, quạt ) và module đọc thẻ RFID sẽ được lắp đặt trên mô hình ngôi nhà
Bộ điều khiển trung tâm bao gồm các thành phần như Kit STM32F407, ESP8266 NodeMCU, LCD, nút nhấn và relay, tất cả sẽ được tích hợp thành một thiết bị duy nhất Thiết bị này nhận tín hiệu đầu vào từ các cảm biến và cung cấp đầu ra thông qua các tiếp điểm của relay để điều khiển các thiết bị khác.
Mô hình ngôi nhà
Mô hình ngôi nhà sẽ gồm: 1 phòng khách, 2 phòng ngủ, 1 phòng bếp và 1 phòng vệ sinh, với các thiết bị và cảm biến được bố trí như bảng dưới
Vị trí Cảm biến Thiết bị được điều khiển
Phòng khách Nhiệt độ, độ ẩm, ánh sáng, thân nhiệt chuyển động Đèn, quạt, còi, cửa ra/vào, cửa sổ
Phòng ngủ 1 Đèn, quạt, cửa sổ
Phòng bếp Khí gas, mưa Đèn, cửa bếp
Phòng vệ sinh Ánh sang, thân nhiệt chuyển động Đèn
Bảng 4.1: Bố trí cảm biến và các thiết bị
Hình 4.2: Mô hình ngôi nhà
Bộ điều khiển trung tâm
Căn cứ vào số lượng cảm biến và thiết bị như trên ta có thể chọn kết nối các chân vi điều khiển như sau:
Chân Cấu hình Thiết bị
PA0 ADC Cảm biến gas
Cửa sổ phòng ngủ 1 PE11
Cửa sổ phòng khách PB3
UART3 Module Wifi 8266 NodeMCU PC11
Cảm biến PIR phòng khách
PD1 Cảm biến PIR phòng vệ sinh
PD2 Cảm biến ánh sáng phòng khách
PD3 Cảm biến ánh sáng phòng vệ sinh
PD4 Cảm biến nhiệt độ, độ ẩm
PD13 Đèn phòng vệ sinh
PC0 GPIO EXTI0 Nút nhấn: Menu/Select
PC1 GPIO EXTI1 Nút nhấn: Back
PC2 GPIO EXTI2 Nút nhấn: Down
PC3 GPIO EXTI3 Nút nhấn: Up
PC4 GPIO Input Cảm ứng điện dung một chạm mở/đóng cửa
Bảng 4.2: Các chân vi điều khiển sử dụng
4.3.1 Thiết kế, thi công mạch điều khiển trung tâm:
Hình 4.3: Sơ đồ nguyên lý bộ điều khiển trung tâm
Hình 4.4: Mạch in bộ điều khiển trung tâm Kết quả thi công mạch điều khiển trung tâm:
Hình 4.5: Kêt quả thi công mạch điều khiển trung tâm
4.3.2 Thiết kế, thi công mạch nút nhấn:
Hình 4.6: Sơ đồ nguyên lý mạch nút nhấn
Hình 4.7: Mạch in nút nhấn
Kết quả thi công mạch nút nhấn:
Hình 4.8: Kết quả thi công mạch nút nhấn
4.3.3 Bộ điều khiển trung tâm sau khi tích hợp:
Hình 4.9: Bộ điều khiển trung tâm
LẬP TRÌNH HỆ THỐNG ĐIỀU KHIỂN
Các tính năng của hệ thống điều khiển nhà thông minh
Sau khi nghiên cứu và thiết kế, đề tài sẽ tích hợp được các chức năng sau đây:
Đọc và hiển thị giá trị từ các cảm biến như cảm biến nhiệt độ, độ ẩm, cảm biến mưa, cảm biến ánh sáng, cảm biến thân nhiệt chuyển động và cảm biến khí gas.
Đóng mở cửa sử dụng thẻ RFID
Điều khiển trực tiếp sử dụng hệ thống nút nhấn và LCD tích hợp trên bộ điều khiển trung tâm
Điều khiển, giám sát từ xa qua internet bằng smartphone
Hệ thống có thể hoạt động ở 1 trong 2 chế độ Auto/Manual
Ở chế độ Auto có thể hoạt động theo 1 trong 4 kịch bản sau: o Kịch bản 1: Cơ bản
Có người vào phòng vệ sinh và trời tối thì bật đèn
Có mưa nếu các cửa sổ đang mở thì tự động đóng
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn, mở tất cả các cửa o Kịch bản 2: Tiếp khách
Có người trong phòng khách thì tự động mở đèn nếu trời tối, bật quạt mở cửa sổ nếu nhiệt độ trong phòng lớn hơn nhiệt độ cài đặt
Tất cả những tính năng còn lại giống kịch bản 1 o Kịch bản 3: Ra khỏi nhà
Tắt tất cả các thiết bị, đóng tất cả các cửa
Bật chế độ chống trộm: cảm biến phát hiện có người thì còi kêu, chớp đèn
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn o Kịch bản 4: Đi ngủ
Tự động bật quạt phòng ngủ nếu nhiệt độ trong phòng lớn hơn nhiệt độ cài đặt, đóng tất cả các cửa
Bật chế độ chống trộm: cảm biến phát hiện có người thì còi kêu, chớp đèn
Phát hiện rò khí gas thì còi kêu, chớp tắt đèn
Có thể hẹn giờ báo thức, đến giờ hẹn đèn trong phòng ngủ sẽ được bật, cửa sổ tự động mở, tắt quạt
Có người vào phòng vệ sinh và trời tối thì bật đèn
Có mưa nếu các cửa sổ đang mở thì tự động đóng
Giải thuật điều khiển
5.2.1 Đóng mở cửa bằng RFID:
Một thẻ từ sẽ được sử dụng làm master, thẻ này có khả năng cấp hoặc xóa quyền truy cập của các thẻ khác
Phát hiện thẻ Ghi/xóa thẻ = 1
Là thẻ master Đúng Đúng
Sai Đúng Là thẻ mới
Ghi thẻ Ghi/xóa thẻ = 0
Xóa thẻ Ghi/xóa thẻ = 0 Đúng
Báo thẻ không đúng Sai
Mở cửa Đóng cửa Đúng
Hình 5.1: Sơ đồ giải thuật đóng mở cửa dùng thẻ RFID
5.2.2 Hoạt động theo các kịch bản:
Bắt đầu Đọc cảm biến
Trời tối và có người
Hình 5.2: Sơ đồ giải thuật điều khiển đèn phòng vệ sinh
Reset Dừng báo động Đọc cảm biến Đúng Đúng
Hình 5.3: Sơ đồ giải thuật báo động khí gas
Bắt đầu Đọc cảm biến
Có mưa Đóng cửa sổ Đúng
Hình 5.4: Sơ đồ giải thuật đóng cửa sổ khi trời mưa
Bắt đầu Đọc cảm biến
Nhiệt độ lớn hơn nhiệt độ cài đặt Sai
Trong Kịch bản 2 - Tiếp khách, sơ đồ giải thuật điều khiển đèn và quạt được thể hiện trong Hình 5.5 Các chức năng khác trong kịch bản này tương tự như kịch bản 1, do đó được lập trình theo giải thuật đã nêu trong kịch bản 1.
Kich bản 3 - Ra khỏi nhà:
Reset Dừng báo động Đọc cảm biến Đúng Đúng
Tắt tất cả các thiết bị
Hình 5.6: Sơ đồ giải thuật Kịch bản 3 – Ra khỏi nhà Chức năng báo động rò rỉ gas lập trình như giải thuật ở kịch bản 1
Bắt đầu Đọc cảm biến
Nhiệt độ lớn hơn nhiệt độ cài đặt
Hình 5.7: Sơ đồ giải thuật điều khiển quạt Kịch bản 4 - Đi ngủ
Reset Dừng báo động Đọc cảm biến Đúng Đúng
Hình 5.8: Sơ đồ giải thuật chống trộm Kịch bản 4 - Đi ngủ
Bắt đầu Đọc thời gian thực
Tắt quạt, bật đèn, mở cửa sổ Đúng Sai
Hình 5.9: Sơ đồ giải thuật báo thức Kịch bản 4 - Đi ngủ
Các chức năng báo động rò rỉ khí gas và điều khiển đèn phòng vệ sinh lập trình giống như trong kịch bản 1, đã trình bày ở trên.
Lập trình cập nhật thời gian thực từ NTP sever
Để lấy thời gian từ máy chủ NTP, chúng ta cần biến ESP9266 thành một NTP client bằng cách sử dụng thư viện “NTPClient” Một số lệnh cơ bản để thực hiện điều này bao gồm việc thiết lập kết nối và yêu cầu thời gian từ server.
Khai báo NTP client kết nối với NTP sever:
NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 7 * 3600, 60000);
Cập nhật thời gian từ sever: timeClient.update();
Gửi thông tin thời gian cho STM32 qua UART:
Lập trình điều khiển, giám sát từ xa
5.4.1 Lập trình cho kit STM32F407 và module ESP 8266 NodeMCU:
CloudMQTT Ứng dụng trên smartphone UART
Hình 5.10: Sơ đồ khối điều khiển giám sát từ xa qua Internet
ESP8266 NodeMCU và smartphone hoạt động như các client kết nối đến broker MQTT trên CloudMQTT ESP8266 sẽ gửi trạng thái thiết bị lên các topic trạng thái và đăng ký nhận lệnh điều khiển từ topic điều khiển Ngược lại, ứng dụng smartphone sẽ gửi lệnh điều khiển lên topic này và đăng ký theo dõi các topic trạng thái để cập nhật thông tin thiết bị và cảm biến, hiển thị trên ứng dụng.
ESP8266 nhận lệnh điều khiển và truyền thông tin đến STM32F407 qua giao thức UART, trong khi STM32F407 liên tục gửi trạng thái của thiết bị và cảm biến trở lại ESP8266.
Nhận được lệnh từ ESP8266
Truyền dữ liệu cho ESP8266 Đúng
Hình 5.11: Sơ đồ giải thuật lập tình STM32F407 giao tiếp ESP8266
Publish trạng thái lên topic trạng thái
Để kết nối ESP8266 với CloudMQTT, chúng ta sử dụng thư viện "PubSubClient" Một số lệnh cơ bản trong thư viện này sẽ hỗ trợ việc lập trình hiệu quả.
Thực hiện kết nối đến MQTT server: client.setServer(mqtt_server, mqtt_port);
Lệnh subscribe topic: client.subscribe(topic);
Lệnh publish thông tin lên topic: client.publish(topic,message );
5.4.2 Tạo Broker MQTT trên CloudMQTT: Để tạo broker MQTT trên CloudMQTT trước hết ta phải tạo 1 tài khoản trên trang web cloudmqtt.com Cloud MQTT cung cấp nhiều gói dịch vụ khác nhau tùy nhu cầu người dùng, từ miễn phí đến tính phí
Trong luận văn em sử dụng gói “Humble Hedgehog” với phí 5$ mỗi tháng để đảm bảo tốc độ và số lượng topic cần thiết
Hình 5.13: Gói “Humble Hedgehog” của CloudMQTT
Khi đã có tài khoản CloudMQTT ta tiến hành tạo broker sau đó tạo các topic của broker theo bản sau:
Bài viết này đề cập đến các chức năng điều khiển trong hệ thống tự động hóa nhà thông minh Các tác dụng bao gồm nhận và truyền lệnh điều khiển nhiệt độ (temp), độ ẩm (rh), cũng như trạng thái của các thiết bị như quạt phòng khách (fan_lr), đèn phòng khách (lamp_lr), quạt phòng ngủ 1 (fan_br_1), đèn phòng ngủ 1 (lamp_br_1), quạt phòng ngủ 2 (fan_br_2), đèn phòng ngủ 2 (lamp_br_2), đèn bếp (lamp_kc), đèn vệ sinh (lamp_tl), và trạng thái cửa (door_1, door_2) cùng với cửa sổ (window_1, window_2) Ngoài ra, bài viết cũng đề cập đến việc nhận và truyền trạng thái thực hiện kịch bản (script_1) trong hệ thống.
Nhận và truyền trạng thái thực hiện của các kịch bản 2, 3, và 4, cùng với trạng thái báo động, là những yếu tố quan trọng trong quy trình quản lý và giám sát hệ thống.
ESP8266 sẽ đăng ký topic “control” để nhận lệnh điều khiển và phát các topic khác để gửi trạng thái thiết bị Ngược lại, smartphone sẽ phát topic “control” và đăng ký các topic còn lại.
Ví dụ: Để điều khiển bật quạt phòng khách, smartphone sẽ publish lên topic
ESP8266 nhận tin nhắn từ topic "control" với nội dung "B1", sau đó truyền đến kit STM32 để điều khiển bật đèn Khi đèn được bật, STM32 sẽ kích hoạt quạt và gửi tin nhắn "B1" trở lại ESP8266, thông báo rằng quạt phòng khách đã được bật Khi nhận được tin nhắn này, ESP8266 sẽ thực hiện publish nội dung tương ứng.
“B1” lên topic “fan_lr” để thông tin cho smartphone
5.4.3 Thiết lập, tạo giao diện trên ứng dụng IoT OnOff: Đầu tiên ta cần tải ứng dụng từ Google Play hoặc App Store Sau đó mở ứng dụng lên vào phần Settings => Configuration => Broker rồi điền toàn bộ thông tin của broker đã tạo trên CloudMQTT
Hình 5.14: Cung cấp thông tin broker cho ứng dụng IoT OnOff
Khi cung cấp đúng thông tin thì ứng dụng sẽ tự động kết nối broker
Hình 5.15: Ứng dụng IoT OnOff kết nối broker
Sau khi kết nối thành công, bước tiếp theo là tạo giao diện bằng cách thêm các widget như nút nhấn, đèn hiển thị và biểu đồ Cuối cùng, cần thiết lập các topic để subscribe hoặc publish cho từng widget.
Hình 5.16: Giao diện điều khiển được tạo trên ứng dụng IoT OnOff
KẾT QUẢ, HẠN CHẾ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Kết quả và hạn chế của đề tài
Sau 15 tuần thực hiện, luận văn cũng đã cơ bản hoàn thành được những yêu cầu đặt ra ban đầu:
Thiết kế và gia công bộ điều khiển ngôi nhà với những tính năng cơ bản sau:
Có khả năng bật, tắt các thiết bị trong nhà bằng tay hoặc tự động theo các kịch bản
Đọc và xử lý tín hiệu từ các cảm biến
Đóng mở cửa bán tự động sử dụng thẻ RFID
Báo trộm, rò khí gas
Có thể điều khiển, giám sát bằng điện thoại kết nối mạng Internet
Xây dựng mô hình ngôi nhà để có thể vận hành thử nghiệm bộ điều khiển trên
Hình 6.1: Bộ điều khiển và mô hình ngôi nhà sau khi hoàn thành
Do kiến thức còn hạn chế, bài viết không tránh khỏi những thiếu sót và vấn đề chưa được khắc phục Một số điểm cần lưu ý bao gồm:
Chưa thể tự lập trình một ứng dụng riêng để điều khiển mà sử dụng ứng dụng có sẵn
Chỉ dừng lại ở việc điều khiển on/off các thiết bị
Tính năng còn rất cơ bản, cần bổ sung thêm nhiều tính năng mới để ngôi nhà được thông minh hơn
Bộ điều khiển nhận tín hiệu từ cảm biến qua dây, do đó, để sử dụng hiệu quả trong thực tế, cần tính toán lại điện trở của dây và áp dụng các biện pháp chống nhiễu cho cảm biến.
Hướng phát triển đề tài
Mô hình nhà thông minh với các tính năng cơ bản là nền tảng vững chắc để phát triển thành những mô hình cao cấp hơn, đáp ứng nhiều yêu cầu và tính năng đa dạng hơn.
Mô hình không chỉ giới hạn trong việc điều khiển bật/tắt thiết bị mà còn có khả năng phát triển để điều khiển tín hiệu analog Với sức mạnh của vi điều khiển STM32F407, việc này trở nên dễ dàng hơn bao giờ hết.
Ngoài ra có thể phát triển thêm các tính năng mới như: nhận diện mặt chủ nhà thông qua camera, điều khiển bằng giọng nói,