Mục lục:

Cảm biến cửa chạy bằng pin với tích hợp tự động hóa tại nhà, WiFi và ESP-NOW: 5 bước (có hình ảnh)
Cảm biến cửa chạy bằng pin với tích hợp tự động hóa tại nhà, WiFi và ESP-NOW: 5 bước (có hình ảnh)

Video: Cảm biến cửa chạy bằng pin với tích hợp tự động hóa tại nhà, WiFi và ESP-NOW: 5 bước (có hình ảnh)

Video: Cảm biến cửa chạy bằng pin với tích hợp tự động hóa tại nhà, WiFi và ESP-NOW: 5 bước (có hình ảnh)
Video: Pin mặt trời hoạt động như thế nào? - Hiểu rõ trong 5 phút 2024, Tháng mười một
Anonim
Image
Image

Trong phần hướng dẫn này, tôi chỉ cho bạn cách tôi tạo ra một cảm biến cửa chạy bằng pin có tích hợp tự động hóa gia đình. Tôi đã thấy một số cảm biến và hệ thống báo động tuyệt vời khác, nhưng tôi muốn tự mình làm một cái.

Mục tiêu của tôi:

  • Một cảm biến phát hiện và báo cáo việc mở cửa nhanh (<5 giây)
  • Một cảm biến phát hiện đóng cửa
  • Một cảm biến hoạt động bằng pin và chạy trong vài tháng bằng pin

Phần cứng và phần mềm được lấy cảm hứng từ

  • Bộ ba của Kevin Darrah (TPL5111 và TPS73733).
  • Video này

Tôi đã tạo một cảm biến cho cửa trước và cửa sau của mình. Điểm khác biệt duy nhất là vị trí đèn led và công tắc nguồn bên ngoài (trên cảm biến cửa hậu).

Tôi đã thực hiện một số cải tiến trong quá trình phát triển phần cứng và phần mềm, nó có thể được nhìn thấy trong các bức ảnh.

Quân nhu

Tôi đã mua các linh kiện điện tử từ Aliexpress, các bộ phận chính:

  • Pin LiPo
  • TPS73733 LDO
  • TPL5111
  • Công tắc sậy
  • MOSFET kênh P: IRLML6401TRPBF
  • Nam châm
  • Tấm tiếp hợp PCB cho các thành phần SMD và một loại khác.

Bước 1: Phần cứng - Mạch

Phần cứng - Mạch
Phần cứng - Mạch
Phần cứng - Mạch
Phần cứng - Mạch
Phần cứng - Mạch
Phần cứng - Mạch

Xem các sơ đồ đính kèm cho mạch. Tôi đã hàn các bộ phận SMD trên một tấm PCB của bộ chuyển đổi và hàn tất cả các thành phần vào một bảng hiệu hai mặt. Tôi đã kết nối ESP-01 qua các tiêu đề cái, vì vậy tôi có thể tháo nó ra để lập trình nó thông qua bộ điều hợp được hiển thị trong bước 3 của Tài liệu hướng dẫn này.

Mạch hoạt động như sau:

  • Khi cửa được mở, TPL5111 nhận được một cú đánh ở chân DELAY / M_DRV và bật TPS73733 LDO cấp nguồn cho ESP-01. Đối với hoạt động này, EN / ONE_SHOT phải được kéo xuống thấp, Xem biểu dữ liệu của TPL5111.
  • Sau khi chương trình đã chạy (xem bước Phần mềm), ESP-01 gửi tín hiệu Xong đến TPL5111, sau đó vô hiệu hóa TPS73733 dẫn đến trạng thái năng lượng rất thấp cho TPL5111 và TPS73733.

Tôi sử dụng công tắc sậy với cả kết nối NO và NC. Tôi đã kết nối dây dẫn NC, vì công tắc sậy phải đóng mạch khi tháo nam châm (cửa mở) và mở khi nam châm ở gần (cửa đóng).

Đối với cảm biến cửa hậu, tôi đã thêm một số bộ ngưng tụ và điện trở khi tôi phát hiện ra một số điểm không ổn định, tuy nhiên sự không ổn định là do phần mềm (esp_now_init) gây ra như tôi đã phát hiện sau đó.

Bước 2: Phần cứng - Bao vây

Phần cứng - Bao vây
Phần cứng - Bao vây
Phần cứng - Bao vây
Phần cứng - Bao vây
Phần cứng - Bao vây
Phần cứng - Bao vây

Tôi đã thiết kế bao vây trong Autodesk Fusion360, lấy cảm hứng từ video này của 'chàng trai có giọng Thụy Sĩ'.

