Inhaltsverzeichnis:
- Schritt 1: Entdeckung
- Schritt 2: Design
- Schritt 3: Gehäuse
- Schritt 4: Code
- Schritt 5: Beispielintegration
Video: Kabellose MQTT-Bettkopfteilsteuerung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Vor einigen Jahren haben wir ein neues Memory-Foam-Bett angeschafft und wie bei den meisten Betten musste man auch eine der "zugelassenen Untergestelle" erwerben, um die Garantie zu erhalten. Also haben wir uns für die kostengünstigste Basis entschieden, die auch die Möglichkeit bietet, das Kopfende des Bettes anzuheben und abzusenken. Ein paar Tage später wurde unsere Matratze und unsere billige American Adjustables-Unterlage mit kabelgebundenen Bedienelementen (eine für jede Seite des Bettes) geliefert und eingerichtet.
Als erstes fiel uns auf, dass die schönen und langen Schnüre im Ausstellungsraum nicht das waren, was wir auf unserem Bett hatten! Die im Showroom hatten Erweiterungen. Diese Verlängerungen waren NICHT im Lieferumfang unseres Bettes enthalten und interessant genug, niemand wollte uns ein Paar Verlängerungskabel verkaufen. Dies ließ uns mit Bedienelementen zurück, die kaum die Oberseite des Bettes erreichten und die wir umdrehen mussten, um sie zu benutzen.
Sie bekommen, wofür Sie bezahlen
Nach ca. 6 Monaten stellen wir fest, dass die Zugentlastungsmanschetten an einer der Kontrollen zu reißen begannen. Ein paar Monate später - blanker Draht. Etwa ein Jahr später funktioniert eine der Steuerungen nicht mehr und die andere wird etwas unruhig.
Auch hier war niemand daran interessiert, uns Ersatz zu verkaufen. Dann hat es mich erwischt!
Warte eine verdammte Minute! Baue ich nicht ein Hausautomatisierungs- und STEUERsystem?!?
Schritt 1: Entdeckung
Ich wollte sehen, was ich mit dem, was ich hatte, machen kann, also nahm ich den defekten Controller auseinander und wow! da war viel scheiße drin! Wofür war das ganze Zeug? Ich trat einen Schritt zurück und sah mir nur die Linien an, die ein- und ausgingen. Ich konnte sehen, dass es eine 12-Volt-Versorgungsleitung und eine Masseleitung gab. Die anderen beiden Leitungen sahen aus wie Signalleitungen für die beiden Auf- und Ab-Tasten. Also habe ich eine Chance ergriffen und einfach die 12-V-Versorgung auf die "Up"-Signalleitung geschoben. Das Bett begann sich zu bewegen! Ich habe dann mein Überbrückungskabel auf die Signalleitung "unten" verlegt und das Bett ging runter!
In der Box befinden sich Kontakte für 4 weitere Signalleitungen und 4 weitere Taster. Meine beste Vermutung ist, dass diese Controller-Platine in allen kabelgebundenen Basismodellen verwendet wird und sie bei Bedarf einfach verschiedene Frontplatten über die Platine legen. Ich hatte also eine Arbeitstheorie. Ich habe die Versorgungsleitung getestet, um zu sehen, ob sie während des Gebrauchs eingetaucht oder zu irgendeinem Zeitpunkt aufgestockt wurde - nein. Es gab sehr wenig Stromaufnahme über die Signalleitungen, aber sie benötigten 12 Volt, um den Motor zu aktivieren.
Schritt 2: Design
Es wird also nur eine einfache Kontaktverbindung zwischen VCC und dem Signalstift benötigt, aber wie wird das in meinem System gemacht? Für die Kontakte wären zwei Relais erforderlich und für den drahtlosen Controller würde ein ESP8266 funktionieren. Da die Relais möglicherweise mehr Strom benötigen, als die digitalen Pins liefern können, ist es am besten, einen Optoisolator zwischen Controller und Relais zu verwenden. Dadurch kann ein kleines Signal einen Schalter mit höherem Strom (in diesem Fall einen lichtgesteuerten Transistor) einschalten und die Relaisspule sicher aktivieren. Außerdem isoliert ein Optoisolator den Controller von jeglichen Spitzen, die sich bilden können, wenn die Relaisspule losgelassen wird und das Magnetfeld zusammenbricht. Glücklicherweise gibt es Relaismodule, die all diese Schaltungen bereits enthalten und das zu einem ziemlich niedrigen Preis.
Das Bett wird die Stromversorgung für den Controller sein und um die gelieferten 12 Volt zu verarbeiten, benötigen wir einen variablen Abwärtswandler. Ein sehr preiswertes wurde unten verlinkt und funktioniert wunderbar. Die 12-V-Leitung und die GND-Leitungen sind mit der Eingangsseite des Konverters verbunden und die geregelte 5-Volt-Seite ist mit dem VCC der NodeMCU und dem VCC-Pin des Relaismoduls verbunden. Die Masse (-) des Konverters ist mit den GND-Pins an verbunden sowohl das Relaismodul als auch die NodeMCU.
Die NodeMCU verbindet sich mit IN1 über D1 (GPIO5) und IN2 mit D2 (GPIO4). Die Aufwärts-Signalleitung am Bett wird an die normalerweise offene Schraubklemme für Relais 1 und die Abwärts-Signalleitung an den normalerweise offenen Klemmenblockstecker von Relais 2 angeschlossen. Sie müssen das 12-V-Kabel, das an die Eingangsseite des Abwärtswandlers angeschlossen ist, auch an den anderen Klemmenblockanschluss für BEIDE Relais 1 und 2 anschließen.
Teile
- 1 - KnotenMCU
- 1 - Duel-Relais-Modul mit Stromtrennung
- 1 - Variabler Eingangs-/Ausgangs-Abwärtswandler
- 1 - Steckbrettplatine
- 22 Gauge verseilter Kupferkerndraht
- 2 - M3x 8 Schrauben
Schritt 3: Gehäuse
Die Anlage findet ihr hier:
Ich habe mit Tinkercad ein einfaches Gehäuse entworfen, das es ermöglicht, dass das Bettsteuerkabel zwischen Zugentlastungsklammern in der Box in die Box eingeführt wird. Es gibt hier Schlitze für einen Kabelbinder, die helfen würden, das Kabel am Verrutschen zu hindern, aber in meinem Fall war die Passform sehr eng und brauchte sie nicht. Die Abdeckung wird mit 2 M3x 8 Schrauben verschraubt. Ich würde empfehlen, den Code hochzuladen und das System zu testen, bevor Sie es in die Box einbauen.
Ich habe Heißkleber verwendet, um die Bretter an Ort und Stelle zu halten, aber dies ist möglicherweise nicht erforderlich.
Schritt 4: Code
Den Code finden Sie hier:
HINWEIS: Dieses Projekt verwendet die pubsubclient-Bibliothek, die im Bibliotheksmanager in der Arduino IDE hinzugefügt werden kann
Der Code hier ist ziemlich einfach und wurde basierend auf dem Cover MQTT-Typ in Home Assistant entworfen. Die Idee hier ist einfach: Wenn Sie im Home Assistant die Auf- oder Ab-Taste drücken, schließt das entsprechende Relais, bis der Stoppbefehl empfangen wird ODER das System eine maximale Aktivierungszeit erreicht und stoppt.
Die maximale Zeit dient als Sicherheitsvorkehrung für den Fall, dass der Benutzer vergisst, ihn zu stoppen oder wenn der Befehl versehentlich gesendet wurde und es unwahrscheinlich ist, dass jemand ihn stoppt. Wir möchten nicht, dass das Relais auf unbestimmte Zeit eingeschaltet wird oder unerwartete Probleme mit dem Bett aufgrund eines längeren Kontaktschlusses auftreten.
In meinem Code beträgt dieser Timeout 20 Sekunden und kann im globalen Variablenblock oben im Code angepasst werden.
Eine zweite Sicherheitsvorkehrung war, immer darauf zu achten, dass beim Aktivieren eines Relais immer eine bewusste Deaktivierung des anderen aufgerufen wird, auch wenn der letzte Zustand schon ausgeschaltet war. Ich möchte nicht 12 V über beide Signalleitungen senden, da ich nicht weiß, was das mit dem Bett macht.
Ansonsten veröffentlicht das Bett alle 60 Sekunden, dass es verfügbar ist und das wars. Kein Schnickschnack hier. Da das Bett keine Positionsrückmeldung hat, konnte ich keine an Home Assistant zurücksenden.
Schritt 5: Beispielintegration
Der von mir geschriebene Code verwendet MQTT, um über WLAN zu kommunizieren und kann daher mit jedem Automatisierungs-Hub oder -Gerät kommunizieren, das MQTT verwendet. Ich verwende Home Assistant, der über einen integrierten MQTT-Broker verfügt. Unten ist ein Beispiel für meine HA-Konfiguration.
In HA habe ich eine cover.yaml-Datei mit der folgenden Definition:
- Plattform: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" available_topic: "master_bed_control/availability" qos: 0 keep: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " offline" optimistisch: wahr
Dies gibt mir einen Eintrag in meiner HA-Schnittstelle mit einer Auf/Stop/Down-Taste mit der oben beschriebenen Aktion.
Zusätzlich habe ich zwei Tasten auf meinem Bedside Control Panel (Instructable / Blog Post) definiert, um das Kopfteil anzuheben und abzusenken. Die Tasten auf dem Bedienfeld sind als MQTT-Sensoren definiert:
- Plattform: mqtt
state_topic: "bedside_cp1/button5" Name: "Bedside CP1 Button 5" Symbol: mdi:circle
- Plattform: mqtt
state_topic: "bedside_cp1/button6" Name: "Bedside CP1 Button 6" Symbol: mdi:circle
… und 4 Automatisierungsregeln für das Drücken und Loslassen jeder Taste. Beim Drücken wird der Auf- oder Ab-Befehl an das Bett gesendet, je nachdem welche Taste aktiviert wurde, beim Loslassen der Taste der Stopp-Befehl:
- ID: '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: 'cover.master_bed_headboard' service: 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' condition: action: - Daten: Entity_id: 'cover.master_bed_headboard' Dienst: cover.stop_cover
Empfohlen:
MQTT Broker (Mosquitto) unter Windows installieren: 7 Schritte
Installation von MQTT Broker (Mosquitto) unter Windows: Was ist Broker? Der MQTT-Broker ist ein Datenverwaltungszentrum oder wird allgemein als "Server" bezeichnet. Der Mosquitto-Broker ist dafür verantwortlich, alle Nachrichten zu bearbeiten, Nachrichten zu filtern, zu entscheiden, wer daran interessiert ist und dann die
So richten Sie Mosquitto MQTT auf AWS ein: 8 Schritte
So richten Sie Mosquitto MQTT auf AWS ein: Hallo! Ich werde für meine IOT-Projekte einen privaten MQTT-Broker mit Passwort auf meinem AWS-Konto (amazon web service) einrichten. Um dies zu tun, habe ich ein kostenloses Konto bei AWS erstellt, das für 1 Jahr gültig ist, indem ich hierher gehe:
NodeMCU - MQTT-Basisbeispiel: 4 Schritte
NodeMCU - MQTT Basic Example: Diese Lektion zeigt die grundlegende Verwendung des MQTT-Protokolls auf dem NodeMCU-Board. Wir verwenden hier die MQTTBox als MQTT-Client und verwenden die NodeMCU, um die folgenden Operationen durchzuführen: outTopic“alle zwei Sekunden.Subscr
MQTT-Integration: 4 Schritte
MQTT-Integration: Unser Facebook-Post: https://www.facebook.com/IoTGuruLive/videos/359772791497906
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm - Reichweite bis zu 1 km - Sieben Ebenen: 7 Schritte
Kabellose Wasserstandsanzeige mit großer Reichweite und Alarm | Reichweite bis zu 1 km | Seven Levels: Sehen Sie es sich auf Youtube an: https://youtu.be/vdq5BanVS0YSie haben vielleicht viele kabelgebundene und kabellose Wasserstandsanzeigen gesehen, die eine Reichweite von 100 bis 200 Metern bieten. Aber in diesem anweisbaren werden Sie eine drahtlose Wasserstandsanzeige mit langer Reichweite sehen