CHƯƠNG 1: LÝ THUYẾT TỔNG QUAN 1. Khái niệm về nhà thông minh Nhà thông minh (tiếng Anh là “Smart Home”) hoặc hệ thống nhà thông minh là một ngôi nhà/căn hộ được trang bị hệ thống tự động tiên tiến dành cho điều khiển đèn chiếu sáng, nhiệt độ, truyền thông đa phương tiện, an ninh, rèm cửa, cửa và nhiều tính năng khác nhằm mục đích làm cho cuộc sống ngày càng tiện nghi, an toàn và góp phần sử dụng hợp lý các nguồn tài nguyên. Nhà thông minh sử dụng các thiết bị kết nối Internet để có thể quản lý và giám sát các thiết bị và hệ thống từ xa như ánh sáng và nhiệt độ.1 Ảnh minh họa 8 Công nghệ nhà thông minh Smart Home, còn được biết đến như Home Automation (tự động hóa ngôi nhà), cung cấp cho chủ nhà sự an toàn, thoải mái, tiện lợi và tiết kiệm năng lượng bằng cách cho phép họ kiểm soát các thiết bị thông minh bởi một ứng dụng smart home trên điện thoại smartphone hoặc các thiết bị kết nối mạng khác. Một phần của mạng lưới vạn vật kết nối (Internet of Things - IoT), các hệ thống và thiết bị nhà thông minh thường hoạt động cùng nhau, 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à.
CHƯƠNG 2: NỀN TẢNG GIAO TIẾP 2. Home Assistant Home Assistant còn được gọi là “HA” hay “HASS” là một nền tảng quản lý nhà thông minh được lập trình bằng ngôn 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 hay qua ứng dụng trên smartphone. Home Assistant có 2 phiên bản.
Phiên bản “Home Assistant” hay "Home Assistant Core" là thành phần cốt lõi nhất, có thể cài đặt lê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” kết hợp giữa “Home Assistant Core” và các công cụ khác. Phiên bản này có thể cài đặt lên một chiếc máy tính như Raspberry Pi, máy ảo. Hai phiên bản này khi cài lên thiết bị nào đó sẽ biến thiết bị đó thành một hub tổng giúp kết nối và điều khiển thiết bị nhà thông minh, tương tự như Gateway trên nền tảng Xiaomi, Aqara, Hub tổng trên nền tảng Samsung SmartThings.1 Một giao diện quản lý nhà thông minh với Home Assistant Là phần mềm nguồn mở với sự hỗ trợ của đội ngũ kỹ sư, lập trình viên trên khắp thế giới, Home Assistant tương thích với hầu hết mọi thiết bị nhà thông minh, mở ra khả năng làm việc không giới hạn của các thiết bị trong ngôi nhà.
Dù là sử dụng phiên bản nào, người dùng cũng phải cài đặt Home Assistant trước, sau đó hệ thống sẽ quét qua các thiết bị nhà thông minh hiện có, người dùng sẽ tiến hành cấu hình để các thiết bị làm việc theo nhu cầu. Như vậy, nếu xét về sự tiện lợi, nhanh chóng, các nền tảng nhà thông minh đã giới thiệu trong các bài viết trước tỏ ra vượt trội, trong khi đó, Home Assistant lại mạnh ở khả năng điều khiển trong mạng nội bộ và tùy biến mạnh mẽ. Các tính năng của Home Assistant 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ò như hub tổng điều khiển nhà thông minh, giúp tạo ra các ngữ cảnh để thực hiện các tác vụ nhà thông minh từ đơn giản đến phức tạp, đóng vai trò là cầu nối cho các thiết bị nhà thông minh sử dụng các công nghệ IoT khác nhau. Nền tảng nhà thông minh mã nguồn mở này 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, không dùng nền tảng đám mây (Cloud), giú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.
Home Assistant cung cấp các thành phần có khả năng tích hợp (ở dạng add-on hoặc plugin) các hệ sinh thái IoT khác dự trên phần mềm như Google, Apple, Amazon, hay sản xuất phần cứng như IKEA, Philips, Sonos, Tuya, Xiaomi… 11 Thay vì mỗi hãng phải cài mỗi app khác nhau để có thể thêm và sử dụng, Home Assistant giúp gom mọi thứ về một mối, vừa dễ dàng quản lý, vừa dễ dàng trong việc tạo ra các ngữ cảnh linh hoạt để các thiết bị làm việc liền mạch với nhau.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ộ vừa đảm bảo an toàn cho ngôi nhà, dữ liệu cá nhân, còn đảm bảo mỗi khi đường truyền mạng gặp vấn đề – đa phần các nền tảng khác đều đặt máy chủ ở nước ngoài – thì mọi thứ vẫn làm việc trôi chảy. Người dùng có thể sử dụng trợ lý ảo kỹ thuật số Google Assistant hay Amazon Alexa để điều khiển nhà thông minh qua giọng nói rảnh tay. Vì tính mở và tùy biến cao, Home Assistant không dễ cho tất cả mọi người. Tuy nhiên, cộng đồng người dùng 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, học hỏi mọi thứ mà không gặp khó khăn gì.
12 Người dùng cũng cần có kiến thức về hệ thống để cài đặt Home Assistant Core nền tảng lên hệ điều hành hiện có (Windows, Mac…) hoặc cài đặt Home Assistant OS. Để có thể tùy biến, người dùng cần có kiến thức về lập trình Python. Giao thức MQTT 2. MQTT là gì? MQTT - viết tắt của Message Queueing Telemetry Transport, là một giao thức mạng mở, dùng để truyền thông điệp giữa các thiết bị.
MQTT được xem là giao thức nhắn tin tiêu chuẩn cho IoT bởi nó hoạt động truyền tải cực kỳ nhẹ, có độ tin cậy cao và kết nối với mức băng thông tối thiểu. Xuất hiện đầu tiên vào năm 1999, cho đến nay, MQTT đã được sử dụng rộng rãi trong nhiều lĩnh vực. Được biết, phiên bản mới nhất của MQTT là MQTT 5.0 với nhiều thay đổi tối ưu hơn so với các phiên bản trước đó. 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ý.
Hoạt động Trong kiến trúc MQTT, MQTT Broker có vai trò như một trung tâm lưu trữ thông tin, trong khi đó MQTT Client sẽ bao gồm 2 nhóm là Publisher (xuất bản) và Subscriber (đăng ký). Broker chính là cầu nối giữa các Publisher và Subscriber, Broker nhận thông tin từ Publisher, sau đó những Client nào có đăng ký topic (chủ đề) thông tin đó trên Broker sẽ nhận được thông tin. Mô hình này được thiết kế để việc giao nhận thông tin diễn ra ngay cả khi đường truyền không ổn định, và là giao thức lý tưởng cho các ứng dụng M2M (Machine to Machine - Máy đến máy).4 Sơ đồ hoạt động của MQTT 2. 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. • Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service) o QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP. o QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu.
o QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này phải trải qua 4 bước bắt tay. 14 • 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. Ưu điểm Với những tính năng, đặc điểm nổi bật trên, MQTT mang lại nhiều lợi ích nhất là trong hệ thống SCADA (Supervisory Control And Data Acquisition) khi truy cập dữ liệu IoT. • 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.
• Chi phí thấp. • 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ũ. Nhược điểm • Máy chủ môi giới (Broker) không cần thông báo về trạng thái gửi thông điệp. Do đó không có cách nào để phát hiện xem thông điệp đã gửi đú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. 15 • 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. 16 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 3.2 Chọn linh kiện 3.1 Module ESP8266 Hình 3.2 Module ESP8266 17 ESP8266 là một vi mạch dạng SoC, nổi bật với tính năng thu phát wifi được tích hợp sẵn bên trong vi mạch. ESP8266 dùng CPU 32-bit với xung nhịp bình thường 80Mhz cung cấp khả năng xử lý mạnh mẽ.
Số lượng ngoại vi của ESP8266 không quá nhiều, nhưng cũng đủ dùng cho các ứng dụng nhỏ. Để ESP8266 hoạt động phải cần kết nối chip với bộ nhớ Flash bên ngoài và cần một thiết kế antena tốt. Do đó, module tích hợp ESP8266 được sử dụng phổ biến hơn vi mạch ESP8266 đơn lẻ. Các module phổ biến hiện nay là module có tên dạng ESP-WROOM-XX của nhà sản xuất ESPRESSIF và module có tên ESP-XX của nhà sản xuất AI-Thinker.
Mạch phát triển ESP-8266 được tích hợp 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. 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. * ESP8266 NodeMCU 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, .3 Sơ Đồ Chân NodeMCU ESP8266 19 Nhãn GPIO Đầu vào Đầu ra Ghi chú không hỗ trợ không gián MỨC CAO khi khởi động.