Các tệp STL của ba phần:

  • Hộp
  • Nắp
  • Giá đỡ nam châm

được xuất bản trên trang Thingiverse của tôi.

Bước 3: Phần mềm

Phần mềm
Phần mềm

Chương trình có trong Github của tôi.

Luồng của chương trình được hiển thị trong hình. Xem Hướng dẫn khác của tôi để biết giải thích về cách tôi sử dụng ESP-NOW.

Khi mô-đun được bật nguồn, trước tiên nó sẽ cố gắng gửi thông báo 'MỞ' qua ESP-NOW. Nếu điều này không thành công, nó sẽ chuyển sang kết nối WiFi và MQTT.

Tôi phát hiện ra rằng, ít nhất là trong thiết lập của mình, thông báo 'ĐÃ ĐÓNG CỬA' không được gửi thành công qua ESP-NOW, vì vậy tôi đã xóa thông báo này khỏi chương trình và chỉ sử dụng WiFi và MQTT.

Trong thời gian cửa được mở và mô-đun đang chờ đóng cửa, nó sử dụng thời gian này để kết nối với WiFi và MQTT, vì vậy khi đóng cửa, nó chỉ phải gửi điện áp đo được và một thông báo ĐÓNG CỬA và sau đó nó trực tiếp đi vào giấc ngủ.

Chương trình kiểm tra xem người nhận tin nhắn đã đóng hay chưa thông qua việc nghe tin nhắn MQTT có đúng chủ đề hay không.

Bước 4: Tự động hóa Trang chủ và Điện tín

Home Automation and Telegram
Home Automation and Telegram
Home Automation and Telegram
Home Automation and Telegram
Home Automation and Telegram
Home Automation and Telegram

Cảm biến cửa của tôi giao tiếp với Openhab Home Automation trên Raspberry Pi Zero của tôi.

Các ứng dụng chính:

  • Đọc trạng thái của cửa: MỞ hoặc ĐÓNG CỬA.
  • Báo động cho tôi qua điện tín nếu có cửa mở (Nếu Báo động được bật hoặc chức năng Màn hình được bật).
  • Đọc lần cuối cùng một cánh cửa được mở hoặc đóng.
  • Đếm số lần mở cửa mà cảm biến cửa có thể xử lý trước khi hết pin.

Ví dụ, nếu chúng tôi đang đi nghỉ và người hàng xóm đến tưới cây, tôi nhận được một tin nhắn. Xem video trong phần giới thiệu.

Các mục Openhab, quy tắc và tệp sơ đồ trang web có trong Github của tôi. Trong các tệp này, bạn cũng có thể thấy cảm biến cửa của nhà kho, sử dụng công tắc sậy có dây thông thường và một công tắc tiếp xúc nhỏ (đầu cuối) từ máy in 3D khi mở khóa (xem hình ảnh).

Cách sử dụng hành động Telegram trong Openhab được mô tả tại đây.

Bước 5: Cải tiến và Cải tiến hơn nữa

Cải tiến và Cải tiến hơn nữa
Cải tiến và Cải tiến hơn nữa
Cải tiến và Cải tiến hơn nữa
Cải tiến và Cải tiến hơn nữa

Trong những tháng trước, tôi đã thực hiện cải tiến sau đây.

Xử lý các khe cửa dài thông qua tín hiệu xung tự chuyển đổi

Vào mùa hè, chúng tôi để cửa hậu mở trong vài giờ khi chúng tôi ở nhà. Khi đó, ESP-01 đang chạy với kết nối WiFi sẽ làm tiêu hao pin một cách không cần thiết. Vì vậy, tôi đã bao gồm một công tắc bật / tắt để có thể tắt mô-đun trong những trường hợp này.

Tuy nhiên, điều này đôi khi dẫn đến mô-đun bị tắt vĩnh viễn (khi tôi quên bật nó) và pin cạn kiệt sau một vài buổi chiều khi cửa mở và mô-đun đang chạy (Khi tôi quên tắt nó).

Vì vậy, tôi muốn có thể tắt mô-đun thông qua phần mềm sau khi mô-đun được bật trong một thời gian xác định trước (1 phút).

Tuy nhiên, khi xung ‘DONE’ của ESP-01 tắt TPL5111 khi cửa đóng, tôi phát hiện ra rằng TPL5111 không được chuyển bằng xung 'DONE' trong khi chân DELAY / M_DRV ở mức CAO. Tín hiệu CAO này trên chân DELAY / M_DRV là do cửa mở và tiếp điểm NC của công tắc sậy được kết nối với điện áp pin.

Vì vậy, tín hiệu đến chân DELAY / M_DRV không nên liên tục ở mức CAO, mà nên ở dạng xung. Trong biểu dữ liệu TPL5111, bạn có thể thấy rằng nó phải là một xung> 20 ms. Tôi đã thực hiện tín hiệu tự chuyển đổi này thông qua một mosfet kênh P, một tụ điện và một điện trở 10K và 300K, hãy xem sơ đồ đi kèm.

Nó hoạt động như sau:

  • Nếu tiếp điểm NC của công tắc sậy bị đóng, Cổng ở mức THẤP và Mosfet được BẬT, dẫn đến tín hiệu CAO trên chân DELAY / M_DRV kích hoạt mô-đun.
  • Tụ điện nhanh chóng được sạc, dẫn đến điện áp trên Cổng tăng lên.
  • Sau khoảng 20 ms, điện áp trên Cổng là 97% điện áp pin (300K / (300K + 10K) là CAO và Mosfet bị tắt, dẫn đến tín hiệu THẤP trên chân DELAY / M_DRV.
  • Khi chân DELAY / M_DRV ở mức THẤP, tín hiệu DONE của ESP-01 dẫn đến việc tắt mô-đun.

Điều này được thực hiện trong phần mềm; vòng lặp trong khi không chỉ kiểm tra xem cửa vẫn mở mà còn kiểm tra xem mô-đun có được bật quá lâu hay không. Nếu được bật quá lâu, nó sẽ xuất bản giá trị NULL (trạng thái không xác định của cửa). Trong trường hợp này, tôi không biết liệu cửa được mở hay đóng và tôi không đạt được tất cả các mục tiêu được đề cập trong phần giới thiệu, nhưng thời lượng pin quan trọng hơn và hầu hết các lần chúng tôi mở cửa lại vào cuối ngày hôm đó, dẫn đến trạng thái đã đóng. của cửa.

Điều quan trọng là sử dụng Mosfet kênh P phù hợp với dải điện áp được sử dụng ở đây. Mosfet phải được bật hoàn toàn ở VGS khoảng - 3,8V và tắt hoàn toàn ở VGS khoảng -0,2 V. Tôi đã thử một số Mosfet và phát hiện ra rằng IRLML6401TRPBF hoạt động tốt cho mục tiêu này kết hợp với điện trở 10K và 300K. Tụ điện 1 uF hoạt động tốt để có cường độ xung khoảng 20 ms. Tụ điện lớn hơn dẫn đến xung dài hơn, điều này là không cần thiết, vì TPL5111 đã được kích hoạt. Tôi đã sử dụng máy hiện sóng DSO150 để kiểm tra điện áp và cường độ xung.

Cải tiến theo kế hoạch: Cập nhật OTA

Tôi dự định kết hợp cập nhật OTA thông qua quy trình sau, quy trình này đã được bao gồm một phần trong phần mềm hiện tại

  • Qua Openhab của NodeRed, tôi xuất bản một thông báo 'cập nhật' được giữ lại, một 'chủ đề cập nhật'.
  • Nếu mô-đun được bật và kết nối với máy chủ MQTT và đăng ký 'chủ đề cập nhật', nó sẽ nhận được thông báo cập nhật.
  • Thông báo cập nhật sẽ ngăn mô-đun tắt và khởi động
  • Thông qua trang web của HTTPUpdateServer, bạn có thể cập nhật phần mềm.
  • Qua Openhab của NodeRed, tôi xuất bản một thông báo 'trống' được giữ lại, một 'chủ đề cập nhật'.

Cải tiến theo kế hoạch: tắt phần cứng sau một thời gian xác định trước

Trong sơ đồ hiện tại, tôi sử dụng điện trở 200K giữa DELAY / M_DRV và GND của TPL5111. Thao tác này sẽ bật mô-đun trong hơn 2 giờ (xem 7.5.3. Của biểu dữ liệu TPL5111). Tuy nhiên, tôi không muốn bật mô-đun quá lâu vì khi đó pin đã cạn. Nếu giải pháp phần mềm (xem ở trên) không tắt được mô-đun hoặc thông báo cập nhật không chủ ý đặt mô-đun ở chế độ cập nhật, thì mô-đun vẫn bật nguồn trong một thời gian dài.

Vì vậy, tốt hơn là sử dụng một điện trở nhỏ hơn giữa DELAY / M_DRV và GND của TPL5111, vì vậy mô-đun được tắt nguồn sau một thời gian ngắn, ví dụ: điện trở 50K dẫn đến thời gian đúng là 7 phút.

Đề xuất: