LỜI NÓI ĐẦU Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ biến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông định thời, đếm sản phẩm trong
LÝ THUYẾT TỔNG QUAN
Khái niệm về nhà thông minh
Nhà thông minh (Smart Home) là một ngôi nhà hoặc căn hộ được trang bị hệ thống tự động tiên tiến để điều khiển đèn chiếu sáng, nhiệt độ, truyền thông đa phương tiện và an ninh, cùng rèm cửa, cửa và nhiều tính năng khác, nhằm tăng tiện nghi, an toàn cho cuộc sống hằng ngày và tối ưu hóa việc sử dụng nguồn tài nguyên cũng như tiết kiệm năng lượng.
Nhà thông minh sử dụng các thiết bị kết nối Internet để quản lý và giám sát từ xa các thiết bị và hệ thống trong ngôi nhà, mang lại sự tiện lợi và linh hoạt cho người dùng Nhờ khả năng điều khiển từ xa các yếu tố như ánh sáng và nhiệt độ, ngôi nhà có thể tối ưu hóa tiêu thụ năng lượng và tăng cường an toàn Các giải pháp nhà thông minh tích hợp công nghệ Internet giúp vận hành hiệu quả hơn, cải thiện trải nghiệm sống và tiết kiệm chi phí tiện ích.
Yêu cầu công nghệ của hệ thống tắt bật đèn thông minh
Công nghệ nhà thông minh, hay còn gọi là home automation, mang lại an toàn, thoải mái, tiện lợi và tiết kiệm năng lượng cho chủ nhà bằng cách cho phép kiểm soát các thiết bị thông minh thông qua ứng dụng smart home trên điện thoại hoặc các thiết bị kết nối mạng khác Là một phần của mạng lưới vạn vật kết nối (IoT), các hệ thống và thiết bị trong hệ sinh thái nhà thông minh thường hoạt động đồng bộ, chia sẻ dữ liệu người dùng và tự động hóa các hành động dựa trên quyền ưu tiên của chủ nhà.
NỀN TẢNG GIAO TIẾP
Home Assistant
Home Assistant, hay còn gọi là HA hay HASS, là nền tảng quản lý nhà thông minh được lập trình bằng Python Nó có thể chạy trên mọi nền tảng hệ điều hành và quản lý ngôi nhà thông minh qua giao diện web hoặc ứng dụng trên smartphone Home Assistant có hai phiên bản: Home Assistant Core, hay còn được xem như thành phần cốt lõi, có thể cài đặt trên bất kỳ nền tảng hệ điều hành nào giống như một phần mềm máy tính.
Home Assistant OS là sự kết hợp giữa Home Assistant Core và các công cụ hỗ trợ khác, cho phép cài đặt trên các thiết bị như Raspberry Pi hoặc máy ảo Khi được cài đặt lên thiết bị, hệ điều hành này biến thiết bị thành một hub tổng giúp kết nối và điều khiển các thiết bị nhà thông minh, tương tự như gateway trên nền tảng Xiaomi và Aqara cũng như hub tổng trên Samsung SmartThings.
Hình 2.1 Một giao diện quản lý nhà thông minh với Home Assistant
Home Assistant là phần mềm nguồn mở được hỗ trợ bởi đội ngũ kỹ sư và lập trình viên trên khắp thế giới Nó tương thích với hầu hết các thiết bị nhà thông minh, mở ra khả năng kết nối và điều khiển không giới hạn giữa các thiết bị trong ngôi nhà Với nền tảng của Home Assistant, người dùng có thể xây dựng một hệ thống nhà thông minh đồng bộ, linh hoạt và dễ tùy chỉnh để tối ưu hóa trải nghiệm sống thông minh.
Dù bạn chọn phiên bản nào của Home Assistant, bước đầu tiên là cài đặt Home Assistant Sau đó hệ thống sẽ quét toàn bộ các thiết bị nhà thông minh có trong căn nhà của bạn, và bạn sẽ tiến hành cấu hình để các thiết bị hoạt động theo nhu cầu, tối ưu hóa tự động hóa và quản lý từ xa.
Xét về sự tiện lợi và nhanh chóng, các nền tảng nhà thông minh được giới thiệu trong các bài viết trước cho thấy ưu thế vượt trội, trong khi Home Assistant lại nổi bật ở khả năng điều khiển trong mạng nội bộ và tính tùy biến mạnh mẽ.
Các tính năng của Home Assitant
Hình 2.2 Giao diện quản lý của Home Assistant thân thiện dễ dùng
Home Assistant đóng vai trò là hub điều khiển nhà thông minh, cho phép tạo ra các ngữ cảnh tự động hóa để thực thi các tác vụ từ đơn giản đến phức tạp Nó đóng vai trò là cầu nối giữa các thiết bị nhà thông minh dùng các công nghệ IoT khác nhau, hỗ trợ tích hợp và điều khiển đồng bộ từ một giao diện quản lý tập trung.
Nền tảng nhà thông minh mã nguồn mở cung cấp giải pháp lưu trữ dữ liệu tại chỗ (On-Premises), giúp đảm bảo an toàn và tránh sử dụng nền tảng đám mây Giải pháp này cho phép kết nối các thiết bị nội bộ hoặc với nền tảng đám mây từ các nhà cung cấp nền tảng nhà thông minh mở hoặc đóng, mang lại sự linh hoạt và kiểm soát cho hệ sinh thái nhà thông minh của người dùng.
Home Assistant cung cấp các thành phần tích hợp ở dạng add-on hoặc plug-in cho các hệ sinh thái IoT khác, dựa trên các nền tảng phần mềm của Google, Apple và Amazon và cả các nhà sản xuất thiết bị như IKEA, Philips, Sonos, Tuya và Xiaomi Nhờ các tích hợp này, người dùng có thể kết nối, đồng bộ và quản lý nhiều thiết bị từ nhiều thương hiệu một cách liền mạch, tối ưu hóa trải nghiệm điều khiển smart home và tăng tính linh hoạt cho hệ thống của mình.
Thay vì phải cài đặt riêng từng ứng dụng của mỗi hãng để thêm và sử dụng thiết bị, Home Assistant tập hợp mọi thứ về một nền tảng duy nhất, giúp quản lý hệ thống nhà thông minh dễ dàng và tạo ra các ngữ cảnh tự động linh hoạt để các thiết bị làm việc liền mạch với nhau.
Hình 2.3 Home Assistant có thể kết nối các thương hiệu khác nhau để hoàn tất tác vụ nhà thông minh cần thiết
Việc điều khiển mọi thứ từ một máy chủ nội bộ mang lại sự an toàn cho ngôi nhà và dữ liệu cá nhân, đồng thời đảm bảo hệ thống vẫn hoạt động trơn tru ngay cả khi đường truyền mạng gặp sự cố Trong khi nhiều nền tảng đặt máy chủ ở nước ngoài gây rủi ro về độ trễ và phụ thuộc mạng, máy chủ nội bộ tăng cường bảo mật và khả năng phục hồi, giúp dịch vụ duy trì hiệu suất ổn định và an toàn cho gia đình.
Người dùng có thể điều khiển nhà thông minh bằng giọng nói thông qua các trợ lý ảo Google Assistant hoặc Amazon Alexa, mang lại trải nghiệm rảnh tay tiện lợi Do tính mở và khả năng tùy biến cao, Home Assistant không phải dễ tiếp cận với tất cả mọi người Tuy nhiên, cộng đồng người dùng của nền tảng này cực kỳ đông đảo và năng động, nên hầu như người dùng có thể làm và học hỏi mọi thứ mà không gặp khó khăn gì.
Để cài đặt Home Assistant Core trên nền tảng hiện có như Windows hoặc macOS, hoặc triển khai Home Assistant OS, người dùng cần có kiến thức về hệ thống và quản trị hệ điều hành Để có thể tùy biến và tận dụng tối đa các tính năng, người dùng cũng nên có kiến thức về lập trình Python.
Giao thức MQTT
MQTT, viết tắt của Message Queueing Telemetry Transport, là một giao thức mạng mở được thiết kế để truyền thông điệp giữa các thiết bị với mức băng thông tối thiểu MQTT được xem là giao thức nhắn tin tiêu chuẩn cho IoT nhờ khả năng truyền tải cực kỳ nhẹ, độ tin cậy cao và duy trì kết nối ổn định ngay cả trên các mạng yếu.
MQTT, một giao thức nhắn tin nhẹ cho IoT, xuất hiện lần đầu vào năm 1999 và từ đó được sử dụng rộng rãi trong nhiều lĩnh vực Phiên bản mới nhất hiện nay là MQTT 5.0, với nhiều cải tiến tối ưu so với các phiên bản trước đó, giúp tăng hiệu suất, mở rộng khả năng và quản lý kết nối tốt hơn.
Kiến trúc MQTT bao gồm 2 phần chính là Broker - có nhiệm vụ xuất bản và Client - có nhiệm vụ đăng ký
Trong kiến trúc MQTT, MQTT Broker đóng vai trò như trung tâm lưu trữ và phân phối thông tin giữa các thiết bị và ứng dụng MQTT Client được chia thành hai nhóm chính là Publisher (xuất bản) và Subscriber (đăng ký); Publisher gửi thông điệp tới Broker, còn Subscriber nhận thông điệp từ Broker dựa trên các chủ đề (topics) Mô hình Publish/Subscribe của MQTT giúp tối ưu hóa kết nối, giảm lưu lượng mạng và tăng tính mở rộng cho hệ thống IoT.
Broker chính là cầu nối giữa Publisher và Subscriber trong mô hình Publish-Subscribe Nó nhận dữ liệu từ Publisher và quản lý các chủ đề (topics) để thông tin được phát đi đúng chủ đề Khi Publisher phát tin trên một topic, Broker sẽ phân phối nội dung này tới tất cả các Client đã đăng ký topic đó, đảm bảo chỉ những Subscriber quan tâm nhận được tin Nhờ cơ chế đăng ký topic, Broker tối ưu hóa băng thông và tăng tính đồng bộ cho hệ thống, đồng thời trung tâm điều phối này chịu trách nhiệm kiểm soát luồng dữ liệu và đảm bảo tin nhắn đến đúng đối tượng mục tiêu.
Mô hình này được thiết kế để giao nhận thông tin diễn ra liên tục ngay cả khi đường truyền không ổn định, bảo đảm tương tác giữa các thiết bị vẫn thông suốt Với khả năng thích nghi và độ tin cậy cao, nó trở thành giao thức lý tưởng cho các ứng dụng M2M (Machine to Machine) Việc tối ưu hóa truyền thông máy đến máy giúp cải thiện hiệu suất, giảm độ trễ và tăng tính khả dụng của các hệ thống tự động hóa.
Hình 2.4 Sơ đồ hoạt động của MQTT
2.3.3 Tính năng, đặc điểm nổi bật
• Dạng truyền thông điệp theo mô hình Pub/Sub cung cấp việc truyền tin phân tán một chiều, tách biệt với phần ứng dụng
• Việc truyền thông điệp là ngay lập tức, không quan tâm đến nội dung được truyền
• Sử dụng TCP/IP là giao thức nền
Trong lĩnh vực truyền dữ liệu, tồn tại ba mức độ tin cậy (QoS: Quality of Service) QoS 0 cho phép broker hoặc client gửi dữ liệu đúng một lần và quá trình gửi được xác nhận chỉ bởi giao thức TCP/IP QoS 1 yêu cầu gửi có ít nhất một lần xác nhận từ phía nhận, tức là có thể có nhiều hơn một xác nhận đã nhận dữ liệu QoS 2 đảm bảo rằng khi gửi dữ liệu, phía nhận chỉ nhận được đúng một lần, và quy trình này phải trải qua bốn bước bắt tay.
• Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho đường truyền
Với những tính năng và đặc điểm nổi bật, MQTT mang lại nhiều lợi ích cho hệ thống SCADA (Supervisory Control And Data Acquisition) khi truy cập dữ liệu IoT Mô hình giao tiếp publish/subscribe của MQTT tối ưu hóa băng thông và giảm tải mạng, giúp các thiết bị và máy chủ SCADA trao đổi dữ liệu nhanh chóng và tin cậy Các đặc tính như QoS đa mức, tin nhắn được lưu trữ (retained) và kích thước gói nhỏ làm tăng khả năng mở rộng và độ robust của hệ thống IoT–SCADA Việc tích hợp MQTT với hạ tầng IoT cho phép giám sát và điều khiển từ xa hiệu quả hơn, đồng thời nâng cao khả năng thu thập dữ liệu và phân tích trong môi trường SCADA.
• Truyền thông tin hiệu quả hơn
• Tăng khả năng mở rộng
• Giảm đáng kể tiêu thụ băng thông mạng
• Rất phù hợp cho điều khiển và do thám
• Tối đa hóa băng thông có sẵn
• Rất an toàn, bảo mật
• Được sử dụng trong các ngành công nghiệp dầu khí, các công ty lớn như Amazon, Facebook,
• Tiết kiệm thời gian phát triển
• Giao thức publish/subscribe thu thập nhiều dữ liệu hơn và tốn ít băng thông hơn so với giao thức cũ
Máy chủ môi giới (Broker) không cung cấp thông báo về trạng thái gửi thông điệp, nên không có cách nào để xác định xem thông điệp đã được gửi đi thành công hay chưa.
• Publisher không hề biết gì về trạng thái của subscribe và ngược lại Vậy làm sao chúng ta có thể đảm bảo mọi thứ đều ổn
• Những kẻ xấu (Malicious Publisher) có thể gửi những thông điệp xấu, và các Subscriber sẽ truy cập vào những thứ mà họ không nên nhận
THIẾT KẾ HỆ THỐNG
Sơ đồ nguyên lý
Hình 3.1 Sơ đồ nguyên lý
Chọn linh kiện
ESP8266 là một vi mạch dạng SoC nổi bật với tính năng thu phát WiFi tích hợp sẵn ESP8266 dùng CPU 32-bit với xung nhịp bình thường 80 MHz, cho khả năng xử lý mạnh mẽ Số lượng ngoại vi của ESP8266 không quá nhiều nhưng đủ dùng cho các ứng dụng nhỏ Để ESP8266 hoạt động, nó cần kết nối với bộ nhớ Flash bên ngoài và đòi hỏi một thiết kế ăng-ten tốt Do đó, module tích hợp ESP8266 được sử dụng phổ biến hơn so với vi mạch ESP8266 đơn lẻ.
Hiện nay hai dòng module phổ biến nhất là ESP-WROOM-XX do ESPRESSIF sản xuất và ESP-XX do AI-Thinker sản xuất Mạch phát triển ESP-8266 tích hợp sẵn module ESP8266 cùng với các chức năng cấp nguồn, giao tiếp máy tính và kết nối ngoại vi, tối ưu cho các dự án IoT và ứng dụng nhúng.
Có thể kể đến các mạch phát triển phổ biến như ESP8266 NodeMCU, ESP8266 Wemos D1, ESP8266 - IoT WiFi Uno
NodeMCU là firmware dựa trên mã nguồn mở LUA được phát triển cho chip wifi ESP8266 Firmware NodeMCU đi kèm với bo ESP8266, tức là bo Dev NodeMCU
Vì NodeMCU là một nền tảng mã nguồn mở, thiết kế phần cứng của nó có thể mở để chỉnh sửa hoặc sửa đổi hoặc xây dựng thêm
Nó hỗ trợ các giao thức truyền thông nối tiếp như UART, SPI, I2C,
Hình 3.3 Sơ Đồ Chân NodeMCU ESP8266
Nhãn GPIO Đầu vào Đầu ra Ghi chú
D0 GPIO16 không gián đoạn không hỗ trợ PWM hoặc I2C
MỨC CAO khi khởi động Sử dụng để đánh thức khi ngủ sâu
D1 GPIO5 OK OK thường được sử dụng như
D2 GPIO4 OK OK thường được sử dụng như
D3 GPIO0 kéo lên OK kết nối với nút FLASH, khởi động không thành công nếu kéo MỨC THẤP
MỨC CAO khi khởi động kết nối với đèn LED trên bo mạch, khởi động không thành công nếu kéo MỨC THẤP
D5 GPIO14 OK OK SPI (SCLK)
D6 GPIO12 OK OK SPI (MISO)
D7 GPIO13 OK OK SPI (MOSI)
SPI (CS) Khởi động không thành công nếu kéo MỨC CAO
RX GPIO3 OK Chân RX MỨC CAO khi khởi động
TX GPIO1 Chân TX OK
MỨC CAO khi khởi động đầu ra gỡ lỗi khi khởi động, khởi động không thành công nếu kéo MỨC THẤP
Rơ le, hay còn gọi là relay, là một công tắc điện từ dùng để đóng mở mạch điện cơ hoặc điện tử Nó có thể điều khiển một dòng điện lớn hơn bằng cách bật hoặc tắt công tắc dựa trên một tín hiệu điện nhỏ từ coil, từ đó chuyển đổi trạng thái mạch để điều khiển thiết bị khác Rơ le hoạt động bằng cách nhận tín hiệu điện và gửi tín hiệu điều khiển đến thiết bị khác thông qua việc đóng và mở tiếp điểm Tiếp điểm của rơ le có thể ở trạng thái Normally Open (NO) hoặc Normally Closed (NC); ở cả hai trường hợp, chúng không được cấp điện cho đến khi có tín hiệu kích hoạt tác động lên các điểm tiếp xúc Trạng thái của rơ le sẽ thay đổi khi có dòng điện được áp đặt lên các điểm tiếp xúc.
Module này được thiết kế để điều khiển duy nhất một thiết bị công suất cao từ NodeMCU ESP8266 Nó tích hợp một rơ-le có khả năng chịu tải lên tới 10A ở 250VAC hoặc 30VDC, cho phép điều khiển thiết bị tải cao một cách an toàn và hiệu quả thông qua nền tảng NodeMCU.
Hình 3.4 Sơ đồ chân Module Relay 5V 1 kênh
Chân IN được sử dụng để điều khiển rơ le và hoạt động theo chế độ tích cực thấp, có nghĩa rơ le sẽ được kích hoạt khi chân IN ở mức LOW và sẽ không kích hoạt khi chân IN ở mức HIGH.
• GND: là chân nối đất
• VCC: là chân cấp nguồn cho module
• COM (Common): Đây là chân nên kết nối với tín hiệu (điện lưới trong nhà) bạn đang định chuyển đổi
NC (Normally Closed) là cấu hình rơ-le được sử dụng khi bạn muốn tắt rơ-le theo mặc định Trong cấu hình này, rơ-le luôn đóng mạch cho đến khi bạn gửi tín hiệu từ Arduino hoặc NodeMCU ESP8266 tới mô-đun rơ-le để mở mạch.
NO (Normally Open) là cấu hình rơ le trong đó tiếp điểm ở trạng thái mở khi không có tín hiệu Rơ le sẽ đóng khi nhận tín hiệu điều khiển từ Arduino hoặc NodeMCU ESP8266 gửi đến mô-đun rơ le, cho phép đóng mạch và cấp nguồn cho tải.
3.2.3 Cảm biến chuyển động PIR HC-SR501
Cảm biến PIR HC-SR501 là cảm biến thân nhiệt và phát hiện chuyển động bằng công nghệ hồng ngoại, nhận diện người, động vật và các vật phát nhiệt, với khả năng điều chỉnh độ nhạy và thời gian kích hoạt bằng biến trở tích hợp; thiết bị gồm cảm biến, thấu kính và board mạch chất lượng cao cho độ nhạy và độ bền tối ưu Phạm vi phát hiện lên tới 360 độ ở dạng hình nón với khoảng cách tối đa 6 mét; nhiệt độ hoạt động từ 0 đến 50°C (32–122°F); điện áp hoạt động DC 3.8–5V; mức tiêu thụ dòng điện tối đa 50 µA; thời gian báo cáo có thể chỉnh được khoảng 30 giây bằng biến trở; kích thước PCB là 32×24 mm.
• Chân VCC : nguồn hoạt động của cảm biến cấpvào từ 4.5V đến 12V
• Chân OUT : Output kết nối với chân I/O của vi điều khiển hoặc relay Khi cho tín hiệu: o 3,3V có vật thể chuyển động qua
23 o 0V không có vật thể qua
• Chân GND : chân đất nối GND
• Chế độ H: Điện áp ra V_out tự động giữ nguyên 3.3V cho đến khi không còn chuyển động
• Chế độ L: Điện áp ra V_out tự động chuyển về 0 khi hết thời gian trễ
Quá trình khởi động của module mất khoảng 1 phút để hoàn tất Trong khoảng thời gian này, module sẽ sinh ra điện áp cao từ 1 đến 3 lần trước khi chuyển sang chế độ chờ, giúp hệ thống ổn định và sẵn sàng cho các tác vụ tiếp theo.
- Điện áp ra 1.5-3.3V, nếu sử dụng I/O 4.5-5.5V bạn nên lắp thêm trans
Để tối ưu hiệu suất của hệ thống quang học, nên cố gắng tránh ánh sáng trực tiếp và các nguồn nhiễu nằm gần bề mặt lăng kính của các module, nhằm giảm tín hiệu nhiễu và tăng độ ổn định cho dữ liệu đầu ra Đồng thời hạn chế sử dụng môi trường nhiều gió để giảm tác động của nhiễu gió lên các thành phần lăng kính và đảm bảo tín hiệu thu được sạch hơn.
CÀI ĐẶT
Home Assistant
Để quản lý smart home hiệu quả, cần một nền tảng quản lý tập trung; Home Assistant là một nền tảng quản lý smart home phổ biến, đa nền tảng và có nhiều phương thức cài đặt khác nhau Bài viết trình bày cách cài đặt phổ biến nhất của Home Assistant, cụ thể trên hệ điều hành Windows 10, giúp người dùng dễ dàng triển khai và tích hợp nhiều thiết bị thông minh Với Home Assistant, người dùng có thể điều khiển và tự động hóa các thiết bị trong nhà từ một giao diện duy nhất, tối ưu hóa trải nghiệm người dùng và nâng cao hiệu quả quản lý ngôi nhà thông minh.
PC đã có sẵn phần mềm tạo máy ảo Oracle VM VirtualBox
Open your web browser and visit the Home Assistant Windows installation page at https://www.home-assistant.io/installation/windows Then select the VirtualBox (.vdi) option to download the virtual machine image After the download completes, extract the downloaded file to access the VM image.
Next, open Oracle VM VirtualBox and create a new virtual machine to run the Home Assistant installer you just downloaded and extracted This step provides an isolated environment for installing Home Assistant, helping ensure compatibility and smooth operation on your system.
Mở cửa sổ VirtualBox lên và chọn “New”
Open the Create Virtual Machine window; to install Home Assistant, set Type to Linux, choose Version as Other Linux (64-bit), and enter a suitable name in the Name field Then click Next to proceed.
Tiếp theo, cửa sổ Memory Size sẽ hiện ra để bạn chọn dung lượng RAM cho máy ảo Lưu ý: chọn dung lượng RAM không vượt quá dung lượng RAM có sẵn trên máy thật Nhấn Next để tiếp tục.
Next, select the Home Assistant installer file you just downloaded to proceed with the installation Check the box labeled "Use an existing virtual hard disk file," then click the folder icon next to it to choose the file The Hard Disk Selector window will appear; if the file you need isn’t listed, click the "Add" button to add the file you downloaded and extracted, then select it and click "Choose" followed by "Create" to create the virtual machine.
28 Để máy ảo có thể được cài đặt, ta cần điều chỉnh một số thông số
Ta chọn “Settings”, chọn “System” và chọn tab “Motherboard”, tích vào ô Enable EFI (special Oses only)
Tiếp tục, ta chọn “Network”, chọn tab “Adapter1”, trong ô “Attached to:”, chọn
“Bridged Adapter” để Home Assistant có địa chỉ IP trong mạng Lan cục bộ Rồi chọn
Tại cửa sổ chính của VM VirtualBox, ta chọn máy ảo có tên ta vừa cài đặt rồi chọn “Start” để bắt đầu chạy máy ảo
30 Máy ảo giả lập Home Assistant bắt đầu chạy và cài đặt
HassIO được cài đặt thành công được cài đặt với địa chỉ IP 192.168.1.26
Tiếp theo, mở trình duyệt và truy cập một trong hai địa chỉ http://homeassistant.local:8123/ hoặc http://X.X.X.X:8123 (X.X.X.X là địa chỉ IP của máy ảo Home Assistant bạn vừa cài đặt) để tạo tài khoản và đăng nhập vào HassIO Trang quản trị HassIO sẽ yêu cầu bạn chờ khoảng 20 phút để hệ thống thiết lập và khởi tạo giao diện người dùng.
Sau khi tạo tài khoản, Home Assistant sẽ yêu cầu bạn chọn vị trí để đặt hệ thống smarthome và đặt tên cho nó Sau khi đã chọn vị trí và đặt tên, bạn nhấn Next để tiếp tục Đây là giao diện bắt đầu của Home Assistant, nơi bạn có thể quản lý thiết bị và tự động hóa trong hệ thống smarthome của mình Như vậy, bạn đã cài đặt xong Home Assistant và có thể bắt đầu khám phá các tính năng, cấu hình và tích hợp cho căn nhà thông minh của mình.
MQTT – Add-on Mosquitto broker
Sau khi cài đặt xong Home Assistant, bước tiếp theo là cài đặt Mosquitto broker để quản lý các thiết bị và thực thể trong hệ thống smart home Để thực hiện, ta chọn “Setting”, tiếp theo chọn tab “Add-ons” để truy cập kho bổ sung và tiến hành cài đặt Mosquitto broker.
Ta click vào “ADD-ON STORE” sau đó gõ vào ô tìm kiếm “mqtt” để tìm kiếmAdd-on “Mosquitto broker” Sau đó click vào Add-on “Mosquitto broker”
35 Rồi chọn “Install” để cài đặt vào Home Assistant
Sau đó ta chọn “Start” để bắt đầu dịch vụ
Tạo user_mqtt để quản lý các bản tin MQTT:
1 Chọn “Settings” sau đó chọn “People”
3 Ở “Name” điền tên user Sau đó tích vào “Allow person to login” để cho phép tài khoản đăng nhập
4 Tạo mật khẩu cho tài khoản
- Sau đó tích vào “Can only login from the local network” để chỉ cho phép tài khoản đăng nhập từ mạng local, tăng tính bảo mật cho HomeAssistant
- Không tích vào “Administator” để hạn chế quyền của user này không cho chạy dưới quyền admin
5 Tích vào “Create” để tạo user
1 Chọn “Settings”, sau đó chọn “Devices & Services”
• Đặt tên cho broker là “core-mosquitto”
• Username và mật khẩu lấy từ tài khoản user_mqtt vừa tạo ở trên Sau đó bấm Next → Submit → Finish
42 Cài đặt Samba Share trên HomeAssistant để cấu hình “configuration.yaml”:
45 Tạo tài khoản và mật khẩu để quản lý file được chia sẻ Cấu hình địa chỉ IP theo địa chỉ
IP của HomeAssistant Sau đó Save lại rồi nhấn Start để khời động Samba Share
To access the system files on your Home Assistant, open File Explorer, navigate to Network, type the Home Assistant IP address, and press Enter; then sign in with the Samba Share username and password you configured to access the system files.
First, locate the configuration.yaml file and open it with Notepad++ to configure your entities Add state topics and set the state for the MQTT entities, ensuring that each entity reports its status accurately This setup establishes the MQTT bindings in the configuration, enabling reliable state updates and responsive control across devices.
Vì file “configuration.yaml” có đuôi yaml, vì vậy các dữ liệu trong file sẽ được thể hiện dưới dạng ngôn ngữ YAML
Trong đồ án, ta sẽ thêm hai thực thể tương ứng với module relay 5V và cảm biến PIR 501 Với ba dòng cấu hình “state_topic:”, “command_topic:” và “availability_topic:”, mỗi thực thể sẽ gắn với ba kênh MQTT của broker để theo dõi trạng thái, gửi lệnh và kiểm soát tính khả dụng Các giá trị “payload” sẽ phản ánh đúng nội dung của từng kênh: payload cho “state_topic” thể hiện trạng thái thực tế của thiết bị, payload cho “command_topic” là lệnh điều khiển, và payload cho “availability_topic” cho biết thiết bị có online hay offline.
“state” tương ứng với giá trị của “command_topic”, các giá trị “payload_available”,
“payload_not_available” tương ứng với giá trị của “availablility_topic”
Sau đó, ta sẽ phải check xem cấu hình đã đúng hay chưa Nếu sai thì phải sử lại cho đúng sau đó bấm “Restart”
Click OK, then wait for the server to restart After Home Assistant reboots, it will detect the newly added devices—the MQTT switch (relay) and the binary_sensor (PIR 501).
Tiếp theo, ta cần kiểm tra MQTT Broker đã hoạt động bằng cách sử dụng công cụ MQTT Explorer Kiểm tra cổng 1833 trên địa chỉ IP của MQTT broker; nếu kết quả trả về là connected, Mosquitto broker đã hoạt động Ô Module IP là địa chỉ IP của máy ảo chạy Home Assistant để hoàn tất cấu hình.
Sơ đồ thuật toán
Hình 4.1 Sơ đồ thuật toán