Talaan ng mga Nilalaman:

Ang baterya ay pinapagana ng sensor ng pinto na may pagsasama ng automation sa bahay, WiFi at ESP-NGAYON: 5 Hakbang (na may Mga Larawan)
Ang baterya ay pinapagana ng sensor ng pinto na may pagsasama ng automation sa bahay, WiFi at ESP-NGAYON: 5 Hakbang (na may Mga Larawan)

Video: Ang baterya ay pinapagana ng sensor ng pinto na may pagsasama ng automation sa bahay, WiFi at ESP-NGAYON: 5 Hakbang (na may Mga Larawan)

Video: Ang baterya ay pinapagana ng sensor ng pinto na may pagsasama ng automation sa bahay, WiFi at ESP-NGAYON: 5 Hakbang (na may Mga Larawan)
Video: Video Call Wireless Standalone Heimvision HM210 Dual Band Wifi 2.4G-5G 2024, Nobyembre
Anonim
Image
Image

Sa itinuturo na ito ipinapakita ko sa iyo kung paano ako gumawa ng isang pinapatakbo ng baterya na sensor ng pinto na may pagsasama ng automation ng bahay. Nakita ko ang ilang iba pang magagandang sensor at alarm system, ngunit nais kong gumawa ng isa sa sarili ko.

Ang aking mga Layunin:

  • Isang sensor na nakakakita at nag-uulat ng mabilis na pagbubukas ng pinto (<5 segundo)
  • Isang sensor na nakakita ng pagsasara ng pinto
  • Isang sensor kung saan pinapatakbo ang baterya at tumatakbo ng ilang buwan sa isang baterya

Ang hardware at software ay inspirasyon ng

  • Ang trigboard ng Kevin Darrah (TPL5111 at TPS73733).
  • Ang video na ito

Gumawa ako ng isang sensor para sa aking harap sa likod ng bahay at sa aking likod. Ang pagkakaiba lamang ay ang humantong posisyon at ang panlabas na switch ng kapangyarihan (sa backdoor sensor).

Gumawa ako ng maraming mga pagpapabuti sa panahon ng pag-unlad sa hardware at software, makikita ito sa mga larawan.

Mga gamit

Binili ko ang mga elektronikong sangkap mula sa Aliexpress, ang mga pangunahing bahagi:

  • Baterya ng LiPo
  • TPS73733 LDO
  • TPL5111
  • Reed switch
  • P-channel mosfet: IRLML6401TRPBF
  • Pang-akit
  • Ang plate ng adapter ng PCB para sa mga sangkap ng SMD at iba pa.

Hakbang 1: Hardware - Circuit

Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit
Hardware - Circuit

Tingnan ang mga nakakabit na mga scheme para sa circuit. Inhinang ko ang mga bahagi ng SMD sa isang plato ng adapter PCB at nahinang ang lahat ng mga bahagi sa isang dobleng panig na board na pang-perfume. Ikinonekta ko ang ESP-01 sa pamamagitan ng mga babaeng header, kaya maaari kong alisin ito upang mai-program ito sa pamamagitan ng adapter na ipinapakita sa hakbang 3 ng Instructable na ito.

Gumagana ang circuit tulad ng sumusunod:

  • Kapag binuksan ang pinto, ang TPL5111 ay tumatanggap ng isang pagbaril sa PIN ng DELAY / M_DRV at nagbibigay-daan sa TPS73733 LDO na nagpapagana sa ESP-01. Para sa operasyong ito, ang EN / ONE_SHOT ay dapat na hilahin pababa, Tingnan ang datasheet ng TPL5111.
  • Matapos ang programa ay tumakbo (tingnan ang hakbang na Software), ang ESP-01 ay nagpapadala ng isang Tapos na signal sa TPL5111 na pagkatapos ay hindi pinagana ang TPS73733 na nagreresulta sa isang napakababang estado ng kuryente para sa TPL5111 at sa TPS73733.

Gumagamit ako ng mga switch ng tambo na may parehong koneksyon na HINDI at NC. Ikinonekta ko ang NC lead, dahil ang reed switch ay dapat isara ang circuit kapag ang magnet ay tinanggal (bukas ang pinto) at buksan kapag malapit ang magnet (sarado ang pinto).

Para sa backdoor sensor ay nagdagdag ako ng ilang mga condensator at resistor nang matuklasan ko ang ilang mga kawalang kakayahan, subalit ang kawalang-tatag ay sanhi ng software (esp_now_init) tulad ng natuklasan ko sa paglaon.

Hakbang 2: Hardware - Enclosure

Hardware - Enclosure
Hardware - Enclosure
Hardware - Enclosure
Hardware - Enclosure
Hardware - Enclosure
Hardware - Enclosure

Dinisenyo ko ang enclosure sa Autodesk Fusion360, inspirasyon ng video na ito ng 'the guy with the swiss accent'.

Ang mga file ng STL ng tatlong bahagi:

  • Kahon
  • Lid
  • May hawak ng magnet

ay nai-publish sa aking pahina ng Thingiverse.

Hakbang 3: Software

Software
Software

Ang programa ay nasa aking Github.

Ang daloy ng programa ay ipinapakita sa larawan. Tingnan ang aking iba pang maituturo para sa paliwanag ng kung paano ko ginagamit ang ESP-NGAYON.

Kapag pinapagana ang modyul, susubukan muna nitong ipadala ang mensahe na 'BUKSAN' sa pamamagitan ng ESP-NGAYON. Kung hindi ito magtagumpay, lilipat ito sa isang koneksyon sa WiFi at MQTT.

Nalaman ko na, kahit papaano sa aking pag-set up, ang mensaheng 'SARADO' ay hindi matagumpay na naipadala sa pamamagitan ng ESP-NGAYON, kaya tinanggal ko ito mula sa programa at gumagamit lamang ng WiFi at MQTT.

Sa oras na binuksan ang pinto at hinihintay ng modyul na magsara ang pintuan, ginagamit nito ang oras na ito upang kumonekta sa WiFi at MQTT, kaya't kapag nakasara ang pinto, kailangan lamang ipadala ang sinusukat na boltahe at isang SINADONG mensahe at pagkatapos ay diretso itong natutulog.

Sinusuri ng programa kung ang saradong mensahe ay natanggap ng tatanggap sa pamamagitan ng pakikinig sa isang mensahe ng MQTT sa tamang paksa.

Hakbang 4: Home Automation at Telegram

Home Automation at Telegram
Home Automation at Telegram
Home Automation at Telegram
Home Automation at Telegram
Home Automation at Telegram
Home Automation at Telegram

Ang aking mga sensor ng pinto ay nakikipag-usap sa aking Openhab Home Automation sa aking Raspberry Pi Zero.

Pangunahing mga application:

  • Basahin ang estado ng pinto: BUKAS o SARADO.
  • I-alarm ako sa pamamagitan ng telegram kung ang isang pinto ay binuksan (Kung ang Alarm ay nakabukas o ang function ng Monitor ay nakabukas).
  • Basahin ang huling oras na ang isang pinto ay binuksan o isinara.
  • Bilangin ang bilang ng mga bakanteng maaaring hawakan ng sensor ng pinto bago maubusan ang baterya.

Halimbawa, kung tayo ay nasa bakasyon at pumapasok ang kapitbahay upang paimnan ang mga halaman, nakakuha ako ng mensahe. Tingnan ang video sa intro.

Ang aking mga Openhab item, panuntunan at sitemap file ay nasa aking Github. Sa mga file na ito maaari mo ring makita ang aking sensor ng pintuan ng malaglag, na gumagamit ng isang regular na wired switch na tambo at isang maliit na contact (end) switch mula sa isang 3D printer sa pagbubukas ng lock (tingnan ang mga larawan).

Kung paano gamitin ang pagkilos ng Telegram sa Openhab ay inilarawan dito.

Hakbang 5: Mga Pagpapabuti at Karagdagang Mga Pagpapabuti

Mga Pagpapabuti at Karagdagang Mga Pagpapabuti
Mga Pagpapabuti at Karagdagang Mga Pagpapabuti
Mga Pagpapabuti at Karagdagang Mga Pagpapabuti
Mga Pagpapabuti at Karagdagang Mga Pagpapabuti

Sa mga nakaraang buwan ginawa ko ang sumusunod na pagpapabuti.

Hawakan mahaba ang pagbubukas ng pinto sa pamamagitan ng isang self-switching pulse signal

Sa tag-araw, iniiwan namin ang backdoor na binuksan ng ilang oras kapag nasa bahay kami. Ang pagpapatakbo ng ESP-01 na may koneksyon sa WiFi ay hindi kinakailangan na maubos ang baterya. Dahil doon nagsama ako ng isang on / off switch upang ma-patay ang module sa mga sitwasyong ito.

Gayunpaman, nagresulta ito minsan sa isang permanenteng nakabukas na module (kapag nakalimutan kong i-on ito) at isang pinatuyo na baterya pagkatapos ng ilang mga hapon ng isang bukas na pinto at isang tumatakbo na module (Kapag nakalimutan kong patayin ito).

Dahil dito nais kong ma-off ang module sa pamamagitan ng software pagkatapos ng module ay para sa isang paunang natukoy na oras (1 minuto).

Gayunpaman, kung saan ang 'TAPOS' na pulso ng ESP-01 ay pinatay ang TPL5111 nang sarado ang pinto, nalaman ko na ang TPL5111 ay hindi pinalitan ng isang 'TAPOS' na pulso habang ang PINADONG / M_DRV pin ay TAAS. Ang HIGH signal na ito sa PIN ng PANAHON / M_DRV ay sanhi ng pagbukas ng pinto at ng contact ng NC ng reed switch na konektado sa boltahe ng baterya.

Kaya, ang signal sa PIN ng pagka-antala / M_DRV ay hindi dapat na patuloy na TAAS, ngunit dapat na pulsed. Sa TPL5111 datasheet maaari mong makita na dapat itong isang pulso na> 20 ms. Ginawa ko ang self-switching signal na ito sa pamamagitan ng isang P-channel mosfet, isang capacitor at isang 10K at 300K resistor, tingnan ang kasamang scheme.

Gumagawa ito tulad ng sumusunod:

  • Kung ang contact ng NC ng reed switch ay sarado, ang Gate ay LOW at ang Mosfet ay nakabukas ON, na nagreresulta sa isang HIGH signal sa DELAY / M_DRV pin na nagpapagana ng module.
  • Ang capacitor ay mabilis na sisingilin, na nagreresulta sa isang tumataas na boltahe sa Gate.
  • Matapos ang humigit-kumulang na 20 ms, ang boltahe sa Gate ay 97% ng boltahe ng baterya (300K / (300K + 10K) na TAAS at ang Mosfet ay pinatay, na nagreresulta sa isang LOW signal sa PIN ng pagka-antala / M_DRV.
  • Kapag ang TANGGAL / M_DRV pin ay LOW, ang Tapos na signal ng ESP-01 ay nagreresulta sa isang pag-shutdown ng module.

Ito ay ipinatupad sa software; ang isang habang-loop ay hindi lamang suriin kung ang pinto ay binuksan pa rin, ngunit suriin din kung ang module ay hindi nakabukas nang masyadong mahaba. Kung nakabukas nang masyadong mahaba naglalathala ito ng isang halaga ng NULL (hindi natukoy na estado ng pinto). Sa kasong ito hindi ko alam kung ang pintuan ay binuksan o sarado at hindi ko maabot ang lahat ng mga layunin na nabanggit sa intro, ngunit ang buhay ng baterya ay mas mahalaga at sa karamihan ng mga oras binubuksan namin muli ang pinto sa paglaon ng araw na iyon, na nagreresulta sa isang kumpirmadong saradong estado ng pinto.

Mahalagang gumamit ng isang P-channel Mosfet na angkop para sa saklaw ng boltahe na ginamit dito. Ang Mosfet ay dapat na ganap na nasa isang VGS na mga - 3.8V at ganap na off sa isang VGS na mga -0.2 V. Sinubukan ko ang ilang mga Mosfet at nalaman na ang isang IRLML6401TRPBF ay gumagana nang maayos para sa layuning ito kasama ng mga resistor na 10K at 300K. Ang isang kapasitor ng 1 uF ay gumagana nang maayos upang makakuha ng isang pulselength na tungkol sa 20 ms. Ang isang mas malaking capacitor ay nagreresulta sa isang mas mahabang pulso, na kung saan ay hindi kinakailangan, dahil ang TPL5111 ay naaktibo. Ginamit ko ang aking DSO150 oscilloscope upang suriin ang mga voltages at ang pulselength.

Plano ng pagpapabuti: pag-update ng OTA

Plano kong isama ang isang pag-update ng OTA sa pamamagitan ng sumusunod na pamamaraan, na bahagyang kasama sa kasalukuyang software

  • Sa pamamagitan ng Openhab ng NodeRed nai-publish ko ang isang pinanatili ang mensahe na 'i-update' isang 'paksa sa pag-update'.
  • Kung ang modyul ay nakabukas at nakakonekta sa MQTT server at nag-subscribe sa 'paksa sa pag-update', natatanggap nito ang mensahe ng pag-update.
  • Pipigilan ng mensahe ng pag-update ang module mula sa pagkapatay at sisimulan ang
  • Sa pamamagitan ng website ng HTTPUpdateServer, maaari mong i-update ang software.
  • Sa pamamagitan ng Openhab ng NodeRed nai-publish ko ang isang pinanatili ang 'walang laman' na mensahe ng isang 'paksa sa pag-update'.

Plano ng pagpapabuti: pag-shutdown ng hardware pagkatapos ng isang paunang natukoy na oras

Sa kasalukuyang pamamaraan, gumagamit ako ng isang 200K risistor sa pagitan ng TANGGAL / M_DRV at GND ng TPL5111. Ito ay lumilipat sa module nang higit sa 2 oras (tingnan ang 7.5.3. Ng TPL5111 datasheet). Gayunpaman, hindi ko nais na nakabukas nang matagal ang module, dahil ang baterya ay pinatuyo pagkatapos. Kung ang solusyon sa software (tingnan sa itaas) ay nabigong patayin ang module, o ang mensahe ng pag-update na hindi nilalayon na nagtatakda ng module sa mode na pag-update, ang module ay mananatiling pinapatakbo nang mahabang panahon.

Dahil dito mas mahusay na gumamit ng isang mas maliit na risistor sa pagitan ng TANGGALIN / M_DRV at GND ng TPL5111, kaya't pinapatakbo ang module pagkatapos ng isang maikling panahon, halimbawa isang 50K risistor na nagreresulta sa isang oras ng 7 minuto.

Inirerekumendang: