1 điểm bởi GN⁺ 2 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Tác giả đã chế tạo một PCB dựa trên ATtiny85 để tự bấm nút ba lần khi có điện, nhằm giảm đèn ngủ vốn luôn bật ở mức sáng 3 xuống mức 1
  • Vì nguồn hạ áp bằng tụ chỉ cấp được vài mA, thay vì ESP8266 hay Raspberry Pi Zero, tác giả chọn ATtiny85, tiêu thụ dưới 1mA ở 1MHz và giảm xuống mức μA khi ở chế độ tiết kiệm điện
  • Mạch được xây dựng quanh HT7333 để hạ 8,3V xuống 3,3V và 2N3904 để chập nút xuống mass, rồi được thiết kế và sản xuất bằng EasyEDA và JLCPCB
  • Chip được lập trình bằng GPIO của Raspberry Pi 3 và avrdude; khi Home Assistant bật đèn ngủ, mạch đợi một lúc rồi bấm nút ba lần để tự chuyển sang độ sáng thấp nhất
  • File thiết kế và mã C được công bố theo giấy phép MIT, nhưng chỉ áp dụng cho thiết bị có điện áp bên trong 4~12V và đầu vào nút được chập xuống mass; cần đặc biệt cẩn trọng với thiết bị điện lưới thương mại không có biến áp

Ba lần bấm nút lặp lại mỗi ngày

  • Home Assistant được cấu hình để bật đèn ngủ qua ổ cắm tường Zigbee khi điện thoại chuyển sang chế độ tập trung khi ngủ
  • Đèn ngủ giá rẻ có công tắc để chọn có tự động bật hay không và một nút để đổi mức sáng, nhưng mỗi khi cấp điện nó luôn bắt đầu ở mức sáng 3
    • Bấm nút một lần lên mức 4, bấm lần nữa lên mức 5, và đến lần thứ ba thì về mức 1
    • Để có được độ sáng thấp nhất mong muốn, mỗi đêm đều phải bấm nút ba lần
  • Tác giả đã mở bên trong ra xem nhưng không thấy tên chip và cũng không có biến trở để điều chỉnh
  • Cách tìm được trên mạng là giữ nút khoảng 10 giây để đổi độ sáng mặc định trong EEPROM, nhưng không hoạt động với sản phẩm này

Vi điều khiển phù hợp với nguồn điện hạn chế

  • Một vi điều khiển tự tạo đầu vào nút là giải pháp phù hợp nhất
  • Đèn ngủ dùng tụ điện thay cho biến áp để hạ điện áp lưới, nên phần nguồn chỉ có thể cấp vài mA
    • ESP8266 trên Wemos D1 Mini cần vài trăm mA khi khởi động và bật chức năng không dây
    • Raspberry Pi Zero là một máy tính Linux hoàn chỉnh cần khởi động hệ điều hành
    • Cả hai thiết bị đều cần nguồn riêng hoặc tụ lưu trữ lớn cùng mạch bổ sung để chịu được thời điểm khởi động
  • Lựa chọn cuối cùng là ATtiny85, thuộc họ AVR giống Arduino cổ điển và có thể viết mã bằng Arduino IDE
    • Dòng tiêu thụ dưới 1mA khi chạy ở 1MHz
    • Ở trạng thái tiết kiệm điện, dòng giảm xuống mức μA tương tự đồng hồ thạch anh
    • LED của đèn ngủ dùng nhiều điện hơn ATtiny85 hàng nghìn lần

Mạch tái hiện thao tác bấm nút thật

  • Đường nguồn bên trong đèn ngủ là 8,3V, còn ATtiny85 cần 3,3V, nên mạch dùng bộ ổn áp HT7333
  • Transistor 2N3904 chập đường tín hiệu nút xuống mass để tái hiện thao tác bấm nút thật
  • Các linh kiện xung quanh đảm nhiệm việc giới hạn dòng, chống đầu vào sai và ổn định nguồn
    • Điện trở 1kΩ giữa ATtiny85 và transistor giới hạn dòng điều khiển chạy vào transistor
    • Điện trở 10kΩ giữ transistor ở trạng thái tắt trong lúc cấp nguồn, ngăn đầu vào nút ngoài ý muốn
    • Ba tụ điện nhỏ làm phẳng nguồn cấp cho bộ ổn áp và chip
    • Header 3 chân nối với nguồn, mass và đường tín hiệu nút
  • Tác giả thiết kế thành một bo mạch riêng để có thể dùng như thiết bị đa dụng bấm nút hộ số lần định sẵn, đồng thời học quy trình sản xuất PCB

