Sisällysluettelo:
- Vaihe 1: Löytäminen
- Vaihe 2: Suunnittelu
- Vaihe 3: Kotelo
- Vaihe 4: Koodi
- Vaihe 5: Esimerkki integroinnista
Video: Langaton MQTT -sängynpäätyohjaus: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Muutama vuosi sitten ostimme uuden vaahtomuovisängyn, ja kuten useimpien sänkyjen tapauksessa, sinun oli ostettava myös yksi niiden "hyväksytyistä alustoista" takuun säilyttämiseksi. Joten valitsimme halvimman pohjan, joka sisälsi myös kyvyn nostaa ja laskea sängyn päätä. Muutamaa päivää myöhemmin toimitettiin patja ja amerikkalainen säädettävä halpa pohja, jossa on langalliset ohjaimet (yksi sängyn kummallekin puolelle).
Ensimmäinen asia, jonka huomasimme, oli se, että showroomin mukavat ja pitkät johdot eivät olleet sängyssämme! Näyttelytiloissa oli laajennuksia. Nämä laajennukset EIVÄT sisältyneet vuoteeseemme ja olivat tarpeeksi mielenkiintoisia, kukaan ei ollut kiinnostunut myymään meille pari jatkojohtoa. Tämä jätti meille säätimet, jotka tuskin saavuttivat sängyn yläosan ja jotka meidän oli käännettävä käyttämään.
Saat mitä maksat
Noin 6 kuukauden kuluttua huomaamme, että yhden kontrollin vedonpoistajan kaulukset alkoivat repeytyä. Muutamaa kuukautta myöhemmin - paljas lanka. Nopeasti eteenpäin noin vuosi, yksi ohjaimista ei enää toimi ja toinen on hieman nykimässä.
Jälleen kukaan ei ollut kiinnostunut myymään meille korvaavia tuotteita. Sitten se iski minuun!
Odota vitun minuutti! Enkö ole rakentamassa kodin automaatio- ja ohjausjärjestelmää?!?
Vaihe 1: Löytäminen
Halusin nähdä, mitä voisin tehdä sillä, mitä minulla oli, joten otin viallisen ohjaimen appart ja wow! siellä oli paljon paskaa! Mihin tämä kaikki oli tarkoitettu? Astuin taaksepäin ja katsoin vain sisään ja ulos tulevia linjoja. Huomasin, että siellä oli 12 voltin syöttöjohto ja maadoitusjohto. Muut kaksi riviä näyttivät signaalilinjoilta kahdelle ylös- ja alas -painikkeelle. Joten, otin mahdollisuuden ja hyppäsin vain 12 voltin syöttöä "ylös" -signaalilinjaan. Sänky alkoi liikkua! Sitten siirrän hyppyjohtimeni "alas" -signaalilinjaan ja sänky meni alas!
Laatikossa on kontakteja vielä 4 signaalilinjalle ja 4 painikkeelle. Paras arvaukseni on, että tätä ohjainkorttia käytetään kaikissa langallisissa perusmalleissaan ja he asettavat vain erilaisia etulevyjä levyn päälle tarpeen mukaan. Minulla oli siis toimiva teoria. Testasin syöttöjohtoa nähdäkseni, onko se kastunut käytön aikana vai piikki milloin tahansa - ei. Signaalilinjojen yli kului hyvin vähän virtaa, mutta ne vaativat 12 volttia moottorin aktivoimiseksi.
Vaihe 2: Suunnittelu
Joten yksinkertainen kosketusyhteys VCC: n ja signaalitapin välillä on kaikki mitä tarvitaan, mutta miten se tapahtuu järjestelmässäni. Koskettimia varten tarvitaan kaksi relettä ja ESP8266 toimii langattomassa ohjaimessa. Koska releet voivat vaatia enemmän virtaa kuin digitaaliset nastat voivat syöttää, on parasta käyttää optoerotinta ohjaimen ja releen välillä. Tämä mahdollistaa pienen signaalin käynnistää suuremman virtakytkimen (tässä tapauksessa valokäyttöisen transistorin) ja aktivoida relekelan turvallisesti. Lisäksi optoeristin eristää ohjaimen kaikista piikeistä, joita voi muodostua, kun relekela vapautetaan ja magneettikenttä romahtaa. Onneksi on olemassa relemoduuleja, jotka sisältävät jo kaiken tämän piirin ja melko alhaisella hinnalla.
Sängystä tulee ohjaimen virtalähde, ja tarvittavan 12 voltin käsittelemiseksi tarvitsemme muuttuvan buck -muuntimen. Erittäin edullinen on linkitetty alla ja toimii kauniisti. 12V-linja ja GND-linjat kytkeytyvät muuntimen tulopuolelle ja säädetty 5 voltin puoli NodeMCU: n VCC: hen ja relemoduulin VCC-nastaan. Muuntimen maa (-) kytketään sekä relemoduuli että NodeMCU.
NodeMCU muodostaa yhteyden IN1: een käyttämällä D1 (GPIO5) ja IN2 käyttäen D2 (GPIO4). Sängyn yläsignaalijohto kytkeytyy releen 1 normaalisti auki olevaan ruuviliittimeen ja alasignaalijohto releeseen 2 normaalisti auki olevaan riviliittimen liittimeen. Sinun on kytkettävä 12 V: n johto, joka on liitetty buck -muuntimen tulopuolelle, myös toiseen riviliittimen liitäntään molemmille releille 1 ja 2.
Osat
- 1 - NodeMCU
- 1 - Duel Relay Module, jossa on virraneristys
- 1 - Muuttuva tulo/lähtö buck -muunnin
- 1 - Leipälevyn piirilevy
- 22 -mittainen kuparilankalanka
- 2 - M3x 8 ruuvia
Vaihe 3: Kotelo
Kotelo löytyy täältä:
Suunnittelin yksinkertaisen kotelon, jossa oli Tinkercad, jonka avulla sängynohjauskaapeli pääsee laatikkoon laatikon sisällä olevien vedonpoistokannattimien väliin. Täällä on aukkoja vetoketjua varten, jotka auttaisivat estämään kaapelin liukumisen, mutta minun tapauksessani istuvuus oli erittäin tiukka eikä tarvinnut sitä. Kansi ruuvataan kiinni 2 M3x 8 ruuvilla. Suosittelen lataamaan koodin ja testaamaan järjestelmän ennen sen asentamista laatikkoon.
Pidin levyjä paikallaan kuumaliimalla, mutta tämä ei välttämättä ole tarpeen.
Vaihe 4: Koodi
Koodi löytyy täältä:
HUOMAUTUS: Tämä projekti käyttää pubsubclient -kirjastoa, joka voidaan lisätä Arduino IDE: n kirjastonhallintaan
Koodi on melko yksinkertainen ja suunniteltu Home Assistantin Cover MQTT -tyypin perusteella. Idea on yksinkertainen: kun painat kotiavustajan ylös- tai alas -painiketta, sopiva rele sulkeutuu, kunnes pysäytyskomento on vastaanotettu TAI järjestelmä saavuttaa maksimiaktivointiajan ja pysähtyy.
Enimmäisaika on tarkoitettu varotoimeksi siinä tapauksessa, että käyttäjä unohti pysäyttää sen tai jos komento lähetettiin vahingossa, ja on epätodennäköistä, että joku pysäyttää sen. Emme halua releen olevan päällä loputtomiin tai odottamattomia ongelmia sängyssä koskettimien pitkäaikaisen sulkemisen vuoksi.
Koodissani tämä aikakatkaisu on 20 sekuntia ja sitä voidaan säätää koodin yläosassa olevassa globaalimuuttujalohkossa.
Toinen turvatoimenpide oli aina varmistaa, että jos aktivoin yhden releen, toisen tahaton deaktivointi kutsutaan aina, vaikka viimeinen tila olisi jo pois päältä. En halua lähettää 12v alas molempia signaalilinjoja, koska en tiedä mitä se tekee sängylle.
Muuten sänky julkaisee, että se on saatavilla 60 sekunnin välein, ja se on siinä. Täällä ei ole kelloja tai pillejä. Koska sängyssä ei ole sijaintitietoa, en voinut lähettää mitään takaisin Home Assistantille.
Vaihe 5: Esimerkki integroinnista
Kirjoittamani koodi käyttää MQTT: tä kommunikoidakseen WiFi -yhteyden kautta ja voi siksi kommunikoida minkä tahansa automaatiokeskuksen tai laitteen kanssa, joka käyttää MQTT: tä. Käytän Home Assistantia, jossa on sisäänrakennettu MQTT -välittäjä. Alla on esimerkki HA -kokoonpanostani.
HA: ssa minulla on cover.yaml -tiedosto, jolla on seuraava määritelmä:
- alusta: mqtt
name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" saatavuus_topic: "master_bed_control/saatavuus" qos: 0 keep: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: offline "optimistinen: totta
Tämä antaa minulle yhden merkinnän HA -käyttöliittymässäni, jossa on ylös/pysäytys/alas -painike, jolla on yllä kuvattu toiminto.
Lisäksi olen määritellyt kaksi painiketta Bedside -ohjauspaneelissani (Instructable / Blog Post) nostaaksesi ja laskeaksesi päätyyn. Ohjauspaneelin painikkeet määritellään MQTT -antureiksi:
- alusta: mqtt
state_topic: "bedside_cp1/button5" name: "Bedside CP1 Button 5" -kuvake: mdi: ympyrä
- alusta: mqtt
state_topic: "bedside_cp1/button6" name: "Bedside CP1 Button 6" -kuvake: mdi: ympyrä
… Ja 4 automaatiosääntöä, kun kutakin painiketta painetaan ja vapautetaan. Painamalla ylös- tai alas -komento lähetetään sängylle sen mukaan, mikä painike on aktivoitu, kun painike vapautetaan, pysäytyskomento lähetetään:
- 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: toiminto: - data: entity_id: 'cover.master_bed_headboard' service: cover.stop_cover
Suositeltava:
Kuinka tehdä langaton tinapurkkipuhelin! (Arduino Walkie Talkie): 7 vaihetta (kuvilla)
Kuinka tehdä langaton tinapurkkipuhelin! (Arduino Walkie Talkie): Juuri eilen olin keskellä erittäin tärkeää puhelua, kun banaanipuhelin lakkasi toimimasta! Olin niin turhautunut. Se on viimeinen kerta, kun jätän puhelun tyhmän puhelimen takia! (Jälkeenpäin ajateltuna olen saattanut olla hieman vihainen
Langaton polkupyörään asennettu Bluetooth -kaiutin: 11 vaihetta (kuvilla)
Langaton polkupyörään asennettu Bluetooth -kaiutin: Hei! Tässä ohjeessa näytän sinulle, kuinka olen rakentanut langattoman polkupyörään asennetun Bluetooth -kaiuttimen. Täytyy sanoa, että tämä on ehkä yksi suosikkiprojekteistani tähän mennessä. Se näyttää hyvältä, sillä on upea ääni ja futuristinen ulkonäkö! Kuten al
Helppo kallistettava värinvaihto Langaton Rubikin kuutiolamppu: 10 vaihetta (kuvilla)
Helppo kallistuspohjainen värinvaihto langaton Rubikin kuutiolamppu: Tänään aiomme rakentaa tämän mahtavan Rubikin kuutionmuotoisen lampun, joka muuttaa väriä sen mukaan, kumpi puoli on ylöspäin. Kuutio toimii pienellä LiPo-akulla, joka on ladattu tavallisella mikro-usb-kaapelilla, ja testissäni akku kestää useita päiviä. Tämä
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
Viidenkymmenen metrin kantaman langaton tukiasema TP -linkillä WN7200ND langaton USB -sovitin raspbian -venytyksellä: 6 vaihetta
Viidenkymmenen metrin kantaman langaton tukiasema, jossa on TP -linkki WN7200ND langaton USB -sovitin Raspbian Stretchillä: Raspberry Pi on loistava suojattujen langattomien tukiasemien luomiseen, mutta sillä ei ole hyvää kantamaa. Haluan jakaa miten se tehdäänMiksi haluan käyttää vadelmapiä reitittimen sijaan? T