Taula de continguts:

Control de capçal de llit MQTT sense fils: 5 passos (amb imatges)
Control de capçal de llit MQTT sense fils: 5 passos (amb imatges)

Vídeo: Control de capçal de llit MQTT sense fils: 5 passos (amb imatges)

Vídeo: Control de capçal de llit MQTT sense fils: 5 passos (amb imatges)
Vídeo: 11 Cèlia Asseure's al llit- elevant el capçal i utilitzant el disc giratori i el llençol lliscant CA 2024, Desembre
Anonim
Control de capçal de llit MQTT sense fils
Control de capçal de llit MQTT sense fils
Control de capçal de llit MQTT sense fils
Control de capçal de llit MQTT sense fils

Fa uns anys vam comprar un nou llit d’escuma de memòria i, com és el cas de la majoria de llits, també havíeu de comprar una de les seves “bases aprovades” per mantenir la garantia. Per tant, vam optar per la base menys costosa que també incloïa la capacitat d’augmentar i baixar el cap del llit. Uns dies més tard es va lliurar i configurar el matalàs i la base econòmica americana ajustable amb controls per cable (un per cada costat del llit).

El primer que vam notar va ser que els cordons de la sala d’exposició, que eren agradables i llargs, no eren els que teníem al llit. Els del showroom tenien extensions. Aquestes extensions NO s’inclouen al llit i són prou interessants, a ningú li interessava vendre’ns un parell de cables d’extensió. Això ens va deixar amb controls que amb prou feines arribaven a la part superior del llit i que havíem de girar per utilitzar-los.

Obteniu el que pagueu

Al cap d’uns 6 mesos ens adonem que els colls d’alleujament de la tensió d’un dels controls començaven a trencar-se. Uns mesos més tard: fil nu. Avançant aproximadament un any, un dels controls ja no funciona i l’altre es torna una mica contrari.

De nou, ningú no estava interessat a vendre’ns substituts. Aleshores em va tocar!

Espera un maleït minut! No estic construint un sistema domòtic i de CONTROL?!?

Pas 1: descobriment

Descobriment
Descobriment
Descobriment
Descobriment

Volia veure què podia fer amb el que tenia, així que vaig agafar el controlador apart defectuós i vaja! allà hi havia molta porqueria! Per a què servien totes aquestes coses? Vaig fer un pas enrere i només vaig mirar les línies que entraven i sortien. Vaig poder veure que hi havia una línia de subministrament de 12 volts i una línia de terra. Les altres dues línies semblaven línies de senyal per als dos botons amunt i avall. Per tant, vaig arriscar-me i vaig passar el subministrament de 12 V a la línia de senyal "cap amunt". El llit es va començar a moure! Llavors vaig moure el cable de pont cap a la línia de senyal "avall" i el llit va caure.

Al quadre hi ha contactes per a 4 línies de senyal més i 4 botons més. La meva millor suposició és que aquesta placa de controlador s’utilitza en tots els seus models de base cablejada i només posen diferents plaques frontals sobre la placa segons sigui necessari. Per tant, tenia una teoria de treball. Vaig provar la línia de subministrament per veure si va caure durant l'ús o va augmentar en qualsevol moment, no. Hi havia molt poc consum de corrent sobre les línies de senyal, però necessitaven 12 volts per activar el motor.

Pas 2: disseny

Disseny
Disseny
Disseny
Disseny
Disseny
Disseny
Disseny
Disseny

Per tant, només cal una connexió de contacte senzilla entre VCC i el pin de senyal, però com es fa dins del meu sistema. Es necessitarien dos relés per als contactes i un ESP8266 funcionaria per al controlador sense fils. Com que els relés poden requerir més corrent del que poden proporcionar els pins digitals, el millor és utilitzar un optoisolador entre el controlador i el relé. Això permetrà que un petit senyal encengui un commutador de corrent superior (en aquest cas, un transistor impulsat per la llum) i activi amb seguretat la bobina del relé. A més, un optoisolador aïlla el controlador de les puntes que es puguin formar quan s’allibera la bobina del relé i el camp magnètic s’ensorra. Afortunadament, existeixen mòduls de relés que ja contenen tots aquests circuits i per un preu bastant baix.

El llit serà l’alimentació del controlador i, per poder gestionar els 12 volts subministrats, necessitarem un convertidor variable. Un de molt barat s’ha enllaçat a continuació i funciona molt bé. La línia de 12V i les línies GND es connecten al costat d’entrada del convertidor i el costat regulat de 5 volts es connecta al VCC del NodeMCU i al pin VCC del mòdul de relé. La terra (-) del convertidor es connecta als pins GND tant el mòdul de relés com el NodeMCU.

El NodeMCU es connecta a IN1 mitjançant D1 (GPIO5) i IN2 mitjançant D2 (GPIO4). La línia de senyal ascendent del llit es connecta al terminal de cargol obert normalment per al relé 1 i la línia de senyal descendent es connecta al connector del bloc de terminals obert normalment del relé 2. Haureu de connectar el cable de 12 V que es connecta al costat d’entrada del convertidor Buck també a l’altra connexió del bloc de terminals per als AMB relés 1 i 2.

Parts

  • 1 - NodeMCU
  • 1 - Mòdul de relé de duel amb aïllament de corrent
  • 1 - Convertidor variable d'entrada / sortida
  • 1 - PCB de taulers de pa
  • Filferro de nucli de coure varat de calibre 22
  • 2 - cargols M3x 8

Pas 3: recinte

Recinte
Recinte

El recinte es pot trobar aquí:

Vaig dissenyar un armari senzill amb Tinkercad que permet que el cable de control del llit entri a la caixa entre els suports de descàrrega de tensió dins de la caixa. Aquí hi ha ranures per a una corbata amb cremallera que ajudarien a evitar que el cable llisqui, però en el meu cas l’ajust era molt ajustat i no el necessitava. La tapa es cargola amb 2 cargols M3x 8. Recomanaria penjar el codi i provar el sistema abans de muntar-lo al quadre.

He utilitzat cola calenta per mantenir les taules al seu lloc, però potser no sigui necessari.

Pas 4: Codi

El codi es pot trobar aquí:

NOTA: Aquest projecte utilitza la biblioteca pubsubclient que es pot afegir al gestor de biblioteques a l'IDE Arduino

El codi aquí és bastant bàsic i es va dissenyar basant-se en el tipus Cover MQTT de Home Assistant. La idea aquí és senzilla: quan premeu el botó amunt o avall de l’assistent domèstic, el relé adequat es tanca fins que es rep l’ordre O el sistema aconsegueix un temps d’activació màxim i s’atura.

El temps màxim s’entén com a precaució de seguretat en cas que l’usuari oblidi aturar-lo o si l’ordre s’ha enviat accidentalment i és poc probable que algú l’aturés. No volem que el relé s’encengui indefinidament ni cap problema inesperat amb el llit a causa del tancament prolongat del contacte.

Al meu codi, aquest temps d'espera és de 20 segons i es pot ajustar al bloc de variables globals a la part superior del codi.

Una segona precaució de seguretat era assegurar-me sempre que si estic activant un relé, sempre es crida una desactivació intencionada de l’altre, fins i tot si l’últim estat ja estava desactivat. No vull enviar 12v per les dues línies de senyal ja que no sé què farà al llit.

A part d'això, el llit publica que està disponible cada 60 segons i això és tot. Aquí no hi ha campanes ni xiulets. Com que el llit no té comentaris sobre la posició, no en podria tornar cap a l'Assistent per a la llar.

Pas 5: Exemple d’integració

Exemple d’integració
Exemple d’integració
Exemple d’integració
Exemple d’integració

El codi que vaig escriure utilitza MQTT per comunicar-se mitjançant WiFi i, per tant, es pot comunicar amb qualsevol hub o dispositiu d’automatització que utilitzi MQTT. Utilitzo Home Assistant que té un broker MQTT integrat. A continuació es mostra un exemple de la meva configuració HA.

A HA tinc un fitxer covers.yaml amb la següent definició:

- plataforma: mqtt

name: "Capçal de llit principal" command_topic: "master_bed_control / cmd" Availability_topic: "master_bed_control / Availability" qos: 0 retain: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " fora de línia "optimista: cert

Això em dóna una entrada a la meva interfície HA amb un botó amunt / aturat / avall configurat amb l'acció tal com s'ha descrit anteriorment.

A més, he definit dos botons del tauler de control de la capçalera (instrucció / publicació al bloc) per pujar i baixar el capçal. Els botons del tauler de control es defineixen com a sensors MQTT:

- plataforma: mqtt

state_topic: "bedside_cp1 / button5" name: Icona "Nightside CP1 Button 5": mdi: circle

- plataforma: mqtt

state_topic: "bedside_cp1 / button6" name: Icona "Nightside CP1 Button 6": mdi: circle

… i 4 regles d'automatització per quan es prem i es deixa anar cada botó. Quan es prem, l'ordre amunt o avall s'envia al llit en funció del botó que s'hagi activat; quan es deixa anar el botó, s'envia l'ordre stop:

- id: "1548308650383"

àlies: MBR Bedside CP Button 5a trigger: - entity_id: sensor.bedside_cp1_button_5 from: 'Off' plataforma: state to: 'On' condition: action: - data: entity_id: 'cover.master_bed_headboard' service: cover.open_cover - id: '1548308758911' àlies: MBR Bedside CP Button 5b trigger: - 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' àlies: 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 Nightside CP Button 6b trigger: - entity_id: sensor.bedside_cp1_button_6 from:' On 'platform: state to:' Off 'condition: action: - dades: entity_id: servei 'cover.master_bed_headboard': cover.stop_cover

Recomanat: