Tabla de contenido:
Video: Control inalámbrico de cabecera de cama MQTT: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Hace unos años compramos una nueva cama de espuma viscoelástica y, como es el caso de la mayoría de las camas, también tenía que comprar una de sus "bases aprobadas" para mantener la garantía. Entonces, optamos por la base menos costosa que también incluía la capacidad de subir y bajar la cabecera de la cama. Unos días después, nuestro colchón y nuestra base económica American Adjustables con controles cableados (uno para cada lado de la cama) fueron entregados y configurados.
Lo primero que notamos fue que los cables en la sala de exposición que eran agradables y largos no eran los que teníamos en nuestra cama. Los de la sala de exposición tenían extensiones. Estas extensiones NO se incluyeron con nuestra cama y lo suficientemente interesante, nadie estaba interesado en vendernos un par de cables de extensión. Esto nos dejó unos mandos que apenas llegaban a la parte superior de la cama y que tuvimos que voltear para poder utilizarlos.
Tienes lo que pagas
Después de aproximadamente 6 meses, notamos que los collares de alivio de tensión en uno de los controles estaban comenzando a romperse. Unos meses más tarde, alambre desnudo. Avance rápido aproximadamente un año, uno de los controles ya no funciona y el otro se está poniendo un poco nervioso.
Una vez más, nadie estaba interesado en vendernos reemplazos. ¡Entonces me di cuenta!
¡Espera un maldito minuto! ¿¡¿No estoy construyendo un sistema de CONTROL y automatización del hogar ?
Paso 1: descubrimiento
Quería ver qué podía hacer con lo que tenía, así que me llevé el controlador defectuoso y ¡guau! ¡Había mucha mierda ahí! ¿Para qué fue todo esto? Di un paso atrás y solo miré las líneas que entraban y salían. Pude ver que había una línea de suministro de 12 voltios y una línea de tierra. Las otras dos líneas parecían líneas de señal para los dos botones arriba y abajo. Entonces, me arriesgué y simplemente conecté el suministro de 12v a la línea de señal "arriba". ¡La cama empezó a moverse! Luego moví mi cable de puente a la línea de señal "abajo" y la cama cayó.
En la caja hay contactos para 4 líneas de señal más y 4 botones más. Mi mejor suposición es que esta placa controladora se usa en todos sus modelos de base cableada y simplemente colocan diferentes placas frontales sobre la placa según sea necesario. Entonces, tenía una teoría de trabajo. Probé la línea de suministro para ver si se hundió durante el uso o si se disparó en algún momento, no. Había muy poco consumo de corriente en las líneas de señal, pero requerían 12 voltios para activar el motor.
Paso 2: diseño
Entonces, una simple conexión de contacto entre VCC y el pin de señal es todo lo que se necesita, pero ¿cómo se hace eso dentro de mi sistema? Se necesitarían dos relés para los contactos y un ESP8266 funcionaría para el controlador inalámbrico. Dado que los relés pueden requerir más corriente de la que pueden suministrar los pines digitales, es mejor utilizar un optoaislador entre el controlador y el relé. Esto permitirá que una pequeña señal encienda un interruptor de corriente más alta (en este caso, un transistor accionado por luz) y active de forma segura la bobina del relé. Además, un optoaislador aísla el controlador de cualquier pico que pueda formarse cuando se suelta la bobina del relé y el campo magnético colapsa. Afortunadamente, existen módulos de relé que ya contienen todos estos circuitos y por un precio bastante bajo.
La cama será la fuente de alimentación para el controlador y para manejar los 12 voltios suministrados, necesitaremos un convertidor reductor variable. A continuación se ha vinculado uno muy económico y funciona a la perfección. La línea de 12V y las líneas GND se conectan al lado de entrada del convertidor y el lado regulado de 5 voltios se conecta al VCC del NodeMCU y al pin VCC del módulo de relé. tanto el módulo de relés como el NodeMCU.
El NodeMCU se conecta a IN1 usando D1 (GPIO5) e IN2 usando D2 (GPIO4). La línea de señal ascendente en la cama se conecta al terminal de tornillo normalmente abierto para el relé 1 y la línea de señal descendente se conecta al conector del bloque de terminales normalmente abierto del relé 2. Deberá conectar el cable de 12v que está conectado al lado de entrada del convertidor reductor también a la otra conexión del bloque de terminales para AMBOS relés 1 y 2.
Partes
- 1 - NodeMCU
- 1 - Módulo de relé de duelo con aislamiento de corriente
- 1 - Convertidor reductor de entrada / salida variable
- 1 - Placa de circuito impreso
- Alambre de núcleo de cobre trenzado de calibre 22
- 2 - tornillos M3x 8
Paso 3: recinto
El recinto se puede encontrar aquí:
Diseñé una caja simple con Tinkercad que permite que el cable de control de la cama ingrese a la caja entre los soportes de alivio de tensión dentro de la caja. Hay ranuras para una brida aquí que ayudarían a evitar que el cable se deslice, pero en mi caso, el ajuste fue muy ajustado y no lo necesitaba. La tapa está atornillada con 2 tornillos M3x 8. Recomendaría cargar el código y probar el sistema antes de montarlo en la caja.
Usé pegamento caliente para mantener las tablas en su lugar, pero esto puede no ser necesario.
Paso 4: Código
El código se puede encontrar aquí:
NOTA: Este proyecto utiliza la biblioteca pubsubclient que se puede agregar en el Administrador de bibliotecas en el IDE de Arduino
El código aquí es bastante básico y fue diseñado en base al tipo Cover MQTT en Home Assistant. La idea aquí es simple: cuando presiona el botón arriba o abajo en el asistente de hogar, el relé apropiado se cierra hasta que se recibe el comando de parada O el sistema alcanza un tiempo máximo de activación y se detiene.
El tiempo máximo es una precaución de seguridad en caso de que el usuario olvide detenerlo o si el comando se envió accidentalmente y es poco probable que alguien lo detenga. No queremos que el relé se encienda indefinidamente o cualquier problema inesperado con la cama debido a un cierre de contacto prolongado.
En mi código, este tiempo de espera es de 20 segundos y se puede ajustar en el bloque de variables globales en la parte superior del código.
Una segunda precaución de seguridad fue asegurarme siempre de que si estoy activando un relé, siempre se llama a una desactivación intencional del otro, incluso si el último estado ya estaba apagado. No quiero enviar 12v por ambas líneas de señal ya que no sé qué le hará eso a la cama.
Aparte de eso, la cama publica que está disponible cada 60 segundos y eso es todo. No hay campanas ni silbidos aquí. Como la cama no tiene información de posición, no pude devolver ninguna a Home Assistant.
Paso 5: Integración de ejemplo
El código que escribí usa MQTT para comunicarse a través de WiFi y, por lo tanto, puede comunicarse con cualquier centro o dispositivo de automatización que use MQTT. Utilizo Home Assistant que tiene un corredor MQTT integrado. A continuación se muestra un ejemplo de mi configuración HA.
En HA tengo un archivo covers.yaml con la siguiente definición:
- plataforma: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control / cmd" availability_topic: "master_bed_control / availability" qos: 0 retener: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " offline "optimista: verdadero
Esto me da una entrada en mi interfaz HA con un botón arriba / parar / abajo configurado con la acción como se describe arriba.
Además, he definido dos botones en mi Panel de control de cabecera (Instructable / Publicación de blog) para subir y bajar la cabecera. Los botones del panel de control se definen como sensores MQTT:
- plataforma: mqtt
state_topic: "bedside_cp1 / button5" name: "Bedside CP1 Button 5" icon: mdi: circle
- plataforma: mqtt
state_topic: "bedside_cp1 / button6" name: "Bedside CP1 Button 6" icon: mdi: circle
… Y 4 reglas de automatización para cuando se presiona y se suelta cada botón. Cuando se presiona, el comando de subida o bajada se envía a la cama según el botón que se haya activado, cuando se suelta el botón, se envía el comando de parada:
- identificación: '1548308650383'
alias: MBR Bedside CP Button 5a trigger: - entity_id: sensor.bedside_cp1_button_5 from: 'Off' platform: state to: 'On' condition: action: - data: entity_id: 'cover.master_bed_headboard' service: cover.open_cover - id: '1548308758911' alias: MBR Bedside CP Button 5b trigger: - entity_id: sensor.bedside_cp1_button_5 from: 'On' platform: state to: 'Off' condition: action: - data: entity_id: servicio 'cover.master_bed_headboard': cover.stop_cover - id: '1548308863495' alias: MBR Bedside CP Button 6a trigger: - 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 'condición: acción: - data: entity_id: 'cover.master_bed_headboard' service: cover.stop_cover
Recomendado:
Lámpara de rayas LED para cabecera de cama con ESP8266-01: 5 pasos
Lámpara de Rayas LED para Cabecera de Cama con ESP8266-01: Este es un proyecto muy fácil que descuidé hace mucho tiempo, pero debido a la cuarentena hice algo diferente con las partes que tengo a mano, la idea era tener una luz atenuable, que pudiera ser controlado por comandos TCP simples o por un conmutador manual
Robot Arduino inalámbrico con módulo inalámbrico HC12: 7 pasos
Robot Arduino inalámbrico con módulo inalámbrico HC12: Hola chicos, bienvenidos. En mi publicación anterior, expliqué qué es un circuito de puente H, IC de controlador de motor L293D, IC de controlador de motor L293D a cuestas para conducir controladores de motor de alta corriente y cómo puede diseñar y hacer su propia placa de controlador de motor L293D
Control remoto inalámbrico con módulo NRF24L01 de 2.4Ghz con Arduino - Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter - Helicóptero Rc - Avión Rc usando Arduino: 5 pasos (con imágenes)
Control remoto inalámbrico con módulo NRF24L01 de 2,4 Ghz con Arduino | Receptor transmisor de 4 canales / 6 canales Nrf24l01 para Quadcopter | Helicóptero Rc | Avión Rc usando Arduino: Para operar un coche Rc | Quadcopter | Drone | Avión RC | Barco RC, siempre necesitamos un receptor y transmisor, supongamos que para RC QUADCOPTER necesitamos un transmisor y receptor de 6 canales y ese tipo de TX y RX es demasiado costoso, así que haremos uno en nuestro
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: 6 pasos
Punto de acceso inalámbrico de 50 metros de alcance con adaptador inalámbrico USB TP Link WN7200ND en Raspbian Stretch: Raspberry Pi es excelente para crear puntos de acceso inalámbricos seguros, pero no tiene un buen alcance, utilicé un adaptador inalámbrico USB TP Link WN7200ND para extenderlo. Quiero compartir cómo hacerlo¿Por qué quiero usar una raspberry pi en lugar de un enrutador? T
Pantalla y luz de hockey de cabecera de la NHL: 4 pasos (con imágenes)
Luz y pantalla LCD para hockey de cabecera de la NHL: Introducción es para los fanáticos del hockey que quieren seguir a su equipo, pero no pueden ver todos los partidos. Su mejor característica es que simula un marcador de gol con un cuerno de hockey (personalizado para tu equipo) y ligero. Además de la h