Sadržaj:

Bežična kontrola uzglavlja kreveta MQTT: 5 koraka (sa slikama)
Bežična kontrola uzglavlja kreveta MQTT: 5 koraka (sa slikama)

Video: Bežična kontrola uzglavlja kreveta MQTT: 5 koraka (sa slikama)

Video: Bežična kontrola uzglavlja kreveta MQTT: 5 koraka (sa slikama)
Video: Даже капсульные отели — это круто👍Сибуя, Токио. 2024, Srpanj
Anonim
Bežična kontrola uzglavlja kreveta za krevet MQTT
Bežična kontrola uzglavlja kreveta za krevet MQTT
Bežična kontrola uzglavlja kreveta za krevet MQTT
Bežična kontrola uzglavlja kreveta za krevet MQTT

Prije nekoliko godina kupili smo novi krevet od memorijske pjene i, kao što je slučaj s većinom kreveta, morali ste kupiti i jednu od njihovih "odobrenih baza" kako biste održali jamstvo. Stoga smo se odlučili za najjeftiniju bazu koja je također uključivala mogućnost podizanja i spuštanja glave kreveta. Nekoliko dana kasnije isporučen je i postavljen naš madrac i naša jeftina baza American Adjustables sa žičanim kontrolama (po jedna za svaku stranu kreveta).

Prvo što smo primijetili bilo je da lijepi i dugi kabeli u izložbenom prostoru nisu bili ono što smo imali na svom krevetu! Oni u izložbenom prostoru imali su nastavke. Ova proširenja NISU uključena u naš krevet i dovoljno su zanimljiva, nitko nije bio zainteresiran za prodaju par produžnih kabela. To nam je ostavilo kontrole koje su jedva dopirale do vrha kreveta i koje smo morali okrenuti na korištenje.

Koliko platiš, toliko dobiješ

Nakon otprilike 6 mjeseci primijetili smo da su se ogrlice za rasterećenje na jednoj od kontrola počele trgati. Nekoliko mjeseci kasnije - gola žica. Brzo unaprijed oko godinu dana, jedna od kontrola više ne radi, a druga se pomalo trza.

Opet, nitko nije bio zainteresiran za prodaju zamjena. Onda me pogodilo!

Čekaj prokletu minutu! Zar ne gradim sustav kućne automatizacije i upravljanja?!?

Korak 1: Otkriće

Otkriće
Otkriće
Otkriće
Otkriće

Htio sam vidjeti što mogu učiniti s onim što imam, pa sam uzeo neispravan apartman kontrolera i wow! bilo je puno sranja unutra! Čemu su služile sve ove stvari? Odmaknuo sam se i samo pogledao redove koji su ulazili i izlazili. Mogao sam vidjeti da postoji opskrbni vod od 12 volti i uzemljenje. Druge dvije linije izgledale su kao signalne linije za dva gumba za gore i dolje. Stoga sam iskoristio priliku i jednostavno preskočio napajanje od 12 V na signalnu liniju "gore". Krevet se počeo micati! Zatim sam premjestio svoju kratkospojnu žicu na signalnu liniju "dolje" i krevet se spustio!

U kutiji se nalaze kontakti za još 4 signalne linije i još 4 gumba. Moja je najbolja pretpostavka da se ova upravljačka ploča koristi u svim njihovim žičanim osnovnim modelima i da samo stavljaju različite ploče na ploču prema potrebi. Dakle, imao sam radnu teoriju. Testirao sam opskrbnu liniju da vidim je li se tijekom uporabe umočio ili u bilo kojem trenutku zabio - ne. Po signalnim vodovima bilo je jako malo struje, ali za aktiviranje motora bilo im je potrebno 12 volti.

Korak 2: Dizajn

Oblikovati
Oblikovati
Oblikovati
Oblikovati
Oblikovati
Oblikovati
Oblikovati
Oblikovati

Dakle, jednostavna kontaktna veza između VCC -a i signalnog pina je sve što je potrebno, ali kako se to radi u mom sustavu. Za kontakte će biti potrebna dva releja, a ESP8266 će raditi za bežični kontroler. Budući da releji mogu zahtijevati više struje nego što digitalni pinovi mogu opskrbiti, najbolje je koristiti optoizolator između regulatora i releja. To će omogućiti malom signalu da uključi prekidač veće struje (u ovom slučaju tranzistor sa svjetlosnim pogonom) i sigurno aktivirati zavojnicu releja. Također, optoizolator izolira kontroler od bilo kakvih šiljaka koji mogu nastati pri otpuštanju zavojnice releja i kolapsu magnetskog polja. Srećom, postoje relejni moduli koji već sadrže sve ove sklopove i za prilično nisku cijenu.

Krevet će biti izvor napajanja za kontroler, a da bismo mogli podnijeti isporučenih 12 volti, trebat će nam promjenjivi pretvarač dolara. Vrlo jeftin je dolje povezan i lijepo radi. Linija od 12 V i GND vodiči spajaju se na ulaznu stranu pretvarača, a regulirana strana od 5 V povezuje se s VCC NodeMCU-a i VCC pinom na relejnom modulu. Uzemljenje (-) na pretvaraču povezuje se s GND pinovima na i relejni modul i NodeMCU.

NodeMCU se povezuje s IN1 pomoću D1 (GPIO5) i IN2 pomoću D2 (GPIO4). Gornja signalna linija na krevetu povezuje se s normalno otvorenim vijčanim kontaktom releja 1, a donja signalna linija povezuje se s relejem 2, normalno otvorenim priključkom priključnog bloka. Morat ćete spojiti žicu od 12 V koja je spojena na ulaznu stranu pretvarača napona također na drugu priključnu stezaljku za oba releja 1 i 2.

