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, Juli
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 naš madrac i naša jeftina baza American Adjustables sa žičanim kontrolama (po jedna za svaku stranu kreveta) isporučeni su i postavljeni.

Prvo što smo primijetili 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. Ovi produžeci NISU uključeni u naš krevet i dovoljno zanimljivi, nitko nije bio zainteresiran da nam proda par produžnih kabela. To nam je ostavilo komande koje su jedva dopirale do vrha kreveta i koje smo morali okrenuti na korištenje.

Dobićete ono za šta platite

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

Opet, niko nije bio zainteresovan da nam proda zamene. Onda me je pogodilo!

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

Korak 1: Otkriće

Discovery
Discovery
Discovery
Discovery

Htio sam vidjeti šta mogu učiniti s onim što imam, pa sam uzeo neispravan stan 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 12 -voltna linija napajanja i uzemljenje. Druge dvije linije izgledale su kao signalne linije za dva gumba za gore i dolje. Dakle, iskoristio sam priliku i samo 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 dugmeta. Moja najbolja pretpostavka je da se ova kontrolna ploča koristi u svim njihovim žičanim osnovnim modelima i da samo stavljaju različite prednje ploče preko ploče po potrebi. Dakle, imao sam radnu teoriju. Testirao sam vod za napajanje da vidim da li je potonuo tokom upotrebe ili je u bilo kom trenutku zašiljao - ne. Bilo je jako malo struje preko signalnih vodova, ali bilo im je potrebno 12 volti za aktiviranje motora.

Korak 2: Dizajnirajte

Dizajn
Dizajn
Dizajn
Dizajn
Dizajn
Dizajn
Dizajn
Dizajn

Dakle, jednostavna kontaktna veza između VCC -a i signalnog pina je sve što je potrebno, ali kako se to radi u mom sistemu. 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 mogu isporučiti digitalni pinovi, najbolje je koristiti optoizolator između kontrolera 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, optički izolator izolira kontroler od bilo kakvih šiljaka koji mogu nastati pri oslobađanju 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. Veoma jeftin je dolje povezan i odlično 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 12v žicu koja je spojena na ulaznu stranu pretvarača napona također na drugu vezu terminalnog bloka za oba releja 1 i 2.

Delovi

  • 1 - NodeMCU
  • 1 - Duel relejni modul sa strujnom izolacijom
  • 1 - Varijabilni ulazno/izlazni pretvarač
  • 1 - PCB matične ploče
  • Bakarna žica sa žicom od 22 metra
  • 2 - M3x 8 vijaka

Korak 3: Ograđivanje

Enclosure
Enclosure

Ogradicu možete pronaći ovdje:

Dizajnirao sam jednostavno kućište s Tinkercad -om koje omogućuje da upravljački kabel kreveta uđe u kutiju između držača za rasterećenje unutar kutije. Ovdje postoje utori za patentni zatvarač koji bi spriječili klizanje kabela, ali u mom slučaju prianjanje je bilo jako tijesno i nije mu trebalo. Poklopac je pričvršćen pomoću 2 vijka M3x 8. Preporučio bih učitavanje koda i testiranje sistema prije nego što ga ugradite u kutiju.

Koristio sam vruće ljepilo da držim ploče 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 Upravitelju biblioteke u Arduino IDE -u

Ovdje je kôd prilično jednostavan i dizajniran je na osnovu tipa 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 sistem dostigne maksimalno vrijeme aktivacije i zaustavlja se.

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

U mom kodu, ovo vremensko ograničenje je 20 sekundi i može se prilagoditi u bloku globalne varijable 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 krevetu.

Osim toga, krevet objavljuje da je dostupan svakih 60 sekundi i to je to. Ovde 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 -a 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: van mreže "optimistično: istina

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

Osim toga, definirao sam dva gumba na nočnoj kontrolnoj ploči (uputstvo / post na blogu) za podizanje i spuštanje uzglavlja. Dugmad na upravljačkoj ploči definirana su kao MQTT senzori:

- platforma: mqtt

state_topic: "bedide_cp1/button5" name: "Ikona CP1 dugmeta 5" pored kreveta: ikona: krug

- platforma: mqtt

state_topic: "bedide_cp1/button6" name: "Ikona CP1 dugmeta 6" pored kreveta: ikona: krug

… I 4 pravila automatizacije za svako pritiskanje i otpuštanje dugmeta. Kada se pritisne, naredba gore ili dolje šalje se u krevet ovisno o tome koje je dugme aktivirano, kada se dugme otpusti, šalje se naredba stop:

- id: '1548308650383'

alias: MBR Noćno CP dugme 5a okidač: - entitet_id: sensor.bedside_cp1_button_5 sa: 'Isključena' platforma: stanje na: 'Uključeno' stanje: akcija: - podaci: entitet_id: 'cover.master_bed_headboard' usluga: cover.open_cover - id: '1548308758911' alias: MBR Noćno CP dugme 5b okidač: - entity_id: sensor.bedside_cp1_button_5 sa: 'On' platforma: stanje na: 'Isključeno' stanje: akcija: - podaci: entity_id: 'cover.master_bed_headboard' usluga: cover.stop_cover - id: '1548308863495' alias: MBR Noćno CP dugme 6a okidač: - entity_id: sensor.bedside_cp1_button_6 sa: 'Off' platforma: stanje na: 'Uključeno' stanje: akcija: - podaci: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'alias: MBR Noćno CP dugme 6b okidač: - entity_id: sensor.bedside_cp1_button_6 sa:' On 'platforma: stanje na:' Isključeno 'stanje: radnja: - data: entity_id: 'cover.master_bed_headboard' usluga: cover.stop_cover

Preporučuje se: