Table des matières:
- Étape 1: Découverte
- Étape 2: Concevoir
- Étape 3: Enceinte
- Étape 4: Coder
- Étape 5: Exemple d'intégration
Vidéo: Commande de tête de lit sans fil MQTT : 5 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Il y a quelques années, nous avons acheté un nouveau lit en mousse à mémoire de forme et, comme c'est le cas pour la plupart des lits, vous deviez également acheter l'une de leurs "bases approuvées" afin de conserver une garantie. Nous avons donc opté pour la base la moins chère qui comprenait également la possibilité de relever et d'abaisser la tête du lit. Quelques jours plus tard, notre matelas et notre base bon marché American Adjusts avec commandes filaires (une pour chaque côté du lit) ont été livrés et installés.
La première chose que nous avons remarquée, c'est que les cordons du showroom qui étaient beaux et longs n'étaient pas ce que nous avions sur notre lit ! Ceux de la salle d'exposition avaient des extensions. Ces rallonges n'étaient PAS incluses avec notre lit et assez intéressantes, personne n'était intéressé à nous vendre une paire de rallonges. Cela nous laissait des commandes qui atteignaient à peine le haut du lit et que nous devions retourner pour les utiliser.
En avoir pour son argent
Après environ 6 mois, nous remarquons que les colliers de décharge de traction sur l'un des contrôles commençaient à se déchirer. Quelques mois plus tard - fil nu. Avance rapide d'environ un an, l'une des commandes ne fonctionne plus et l'autre devient un peu nerveuse.
Encore une fois, personne n'était intéressé à nous vendre des remplacements. Alors ça m'a frappé !
« Attendez une putain de minute ! Ne suis-je pas en train de construire un système de domotique et de CONTRLE ? ! »
Étape 1: Découverte
Je voulais voir ce que je pouvais faire avec ce que j'avais alors j'ai démonté le contrôleur défectueux et wow ! il y avait beaucoup de merde là-dedans ! A quoi servaient tous ces trucs ? J'ai reculé et j'ai juste regardé les lignes entrant et sortant. J'ai pu voir qu'il y avait une ligne d'alimentation de 12 volts et une ligne de masse. Les deux autres lignes ressemblaient à des lignes de signal pour les deux boutons haut et bas. J'ai donc tenté ma chance et j'ai simplement branché l'alimentation 12v sur la ligne de signal "haut". Le lit a commencé à bouger ! J'ai ensuite déplacé mon câble de raccordement sur la ligne de signal "vers le bas" et le lit s'est effondré !
Dans la boîte, il y a des contacts pour 4 lignes de signal supplémentaires et 4 boutons supplémentaires. Ma meilleure hypothèse est que cette carte contrôleur est utilisée dans tous leurs modèles de base câblés et qu'ils placent simplement différentes plaques frontales sur la carte selon les besoins. Donc, j'avais une théorie de travail. J'ai testé la ligne d'alimentation pour voir si elle a plongé pendant l'utilisation ou a augmenté à tout moment - non. Il y avait très peu de courant sur les lignes de signal, mais elles nécessitaient 12 volts pour activer le moteur.
Étape 2: Concevoir
Donc, une simple connexion de contact entre VCC et la broche de signal chacun est tout ce qui est nécessaire, mais comment cela se fait-il dans mon système. Deux relais seraient nécessaires pour les contacts et un ESP8266 fonctionnerait pour le contrôleur sans fil. Étant donné que les relais peuvent nécessiter plus de courant que les broches numériques ne peuvent en fournir, il est préférable d'utiliser un optoisolateur entre le contrôleur et le relais. Cela permettra à un petit signal d'activer un interrupteur à courant plus élevé (dans ce cas, un transistor à commande lumineuse) et d'activer en toute sécurité la bobine du relais. De plus, un optoisolateur isole le contrôleur de toute pointe pouvant se former lorsque la bobine du relais est relâchée et que le champ magnétique s'effondre. Heureusement, il existe des modules relais qui contiennent déjà tous ces circuits et pour un prix assez bas.
Le lit sera l'alimentation électrique du contrôleur et pour gérer les 12 volts fournis, nous aurons besoin d'un convertisseur abaisseur variable. Un très bon marché a été lié ci-dessous et fonctionne à merveille. La ligne 12V et les lignes GND se connectent au côté entrée du convertisseur et le côté régulé 5 volts se connecte au VCC du NodeMCU et à la broche VCC sur le module relais. La masse (-) sur le convertisseur se connecte aux broches GND sur à la fois le module relais et le NodeMCU.
Le NodeMCU se connecte à IN1 à l'aide de D1 (GPIO5) et à IN2 à l'aide de D2 (GPIO4). La ligne de signal vers le haut sur le lit se connecte à la borne à vis normalement ouverte du relais 1 et la ligne de signal vers le bas se connecte au connecteur du bornier normalement ouvert du relais 2. Vous devrez connecter le fil 12v qui est connecté au côté entrée du convertisseur abaisseur également à l'autre connexion du bornier pour les DEUX relais 1 et 2.
les pièces
- 1 - NodeMCU
- 1 - Module de relais Duel avec isolation de courant
- 1 - Convertisseur buck entrée/sortie variable
- 1 - PCB de la planche à pain
- Fil de cuivre toronné de calibre 22
- 2 - vis M3x8
Étape 3: Enceinte
L'enceinte peut être trouvée ici:
J'ai conçu un boîtier simple avec Tinkercad qui permet au câble de commande du lit d'entrer dans la boîte entre les supports de décharge de traction à l'intérieur de la boîte. Il y a des fentes pour une attache zip ici qui aideraient à empêcher le câble de glisser, mais dans mon cas, l'ajustement était très ajusté et n'en avait pas besoin. Le couvercle est boulonné avec 2 vis M3x 8. Je recommanderais de télécharger le code et de tester le système avant de le monter dans la boîte.
J'ai utilisé de la colle chaude pour maintenir les planches en place, mais cela n'est peut-être pas nécessaire.
Étape 4: Coder
Le code peut être trouvé ici:
REMARQUE: ce projet utilise la bibliothèque pubsubclient qui peut être ajoutée dans le gestionnaire de bibliothèque de l'IDE Arduino
Le code ici est assez basique et a été conçu sur la base du type Cover MQTT dans Home Assistant. L'idée ici est simple: lorsque vous appuyez sur le bouton haut ou bas de l'assistant domestique, le relais approprié se ferme jusqu'à ce que la commande d'arrêt soit reçue OU que le système atteigne un temps d'activation maximum et s'arrête.
Le temps maximum est destiné à une mesure de sécurité au cas où l'utilisateur oublie de l'arrêter ou si la commande a été envoyée accidentellement et qu'il est peu probable que quelqu'un l'arrête. Nous ne voulons pas que le relais soit allumé indéfiniment ou qu'il y ait des problèmes inattendus avec le lit en raison d'une fermeture de contact prolongée.
Dans mon code, ce délai d'attente est de 20 secondes et peut être ajusté dans le bloc de variable globale en haut du code.
Une deuxième précaution de sécurité était de toujours s'assurer que si j'active un relais, une désactivation intentionnelle de l'autre est toujours appelée, même si le dernier état était déjà éteint. Je ne veux pas envoyer 12v sur les deux lignes de signal car je ne sais pas ce que cela fera au lit.
En dehors de cela, le lit publie qu'il est disponible toutes les 60 secondes et c'est tout. Pas de cloches ni de sifflets ici. Comme le lit n'a pas de retour de position, je n'ai pas pu en renvoyer à Home Assistant.
Étape 5: Exemple d'intégration
Le code que j'ai écrit utilise MQTT pour communiquer via WiFi et peut donc communiquer avec n'importe quel concentrateur ou appareil d'automatisation utilisant MQTT. J'utilise Home Assistant qui a un courtier MQTT intégré. Voici un exemple de ma configuration HA.
Dans HA, j'ai un fichier cover.yaml avec la définition suivante:
- plate-forme: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" Availability_topic: "master_bed_control/availability" qos: 0 keep: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " hors ligne" optimiste: vrai
Cela me donne une entrée dans mon interface HA avec un bouton haut/arrêt/bas défini avec l'action décrite ci-dessus.
De plus, j'ai défini deux boutons sur mon panneau de commande de chevet (Instructable / Blog Post) pour relever et abaisser la tête de lit. Les boutons du panneau de commande sont définis comme des capteurs MQTT:
- plate-forme: mqtt
state_topic: "bedside_cp1/button5" nom: "Bedside CP1 Button 5" icône: mdi:circle
- plate-forme: mqtt
state_topic: "bedside_cp1/button6" nom: "Bedside CP1 Button 6" icône: mdi:circle
… et 4 règles d'automatisation pour le moment où chaque bouton est enfoncé et relâché. Lorsqu'il est enfoncé, la commande de montée ou de descente est envoyée au lit selon le bouton qui a été activé, lorsque le bouton est relâché, la commande d'arrêt est envoyée:
- identifiant: '1548308650383'
alias: MBR Bedside CP Button 5a déclencheur: - entity_id: sensor.bedside_cp1_button_5 de: 'Off' plate-forme: état à: '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 de: 'On' platform: state to: 'Off' condition: action: - data: entity_id: service 'cover.master_bed_headboard': cover.stop_cover - id: '1548308863495' alias: MBR Bedside CP Button 6a trigger: - entity_id: sensor.bedside_cp1_button_6 de: 'Off' platform: state to: 'On' condition: action: - data: entity_id: ' service cover.master_bed_headboard': cover.close_cover - id: '1548308911467' alias: MBR Bedside CP Button 6b trigger: - entity_id: sensor.bedside_cp1_button_6 de: 'On' platform: state to: 'Off' condition: action: - données: entity_id: service 'cover.master_bed_headboard': cover.stop_cover
Conseillé:
Robot sans tête avec bras mobiles : 6 étapes (avec photos)
Robot sans tête avec bras mobiles : les instructables suivantes sont inspirées du bot sans tête d'Halloween. Vous pouvez trouver les instructions complètes sur la façon de fabriquer le bot à partir de carton ici. Pour le rendre plus vivant, j'ai une idée de faire bouger le bras qui tient la tête
Robot Arduino sans fil utilisant le module sans fil HC12 : 7 étapes
Robot Arduino sans fil utilisant le module sans fil HC12 : Salut les gars, bon retour. Dans mon article précédent, j'ai expliqué ce qu'est un circuit de pont en H, un circuit intégré de pilote de moteur L293D, un circuit de pilote de moteur L293D superposé pour piloter des pilotes de moteur à courant élevé et comment vous pouvez concevoir et fabriquer votre propre carte de pilote de moteur L293D
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch: 6 étapes
Point d'accès sans fil de 50 mètres de portée avec adaptateur sans fil USB TP Link WN7200ND sur Raspbian Stretch : Raspberry Pi est idéal pour créer des points d'accès sans fil sécurisés mais il n'a pas une bonne portée, j'ai utilisé un adaptateur sans fil USB TP Link WN7200ND pour l'étendre. Je veux partager comment le fairePourquoi est-ce que je veux utiliser un Raspberry Pi au lieu d'un routeur ?T
Système DIY de micro sans fil pour guitare sans fil : 4 étapes
DIY Wireless Mic to Wireless Guitar System: J'ai regardé des vidéos et des groupes et presque tous utilisent un système sans fil à la guitare. Devenir fou, bouger, marcher et faire ce qu'ils veulent sans le cordon alors je rêve d'en avoir un.. Mais.. pour moi maintenant c'est trop cher alors je suis arrivé à ça
Pirater une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : 4 étapes
Piratage d'une sonnette sans fil dans un interrupteur d'alarme sans fil ou un interrupteur marche/arrêt : j'ai récemment construit un système d'alarme et je l'ai installé dans ma maison. J'ai utilisé des interrupteurs magnétiques sur les portes et les ai câblés à travers le grenier. Les fenêtres étaient une autre histoire et leur câblage n'était pas une option. J'avais besoin d'une solution sans fil et c'est