Sadržaj:
- Korak 1: Otkriće
- Korak 2: Dizajn
- Korak 3: Ograđivanje
- Korak 4: Kodirajte
- Korak 5: Primjer integracije
Video: Bežična kontrola uzglavlja kreveta MQTT: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
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
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
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
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:
Osjećanje pokreta ispod rasvjete kreveta: 16 koraka (sa slikama)
Osjet kretnje pod rasvjetom kreveta: Jeste li ikada pokušali noću tiho ustati iz kreveta samo da biste se sapleli o nešto i probudili cijelu kuću? Noćna svjetla s senzorom kretanja, diskretno postavljena ispod vašeg kreveta, pružaju dovoljno nisko svjetlo da vas vodi oko zalutalih LEGO kockica
Automatsko osvjetljenje kreveta: 5 koraka (sa slikama)
Automatsko osvjetljenje kreveta: Spavate li i noću? Ne vidite li također ništa u mraku? Imate li i mrake u sobi noću? Ako je tako, ovaj uređaj je za vas! Mislim da većina nas voli ostati malo duže navečer. Razlozi mogu biti različiti - Netflix, YouTube
Kontrola svjetline PWM LED kontrola pomoću tipki, Raspberry Pi i ogrebotina: 8 koraka (sa slikama)
Kontrola svjetline PWM LED kontrola temeljena na tipkama, Raspberry Pi i Scratch: Pokušavao sam pronaći način da svojim učenicima objasnim kako PWM radi, pa sam si postavio zadatak pokušati kontrolirati svjetlinu LED diode pomoću 2 tipke - jedan gumb povećava svjetlinu LED -a, a drugi ga prigušuje. Za program
FS-Touch alat za izravnavanje kreveta: 11 koraka (sa slikama)
FS-Touch alat za izravnavanje kreveta: Jeste li umorni od pokušaja dobivanja savršenog izravnanog kreveta za 3D pisač? Frustrirani ste nagađanjem o odgovarajućem otporu između mlaznice i papira? Pa, FS-Touch će vam pomoći da kvantitativno izmjerite ovu silu stezanja i postignete brzu i točnu razinu kreveta
Senzor prisutnosti kreveta sa SONOFF: 8 koraka (sa slikama)
Senzor prisutnosti kreveta sa SONOFF -om: Dobro došli u ovaj vodič! PreduvjetiOvaj način da zahtijevate da poznajete sonoff i tasmotu. Ako nikada niste zamijenili sonoff s tasmotom, prvo biste trebali naučiti to raditi, a tek ćete ga tada moći izgraditi. Ako ne znate sonof