Web Dashboard (Streamlit) rất tốt, nhưng cảm giác dùng App Native trên điện thoại vẫn "sướng" hơn nhiều.
Hôm nay, chúng ta sẽ dùng thư viện Flet để viết một ứng dụng điều khiển Jarvis.
1. Flet là gì?
Flet là một "phép thuật" của thế giới Python.
* Bên dưới: Nó chạy bằng engine **Flutter**...
Bạn muốn cảm giác bước về nhà, camera nhìn thấy bạn và tự động nói: "Chào mừng sếp đã về!", nhưng nếu là người lạ thì hú còi?
Hôm nay, chúng ta sẽ sử dụng thư viện `face_recognition` (được mệnh danh là thư viện nhận diện khuôn mặt đơn giản nhất thế giới) để làm điều đó.
1. Nguyên lý hoạt động...
Bạn đã bao giờ muốn bước vào phòng và nói: "Jarvis, bật đèn lên" và căn phòng bừng sáng? Thay vì phụ thuộc vào Google Assistant hay Alexa (với nỗi lo về quyền riêng tư), chúng ta sẽ tự tay xây dựng hệ thống này.
Trong bài viết này, chúng ta sẽ kết nối Python với Home Assistant (HASS) để điều...
Nếu Gemini chỉ trả lời bằng chữ, nó chỉ là Chatbot.
Nếu Gemini biết trả về JSON để kích hoạt code Python, nó là Trợ lý ảo (Agent).
Hôm nay, chúng ta sẽ dạy Gemini cách sử dụng "công cụ" (Tools) để điều khiển hệ thống MQTT mà ta đã xây dựng trước đó.
1. Nguyên lý hoạt động
Bước 1 (Khai báo)...
Mục tiêu hôm nay: Biến Jarvis từ một "cỗ máy if/else" thành một trợ lý biết tư duy và giao tiếp bằng ngôn ngữ tự nhiên.
Chúng ta sẽ sử dụng Google Gemini API (phiên bản Pro) vì nó mạnh mẽ, phản hồi nhanh và quan trọng nhất: Đang miễn phí cho dân lập trình (với giới hạn nhất định).
1. Chuẩn bị...
Hiện tại: Nhiệt độ hiện trên App -> Bạn thấy nóng -> Bạn bấm nút -> Quạt chạy.
Mục tiêu: Nhiệt độ tăng -> Jarvis thấy nóng -> Jarvis tự bấm nút.
Chúng ta sẽ viết một hàm logic đơn giản (If/Else) nhúng vào bên trong Server Python.
1. Nguyên lý Hysteresis (Khoảng trễ)
Một lỗi kinh điển của...
Nhiệm vụ hôm nay:
1. Dạy Python Server cách "nghe" dữ liệu từ MQTT.
2. Vẽ thêm đồng hồ đo Nhiệt độ & Độ ẩm lên ứng dụng Mobile.
3. Tận hưởng cảm giác nhìn điện thoại nhảy số tanh tách.
1. Nâng cấp Backend (server.py)
Hiện tại Server chỉ biết "nói" (Gửi lệnh Bật/Tắt). Giờ nó phải biết "nghe"...
Nhiệm vụ hôm nay:
1. Đọc dữ liệu nhiệt độ/độ ẩm từ cảm biến DHT11.
2. Gửi dữ liệu này lên MQTT Server mỗi 5 giây/lần.
3. Kiểm tra xem Server có nhận được không.
1. Đấu nối phần cứng (Wiring)
Cảm biến DHT11 thường có 3 chân (hoặc 4 chân). Nếu là loại module (có mạch xanh nhỏ đi kèm) thì...
Hôm nay chúng ta sẽ cắt dây rốn (cáp USB) để con chip tự do bay nhảy trên mạng Wifi.
Nhiệm vụ:
1. ESP32 kết nối vào Wifi nhà bạn.
2. ESP32 kết nối vào MQTT Broker (đang chạy trên máy tính của bạn).
3. Khi Server gửi lệnh "ON", ESP32 phải nhận được ngay lập tức.
1. Tìm địa chỉ IP máy chủ MQTT...
Trước khi bắt tay vào lập trình Firmware, chúng ta cần hiểu kiến trúc hệ thống và đi chợ mua sắm.
1. Kiến trúc hệ thống IoT (The Architecture)
Làm sao để cái App trên điện thoại (Season 3) bật được cái đèn ở nhà (Season 4)? Chúng ta cần một giao thức giao tiếp thời gian thực.
Mô hình kết...
Hôm nay chúng ta sẽ vẽ giao diện điều khiển (UI) cho căn nhà. Không cần nói nhiều, nhìn phát biết ngay đèn nào đang bật, quạt nào đang quay.
1. Nâng cấp Backend (API quản lý thiết bị)
Trước khi vẽ nút bấm, Backend phải biết trạng thái của các thiết bị.
Mở file backend/server.py và thêm logic...
Hôm nay chúng ta sẽ làm việc với cả phần mềm và phần cứng.
Phần cứng: 1 mạch ESP32 (khoảng 100k), 1 module Relay, vài dây nối.
Giao thức: MQTT (Message Queuing Telemetry Transport).
1. Bước 1: Dựng MQTT Broker (Bưu điện)
Jarvis và ESP32 không nói chuyện trực tiếp với nhau. Chúng cần một...
Hôm nay chúng ta sẽ biến Jarvis từ một trợ lý "gọi dạ bảo vâng" thành một người quản gia chủ động, biết báo cáo tình hình khẩn cấp.
Giải pháp đơn giản và hiệu quả nhất là tích hợp Telegram Bot. Nó miễn phí, nhanh, và bạn có thể nhận thông báo trên cả điện thoại lẫn máy tính.
1. Chuẩn bị: Tạo...
Chúng ta đã dạy Jarvis đủ thứ trên đời, nhưng nó vẫn chỉ là một phần mềm nằm trong ổ cứng. Hôm nay, chúng ta sẽ cho nó "đôi tay" để tác động vật lý lên ngôi nhà của bạn.
Giải pháp tối ưu nhất hiện nay là kết nối Jarvis với Home Assistant (HASS).
Home Assistant: Quản lý thiết bị (Đèn, quạt...