INHOUDSOPGAWE:

Bediening van die draadlose MQTT -bedbord: 5 stappe (met foto's)
Bediening van die draadlose MQTT -bedbord: 5 stappe (met foto's)

Video: Bediening van die draadlose MQTT -bedbord: 5 stappe (met foto's)

Video: Bediening van die draadlose MQTT -bedbord: 5 stappe (met foto's)
Video: TR19: IoT backdoors in cars 2024, Julie
Anonim
Draadlose MQTT -bedbord
Draadlose MQTT -bedbord
Draadlose MQTT -bedbord
Draadlose MQTT -bedbord

'N Paar jaar gelede het ons 'n nuwe bed met skuimskuim aangeskaf, en soos met die meeste beddens, moes u ook een van hul' goedgekeurde basisse 'koop om 'n waarborg te handhaaf. Ons het dus gekies vir die goedkoopste basis, wat ook die vermoë om die kop van die bed te verhoog en te laat sak, insluit. 'N Paar dae later is ons matras en ons Amerikaanse verstelbare goedkoop basis met bedrade kontroles (een aan elke kant van die bed) afgelewer en opgestel.

Die eerste ding wat ons opgemerk het, was dat die toue in die vertoonlokaal wat mooi en lank was, nie was wat ons op ons bed gehad het nie! Die in die vertoonlokaal het uitbreidings gehad. Hierdie uitbreidings is NIE by ons bed ingesluit nie en interessant genoeg, niemand was geïnteresseerd daarin om 'n paar verlengkabels aan ons te verkoop nie. Dit het ons met kontroles gelewer wat skaars die bokant van die bed bereik het, en wat ons moes omdraai om te gebruik.

Jy kry waarvoor jy betaal

Na ongeveer 6 maande merk ons op dat die rekbande op een van die kontroles begin skeur het. 'N Paar maande later - kaal draad. Ongeveer 'n jaar vinnig vorentoe, een van die kontroles werk nie meer nie, en die ander raak 'n bietjie kriewelrig.

Weereens, niemand was geïnteresseerd daarin om plaasvervangers aan ons te verkoop nie. Toe tref dit my!

Wag 'n bietjie! Bou ek nie 'n tuis -outomatisering en BEHEER -stelsel nie?!?

Stap 1: Ontdek

Ontdekking
Ontdekking
Ontdekking
Ontdekking

Ek wou sien wat ek kan doen met wat ek het, so ek neem die gebrekkige kontroleerder -appart en wow! daar was baie kak! Waarvoor was al hierdie dinge? Ek stap terug en kyk net na die lyne wat in en uit kom. Ek kon sien dat daar 'n 12 volt toevoerlyn en 'n grondlyn was. Die ander twee lyne het soos seinlyne gelyk vir die twee op en af knoppies. Dus, ek het 'n kans gewaag en net die 12V -toevoer na die "op" seinlyn gespring. Die bed het begin beweeg! Ek skuif toe my springdraad na die "af" seinlyn en die bed gaan lê!

In die boks is daar kontakte vir nog 4 seinlyne en nog 4 knoppies. My beste raaiskoot is dat hierdie kontroleerderbord in al hul bedrade basismodelle gebruik word, en dat hulle net verskillende gesigplate oor die bord sit soos nodig. Ek het dus 'n werkende teorie gehad. Ek het die toevoerlyn getoets om te sien of dit tydens gebruik daal of te eniger tyd stiek - nee. Daar was baie min stroomtrek oor die seinlyne, maar hulle het wel 12 volt nodig om die motor te aktiveer.

Stap 2: Ontwerp

Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp
Ontwerp

Dus is 'n eenvoudige kontakverbinding tussen VCC en die seinpen al wat nodig is, maar hoe word dit binne my stelsel gedoen? Twee relais is nodig vir die kontakte en 'n ESP8266 sal werk vir die draadlose beheerder. Aangesien die relais meer stroom benodig as wat die digitale penne kan lewer, is dit die beste om 'n optoisolator tussen die beheerder en die relais te gebruik. Hierdeur kan 'n klein sein 'n hoër stroomskakelaar aanskakel (in hierdie geval 'n liggedrewe transistor) en die aflosspoel veilig aktiveer. 'N Optoisolator isoleer die kontroleerder van enige spykers wat kan ontstaan wanneer die aflosspoel vrygestel word en die magnetiese veld in duie stort. Gelukkig bestaan daar aflosmodules wat al hierdie stroombane bevat en teen 'n redelike lae prys.

Die bed sal die kragbron vir die beheerder wees, en om die 12 volt wat voorsien word te hanteer, benodig ons 'n veranderlike boksomskakelaar. 'N Baie goedkoop een is hieronder gekoppel en werk pragtig. Die 12V-lyn en GND-lyne maak verbinding met die ingangskant van die omskakelaar en die gereguleerde 5 volt-kant sluit aan by die VCC van die NodeMCU en die VCC-pen op die aflosmodule. beide die aflosmodule en die NodeMCU.

Die NodeMCU maak verbinding met IN1 met behulp van D1 (GPIO5) en IN2 met behulp van D2 (GPIO4). Die opwaartse seinlyn op die bed sluit aan by die normaalweg oop skroefaansluiting vir relais 1 en die afwaartse seinlyn skakel met relais 2 wat normaalweg oop is. U moet die 12V -draad wat aan die ingangskant van die boksomskakelaar gekoppel is, ook aan die ander aansluitblokverbinding vir beide relais 1 en 2 koppel.

Dele

  • 1 - NodeMCU
  • 1 - Duel Relay Module met stroomisolasie
  • 1 - Veranderlike invoer/afvoer boksomskakelaar
  • 1 - Breadboard PCB
  • 22 gauge gestrande koperkerndraad
  • 2 - M3x 8 skroewe

Stap 3: Omhulsel

Omhulsel
Omhulsel

Die omhulsel kan hier gevind word:

Ek het 'n eenvoudige omhulsel met Tinkercad ontwerp waarmee die bedbedradingskabel die boks tussen rekhakies in die boks kan binnedring. Daar is gleuwe vir 'n rits wat die kabel kan laat gly, maar in my geval was die pas baie styf en het dit nie nodig gehad nie. Die deksel word vasgemaak met 2 M3x 8 skroewe. Ek beveel aan dat u die kode oplaai en die stelsel toets voordat u dit in die boks monteer.

Ek het warm gom gebruik om die planke vas te hou, maar dit is dalk nie nodig nie.

Stap 4: Kode

Die kode kan hier gevind word:

LET WEL: hierdie projek gebruik die pubsubclient -biblioteek wat bygevoeg kan word in die biblioteekbestuurder in die Arduino IDE

Die kode hier is redelik basies en is ontwerp op grond van die Cover MQTT -tipe in Home Assistant. Die idee hier is eenvoudig: as u op die op- of afknoppie in die huisassistent druk, sluit die toepaslike aflos totdat die stopopdrag ontvang word OF die stelsel 'n maksimum aktiveringstyd bereik en stop.

Die maksimum tyd is bedoel as 'n veiligheidsmaatreël as die gebruiker vergeet om dit te stop of as die opdrag per ongeluk gestuur is en dit onwaarskynlik is dat iemand dit sal stop. Ons wil nie hê dat die aflos vir onbepaalde tyd of onverwagte probleme met die bed as gevolg van langdurige kontak gesluit moet word nie.

In my kode is hierdie tydsduur 20 sekondes en kan dit aangepas word in die globale veranderlike blok bo -aan die kode.

'N Tweede veiligheidsmaatreël was om altyd seker te maak dat as ek die een relais aktiveer, altyd 'n opsetlike deaktivering van die ander relais nodig is, selfs al was die laaste toestand reeds af. Ek wil nie 12v langs albei seinlyne stuur nie, want ek weet nie wat dit met die bed sal doen nie.

Verder publiseer die bed dat dit elke 60 sekondes beskikbaar is, en dit is dit. Geen klokke of fluitjies hier nie. Aangesien die bed geen posterugvoer het nie, kon ek dit nie aan Home Assistant terugstuur nie.

Stap 5: Voorbeeld integrasie

Voorbeeld Integrasie
Voorbeeld Integrasie
Voorbeeld integrasie
Voorbeeld integrasie

Die kode wat ek geskryf het, gebruik MQTT om oor WiFi te kommunikeer en kan dus met enige outomatiseringshub of -apparaat wat MQTT gebruik, kommunikeer. Ek gebruik Home Assistant met 'n ingeboude MQTT -makelaar. Hieronder is 'n voorbeeld van my HA -opset.

In HA het ek 'n covers.yaml -lêer met die volgende definisie:

- platform: mqtt

name: "Master Bed Headboard" command_topic: "master_bed_control/cmd" availability_topic: "master_bed_control/availability" qos: 0 behold: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "online" payload_not_available: " vanlyn "optimisties: waar

Dit gee my een inskrywing in my HA -koppelvlak met 'n op/stop/af knoppie met die aksie soos hierbo beskryf.

Boonop het ek twee knoppies op my bedieningspaneel by die bed (instruksies / blogpos) gedefinieer om die hoofbord op te lig en te laat sak. Die knoppies op die bedieningspaneel word gedefinieer as MQTT -sensors:

- platform: mqtt

state_topic: "bedside_cp1/button5" naam: "Bedkassie CP1 knoppie 5" ikoon: mdi: sirkel

- platform: mqtt

state_topic: "bedside_cp1/button6" naam: "Bedkassie CP1 -knoppie 6" ikoon: mdi: sirkel

… en 4 outomatiseringsreëls vir wanneer elke knoppie ingedruk en vrygestel word. As dit ingedruk word, word die op of af opdrag na die bed gestuur, afhangende van watter knoppie geaktiveer is, en wanneer die knoppie losgemaak word, word die stop opdrag gestuur:

- 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 'diens: cover.close_cover - id:' 1548308911467 'alias: MBR Bedside CP Button 6b trigger: - entity_id: sensor.bedside_cp1_button_6 van:' Op 'platform: staat na:' Uit 'toestand: aksie: - data: entity_id: 'cover.master_bed_headboard' -diens: cover.stop_cover

Aanbeveel: