Kazalo:

Brezžični nadzor vzglavja postelje MQTT: 5 korakov (s slikami)
Brezžični nadzor vzglavja postelje MQTT: 5 korakov (s slikami)

Video: Brezžični nadzor vzglavja postelje MQTT: 5 korakov (s slikami)

Video: Brezžični nadzor vzglavja postelje MQTT: 5 korakov (s slikami)
Video: AOSEED X-MAKER 3D Printer: The Complete Review & Test // Best 3D Printer for Beginners? 2024, Julij
Anonim
Brezžični nadzor vzglavja postelje MQTT
Brezžični nadzor vzglavja postelje MQTT
Brezžični nadzor vzglavja postelje MQTT
Brezžični nadzor vzglavja postelje MQTT

Pred nekaj leti smo kupili novo posteljo iz spominske pene in, tako kot pri večini postelj, ste morali za ohranitev garancije kupiti tudi eno od njihovih "odobrenih podlag". Zato smo se odločili za najcenejšo podlago, ki je vključevala tudi možnost dviganja in spuščanja vzglavja postelje. Nekaj dni kasneje je bila dostavljena in nameščena naša vzmetnica in naša poceni podlaga American Adjustables z žičnimi krmilniki (po ena za vsako stran postelje).

Najprej smo opazili, da lepe in dolge vrvice v razstavnem prostoru niso bile tiste, ki smo jih imeli na postelji! Tisti v razstavnem prostoru so imeli podaljške. Te podaljške NISO vključene v našo posteljo in so bile dovolj zanimive, nihče ni bil zainteresiran, da bi nam prodal par podaljševalnih kablov. To nam je pustilo komande, ki so komaj dosegle vrh postelje in ki smo jih morali obrniti za uporabo.

Dobiš tisto, za kar plačaš

Po približno šestih mesecih opazimo, da so se ovratnice za razbremenitev ene od kontrol začele trgati. Nekaj mesecev kasneje - gola žica. Hitro naprej približno eno leto, ena od kontrol ne deluje več, druga pa se nekoliko trza.

Spet nihče ni bil zainteresiran za prodajo nadomestkov. Potem me je zadelo!

Počakaj prekleto minuto! Ali ne gradim sistema za avtomatizacijo in nadzor doma?!?

1. korak: Odkritje

Odkritje
Odkritje
Odkritje
Odkritje

Želel sem videti, kaj lahko naredim s tem, kar sem imel, zato sem vzel okvarjen apartma krmilnika in wow! tam je bilo veliko sranja! Za kaj so bile vse te stvari? Umaknil sem se in samo pogledal črte, ki so prihajale in odhajale. Videl sem, da obstaja 12 -voltni napajalni vod in ozemljitveni vod. Drugi dve vrstici sta bili videti kot signalni liniji za dva gumba gor in dol. Torej sem izkoristil priložnost in 12m napetost prestavil na signalno linijo "navzgor". Postelja se je začela premikati! Nato sem mostiček prestavil na signalno linijo "navzdol" in postelja se je spustila!

V škatli so stiki za še 4 signalne linije in še 4 gumbe. Moje najboljše ugibanje je, da se ta krmilna plošča uporablja v vseh njihovih žičnih osnovnih modelih in po potrebi samo položijo različne plošče na ploščo. Torej sem imel delovno teorijo. Napajalni vod sem preizkusil, ali je med uporabo potopljen ali kadar koli narastel - ne. Tok signalnih vodov je bil zelo majhen, vendar so za aktiviranje motorja potrebovali 12 voltov.

2. korak: Oblikovanje

Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje
Oblikovanje

Torej je preprosta kontaktna povezava med VCC in signalnim zatičem vse, kar je potrebno, kako pa se to izvede v mojem sistemu. Za stike bi bila potrebna dva releja, ESP8266 pa bi deloval za brezžični krmilnik. Ker lahko releji zahtevajo več toka, kot ga lahko napajajo digitalni zatiči, je najbolje, da med krmilnikom in relejem uporabite optoizolator. To bo majhnemu signalu omogočilo vklop stikala z višjim tokom (v tem primeru tranzistor z lahkim pogonom) in varno aktiviranje tuljave releja. Tudi optični izolator krmilnik izolira od vseh konic, ki lahko nastanejo, ko se sprosti relejna tuljava in se zruši magnetno polje. Na srečo obstajajo relejni moduli, ki že vsebujejo to vezje in za precej nizko ceno.

Postelja bo napajalnik za krmilnik, zato, da lahko obvladamo priloženih 12 voltov, potrebujemo pretvornik z variabilno vrednostjo. Spodaj je bila povezana zelo poceni in lepo deluje. 12V vod in GND vodi se povežejo z vhodno stranjo pretvornika, regulirana 5 voltna stran pa se poveže z VCC NodeMCU in VCC nožico na relejnem modulu. relejni modul in NodeMCU.

NodeMCU se poveže z IN1 z uporabo D1 (GPIO5) in IN2 z uporabo D2 (GPIO4). Signalna linija navzgor na postelji se poveže z normalno odprtim vijačnim priključkom za rele 1, spodnja signalna linija pa na rele 2, ki je normalno odprt. 12V žico, ki je priključena na vhodno stran pretvornika, morate priključiti tudi na drugo priključno sponko za oba releja 1 in 2.

Deli

  • 1 - NodeMCU
  • 1 - Duel relejni modul s trenutno izolacijo
  • 1 - Pretvornik spremenljivega vhoda/izhoda
  • 1 - PCB plošče
  • Bakrena žica z navojem 22
  • 2 - vijaki M3x 8

3. korak: ohišje

Ohišje
Ohišje

Ohišje najdete tukaj:

Oblikoval sem preprosto ohišje s Tinkercadom, ki omogoča, da krmilni kabel za posteljo vstopi v škatlo med nosilci za razbremenitev znotraj škatle. Tu so reže za zadrgo, ki bi pomagale preprečiti drsenje kabla, vendar je bil v mojem primeru zelo prilegajoč in ga ni potreboval. Pokrov je pritrjen z 2 vijakoma M3x 8. Priporočam, da kodo naložite in preizkusite sistem, preden jo namestite v škatlo.

Za pritrditev plošč sem uporabil vroče lepilo, vendar to morda ni potrebno.

4. korak: Koda

Kodo najdete tukaj:

OPOMBA: Ta projekt uporablja knjižnico pubsubclient, ki jo lahko dodate v upravitelju knjižnice v IDE -ju Arduino

Koda tukaj je precej osnovna in je bila zasnovana na podlagi vrste Cover MQTT v Home Assistantu. Zamisel je preprosta: ko pritisnete gumb gor ali dol v domačem asistentu, se ustrezni rele zapre, dokler ne prejmete ukaza za zaustavitev ALI sistem doseže največji čas aktiviranja in se ustavi.

Najdaljši čas je mišljen kot varnostni ukrep, če ga uporabnik pozabi ustaviti ali če je bil ukaz po nesreči poslan in je malo verjetno, da bi ga kdo ustavil. Ne želimo, da se rele vklopi za nedoločen čas ali kakršne koli nepričakovane težave s posteljo zaradi dolgotrajnega zapiranja stikov.

V moji kodi je ta časovna omejitev 20 sekund in jo je mogoče prilagoditi v bloku globalne spremenljivke na vrhu kode.

Drugi varnostni ukrep je bil vedno zagotoviti, da se pri aktiviranju enega releja vedno pokliče namerno izklop drugega, tudi če je bilo zadnje stanje že izklopljeno. Nočem poslati 12V po obeh signalnih linijah, ker ne vem, kaj bo to naredilo s posteljo.

Razen tega postelja objavi, da je na voljo vsakih 60 sekund in to je to. Tu ni nobenih zvoncev in piščal. Ker postelja nima povratnih informacij o položaju, jih nisem mogla poslati nazaj pomočniku na dom.

5. korak: Primer integracije

Primer integracije
Primer integracije
Primer integracije
Primer integracije

Koda, ki sem jo napisal, uporablja MQTT za komunikacijo prek WiFi in zato lahko komunicira s katerim koli vozliščem za avtomatizacijo ali napravo, ki uporablja MQTT. Uporabljam Home Assistant, ki ima vgrajenega posrednika MQTT. Spodaj je primer moje konfiguracije HA.

V HA imam datoteko opens.yaml z naslednjo definicijo:

- platforma: mqtt

name: "Vzglavje glavne postelje" 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: brez povezave "optimistično: res

To mi daje en vnos v vmesniku HA z nastavljenim gumbom gor/stop/dol z zgoraj opisanim dejanjem.

Poleg tega sem na svoji nočni nadzorni plošči definiral dva gumba (navodila za uporabo / objava v spletnem dnevniku) za dvigovanje in spuščanje vzglavja. Gumbi na nadzorni plošči so definirani kot senzorji MQTT:

- platforma: mqtt

state_topic: "posteljna_cp1/button5" ime: "Ikona tipke CP1 ob postelji 5": mdi: krog

- platforma: mqtt

state_topic: "postelja_cp1/button6" ime: "Ikona gumba CP1 ob postelji 6": mdi: krog

… In 4 pravila avtomatizacije, ko pritisnete in spustite vsak gumb. Ko pritisnete, se na posteljo pošlje ukaz gor ali dol, odvisno od tega, kateri gumb je bil aktiviran, ko se gumb sprosti, se pošlje ukaz stop:

- id: '1548308650383'

vzdevek: MBR Nočni gumb CP za gumb 5a: - sprožilec_sistema: sensor.bedside_cp1_button_5 iz: 'Izklopljena' platforma: stanje v: 'Vklopljeno' stanje: dejanje: - podatki: entitetni_id: 'cover.master_bed_headboard' storitev: cover.open_cover - id: '1548308758911' vzdevek: MBR Nočni CP gumb 5b sprožilec: - entity_id: sensor.bedside_cp1_button_5 iz: 'On' platforma: stanje v: 'Off' stanje: dejanje: - data: entity_id: 'cover.master_bed_headboard' storitev: cover.stop_cover - id: '1548308863495' vzdevek: MBR nočni gumb CP CP 6a sprožilec: - entity_id: sensor.bedside_cp1_button_6 iz: 'Off' platforma: stanje v: 'On' pogoj: dejanje: - data: entity_id: ' cover.master_bed_headboard 'storitev: cover.close_cover - id:' 1548308911467 'vzdevek: sprožilec gumba CP za posteljo MBR 6b: - entity_id: sensor.bedside_cp1_button_6 od:' On 'platforma: stanje do:' Off 'stanje: dejanje: - data: entity_id: 'cover.master_bed_headboard' storitev: cover.stop_cover

Priporočena: