Mục lục:

Điều khiển đầu giường MQTT không dây trên giường: 5 bước (có hình ảnh)
Điều khiển đầu giường MQTT không dây trên giường: 5 bước (có hình ảnh)

Video: Điều khiển đầu giường MQTT không dây trên giường: 5 bước (có hình ảnh)

Video: Điều khiển đầu giường MQTT không dây trên giường: 5 bước (có hình ảnh)
Video: Chia sẻ cách mình biến quạt Panasonic F-409K thành quạt thông minh, Đưa lên Homekit, Hass ngon 2024, Tháng mười một
Anonim
Điều khiển đầu giường MQTT không dây trên giường
Điều khiển đầu giường MQTT không dây trên giường
Điều khiển đầu giường MQTT không dây trên giường
Điều khiển đầu giường MQTT không dây trên giường

Một vài năm trước, chúng tôi đã mua một chiếc giường xốp hoạt tính mới và, như trường hợp của hầu hết các loại giường, bạn cũng phải mua một trong những "cơ sở đã được phê duyệt" của họ để được bảo hành. Vì vậy, chúng tôi đã chọn loại đế rẻ nhất cũng bao gồm khả năng nâng cao và hạ thấp đầu giường. Vài ngày sau, nệm và đế giá rẻ American Adjustables của chúng tôi có điều khiển có dây (một cho mỗi bên giường) đã được giao và lắp đặt.

Điều đầu tiên chúng tôi nhận thấy là những sợi dây trong phòng trưng bày đẹp và dài không phải là những gì chúng tôi có trên giường của chúng tôi! Những cái trong phòng trưng bày có phần mở rộng. Những phần mở rộng này KHÔNG được bao gồm trong giường của chúng tôi và đủ thú vị, không ai quan tâm đến việc bán cho chúng tôi một cặp cáp mở rộng. Điều này khiến chúng tôi có những chiếc điều khiển gần như không chạm tới đầu giường và chúng tôi phải lật lại để sử dụng.

Gieo nhân nào gặp quả nấy

Sau khoảng 6 tháng, chúng tôi nhận thấy rằng vòng cổ giảm căng thẳng trên một trong các bộ điều khiển bắt đầu bị rách. Vài tháng sau - dây trần. Tua đi khoảng một năm, một trong các điều khiển không còn hoạt động và điều khiển còn lại thì hơi giật.

Một lần nữa, không ai quan tâm đến việc bán các sản phẩm thay thế cho chúng tôi. Sau đó, nó đánh tôi!

"Chờ một chút! Không phải tôi đang xây dựng một hệ thống ĐIỀU KHIỂN và tự động hóa gia đình sao?!?"

Bước 1: Khám phá

Khám phá
Khám phá
Khám phá
Khám phá

Tôi muốn xem những gì tôi có thể làm với những gì tôi có, vì vậy tôi đã lấy ứng dụng bộ điều khiển bị lỗi và wow! có rất nhiều chuyện tào lao trong đó! Tất cả những thứ này để làm gì? Tôi lùi lại và chỉ nhìn những dòng ra vào. Tôi có thể thấy rằng có một đường dây cung cấp 12 volt và một đường dây nối đất. Hai đường còn lại trông giống như đường tín hiệu cho hai nút lên xuống. Vì vậy, tôi đã nắm lấy một cơ hội và chỉ cần nhảy nguồn cung cấp 12v qua đường tín hiệu "lên". Chiếc giường bắt đầu di chuyển! Sau đó, tôi di chuyển dây nhảy của mình qua dây tín hiệu "xuống" và giường đi xuống!

Trong hộp có tiếp điểm cho 4 đường tín hiệu nữa và 4 nút nữa. Dự đoán tốt nhất của tôi là bảng điều khiển này được sử dụng trong tất cả các mô hình cơ sở có dây của họ và họ chỉ đặt các tấm mặt khác nhau lên bảng khi cần thiết. Vì vậy, tôi đã có một lý thuyết làm việc. Tôi đã kiểm tra đường dây cung cấp để xem nó có bị sụt trong quá trình sử dụng hay bị tăng đột biến bất cứ lúc nào không - không. Có rất ít dòng điện chạy qua các đường tín hiệu nhưng chúng yêu cầu 12 volt để kích hoạt động cơ.

Bước 2: Thiết kế

Thiết kế
Thiết kế
Thiết kế
Thiết kế
Thiết kế
Thiết kế
Thiết kế
Thiết kế

Vì vậy, một kết nối tiếp xúc đơn giản giữa VCC và chân tín hiệu mỗi thứ là tất cả những gì cần thiết nhưng điều đó được thực hiện như thế nào trong hệ thống của tôi. Hai rơ le sẽ được yêu cầu cho các tiếp điểm và một ESP8266 sẽ hoạt động cho bộ điều khiển không dây. Vì các rơ le có thể yêu cầu nhiều dòng điện hơn các chân kỹ thuật số có thể cung cấp, nên tốt nhất là sử dụng bộ tách quang giữa bộ điều khiển và rơ le. Điều này sẽ cho phép một tín hiệu nhỏ để bật công tắc dòng điện cao hơn (trong trường hợp này là bóng bán dẫn điều khiển bằng ánh sáng) và kích hoạt cuộn dây rơle một cách an toàn. Ngoài ra, một optoisolator cô lập bộ điều khiển khỏi bất kỳ gai nào có thể hình thành khi cuộn dây rơ le được giải phóng và từ trường sụp đổ. May mắn thay, tồn tại các mô-đun chuyển tiếp đã chứa tất cả các mạch này và với một mức giá khá thấp.

Giường sẽ là nguồn cung cấp năng lượng cho bộ điều khiển và để xử lý 12 volt được cung cấp, chúng tôi sẽ cần một bộ chuyển đổi buck biến đổi. Một cái rất rẻ đã được liên kết bên dưới và hoạt động rất đẹp. Đường 12V và đường GND kết nối với phía đầu vào của bộ chuyển đổi và phía 5 volt được điều chỉnh kết nối với VCC của NodeMCU và chân VCC trên mô-đun rơle. Tiếp đất (-) trên bộ chuyển đổi kết nối với các chân GND trên cả mô-đun chuyển tiếp và NodeMCU.

NodeMCU kết nối với IN1 bằng D1 (GPIO5) và IN2 bằng D2 (GPIO4). Đường tín hiệu lên trên giường kết nối với đầu cuối vít thường mở của rơle 1 và đường tín hiệu xuống kết nối với đầu nối khối thiết bị đầu cuối thường mở của rơle 2. Bạn sẽ cần kết nối dây 12v được kết nối với đầu vào của bộ chuyển đổi buck cũng như kết nối khối thiết bị đầu cuối khác cho BOTH relay 1 và 2.

Các bộ phận

  • 1 - NodeMCU
  • 1 - Mô-đun chuyển tiếp đấu với cách ly hiện tại
  • 1 - Bộ chuyển đổi buck đầu vào / đầu ra có thể thay đổi
  • 1 - Breadboard PCB
  • Dây lõi đồng bện 22 gauge
  • 2 - M3x 8 vít

Bước 3: Bao vây

Bao vây
Bao vây

Bao vây có thể được tìm thấy tại đây:

Tôi đã thiết kế một enclosuer đơn giản với Tinkercad cho phép cáp điều khiển giường đi vào hộp giữa các giá đỡ giảm căng bên trong hộp. Có các khe cho dây buộc zip ở đây sẽ giúp giữ cho cáp không bị trượt nhưng trong trường hợp của tôi, dây rất vừa vặn và không cần nó. Nắp được bắt vít bằng 2 vít M3x 8. Tôi khuyên bạn nên tải lên mã và kiểm tra hệ thống trước khi gắn nó vào hộp.

Tôi đã sử dụng keo nóng để giữ các bảng tại chỗ nhưng điều này có thể không cần thiết.

Bước 4: Mã

Bạn có thể tìm thấy mã tại đây:

LƯU Ý: Dự án này sử dụng thư viện pubsubclient có thể được thêm vào Trình quản lý thư viện trong Arduino IDE

Mã ở đây khá cơ bản và được thiết kế dựa trên loại Cover MQTT trong Home Assistant. Ý tưởng ở đây rất đơn giản: khi bạn nhấn nút lên hoặc xuống trong trợ lý tại nhà, rơ le thích hợp sẽ đóng lại cho đến khi nhận được lệnh dừng HOẶC hệ thống đạt đến thời gian kích hoạt tối đa và dừng lại.

Thời gian tối đa có nghĩa là một biện pháp phòng ngừa an toàn trong trường hợp người dùng quên dừng nó hoặc nếu lệnh được gửi vô tình và không có khả năng ai đó sẽ dừng nó. Chúng tôi không muốn chuyển tiếp vô thời hạn hoặc bất kỳ sự cố không mong muốn nào với giường do việc đóng tiếp điểm trong thời gian dài.

Trong mã của tôi, thời gian chờ này là 20 giây và có thể được điều chỉnh trong khối biến toàn cục ở đầu mã.

Biện pháp phòng ngừa an toàn thứ hai là luôn đảm bảo rằng nếu tôi đang kích hoạt một rơ le, thì việc cố ý hủy kích hoạt rơ le kia sẽ luôn được gọi, ngay cả khi trạng thái cuối cùng đã tắt. Tôi không muốn gửi 12v xuống cả hai đường tín hiệu vì tôi không biết điều đó sẽ làm gì với giường.

Ngoài ra, giường còn công bố rằng nó có sẵn sau mỗi 60 giây và thế là xong. Không có chuông hoặc còi ở đây. Vì giường không có phản hồi vị trí nên tôi không thể gửi lại bất kỳ phản hồi nào cho Home Assistant.

Bước 5: Tích hợp ví dụ

Tích hợp ví dụ
Tích hợp ví dụ
Tích hợp ví dụ
Tích hợp ví dụ

Mã tôi đã viết sử dụng MQTT để giao tiếp qua WiFi và do đó có thể giao tiếp với bất kỳ thiết bị hoặc trung tâm tự động hóa nào sử dụng MQTT. Tôi sử dụng Home Assistant có một nhà môi giới MQTT được tích hợp sẵn. Dưới đây là một ví dụ về cấu hình HA của tôi.

Trong HA, tôi có một tệp cover.yaml với định nghĩa sau:

- nền tảng: mqtt

name: "Master Bed Headboard" command_topic: "master_bed_control / cmd" available_topic: "master_bed_control / available" qos: 0 keep: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "trực tuyến" payload_not_available: " ngoại tuyến "lạc quan: đúng

Điều này cung cấp cho tôi một mục nhập trong giao diện HA của tôi với một nút lên / dừng / xuống được đặt với hành động như được mô tả ở trên.

Ngoài ra, tôi đã xác định hai nút trên Bảng điều khiển cạnh giường của mình (Có thể hướng dẫn / Bài đăng trên blog) để nâng cao và hạ thấp đầu giường. Các nút trên bảng điều khiển được xác định là cảm biến MQTT:

- nền tảng: mqtt

state_topic: "bed_cp1 / button5" tên: "Nút 5 bên cạnh giường CP1": mdi: circle

- nền tảng: mqtt

state_topic: "bed_cp1 / button6" tên: "Nút 6 bên cạnh giường CP1": mdi: circle

… Và 4 quy tắc tự động hóa khi mỗi nút được nhấn và thả. Khi nhấn, lệnh lên hoặc xuống sẽ được gửi đến giường tùy thuộc vào nút nào được kích hoạt, khi thả nút, lệnh dừng sẽ được gửi:

- id: '1548308650383'

bí danh: MBR Nút CP bên cạnh giường 5a kích hoạt: - entity_id: sensor.bedside_cp1_button_5 từ: Nền tảng 'Tắt': trạng thái thành: Điều kiện 'Bật': action: - data: entity_id: 'cover.master_bed_headboard' service: cover.open_cover - id: '1548308758911' bí danh: MBR Nút CP bên cạnh giường kích hoạt 5b: - entity_id: sensor.bedside_cp1_button_5 from: 'On' platform: state to: 'Off' condition: action: - data: entity_id: 'cover.master_bed_headboard' service: cover.stop_cover - id: '1548308863495' bí danh: MBR Nút CP đầu giường 6a kích hoạt: - entity_id: sensor.bedside_cp1_button_6 from: 'Off' platform: state to: 'On' condition: action: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'alias: MBR Bedside CP Button 6b trigger: - entity_id: sensor.bedside_cp1_button_6 from:' On 'platform: state to:' Off 'condition: action: - data: entity_id: 'cover.master_bed_headboard' dịch vụ: cover.stop_cover

Đề xuất: