Kiến thức
Tổng hợp kiến thức chung về lĩnh vực IoT.
-
Series: Lập trình Raspberry Pi – Bài 20: MQTT “chuẩn production” — Last Will, Retained, Session, QoS, Reconnect, Offline queue
Nâng MQTT client trên Raspberry Pi lên chuẩn production: Last Will (LWT) báo offline khi mất điện, retained status để dashboard luôn thấy trạng thái mới nhất, chọn QoS phù hợp cho telemetry/command, reconnect ổn định và offline queue để không mất dữ liệu khi rớt mạng. Có code Python paho-mqtt mẫu và hướng dẫn…
-
Series: Lập trình Raspberry Pi – Bài 19: MQTT client trên Raspberry Pi (publish/subscribe) + gửi telemetry lên broker
Hướng dẫn viết MQTT client trên Raspberry Pi bằng Python paho-mqtt: kết nối broker mqtt.iotlabs.vn, publish telemetry định kỳ và subscribe topic command để nhận lệnh từ xa. Có topic convention iotlabs//telemetry|status|cmd, payload JSON chuẩn và xử lý reconnect để chạy ổn định 24/7.
-
Series: Lập trình Raspberry Pi – Bài 16: Web dashboard mini — hiển thị chart + history (FastAPI + HTML + Chart.js)
Hướng dẫn tạo web dashboard mini trên Raspberry Pi bằng FastAPI + Jinja2 + Chart.js. Đọc dữ liệu telemetry từ SQLite, hiển thị latest record, history và biểu đồ nhiệt độ/độ ẩm. Có endpoint JSON /api/telemetry/history và trang / để xem trực quan ngay trong LAN, phù hợp cho IoT gateway chạy 24/7.
-
Series: Lập trình Raspberry Pi – Bài 17: Chạy FastAPI như service (systemd) + reverse proxy Nginx + HTTPS nội bộ
Hướng dẫn chạy FastAPI trên Raspberry Pi như production: tạo systemd service cho uvicorn auto-start/restart và xem log bằng journalctl. Cấu hình Nginx reverse proxy để truy cập port 80/443, và tùy chọn bật HTTPS nội bộ bằng self-signed certificate để dùng trong LAN an toàn hơn.
-
Series: Lập trình Raspberry Pi – Bài 15: Lưu trữ dữ liệu — SQLite → Postgres (khi nào nâng cấp, code mẫu, migration nhẹ)
Hướng dẫn lưu dữ liệu sensor/telemetry trên Raspberry Pi bằng SQLite: thiết kế bảng, tạo index, insert và query record mới nhất bằng Python. Giải thích khi nào cần nâng cấp lên PostgreSQL và gợi ý cách migrate dữ liệu từ SQLite sang Postgres theo batch/CSV để vận hành lâu dài.
-
Series: Lập trình Raspberry Pi – Bài 13: REST API với FastAPI (health, metrics) – để gateway/app “có endpoint” như production
Hướng dẫn tạo REST API với FastAPI trên Raspberry Pi: endpoint /health và /metrics để kiểm tra dịch vụ, uptime, IP, CPU temp và disk usage. Chạy uvicorn bind 0.0.0.0, test bằng curl, và cấu hình mở port bằng UFW khi cần. Phù hợp cho IoT gateway/app chạy production.
-
Series: Lập trình Raspberry Pi – Bài 4: Networking cơ bản trên Raspberry Pi (Wi-Fi/Ethernet, IP tĩnh, mDNS, port & firewall)
Hướng dẫn networking cơ bản cho Raspberry Pi: kiểm tra Wi-Fi/Ethernet, thiết lập IP tĩnh (DHCP reservation hoặc cấu hình dhcpcd), dùng mDNS .local để SSH không cần nhớ IP, kiểm tra port đang mở và cấu hình UFW firewall an toàn cho gateway/server chạy 24/7.
-
Series: Lập trình Raspberry Pi – Bài 14: Background jobs — Scheduler (APScheduler/Cron) để chạy tác vụ định kỳ
Hướng dẫn chạy background jobs định kỳ trên Raspberry Pi bằng APScheduler: tạo job interval và cron, chạy scheduler runner, log chuẩn và gợi ý kết hợp với FastAPI theo mô hình API + job như production. Có ví dụ heartbeat mỗi 30s và cleanup file cũ theo lịch.
-
Series: Lập trình Raspberry Pi – Bài 12: Project structure Python trên Pi (venv, config, logging) — làm chuẩn để chạy 24/7
Hướng dẫn tạo khung dự án Python chuẩn chạy 24/7 trên Raspberry Pi: cấu trúc thư mục rõ ràng, dùng virtualenv (venv), cấu hình qua .env và YAML, logging console + file có rotate để tránh đầy đĩa. Có code mẫu agent loop sẵn sàng mở rộng cho IoT gateway, sensor logger, MQTT client.
-
Series: Lập trình Raspberry Pi – Bài 11: Camera cơ bản — chụp ảnh theo lịch / theo sự kiện (PIR) + lưu thư mục
Hướng dẫn camera cơ bản trên Raspberry Pi với libcamera: kiểm tra camera, chụp ảnh theo lịch (interval capture) và chụp ảnh theo chuyển động bằng PIR sensor. Có code Python lưu ảnh theo thư mục ngày/giờ, kèm mẹo cooldown chống spam, debug lỗi thường gặp và gợi ý chạy 24/7 bằng systemd.











