Innehållsförteckning:
Video: Trådlös MQTT sänggavelkontroll: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
För några år sedan köpte vi en ny memory foam -säng och, som är fallet med de flesta sängar, var du tvungen att också köpa en av deras "godkända baser" för att behålla en garanti. Så vi valde den billigaste basen som också inkluderade möjligheten att höja och sänka sängens huvud. Några dagar senare levererades och installerades vår madrass och vår American Adjustables -bas med trådbundna kontroller (en för varje sida av sängen).
Det första vi märkte var att sladdarna i showroomet som var fina och långa inte var vad vi hade på vår säng! De i utställningslokalen hade tillägg. Dessa förlängningar ingick INTE i vår säng och intressant nog, ingen var intresserad av att sälja oss ett par förlängningskablar. Detta gav oss kontroller som knappt nådde toppen av sängen och som vi var tvungna att vända om för att använda.
Du får vad du betalar för
Efter cirka 6 månader märker vi att dragavlastningskragen på en av kontrollerna började riva. Några månader senare - bar tråd. Snabbspolning ungefär ett år, en av kontrollerna fungerar inte längre och den andra blir lite ryckig.
Återigen var ingen intresserad av att sälja ersättare till oss. Då slog det mig!
"Vänta en jäkla minut! Bygger jag inte ett hemautomatiserings- och KONTROLLSYSTEM?!?"
Steg 1: Upptäckt
Jag ville se vad jag kunde göra med det jag hade så jag tog den defekta kontrollapparaten och wow! det var mycket skit där inne! Vad var allt detta för? Jag klev tillbaka och tittade bara på linjerna som kom in och ut. Jag kunde se att det fanns en 12 volt matningsledning och en jordledning. De andra två raderna såg ut som signallinjer för de två upp- och nedknapparna. Så jag tog en chans och hoppade precis över 12V -strömförsörjningen till "upp" -linjen. Sängen började röra på sig! Jag flyttade sedan min bygelkabel över till "ned" -linjen och sängen gick ner!
I rutan finns kontakter för ytterligare 4 signalledningar och 4 knappar till. Min bästa gissning är att detta styrkort används i alla deras trådbundna basmodeller och de lägger bara olika ansiktsplattor över brädet efter behov. Så jag hade en arbetsteori. Jag testade matningsledningen för att se om den doppade under användning eller spikade när som helst - nej. Det var väldigt lite strömdragning över signalledningarna men de krävde 12 volt för att aktivera motorn.
Steg 2: Design
Så en enkel kontaktanslutning mellan VCC och signalstiftet är allt som behövs, men hur görs det i mitt system. Två reläer skulle krävas för kontakterna och en ESP8266 skulle fungera för den trådlösa styrenheten. Eftersom reläerna kan kräva mer ström än de digitala stiften kan leverera, är det bäst att använda en optoisolator mellan styrenheten och reläet. Detta gör att en liten signal kan slå på en högre strömbrytare (i detta fall en ljusdriven transistor) och säkert aktivera reläspolen. Dessutom isolerar en optoisolator regulatorn från alla spikar som kan bildas när reläspolen släpps och magnetfältet kollapsar. Lyckligtvis finns relämoduler som redan innehåller all denna krets och till ett ganska lågt pris.
Sängen kommer att vara strömförsörjningen för regulatorn och för att hantera de medföljande 12 volt behöver vi en variabel buck -omvandlare. En mycket billig sådan har länkats nedan och fungerar vackert. 12V-ledningen och GND-ledningarna ansluts till omvandlarens ingångssida och den reglerade 5 volt-sidan ansluter till VCC på NodeMCU och VCC-stiftet på relämodulen. (-) på omvandlaren ansluts till GND-stiften på både relämodulen och NodeMCU.
NodeMCU ansluter till IN1 med D1 (GPIO5) och IN2 med D2 (GPIO4). Uppsignallinjen på bädden ansluts till den normalt öppna skruvterminalen för relä 1 och den nedre signallinjen ansluts till relä 2 normalt öppet kopplingsplintanslutning. Du måste ansluta 12V -kabeln som är ansluten till ingångssidan på buck -omvandlaren också till den andra kopplingsplintanslutningen för Båda relä 1 och 2.
Delar
- 1 - NodeMCU
- 1 - Duellrelämodul med strömisolering
- 1 - Variabel input/output buck -omvandlare
- 1 - Brödbräda PCB
- 22 gauge strängad kopparkärntråd
- 2 - M3x 8 skruvar
Steg 3: Kapsling
Höljet hittar du här:
Jag konstruerade ett enkelt skåp med Tinkercad som gör att sängkontrollkabeln kan komma in i lådan mellan dragavlastningsfästen inuti lådan. Det finns platser för en dragkedja här som skulle hjälpa till att hålla kabeln från att glida, men i mitt fall var passformen väldigt tät och behövde den inte. Locket skruvas fast med 2 M3x 8 skruvar. Jag rekommenderar att du laddar upp koden och testar systemet innan du monterar den i lådan.
Jag använde varmt lim för att hålla brädorna på plats men det kanske inte är nödvändigt.
Steg 4: Kod
Koden finns här:
OBS: Detta projekt använder pubsubclient -biblioteket som kan läggas till i Library Manager i Arduino IDE
Koden här är ganska grundläggande och designades baserat på Cover MQTT -typen i Home Assistant. Tanken här är enkel: när du trycker på upp- eller nedknappen i hemassistenten stängs lämpligt relä tills stoppkommandot tas emot ELLER systemet når en maximal aktiveringstid och stannar.
Maxtiden är avsedd som en säkerhetsåtgärd om användaren glömmer att stoppa den eller om kommandot av misstag skickades och det är osannolikt att någon kommer att stoppa det. Vi vill inte ha reläet på obestämd tid eller några oväntade problem med sängen på grund av långvarig kontaktstängning.
I min kod är denna timeout 20 sekunder och kan justeras i det globala variabelblocket högst upp i koden.
En andra säkerhetsåtgärd var att alltid se till att om jag aktiverar det ena reläet alltid en avsiktlig avaktivering av det andra kallas, även om det sista läget redan var avstängt. Jag vill inte skicka 12v ner på båda signalledningarna eftersom jag inte vet vad det kommer att göra med sängen.
Förutom det publicerar sängen att den är tillgänglig var 60: e sekund och det är det. Inga klockor eller visselpipor här. Eftersom sängen inte har positionsåterkoppling kunde jag inte skicka tillbaka någon till Home Assistant.
Steg 5: Exempel på integration
Koden jag skrev använder MQTT för att kommunicera över WiFi och kan därför kommunicera med valfri automationshub eller enhet som använder MQTT. Jag använder Home Assistant som har en inbyggd MQTT -mäklare. Nedan är ett exempel på min HA -konfiguration.
I HA har jag en covers.yaml -fil med följande definition:
- plattform: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" availability_topic: "master_bed_control/availability" qos: 0 behold: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " offline "optimistiskt: sant
Detta ger mig en post i mitt HA -gränssnitt med en upp/stopp/ned -knapp inställd med åtgärden enligt beskrivningen ovan.
Dessutom har jag definierat två knappar på min sängkontrollpanel (instruerbar / blogginlägg) för att höja och sänka sänggaveln. Knapparna på kontrollpanelen definieras som MQTT -sensorer:
- plattform: mqtt
state_topic: "bedside_cp1/button5" namn: "sängkanten CP1 knapp 5" ikon: mdi: cirkel
- plattform: mqtt
state_topic: "bedside_cp1/button6" namn: "Sängkants -CP1 -knapp 6" -ikon: mdi: cirkel
… och 4 automatiseringsregler för när varje knapp trycks och släpps. När den trycks in skickas kommandot upp eller ner till sängen beroende på vilken knapp som aktiverades, när knappen släpps skickas stoppkommandot:
- 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: - data: entity_id: 'cover.master_bed_headboard' service: cover.stop_cover
Rekommenderad:
Trådlös Arduino -robot med HC12 trådlös modul: 7 steg
Trådlös Arduino -robot som använder HC12 trådlös modul: Hej killar, välkommen tillbaka. I mitt förra inlägg förklarade jag vad en H Bridge Circuit är, L293D motorförare IC, piggybacking L293D Motorförare IC för att köra högströmsmotordrivrutiner och hur du kan designa och göra din egen L293D -motorförarkort,
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Komma igång med AWS IoT Med trådlös temperatursensor med MQTT: 8 steg
Komma igång med AWS IoT med trådlös temperatursensor med MQTT: I tidigare instruktioner har vi gått igenom olika molnplattformar som Azure, Ubidots, ThingSpeak, Losant etc. Vi har använt MQTT -protokollet för att skicka sensordata till molnet i nästan hela molnplattformen. För mer information
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian -stretch: 6 steg
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian Stretch: Raspberry Pi är bra att skapa säkra trådlösa åtkomstpunkter men det har inte ett bra utbud, jag använde en TP Link WN7200ND trådlös adapter för att förlänga den. Jag vill dela hur jag gör det Varför vill jag använda en hallon pi istället för en router? T
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: 4 steg
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: Jag byggde nyligen ett larmsystem och installerade det i mitt hus. Jag använde magnetbrytare på dörrarna och kopplade dem via vinden. Fönstren var en annan historia och hårda kablar var inte ett alternativ. Jag behövde en trådlös lösning och det här är