Thiết Kế Hệ Thống Điều Khiển Và Giám Sát Nhà Thông Minh Sử Dụng LVGL Và Firebase

MỤC LỤC

CÁC TỪ VIẾT TẮT

CƠ SỞ LÝ THUYẾT

  • Tổng quan về giao diện đồ họa nhúng LVGL 1. Giới thiệu thư viện LVGL
    • Tổng quan về Google Firebase

      Đặc biệt, LVGL hỗ trợ tùy chỉnh linh hoạt, cho phép người dùng điều chỉnh kiểu dáng, màu sắc, kích thước và hành vi của các thành phần GUI theo nhu cầu cụ thể của ứng dụng. Với một cộng đồng đông đảo và năng động, LVGL cung cấp tài liệu phong phú, ví dụ và hỗ trợ từ cộng đồng, giúp người dùng giải quyết các vấn đề và thắc mắc khi sử dụng thư viện. Thay vì phải gọi các dòng lệnh API bên trong LVGL, SquareLine Studio cho phép người dùng có thể kéo thả các phần tử đồ họa trực tiếp vào màn hình thiết kế, thay đổi màu sắc, vị trí, trạng thái và sự kiện của các thành phần GUI một cách trực quan.

      Kết nối WiFi đang trở thành lựa chọn hàng đầu cho nhiều ứng dụng do sự phổ biến và độ hiệu quả của nó, cũng như khả năng kết nối mạng LAN trong phạm vi giới hạn. Sau khi nhận gói dữ liệu sẽ chuyển từ nối tiếp sang song song, loại bỏ bit bắt đầu, bit kiểm tra chẵn lẻ và bit kết thúc, rồi truyền dữ liệu qua bus dữ liệu, chuẩn bị cho lần nhận tiếp theo. Nền tảng này bao gồm nhiều dịch vụ quan trọng như Cơ sở dữ liệu, Xác thực người dùng, Thông báo đẩy, Phân tích ứng dụng, Test Lab, Lưu trữ và Đám mây chức năng.

      ESP32-WROOM-32 là một mô-đun IoT đa chức năng tích hợp Wi-Fi và Bluetooth, phổ biến trong các ứng dụng nhúng như cảm biến, kiểm soát và kết nối Internet của các thiết bị nhúng. Thường được kết hợp với các vi điều khiển như Arduino, ESP32 và Raspberry Pi để tạo ra các ứng dụng trực quan như đồng hồ, điều khiển thiết bị và giao diện người dùng đơn giản.

      Hình 2.2 là một ví dụ về ứng dụng của giao diện người dùng .
      Hình 2.2 là một ví dụ về ứng dụng của giao diện người dùng .

      THIẾT KẾ HỆ THỐNG

      • Thiết kế phần cứng 1. Sơ đồ khối hệ thống

         Khối xử lý trung tõm: Với cốt lừi chớnh là ESP32-S3-Wroom-1, thực hiện nhận các dữ liệu được gửi về từ các bộ khác, thời gian thực, trạng thái thiết bị khi người dùng tương tác với màn hình.  Tác vụ liên quan đến giao diện màn hình: Bao gồm các hoạt động chính của LVGL như xử lý chuyển cảnh, phản ứng với tín hiệu cảm ứng, hiển thị dữ liệu nhận được và cập nhật giao diện dựa trên các tín hiệu trạng thái điều khiển. Sau khi qua ngày mới, tác vụ sẽ tiến hành kết nối tới Web Open Weather Map để tiến hành lấy dữ liệu dự báo thời tiết tại khu vực trong 3 ngày sau đó lưu vào các biến để dùng cho các tác vụ khác.

        Xử lý tính toán xem dữ liệu nhận về có phải nguy hiểm hay không, ví dụ nhiệt độ cao hay pháy hiện cháy, phát hiện khói,… nếu có sẽ tiến hành cập nhật biến cảnh báo và hiển thị. Người dùng sẽ tiến hành cài đặt thời gian tự tắt cho thiết bị trên màn hình cảm ứng, lúc này vi điều khiển sẽ dự trên biến thời gian kết hợp cùng với thời gian thực để tính toán ra khoảng thời gian tắt thiết bị. Khi có sự tương tác của người dùng bật tắt thiết bị trên màn hình hoặc tới thời gian bật tắt thiết bị từ chế độ Timer hay Period sẽ gửi các lệnh điều khiển tới các bộ để thực thi.

        Tác vụ tiến hành đọc các dữ liệu được lưu trữ tạm thời gồm các thông số thời gian, thông số môi trường, thông số dự báo thời tiết, sau đó hiển thị lên màn hình. Khi người dùng tương tác với màn hình, hệ thống sẽ lưu trữ các dữ liệu nhận được từ màn hình như các thông số thời gian dùng cho tác vụ cài đặt lại thời gian, thông số thời gian bật/tắt thiết bị dùng cho các chế độ Timer hay Period, thông số mật khẩu đăng nhập hệ thống.  Dữ liệu cảnh báo: Là các dữ liệu thông báo về các sự kiện như nhiệt độ cao, hay báo cháy, báo khói… Tại đây bộ cảm biến sẽ nhận biết, cập nhật và lưu trữ lại các biến cảnh báo để dùng cho tác vụ gửi các cảnh báo về điện thoại.

         Gửi dữ liệu: Các dữ liệu được bộ cảm biến gửi đi là các thông số môi trường, gửi đến bộ trung tâm để hiển thị và bộ điều khiển để đẩy lên Google Firebase.  Tác vụ liên quan đến việc điều khiển thiết bị: Bao gồm tác vụ như bật/tắt thiết bị hay phát âm thanh cảnh báo qua loa khi có sự kiện như nhiệt độ cao, báo cháy, báo khói,….  Tác vụ liên quan đến Google Firebase: Bao gồm các hoạt động truyền các dữ liệu thu thập được như thông số môi trường cùng trạng thái của thiết bị lên Google Firebase và nhận lệnh điều khiển từ Web thông qua Google Firebase.

        Tác vụ liên quan đến việc lưu trữ dữ liệu lên Google Firebase sẽ được thực thi trên Core0, trong khi các tác vụ chức năng khác sẽ được thực thi trên Core1. Sau khi nhận tín hiệu điều khiển từ các bộ khác hoặc từ Web gửi về, bộ điều khiển sẽ tiến hành nhận biết và bật/tắt thiết bị hoặc phát các âm thanh cảnh báo tương ứng.  Nhận lệnh điều khiển: Khi người dùng tương tác bật/tắt các thiết bị từ Web thông qua Google Firebase, bộ điều khiển sẽ nhận các lệnh điều khiển và sau đó gửi qua bộ trung tâm để xử lý.

        Hình 3.1: Sơ đồ phác thảo của toàn hệ thống
        Hình 3.1: Sơ đồ phác thảo của toàn hệ thống

        THI CÔNG HỆ THỐNG VÀ KẾT QUẢ

        • Thi công hệ thống

          Tại đây người dùng sẽ tiến hành nhập mật khẩu hiện tại (Current Password) và mật khẩu mới (New Password), sau đó nhấn nút Save and Change để lưu và trở về Menu.  Tại giao diện Living Room (Hình 9): Các thông số môi trường của phòng khách được gửi về từ bộ cảm biến sẽ hiển thị tại đây cùng với 2 Switch bật tắt thiết bị tới bộ điều khiển và 1 Switch cho chế độ tự động. Khi người dùng tiến hành gạt các Switch Device 1 (bật tắt đèn) hoặc Switch Device 2 (bật tắt quạt) thì bộ trung tâm sẽ gửi đi các lệnh yêu cầu bật tắt thiết bị tương ứng tới bộ điều khiển để tiến hành bật/tắt thiết bị.

          Cụ thể, khi chế độ tự động được bật, tới 17h30 chiều hệ thống sẽ kiểm tra xem Switch Device 1 (Đèn) có được bật hay không, nếu không sẽ tiến hành tự động bật đèn, tới 22h đêm hệ thống sẽ kiểm tra xem đèn có đang bật hay không, nếu đang bật sẽ tự động tắt đèn, trong lúc bật chế độ Auto người dùng vẫn có thể bật hay tắt đèn bằng cách gạt các Switch tùy ý. Khi người dùng vuốt màn hình sang trái sẽ chuyển sang giao diện Kitchen Room (Hình 10) và khi người dùng vuốt màn hình sang phải sẽ chuyển sang giao diện Garden (Hình 11). Khi người dùng vuốt màng hình sang trái sẽ chuyển sang giao diện Garden (Hình 11) và khi người dùng vuốt màn hình sang phải sẽ chuyển sang giao diện Living Room (Hình 9).

           Tại giao diện Garden (Hình 11): Các thông số môi trường ở ngoài vườn được bộ quản lý vườn gửi về sẽ hiển thị tại đây cùng với 1 Switch bật tắt bơm nước và 1 Switch Timer.  Khi Switch Water pump bật – Switch Timer tắt: Ta Set Hour, Minute bên Pannel và nhấn Enter thì hệ thống sẽ tính toán sau khoảng thời gian bao nhiêu kể từ lúc bật bơm nước và sau đó khi tới thời gian đó sẽ tự động tắt bơm.  Khi Switch Timer bật: Đầu tiên Switch Water pump tắt, ta tiến hành Set Hour và Minute sau đó nhấn Enter lần 1 thì hệ thống sẽ lưu giờ tự động bật bơm nước (VD: 07:04 có nghĩa là 7 giờ 4 phút sáng bơm bật).

          Sau đó gạt Switch Water pump bật, ta tiến hành Set Hour và Minute sau đó nhấn Enter lần 2 thì hệ thống sẽ lưu giờ tự động tắt bơm (VD: 08:00 có nghĩa là 8 giờ sáng bơm tắt) và thoát khỏi chế độ Set thời gian cho chế độ Timer.  Nếu như sau 2 phút mà không còn nhận được tín hiệu gửi về từ bộ thì màn hình sẽ hiển thị Disconnect cho từng bộ mất kết nối tại giao diện Home như Hình 12. Kết quả gửi cảnh báo và ảnh chụp từ Camera về tin nhắn trên điện thoại Các tin nhắn cảnh báo hay ảnh chụp từ Camera được gửi về tin nhắn Telegram trên điện thoại được thể hiện tại hình 4.10.

          Tốc độ khung hình ổn định không có dấu hiệu tụt FPS đảm bảo hiệu suất ổn định khi thực hiện các chức năng như bật/tắt công tắt trên màn hình, nhấn nút và điều chỉnh thời gian qua thanh trượt hoặc menu lựa chọn.

          Hình 4.2: Bộ trung tâm sau khi đóng hộp
          Hình 4.2: Bộ trung tâm sau khi đóng hộp