Dijelovi

  • 1 - NodeMCU
  • 1 - Duel relejni modul sa strujnom izolacijom
  • 1 - Varijabilni ulazno/izlazni pretvarač
  • 1 - PCB matične ploče
  • Žica od bakrene jezgre s 22 žice
  • 2 - vijci M3x 8

Korak 3: Ograđivanje

Kućište
Kućište

Prilog se može pronaći ovdje:

Dizajnirao sam jednostavan ormar s Tinkercadom koji omogućuje da upravljački kabel kreveta uđe u kutiju između nosača za rasterećenje unutar kutije. Ovdje postoje utori za patentni zatvarač koji bi spriječili klizanje kabela, ali u mom slučaju pristajanje je bilo jako tijesno i nije mu trebalo. Poklopac je pričvršćen 2 vijka M3x 8. Preporučio bih učitavanje koda i testiranje sustava prije nego što ga umetnete u kutiju.

Koristio sam vruće ljepilo za držanje ploča na mjestu, ali to možda nije potrebno.

Korak 4: Kodirajte

Kôd se može pronaći ovdje:

NAPOMENA: Ovaj projekt koristi biblioteku pubsubclient koja se može dodati u Upravitelj knjižnice u Arduino IDE -u

Ovdje je kôd prilično jednostavan i osmišljen je na temelju vrste Cover MQTT u programu Home Assistant. Ideja je ovdje jednostavna: kada pritisnete gumb za gore ili dolje u kućnom pomoćniku, odgovarajući relej se zatvara sve dok se ne primi naredba stop ILI sustav dostigne maksimalno vrijeme aktivacije i zaustavlja se.

Maksimalno vrijeme zamišljeno je kao sigurnosna mjera opreza u slučaju da ga korisnik zaboravi zaustaviti ili ako je naredba slučajno poslana i nije vjerojatno da će je netko zaustaviti. Ne želimo da relej radi neograničeno dugo ili bilo kakve neočekivane probleme s krevetom zbog dugotrajnog zatvaranja kontakata.

U mom kodu, ovo vrijeme čekanja je 20 sekundi i može se prilagoditi u bloku globalnih varijabli na vrhu koda.

Druga sigurnosna mjera opreza bila je da uvijek budete sigurni da ako aktiviram jedan relej, uvijek se poziva namjerno deaktiviranje drugog, čak i ako je zadnje stanje već isključeno. Ne želim slati 12v niz obje signalne linije jer ne znam što će to učiniti s krevetom.

Osim toga, krevet objavljuje da je dostupan svakih 60 sekundi i to je to. Ovdje nema zvona i zvižduka. Budući da krevet nema povratne informacije o položaju, nisam ih mogao poslati kućnom pomoćniku.

Korak 5: Primjer integracije

Primjer integracije
Primjer integracije
Primjer integracije
Primjer integracije

Kôd koji sam napisao koristi MQTT za komunikaciju putem WiFi -ja i stoga može komunicirati sa bilo kojim čvorištem za automatizaciju ili uređajem koji koristi MQTT. Koristim Home Assistant koji ima ugrađeni MQTT posrednik. Ispod je primjer moje HA konfiguracije.

U HA -u imam datoteku omota.yaml sa sljedećom definicijom:

- platforma: mqtt

name: "Uzglavlje glavnog kreveta" 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: offline "optimistično: istina

To mi daje jedan unos u moje HA sučelje s postavljenim gumbom za gore/zaustavljanje/dolje s gore opisanom radnjom.

Dodatno, definirao sam dva gumba na svojoj noćnoj upravljačkoj ploči (Instructable / Blog Post) za podizanje i spuštanje uzglavlja. Gumbi na upravljačkoj ploči definirani su kao MQTT senzori:

- platforma: mqtt

state_topic: "bedide_cp1/button5" name: "Ikona CP1 tipke 5 pored kreveta" ikona: mdi: circle

- platforma: mqtt

state_topic: "bedide_cp1/button6" name: "Ikona CP1 tipke 6 pored kreveta": mdi: circle

… i 4 pravila automatizacije za svaki pritisak na tipku i otpuštanje. Kada se pritisne, naredba gore ili dolje šalje se u krevet, ovisno o tome koji je gumb aktiviran, kada se gumb otpusti, šalje se naredba stop:

- id: '1548308650383'

alias: MBR Noćni CP gumb 5a okidač: - entity_id: sensor.bedside_cp1_button_5 s: 'Off' platforma: stanje na: 'On' uvjet: radnja: - podaci: entity_id: 'cover.master_bed_headboard' usluga: cover.open_cover - id: '1548308758911' alias: MBR Noćni CP gumb 5b okidač: - entity_id: sensor.bedside_cp1_button_5 s: 'On' platforma: stanje na: 'Off' stanje: akcija: - data: entity_id: 'cover.master_bed_headboard' usluga: cover.stop_cover - id: '1548308863495' alias: MBR Nožni CP gumb 6a okidač: - entity_id: sensor.bedside_cp1_button_6 s: 'Off' platforma: stanje na: 'On' uvjet: radnja: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'alias: MBR Noćni CP gumb 6b okidač: - entity_id: sensor.bedside_cp1_button_6 iz:' On 'platforma: stanje do:' Isključeno 'stanje: radnja: - data: entity_id: 'cover.master_bed_headboard' usluga: cover.stop_cover

Preporučeni: