Turinys:

Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)
Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)

Video: Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)

Video: Baterija maitinamas durų jutiklis su namų automatikos integracija, „WiFi“ir ESP-DABAR: 5 žingsniai (su nuotraukomis)
Video: Viską matantis ir girdintis: Eufy durų skambučio apžvalga 2024, Lapkritis
Anonim
Image
Image

Šioje pamokoje aš jums parodysiu, kaip sukūriau akumuliatoriumi varomą durų jutiklį su namų automatikos integracija. Aš mačiau keletą kitų gražių jutiklių ir signalizacijos sistemų, bet norėjau tai padaryti pats.

Mano tikslai:

  • Jutiklis, kuris aptinka ir praneša apie duris greitai (<5 sekundžių)
  • Jutiklis, kuris nustato durų uždarymą
  • Jutiklis, kuris maitinamas baterijomis ir keletą mėnesių veikia su baterija

Techninė ir programinė įranga įkvėpta

  • Kevino Darrah triufelio lentelė (TPL5111 ir TPS73733).
  • Šis vaizdo įrašas

Aš padariau jutiklį savo priekiniams ir galiniams durims. Vienintelis skirtumas yra šviesos diodo padėtis ir išorinis maitinimo jungiklis (ant galinių durų jutiklio).

Kurdamas techninę ir programinę įrangą padariau keletą patobulinimų, tai galima pamatyti nuotraukose.

Prekės

Pirkau elektroninius komponentus iš „Aliexpress“, pagrindines dalis:

  • LiPo baterija
  • TPS73733 LDO
  • TPL5111
  • Nendrinis jungiklis
  • P-kanalo „MOSFET“: IRLML6401TRPBF
  • Magnetas
  • PCB adapterio plokštė SMD komponentams ir kita.

1 žingsnis: Aparatūra - grandinė

Techninė įranga - grandinė
Techninė įranga - grandinė
Techninė įranga - grandinė
Techninė įranga - grandinė
Techninė įranga - grandinė
Techninė įranga - grandinė

Žiūrėkite pridėtas grandinės schemas. SMD dalis lituodavau ant adapterio PCB plokštės ir visus komponentus lituodavau į dvipusę perf plokštę. Aš prijungiau ESP-01 per moterų antraštes, kad galėčiau jį pašalinti, kad užprogramuotų per adapterį, parodytą šios instrukcijos 3 veiksme.

Grandinė veikia taip:

  • Atidarius duris, TPL5111 gauna šūvį į DELAY/M_DRV kaištį ir įgalina TPS73733 LDO, kuris maitina ESP-01. Norėdami atlikti šią operaciją, EN/ONE_SHOT turi būti nuspaustas žemai, žr. TPL5111 duomenų lapą.
  • Paleidus programą (žr. „Programinė įranga“), ESP-01 siunčia signalą „Atlikta“į TPL5111, kuris išjungia TPS73733, todėl TPL5111 ir TPS73733 būsena yra labai maža.

Aš naudoju nendrinius jungiklius su NO ir NC jungtimis. Aš prijungiau NC laidą, nes nendrinis jungiklis turi uždaryti grandinę, kai magnetas pašalinamas (durys atidarytos), ir atsidaro, kai magnetas yra arti (durys uždarytos).

Prie galinių durų jutiklio pridėjau keletą kondensatorių ir rezistorių, kai aptikau tam tikrų nestabilumų, tačiau nestabilumą sukėlė programinė įranga (esp_now_init), kaip atradau vėliau.

2 žingsnis: Aparatūra - gaubtas

Techninė įranga - gaubtas
Techninė įranga - gaubtas
Techninė įranga - gaubtas
Techninė įranga - gaubtas
Techninė įranga - gaubtas
Techninė įranga - gaubtas

Korpusą suprojektavau „Autodesk Fusion360“, įkvėptas šio „vaikino su šveicarišku akcentu“vaizdo įrašo.

Trijų dalių STL failai:

  • Dėžė
  • Dangtis
  • Magnetinis laikiklis

yra paskelbti mano „Thingiverse“puslapyje.

3 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

Programa yra mano „Github“.

Programos eiga parodyta paveikslėlyje. Norėdami sužinoti, kaip aš naudoju ESP-DABAR, žr. Kitą „Instructable“.

Kai modulis įjungtas, jis pirmiausia bando išsiųsti pranešimą „ATIDARYTA“per ESP-NOW. Jei tai nepavyksta, jis pereina prie „WiFi“ir „MQTT“ryšio.

Aš sužinojau, kad bent jau mano sąrankoje pranešimas „UŽDARYTA“nebuvo sėkmingai išsiųstas per ESP-NOW, todėl pašalinau tai iš programos ir naudoju tik „WiFi“ir MQTT.

Tuo metu, kai durys atidaromos ir modulis laukia, kol durys užsidarys, jis naudoja šį laiką prisijungdamas prie „WiFi“ir MQTT, taigi, kai durys uždarytos, jis turi tik išsiųsti išmatuotą įtampą ir pranešimą „UŽDARYTA“, tada tai tiesiogiai eina miegoti.

Programa patikrina, ar gavėjas gavo uždarytą pranešimą klausydamasis MQTT pranešimo tinkama tema.

4 žingsnis: namų automatizavimas ir telegrama

Namų automatika ir telegrama
Namų automatika ir telegrama
Namų automatika ir telegrama
Namų automatika ir telegrama
Namų automatika ir telegrama
Namų automatika ir telegrama

Mano durų jutikliai bendrauja su mano „Openhab Home Automation“mano „Raspberry Pi Zero“.

Pagrindinės programos:

  • Perskaitykite durų būklę: ATVIROS arba UŽDARYTOS.
  • Signalizuokite mane telegrama, jei atidarytos durys (jei įjungta signalizacija arba įjungta monitoriaus funkcija).
  • Skaitykite paskutinį kartą, kai durys buvo atidarytos ar uždarytos.
  • Prieš išsikraunant akumuliatoriui, suskaičiuokite angų, kurias gali valdyti durų jutiklis, skaičių.

Pavyzdžiui, jei atostogaujame, o kaimynas ateina palaistyti augalų, gaunu pranešimą. Žiūrėkite vaizdo įrašą įžangoje.

Mano „Openhab“elementai, taisyklės ir svetainės schemos failai yra mano „Github“. Šiuose failuose taip pat galite pamatyti mano namelio durų jutiklį, kuris naudoja įprastą laidinį nendrių jungiklį ir nedidelį kontaktinį (galinį) jungiklį iš 3D spausdintuvo užrakto angoje (žr. Paveikslėlius).

Kaip naudotis telegramos veiksmu „Openhab“, aprašyta čia.

5 žingsnis: patobulinimai ir tolesni patobulinimai

Patobulinimai ir tolesni patobulinimai
Patobulinimai ir tolesni patobulinimai
Patobulinimai ir tolesni patobulinimai
Patobulinimai ir tolesni patobulinimai

Per pastaruosius mėnesius padariau šiuos patobulinimus.

Tvarkykite ilgas durų angas per savaime persijungiantį impulsinį signalą

Vasarą, kai esame namuose, kelias valandas paliekame atidarytas galines duris. Veikiantis ESP-01 su „WiFi“ryšiu be reikalo išsikrautų baterija. Todėl aš įtraukiau įjungimo/išjungimo jungiklį, kad galėčiau išjungti modulį tokiose situacijose.

Tačiau kartais dėl to visam laikui buvo išjungtas modulis (kai pamiršau jį įjungti) ir išsikrovusi baterija po kelių popietės atidarytų durų ir veikiančio modulio (kai pamiršau jį išjungti).

Todėl norėjau turėti galimybę išjungti modulį per programinę įrangą, kai modulis buvo įjungtas iš anksto nustatytą laiką (1 minutę).

Tačiau kai ESP-01 impulsas „DONE“išjungė TPL5111, kai durys buvo uždarytos, sužinojau, kad TPL5111 neišjungė „DONE“impulsas, kai DELAY/M_DRV kaištis buvo AUKŠTAS. Šį AUKŠTĄ signalą DELAY/M_DRV kaištyje sukėlė atidarytos durelės ir nendrinio jungiklio NC kontaktas, prijungtas prie akumuliatoriaus įtampos.

Taigi signalas į DELAY/M_DRV kaištį neturėtų būti nuolat AUKŠTAS, bet turėtų būti impulsinis. TPL5111 duomenų lape galite rasti, kad jis turėtų būti> 20 ms. Aš padariau šį savaiminio perjungimo signalą per P kanalo „MOSFET“, kondensatorių ir 10K ir 300K rezistorių, žr. Pridėtą schemą.

Jis veikia taip:

  • Jei nendrinio jungiklio NC kontaktas uždarytas, vartai yra ŽEMI, o „Mosfet“įjungtas, todėl DELAY/M_DRV kaištyje atsiranda AUKŠTAS signalas, kuris suaktyvina modulį.
  • Kondensatorius greitai įkraunamas, todėl vartuose kyla įtampa.
  • Praėjus maždaug 20 ms, vartų įtampa yra 97% akumuliatoriaus įtampos (300K/(300K+10K), kuri yra AUKŠTA, o „Mosfet“yra išjungtas, todėl DELAY/M_DRV kaiščio signalas yra LOW).
  • Kai DELAY/M_DRV kaištis yra ŽEMAS, ESP-01 signalas DONE baigia modulį.

Tai įgyvendinama programinėje įrangoje; „while-loop“ne tik patikrina, ar durys vis dar atidarytos, bet ir patikrina, ar modulis nėra įjungtas per ilgai. Jei įjungta per ilgai, ji paskelbia NULL reikšmę (neapibrėžta durų būsena). Šiuo atveju aš nežinau, ar durys atidarytos ar uždarytos, ir nepasiekiu visų įžangoje paminėtų tikslų, tačiau akumuliatoriaus veikimo laikas yra svarbesnis ir dažniausiai tą pačią dieną vėl atidarome duris, o tai patvirtina uždarytą būseną nuo durų.

Svarbu naudoti P kanalo „Mosfet“, tinkantį čia naudojamam įtampos diapazonui. „Mosfet“turi būti visiškai įjungtas maždaug 3,8 V VGS ir visiškai išjungtas maždaug 0,2 V.. 1 uF kondensatorius puikiai veikia, kad gautų apie 20 ms impulsų ilgį. Didesnis kondensatorius sukelia ilgesnį impulsą, kuris nėra būtinas, nes TPL5111 buvo suaktyvintas. Aš naudoju savo DSO150 osciloskopą, norėdamas patikrinti įtampą ir impulsų ilgį.

Planuojamas patobulinimas: OTA atnaujinimas

Aš planuoju įtraukti OTA atnaujinimą pagal šią procedūrą, kuri jau yra iš dalies įtraukta į dabartinę programinę įrangą

  • Per „Openhab“iš „NodeRed“paskelbiu išsaugotą „atnaujinimo“pranešimą ir „atnaujinimo temą“.
  • Jei modulis yra įjungtas ir prijungtas prie MQTT serverio ir užsiprenumeravęs „atnaujinimo temą“, jis gauna atnaujinimo pranešimą.
  • Atnaujinimo pranešimas neleis moduliui išsijungti ir paleidžia
  • „HTTPUpdateServer“svetainėje galite atnaujinti programinę įrangą.
  • Per „Openhab“iš „NodeRed“skelbiu išsaugotą „tuščią“pranešimą ir „atnaujinimo temą“.

Planuojamas patobulinimas: aparatūros išjungimas po iš anksto nustatyto laiko

Pagal dabartinę schemą aš naudoju 200K rezistorių tarp TPL5111 DELAY/M_DRV ir GND. Tai įjungia modulį ilgiau nei 2 valandas (žr. TPL5111 duomenų lapo 7.5.3 punktą). Tačiau nenoriu, kad modulis būtų taip ilgai įjungtas, nes akumuliatorius išsikrauna. Jei programinės įrangos sprendimu (žr. Aukščiau) nepavyksta išjungti modulio arba nenumatytas atnaujinimo pranešimas įjungia modulį atnaujinimo režimu, modulis ilgą laiką lieka įjungtas.

Todėl geriau naudoti mažesnį rezistorių tarp TPL5111 DELAY/M_DRV ir GND, todėl modulis po trumpo laiko išjungiamas, pavyzdžiui, 50K rezistorius, todėl įjungimo laikas yra 7 minutės.

Rekomenduojamas: