Innholdsfortegnelse:
Video: Trådløs MQTT Sengegavlkontroll: 5 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
For noen år siden kjøpte vi en ny memory foam -seng, og som med de fleste senger måtte du også kjøpe en av deres "godkjente baser" for å opprettholde en garanti. Så vi valgte den billigste basen som også inkluderte muligheten til å heve og senke sengens hode. Noen dager senere ble madrassen og den billige basen til American Adjustables med kablede kontroller (en for hver side av sengen) levert og satt opp.
Det første vi la merke til var at ledningene i utstillingsrommet som var fine og lange ikke var det vi hadde på sengen vår! De i utstillingslokalet hadde utvidelser. Disse forlengelsene var IKKE inkludert i sengen vår og interessant nok, ingen var interessert i å selge oss et par skjøteledninger. Dette etterlot oss kontroller som knapt nådde toppen av sengen, og som vi måtte snu for å bruke.
Du får det du betaler for
Etter omtrent 6 måneder merker vi at strekkavlastningskrager på en av kontrollene begynte å rive. Noen måneder senere - bar ledning. Raskt fremover i omtrent et år, en av kontrollene fungerer ikke lenger, og den andre blir litt rykende.
Igjen, ingen var interessert i å selge oss erstatninger. Så slo det meg!
Vent litt! Jeg bygger ikke et hjemmeautomatiserings- og KONTROLLSYSTEM?!?
Trinn 1: Oppdagelse
Jeg ville se hva jeg kunne gjøre med det jeg hadde, så jeg tok den defekte kontrolleren og vips! det var mye dritt der inne! Hva var alt dette til? Jeg gikk tilbake og så bare på linjene som kom inn og ut. Jeg kunne se at det var en 12 volt forsyningsledning og en jordledning. De to andre linjene så ut som signallinjer for de to opp- og nedknappene. Så jeg tok en sjanse og hoppet nettopp 12v -forsyningen til "opp" -linjen. Sengen begynte å bevege seg! Jeg flyttet deretter hoppekabelen over til signallinjen "ned" og sengen gikk ned!
I boksen er det kontakter for ytterligere 4 signallinjer og 4 knapper. Mitt beste gjetning er at dette kontrollkortet brukes i alle deres kabelforbundne basismodeller, og de legger bare forskjellige ansiktsplater over brettet etter behov. Så jeg hadde en arbeidsteori. Jeg testet forsyningslinjen for å se om den dyppet under bruk eller pigget når som helst - nei. Det var veldig lite strømtrekk over signallinjene, men de krevde 12 volt for å aktivere motoren.
Trinn 2: Design
Så en enkel kontaktforbindelse mellom VCC og signalpinnen er alt som trengs, men hvordan gjøres det i systemet mitt. To reléer ville være nødvendig for kontaktene, og en ESP8266 ville fungere for den trådløse kontrolleren. Siden reléene kan kreve mer strøm enn de digitale pinnene kan levere, er det best å bruke en optoisolator mellom kontrolleren og reléet. Dette vil tillate et lite signal å slå på en høyere strømbryter (i dette tilfellet en lysdrevet transistor) og trygt aktivere reléspolen. Også en optoisolator isolerer kontrolleren fra eventuelle pigger som kan dannes når reléspolen slippes og magnetfeltet kollapser. Heldigvis finnes det relemoduler som allerede inneholder alt dette kretsløpet og til en ganske lav pris.
Sengen vil være strømforsyningen til kontrolleren, og for å håndtere de medfølgende 12 volt trenger vi en variabel buck -omformer. En veldig billig en er koblet nedenfor og fungerer vakkert. 12V-linjen og GND-linjene kobles til inngangssiden til omformeren, og den regulerte 5 volt-siden kobles til VCC på NodeMCU og VCC-pinnen på relemodulen. Bakken (-) på omformeren kobles til GND-pinnene på både relemodulen og NodeMCU.
NodeMCU kobles til IN1 ved bruk av D1 (GPIO5) og IN2 ved bruk av D2 (GPIO4). Signalledningen opp på sengen kobles til den normalt åpne skrueterminalen for relé 1, og den nedre signallinjen kobles til relé 2 -koblingen som vanligvis er åpen. Du må koble 12V -ledningen som er koblet til inngangssiden av bukkomformeren, til den andre klemmekoblingen for begge relé 1 og 2.
Deler
- 1 - NodeMCU
- 1 - Duellrelémodul med strømisolasjon
- 1 - Variabel input/output buck -omformer
- 1 - Breadboard PCB
- 22 gauge strandet kobberkjernetråd
- 2 - M3x 8 skruer
Trinn 3: Vedlegg
Kapslingen finner du her:
Jeg designet en enkel skap med Tinkercad som gjør at sengestyringskabelen kan komme inn i boksen mellom strekkavlastningsbraketter inne i boksen. Det er spor for glidelås her som vil hjelpe til med å unngå at kabelen glir, men i mitt tilfelle var passformen veldig tettsittende og trengte den ikke. Dekselet er boltet ned med 2 M3x 8 skruer. Jeg vil anbefale å laste opp koden og teste systemet før du monterer den i esken.
Jeg brukte varmt lim for å holde brettene på plass, men dette er kanskje ikke nødvendig.
Trinn 4: Kode
Koden finner du her:
MERK: Dette prosjektet bruker pubsubclient -biblioteket som kan legges til i Library Manager i Arduino IDE
Koden her er ganske grunnleggende og ble designet basert på Cover MQTT -typen i Home Assistant. Tanken her er enkel: Når du trykker på opp- eller ned -knappen i hjemmeassistenten, lukkes det riktige reléet til stoppkommandoen mottas ELLER systemet når en maksimal aktiveringstid og stopper.
Maksimal tid er ment som en sikkerhetsforanstaltning hvis brukeren glemmer å stoppe den eller hvis kommandoen ble sendt ved et uhell og det er lite sannsynlig at noen vil stoppe den. Vi ønsker ikke reléet på ubestemt tid eller uventede problemer med sengen på grunn av langvarig kontaktlukking.
I koden min er denne tidsavbruddet 20 sekunder og kan justeres i den globale variabelen øverst i koden.
En annen sikkerhetstiltak var å alltid sørge for at hvis jeg aktiverer det ene reléet, kalles det alltid en forsettlig deaktivering av det andre, selv om den siste tilstanden allerede var av. Jeg vil ikke sende 12v nedover begge signallinjene siden jeg ikke vet hva det vil gjøre med sengen.
Annet enn det, publiserer sengen at den er tilgjengelig hvert 60. sekund, og det er det. Ingen bjeller eller fløyter her. Siden sengen ikke har tilbakemelding om posisjon, kunne jeg ikke sende noen tilbake til Hjemmeassistent.
Trinn 5: Eksempel på integrasjon
Koden jeg skrev bruker MQTT til å kommunisere via WiFi og kan derfor kommunisere med alle automatiseringshubber eller enheter som bruker MQTT. Jeg bruker Home Assistant som har en innebygd MQTT -megler. Nedenfor er et eksempel på min HA -konfigurasjon.
I HA har jeg en covers.yaml -fil med følgende definisjon:
- 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 "optimistisk: sant
Dette gir meg en oppføring i mitt HA -grensesnitt med en opp/stopp/ned -knapp satt med handlingen som beskrevet ovenfor.
I tillegg har jeg definert to knapper på kontrollpanelet ved sengen (instruerbart / blogginnlegg) for å heve og senke hodegjerden. Knappene på kontrollpanelet er definert som MQTT -sensorer:
- plattform: mqtt
state_topic: "bedside_cp1/button5" navn: "Sengeknapp CP1 -knapp 5" -ikon: mdi: sirkel
- plattform: mqtt
state_topic: "bedside_cp1/button6" navn: "Sengeknapp CP1 -knapp 6" -ikon: mdi: sirkel
… og 4 automatiseringsregler for når hver knapp trykkes og slippes. Når den trykkes, sendes opp- eller ned -kommandoen til sengen, avhengig av hvilken knapp som ble aktivert, når knappen slippes, sendes stoppkommandoen:
- 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
Anbefalt:
Bolt - DIY trådløs ladingsklokke (6 trinn): 6 trinn (med bilder)
Bolt - DIY Trådløs ladingsklokke (6 trinn): Induktive ladninger (også kjent som trådløs lading eller trådløs lading) er en type trådløs kraftoverføring. Den bruker elektromagnetisk induksjon for å levere strøm til bærbare enheter. Den vanligste applikasjonen er Qi trådløs ladestasjon
Trådløs Arduino -robot ved bruk av HC12 trådløs modul: 7 trinn
Trådløs Arduino -robot som bruker HC12 trådløs modul: Hei folkens, velkommen tilbake. I mitt forrige innlegg forklarte jeg hva en H Bridge Circuit er, L293D motordriver IC, piggybacking L293D Motordriver IC for å kjøre motorer med høy strøm og hvordan du kan designe og lage ditt eget L293D motorførerkort
Lang rekkevidde, 1,8 km, Arduino til Arduino Trådløs kommunikasjon med HC-12 .: 6 trinn (med bilder)
Lang rekkevidde, 1,8 km, Arduino til Arduino Trådløs kommunikasjon med HC-12 .: I denne instruksen lærer du hvordan du kommuniserer mellom Arduinos over en lang avstand opp til 1,8 km i friluft. HC-12 er en trådløs seriell port kommunikasjonsmodul som er veldig nyttig, ekstremt kraftig og enkel å bruke. Først vil du lære
Komme i gang med AWS IoT Med trådløs temperatursensor ved bruk av MQTT: 8 trinn
Komme i gang med AWS IoT Med trådløs temperatursensor ved bruk av MQTT: I tidligere instrukser har vi gått gjennom forskjellige skyplattformer som Azure, Ubidots, ThingSpeak, Losant etc. Vi har brukt MQTT -protokollen for å sende sensordata til skyen i nesten hele skyplattformen. For mer informasjon
Hack en trådløs dørklokke til en trådløs alarmbryter eller av/på -bryter: 4 trinn
Hack en trådløs dørklokke til en trådløs alarmbryter eller på/av -bryter: Jeg har nylig bygget et alarmsystem og installert det i huset mitt. Jeg brukte magnetiske brytere på dørene og koblet dem gjennom loftet. Vinduene var en annen historie, og harde ledninger var ikke et alternativ. Jeg trengte en trådløs løsning, og dette er