Thiết kế mạch và bo trong EasyEDA

  • Trong EasyEDA, trước tiên tác giả vẽ sơ đồ mạch với linh kiện và quan hệ kết nối
    • Các điểm nối có cùng tên như GND, 3V3 sẽ được router nối với nhau
    • Khi chỉ định linh kiện thực tế sẽ dùng, thông tin đó có thể được dùng cho bố trí PCB và lập danh mục linh kiện
  • Ở bước biên tập PCB, có thể tự quyết định vị trí linh kiện, đường đi dây, hình dạng bo và các thành phần in trên bo
    • Bo được in logo phần cứng nguồn mở và tên người dùng
  • Vì mạch đơn giản, tác giả làm bo một mặt, không cần đi dây phức tạp hay hiệu chỉnh chiều dài/hình dạng đường mạch

Sản xuất tại JLCPCB và lắp linh kiện

  • Tác giả đặt bo tại JLCPCB, chọn linh kiện thực tế và có lắp ráp hay không
  • Số lượng đặt tối thiểu là 5 bo, nhưng chỉ cần 1 bo nên phần lớn linh kiện được tự hàn
    • Các điện trở và tụ điện rất nhỏ có chi phí bổ sung thấp nên dùng dịch vụ lắp ráp của JLCPCB
  • Bo được nhận chỉ sau 4 ngày kể từ khi đặt

Lập trình ATtiny85 và kiểm chứng trước

  • ATtiny85 trống không có bootloader, nên không thể cắm trực tiếp USB như Arduino và cần một bộ lập trình riêng
  • Tác giả lập trình bằng GPIO của Raspberry Pi 3 và avrdude
    • Nối header của Pi với chip bằng 6 dây jumper rồi chạy một lệnh
  • Thay vì nối ngay vào đèn ngủ, tác giả gắn LED vào chân đầu ra để kiểm chứng hoạt động trước
    • Hoạt động cuối cùng là nhấp nháy ba lần rồi dừng hẳn
    • Trong video thử nghiệm, số lần cần thiết được sửa muộn nên LED nhấp nháy bốn lần

Quá trình lắp đặt và an toàn điện lưới

  • Bo hoàn thiện được hàn vào bên trong đèn ngủ; linh kiện và không gian rất nhỏ nên thao tác khá khó
  • Tụ lớn trên bo mạch gốc được lắp ngược cực, và điều này được xác nhận bằng kiểm tra bằng đồng hồ vạn năng
  • Vì đèn ngủ không có biến áp, khi lắp thêm PCB thì toàn bộ mạch được nối với điện lưới
    • Cần flash ATtiny85 trước khi đưa vào thiết bị
    • Sau khi lắp đặt, không được nối lại cáp USB hoặc Raspberry Pi

Tự động hóa giờ ngủ và hoạt động cuối cùng

  • Khi đồng hồ báo trạng thái đi ngủ cho điện thoại, điện thoại thông báo cho Home Assistant, và Home Assistant bật đèn ngủ qua ổ cắm Zigbee
  • PCB được cấp điện sẽ đợi một lúc để tránh làm đèn ngủ hoạt động sai, rồi bấm nút ba lần để chuyển sang mức sáng 1
  • Có thể thấy bóng của dây bên trong sau tấm khuếch tán, nhưng không hiện lên tường phòng nên không gây vấn đề khi sử dụng thực tế

Tài liệu nguồn mở và điều kiện áp dụng

  • Tại tymscar/button-presser, các tài liệu sau được công bố theo giấy phép MIT
    • File Gerber để chế tạo bo mạch giống hệt
    • Danh mục linh kiện và sơ đồ mạch
    • Mã C ngắn chạy trên ATtiny85
  • Trước khi áp dụng, cần thực hiện hai phép kiểm tra bằng đồng hồ vạn năng được hướng dẫn trong README
  • Mạch này chỉ hoạt động với thiết bị có đường nguồn 4~12V bên trong và khi bấm nút thì tín hiệu được chập xuống mass
  • Nhiều thiết bị giá rẻ đáp ứng điều kiện này, nhưng không phải sản phẩm nào cũng áp dụng được; với thiết bị chạy bằng điện lưới, cần kiểm tra hướng dẫn an toàn trước khi thao tác

Chưa có bình luận nào.

Chưa có bình luận nào.