Chuông cửa thông minh ESP32 thân thiện với quyền riêng tư thông qua tích hợp cục bộ với Home Assistant
(tristam.ie)- Đây là dự án tạo chuông cửa DIY tích hợp cục bộ với Home Assistant bằng ESP32-CAM và ESPHome, dành cho người dùng muốn tránh các chuông cửa thông minh phụ thuộc vào đám mây
- Cấu hình cơ bản gồm Home Assistant, add-on ESPHome, ứng dụng Home Assistant companion app trên di động; khi nút được bấm, hệ thống sẽ gửi ảnh chụp nhanh từ camera tới điện thoại dưới dạng thông báo
- Phần cứng gồm ESP32-CAM, nút nhấn tức thời, vòng 8 RGB LED tùy chọn, cáp Micro USB 10m và vỏ in 3D; có thể dùng đèn LED tích hợp thay cho đèn flash
- Tùy theo biến thể ESP32-CAM, sơ đồ chân và hành vi pulldown có thể khác nhau, nên đầu vào nút GPIO14 cần đấu thêm điện trở pulldown 10kΩ xuống GND
- Vỏ PLA được dùng trong bản in mẫu, nhưng PETG hoặc ABS phù hợp hơn cho mục đích chống nước; do có lỗ camera, cần lắp đặt ở vị trí tránh mưa
Cấu hình chuông cửa cục bộ và những thứ cần chuẩn bị
- Chuông cửa thông minh này hướng tới cấu hình thân thiện với quyền riêng tư và được tích hợp với Home Assistant thông qua ESPHome
- Để bắt đầu, cần có các thành phần sau
- Một instance Home Assistant đang chạy
- Add-on ESPHome
- Ứng dụng Home Assistant companion app trên di động để nhận thông báo khi nút được bấm
- Bản build ví dụ dùng đèn vòng 8 RGB LED, nhưng nếu muốn đơn giản hóa có thể bỏ qua và dùng LED tích hợp của ESP32-CAM làm đèn flash
- Phiên bản ESP32-CAM AI-Thinker có thể không có đầy đủ các điện trở pullup/pulldown như ESP32 thông thường
- Đã thử dùng chức năng
INPUT_PULLDOWNcủa ESPHome trên GPIO14 nhưng không hoạt động - Có nhiều biến thể ESP32-CAM sản xuất tại Trung Quốc, nên có thể có khác biệt tùy từng bo mạch
- Đã thử dùng chức năng
Linh kiện và tệp công khai
- Các linh kiện chính như sau
- ESP32-CAM
- Khuyến nghị dùng bo mạch có nút
flash/download/io0để dễ flash ESPHome lần đầu - Bo mạch không có nút này cần được flash bằng bộ chuyển đổi FTDI
- Khuyến nghị dùng bo mạch có nút
- Nút nhấn tức thời
- Đèn vòng 8 RGB LED
- Cáp Micro USB 10m
- ESP32-CAM
- Các tệp in 3D và tệp cấu hình đã được công khai
- Tệp .stl trên Printables
- thatguy-za/esp32-cam-doorbell: cấu hình Home Assistant và ESPHome
In vỏ và lắp ráp
- Vỏ được in thành ba bộ phận
- Thân chính
- Tấm cố định ESP32-CAM
- Tấm lưng kiêm ngàm gắn tường
- Vỏ trước và vỏ sau cần được in với support
- Bản in ví dụ dùng PLA, nhưng với mục đích chống nước, khuyến nghị dùng filament PETG hoặc ABS với infill 20–30%
- Sau khi in, thêm hai insert ren M2.5
- Lắp vào nắp trước để có thể siết giá đỡ cố định ESP32-CAM
- Lắp vào phần dưới của tấm lưng để có thể cố định face plate bằng vít M2.5 dài 10mm
Flash ESP32-CAM bằng ESPHome
- Để khởi động ESP32-CAM vào chế độ flash, giữ nút
flash/download/io0trong khi kết nối với máy tính bằng cáp Micro USB - Trong Home Assistant, mở add-on ESPHome và tạo thiết bị mới
- Đường dẫn là
Settings -> Add-ons -> ESPHome -> Open Web UI - Có thể đặt tên thiết bị mới là
Doorbell, chẳng hạn - Chọn loại thiết bị là ESP32 và tích chọn
use recommended settings
- Đường dẫn là
- Dán mã cấu hình từ kho GitHub vào bên dưới
captive_portal:trong cấu hình YAML được tạo - Nhấn
SavevàInstall, rồi chọnPlug into this computer - Flash firmware trong trình duyệt thông qua ESPHome Web
- Google Chrome được dùng như trình duyệt ổn định nhất để flash firmware ESP32-CAM
- Sau khi biên dịch firmware, có thể nhấn
Download Project; quá trình này có thể mất vài phút
- Khi firmware mới đã được flash, Home Assistant sẽ phát hiện thiết bị mới và có thể thêm các entity mong muốn vào dashboard
Tự động hóa thông báo nút bấm
- Cấu hình tự động hóa để khi nút chuông cửa được bấm, hệ thống chụp ảnh nhanh từ camera và gửi tới điện thoại
- Tạo tự động hóa mới trong Home Assistant
- Đường dẫn là
Settings -> Automations -> + Create Automation - Tạo tự động hóa mới từ đầu, rồi chọn
Edit in YAMLtrong menu góc trên bên phải
- Đường dẫn là
- Dán YAML tự động hóa từ kho GitHub, sau đó chỉnh tên entity của thiết bị như điện thoại di động cho phù hợp với môi trường của bạn
- Sau khi lưu và khởi động lại Home Assistant, tự động hóa mới sẽ được kích hoạt
Ràng buộc về đấu dây và lắp đặt
- Bo mạch ESP32-CAM có nhiều biến thể, nên cần kiểm tra sơ đồ chân của bo mạch thực tế
- Việc đấu dây được thực hiện bằng cách hàn vào mặt sau PCB phía dưới, nơi có cổng Micro USB
- Thêm điện trở pulldown 10kΩ giữa GPIO14 và GND
- Nếu không có điện trở này, đã quan sát thấy GPIO14 thường bị trôi ở trạng thái high
- Khuyến nghị bọc điện trở bằng ống co nhiệt
- Do có lỗ camera tích hợp, cấu trúc không hoàn toàn chống nước và cần lắp ở vị trí được che mưa
- Nguồn được cấp qua cáp Micro USB 10m có trong danh sách linh kiện
1 bình luận
Ý kiến trên Hacker News
Hay đấy. Tôi cũng thích phần đèn
Cũng có thể gắn một công tắc reed (kiểu cảm biến cửa mở/đóng thông thường) gần cuộn dây nam châm làm chuông của chiếc chuông cửa “ngu” reo, rồi gửi thông tin về Home Assistant
Tôi nối một công tắc reed giá $0.50 vào chuông cửa hiện có, rồi đưa nó ra cổng I/O số của ESP, lấy nguồn từ cùng nguồn với cuộn dây chuông cửa. Khi chuông cửa được nhấn, nó gửi ảnh chụp nhanh qua email từ camera cửa ra vào chỉ dùng cục bộ, và phát bản ghi tiếng chuông cửa trên dàn stereo ở tầng trên. Ban đầu tôi định giám sát điện áp cuộn dây bằng ngõ vào analog nhưng quá không ổn định; cách đơn giản hơn là dùng công tắc reed thì việc phát hiện dòng điện rất ổn định
cùng nguồn với cuộn dây chuông cửahay thật. Tôi tò mò trong nhà còn những nguồn điện áp lưng chừng nào có thể tận dụng được nữa. Như bộ điều khiển HVAC, đường dây điện thoại analog chẳng hạnĐường dây điện thoại POTS (Plain Old Telephone Service) phải có khoảng 48V DC khi tất cả điện thoại đều ở trạng thái on-hook. Khi một điện thoại trên cùng đường dây chuyển sang off-hook, điện áp giảm xuống khoảng 3–9V. Điện thoại off-hook thường tiêu thụ khoảng 20mA DC để hoạt động, và điện trở DC khoảng 180Ω. Phần sụt áp còn lại xảy ra trên đường dây đồng và mạch của công ty điện thoại; thường có điện trở nối tiếp 200–400Ω để chống ngắn mạch và tách mạch âm thanh
https://www.jkaudio.com/article_03.htm
Tôi từng dùng tương tự bằng cách gắn lên vỏ phía trên của relay, để phát hiện cuộn dây đã được cấp điện hay chưa mà không phải chọc trực tiếp vào mạch điều khiển hay mạch tải
Thứ tôi muốn ở các thiết bị IoT kiểu này chỉ là không phụ thuộc đám mây và dùng PoE. Tôi thà kéo cả tỷ sợi dây còn hơn phải đối phó với những viên pin ngu ngốc cứ hết liên tục. Giá pin cũng ngày càng quá đắt
Không cách ly: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-sou...
Có cách ly: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open...
Thay pin mỗi năm một lần là việc nhỏ, nhưng khi có vài chục thiết bị thì nó tích lại rất nhanh và lặp lại định kỳ, nên cũng chẳng hơn tăng tuyến tính là bao
Khi có nhà riêng, tôi định chuyển sang KNX
Hơi lạc đề một chút, nhưng vợ tôi bị ADD khá nặng nên thường xuyên làm thất lạc đồ. Tile chỉ tìm được đồ trong một khoảng cách nhất định và có vẻ hay hỏng
Dù khả năng thấp, tôi vẫn tò mò liệu đã có ai từng xây dựng hệ thống định vị trong nhà dùng beacon Bluetooth Low Energy để tìm đồ vật trong không gian 3D với sai số vài cm chưa
Nói gần với chủ đề hơn thì ESP32 khá tuyệt vời. Chỉ là với MicroPython hay CircuitPython tôi không giữ kết nối Wi-Fi ổn định được, nhưng phạm vi những gì có thể làm được thật đáng kinh ngạc. Bo mạch của tôi khá cũ, nên có thể nếu mua bo mới thì sẽ khác
MicroPythonhayCircuitPythonthì không biết bạn kỳ vọng gì. Với hệ thống nhúng cần độ tin cậy thì gần như nên cấm dùngThật thú vị là ở một số nơi trên thế giới, sự tồn tại của chuông cửa lại quan trọng đến mức người ta còn thấy cần phải làm cho nó “thông minh”. Thành công của các sản phẩm chuông cửa thông minh cho thấy rõ nhu cầu đó
Tôi không có chuông cửa. Nếu khách không biết cách liên lạc với tôi hoặc người khác trong nhà, thì rất có thể ngay từ đầu họ cũng chẳng có nhiều lý do để đến đó
Không chỉ mình tôi như vậy. Theo một khảo sát rất thiếu khoa học khi đi dạo tuần trước, hầu hết con phố của chúng tôi cũng tương tự, và có lẽ phần lớn thành phố của tôi cũng vậy
Chuông cửa có cảm giác lỗi thời. Trên con phố của chúng tôi gần như chẳng ai lắp
Dựa trên các bài đánh giá tôi đã xem, camera chuông cửa Reolink có vẻ là lựa chọn thương mại duy nhất đáp ứng yêu cầu của tác giả. Nó hoạt động cục bộ và có thể tích hợp với Home Assistant
Tuy nhiên, phần intercom cần một ứng dụng riêng. Giải pháp tự làm của tác giả dường như không cung cấp liên lạc âm thanh, và ít nhất chỉ với giao thức camera thì cũng không thấy có cách dùng âm thanh hai chiều trực tiếp trong Home Assistant
ESP32 đúng là một hố thỏ rất sâu. Đã có rất nhiều dự án dùng hoặc đang phát triển với ESP32, giờ lại có thêm một thứ nữa để lưu ý
Dự án rất hay. Camera ESP32 có thể cho chất lượng hình ảnh khá tệ. Sẽ hữu ích nếu blog có ảnh độ phân giải đầy đủ chụp từ chuông cửa
Dự án tuyệt vời. Thật vui khi thấy nhiều loại chuông cửa ESP32 khác nhau do cộng đồng maker tạo ra
Nếu có video hoặc ảnh ví dụ thì tốt. Trước đây tôi từng dùng ESP32 Cam, bản thân nó khá ấn tượng, nhưng chất lượng không phải mức tôi mong muốn. Dĩ nhiên, mục đích dùng chuông cửa thông minh của tôi thiên về an ninh hơn là chỉ để biết “ai đang ở đó”
Hiện tôi đang dùng một chuông cửa PoE khá đắt mua ở tình trạng
AS-ISđể tiết kiệm chi phí. Đó là sản phẩm của Axis CommunicationsTôi rất thích khả năng nhận sự kiện ONVIF. Nếu có thể tiêu thụ sự kiện thì về cơ bản bạn có thể làm bất cứ điều gì mình muốn, nên các sản phẩm kiểu này rất linh hoạt. Ví dụ cũng có cách tạo sự kiện tùy chỉnh như khi ai đó dùng tay che ống kính camera
Home Assistant hỗ trợ ONVIF rất tốt. Tôi muốn tạo một kiểu wrapper quanh các script (như boolean cửa mở/đóng) để lấy được sự kiện ONVIF native
Một bình luận trên trang này đã chỉ ra vấn đề hiệu năng của ESP32. Tôi chưa từng làm việc với thiết bị IoT hay các board kiểu này, nhưng vì chúng tương đối rẻ nên tôi muốn thử vọc, và khi tìm hiểu thì biết ESP32 được sản xuất trên tiến trình 40nm
Tôi tò mò liệu có phiên bản mới hơn được sản xuất trên tiến trình tiên tiến hơn, cho hiệu năng cao hơn với mức ngân sách điện năng tương tự hay không
Cũng có các họ SoC đem lại đánh đổi tốt hơn, nhưng không nhiều thứ thân thiện với người làm dự án sở thích như ESP32. Có thể là Nordic, hoặc chuyển sang các máy tính đơn bo nhỏ như Pi Zero
Dù vậy ESP32 vẫn mạnh hơn rất nhiều so với nhu cầu của hầu hết thiết bị tự động hóa gia đình. Nó chỉ bắt đầu chạm giới hạn ở một vài tác vụ nặng hơn như streaming video hoặc machine learning. Ngay cả khi đó, nếu làm khéo thì vẫn có thể làm được khá nhiều việc