Talaan ng mga Nilalaman:

Wireless MQTT Bed Headboard Control: 5 Hakbang (na may Mga Larawan)
Wireless MQTT Bed Headboard Control: 5 Hakbang (na may Mga Larawan)

Video: Wireless MQTT Bed Headboard Control: 5 Hakbang (na may Mga Larawan)

Video: Wireless MQTT Bed Headboard Control: 5 Hakbang (na may Mga Larawan)
Video: DIY Motorized Roller Shades + Wireless MQTT Smart Home Integration 2024, Hulyo
Anonim
Pagkontrol ng Wireless MQTT Bed Headboard
Pagkontrol ng Wireless MQTT Bed Headboard
Control ng Headboard ng Wireless MQTT ng kama
Control ng Headboard ng Wireless MQTT ng kama

Ilang taon na ang nakakalipas bumili kami ng isang bagong memory foam bed at, tulad ng kaso sa karamihan sa mga kama, kailangan mo ring bumili ng isa sa kanilang "naaprubahang mga base" upang mapanatili ang isang warranty. Kaya, pumili kami para sa hindi gaanong mamahaling baseng kasama rin ang kakayahang itaas at babaan ang ulo ng kama. Makalipas ang ilang araw ang aming kutson at ang aming Amerikanong madaling iakma na murang base na may mga kontrol na wired (isa para sa bawat panig ng kama) ay naihatid at na-set up.

Ang unang bagay na napansin namin ay ang mga lubid sa showroom na maganda at mahaba ay hindi kung ano ang mayroon kami sa aming kama! Ang mga nasa showroom ay may mga extension. Ang mga extension na ito ay HINDI kasama sa aming kama at sapat na kagiliw-giliw, walang interesadong magbenta sa amin ng isang pares ng mga extension cable. Iniwan ito sa amin ng mga kontrol na bahagyang umabot sa tuktok ng kama at kung saan, kailangan naming buksan upang magamit.

Nakukuha mo ang binabayaran mo

Pagkatapos ng halos 6 na buwan napansin namin na ang mga collars ng relief ng pilay sa isa sa mga kontrol ay nagsisimulang punit. Makalipas ang ilang buwan - hubad na kawad. Mabilis na humigit-kumulang isang taon, ang isa sa mga kontrol ay hindi na gumagana at ang iba pa ay medyo nakakibot.

Muli, walang interesadong magbenta sa amin ng mga kapalit. Tapos hinampas ako nito!

Wait a damn minute! Hindi ba ako nagtatayo ng home automation at CONTROL system?!?

Hakbang 1: Pagtuklas

Pagtuklas
Pagtuklas
Pagtuklas
Pagtuklas

Nais kong makita kung ano ang maaari kong gawin sa kung ano ang mayroon ako kaya kinuha ko ang may depekto na appart ng controller at wow! nagkaroon ng maraming basura doon! Para saan ang lahat ng bagay na ito? Umatras ako at tiningnan ko lang ang mga linyang papasok at papalabas. Nakita ko na mayroong isang linya ng 12 volt supply at isang ground line. Ang iba pang dalawang linya ay parang mga linya ng signal para sa dalawang pataas at pababang mga pindutan. Kaya, kumuha ako ng isang pagkakataon at nilamon lamang ang 12v na supply sa "up" na linya ng signal. Nagsimulang gumalaw ang kama! Inilipat ko pagkatapos ang aking jumper wire sa linya ng signal na "pababa" at bumaba ang kama!

Sa kahon ay may mga contact para sa 4 pang mga linya ng signal at 4 pang mga pindutan. Ang aking pinakamahusay na hulaan ay ang control board na ito na ginagamit sa lahat ng kanilang mga naka-wire na modelo ng base at inilalagay lamang nila ang iba't ibang mga plate ng mukha sa pisara kung kinakailangan. Kaya, mayroon akong isang gumaganang teorya. Sinubukan ko ang linya ng suplay upang makita kung ito ay nahuhulog sa panahon ng paggamit o spiked sa anumang oras - hindi. Mayroong napakaliit na kasalukuyang gumuhit sa mga linya ng signal ngunit nangangailangan sila ng 12 volts upang maisaaktibo ang motor.

Hakbang 2: Disenyo

Disenyo
Disenyo
Disenyo
Disenyo
Disenyo
Disenyo
Disenyo
Disenyo

Kaya't ang isang simpleng koneksyon sa contact sa pagitan ng VCC at ng signal pin bawat ay ang kailangan ngunit paano ito ginagawa sa loob ng aking system. Ang dalawang relay ay kinakailangan para sa mga contact at ang isang ESP8266 ay gagana para sa wireless controller. Dahil ang mga relay ay maaaring mangailangan ng higit pang kasalukuyang kaysa sa maaaring ibigay ng mga digital na pin, pinakamahusay na gumamit ng isang optoisolator sa pagitan ng controller at relay. Papayagan nito ang isang maliit na signal upang buksan ang isang mas mataas na kasalukuyang switch (sa kasong ito isang light driven transistor) at ligtas na buhayin ang relay coil. Gayundin, ihiwalay ng isang optoisolator ang controller mula sa anumang mga spike na maaaring mabuo kapag ang relay coil ay inilabas at bumagsak ang magnetic field. Sa kasamaang palad, mayroon ang mga module ng relay na naglalaman ng lahat ng circuitry na ito at para sa isang mababang mababang presyo.

Ang kama ay ang magiging supply ng kuryente para sa controller at upang mahawakan ang 12 volts na ibinigay, kakailanganin namin ng isang variable buck converter. Ang isang napaka-mura ay nai-link sa ibaba at gumagana nang maganda. Ang linya ng 12V at mga linya ng GND ay kumokonekta sa input na bahagi ng converter at ang kinokontrol na 5 volt na gilid ay kumokonekta sa VCC ng NodeMCU at ang VCC pin sa module ng relay. Ang lupa (-) sa converter ay kumokonekta sa mga pin ng GND kapwa ang module ng relay at ang NodeMCU.

Ang NodeMCU ay kumokonekta sa IN1 gamit ang D1 (GPIO5) at IN2 gamit ang D2 (GPIO4). Ang linya ng pataas na signal sa kama ay kumokonekta sa karaniwang bukas na terminal ng tornilyo para sa relay 1 at ang linya ng pababang signal ay kumokonekta sa relay 2 na karaniwang bukas na konektor ng block ng terminal. Kakailanganin mong ikonekta ang 12v wire na konektado sa input na bahagi ng buck converter din sa iba pang koneksyon sa block ng terminal para sa BOTH relay 1 at 2.

Mga Bahagi

  • 1 - NodeMCU
  • 1 - Module ng Duel Relay na may kasalukuyang paghihiwalay
  • 1 - Variable input / output buck Converter
  • 1 - Breadboard PCB
  • 22 gauge napadpad na tanso core wire
  • 2 - M3x 8 screws

Hakbang 3: Enclosure

Enclosure
Enclosure

Ang enclosure ay matatagpuan dito:

Dinisenyo ko ang isang simpleng enclosuer na may Tinkercad na nagbibigay-daan para sa cable control ng kama na ipasok ang kahon sa pagitan ng mga bracket ng relief relief sa loob ng kahon. Mayroong mga puwang para sa isang zip tie dito na makakatulong na maiwasan ang pag-slide ng cable ngunit sa aking kaso ang fit ay napaka-snug at hindi kailangan ito. Ang takip ay bolt down na may 2 M3x 8 screws. Inirerekumenda ko ang pag-upload ng code at pagsubok sa system bago i-mount ito sa kahon.

Gumamit ako ng mainit na pandikit upang hawakan ang mga board sa lugar ngunit maaaring hindi ito kinakailangan.

Hakbang 4: Code

Ang code ay matatagpuan dito:

TANDAAN: Gumagamit ang proyektong ito ng pubsubclient library na maaaring maidagdag sa Library Manager sa Arduino IDE

Ang code dito ay medyo pangunahing at idinisenyo batay sa uri ng Cover MQTT sa Home Assistant. Ang ideya dito ay simple: kapag pinindot mo ang pataas o pababang pindutan sa home assistant, magsasara ang naaangkop na relay hanggang sa matanggap ang stop command O ang system ay umabot sa isang maximum na oras ng pag-aktibo at huminto.

Ang max na oras ay sinadya bilang isang pag-iingat sa kaligtasan kung sakaling makalimutan ng gumagamit na pigilan ito o kung ang utos ay hindi sinasadyang ipinadala at malamang na hindi ito pipigilan ng isang tao. Hindi namin nais ang relay nang walang katapusan o anumang hindi inaasahang mga problema sa kama dahil sa matagal na pagsasara ng contact.

Sa aking code, ang timeout na ito ay 20 segundo at maaaring ayusin sa pandaigdigang bloke ng variable sa tuktok ng code.

Ang pangalawang pag-iingat sa kaligtasan ay upang laging siguraduhin na kung pinapagana ko ang isang relay, ang isang sinasadya na pag-deactivate ng iba pa ay palaging tinatawag, kahit na ang huling estado ay naka-off na. Hindi ko nais na ipadala ang 12v sa parehong mga linya ng signal dahil hindi ko alam kung ano ang gagawin sa kama.

Maliban dito, inilalathala ng kama na magagamit ito bawat 60 segundo at iyon iyon. Walang mga kampanilya o sipol dito. Dahil walang feedback ang posisyon sa kama, hindi ako makapagpadala ng anuman sa Home Assistant.

Hakbang 5: Halimbawa ng Pagsasama

Halimbawa ng Pagsasama
Halimbawa ng Pagsasama
Halimbawa ng Pagsasama
Halimbawa ng Pagsasama

Ang code na aking sinulat ay gumagamit ng MQTT upang makipag-usap sa paglipas ng WiFi at samakatuwid ay maaaring makipag-usap sa anumang hub ng automation o aparato na gumagamit ng MQTT. Gumagamit ako ng Home Assistant na mayroong built in na MQTT broker. Nasa ibaba ang isang halimbawa ng aking pagsasaayos ng HA.

Sa HA mayroon akong isang file na Cover.yaml na may sumusunod na kahulugan:

- platform: mqtt

pangalan: "Master Bed Headboard" 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 "maasahin sa mabuti: totoo

Binibigyan nito ako ng isang entry sa aking interface ng HA na may nakatakdang pindutan na pataas / paghinto / pababa na may aksyon na tulad ng inilarawan sa itaas.

Bukod pa rito, tinukoy ko ang dalawang mga pindutan sa aking Bedside Control Panel (Maaaring Makahulugan / Blog Post) upang itaas at babaan ang headboard. Ang mga pindutan sa control panel ay tinukoy bilang mga sensor ng MQTT:

- platform: mqtt

state_topic: "bedside_cp1 / button5" name: "Bedside CP1 Button 5" icon: mdi: circle

- platform: mqtt

state_topic: "bedside_cp1 / button6" name: "Bedside CP1 Button 6" icon: mdi: circle

… at 4 na panuntunan sa pag-aautomat kung kailan ang bawat pindutan ay pinindot at pinakawalan. Kapag pinindot, ang pataas o pababang utos ay ipinapadala sa kama depende sa kung aling pindutan ang naaktibo, kapag ang pindutan ay inilabas, ipinadala ang stop command:

- id: '1548308650383'

alias: MBR Bedside CP Button 5a gatilyo: - entity_id: sensor.bedside_cp1_button_5 mula sa: 'Off' platform: estado sa: Kundisyon na 'Sa': aksyon: - data: entity_id: 'cover.master_bed_headboard' serbisyo: cover.open_cover - id: '1548308758911' alias: MBR Bedside CP Button 5b trigger: - entity_id: sensor.bedside_cp1_button_5 mula sa: 'On' platform: estado sa: 'Off' na kondisyon: aksyon: - data: entity_id: 'cover.master_bed_headboard' serbisyo: cover.stop_cover - id: '1548308863495' alias: MBR Bedside CP Button 6a gatilyo: - entity_id: sensor.bedside_cp1_button_6 mula sa: 'Off' platform: estado sa: 'Sa' kondisyon: aksyon: - data: entity_id: ' cover.master_bed_headboard 'service: cover.close_cover - id:' 1548308911467 'alias: MBR Bedside CP Button 6b gatilyo: - entity_id: sensor.bedside_cp1_button_6 mula sa:' Sa 'platform: ipahayag ang kondisyon na' Off ': aksyon: - data: entity_id: Serbisyo na 'cover.master_bed_headboard': cover.stop_cover

Inirerekumendang: