Мазмуну:

Батарея менен иштөөчү эшик сенсору үй автоматташтыруу, WiFi жана ESP-АЗЫР: 5 кадам (сүрөттөр менен)
Батарея менен иштөөчү эшик сенсору үй автоматташтыруу, WiFi жана ESP-АЗЫР: 5 кадам (сүрөттөр менен)

Video: Батарея менен иштөөчү эшик сенсору үй автоматташтыруу, WiFi жана ESP-АЗЫР: 5 кадам (сүрөттөр менен)

Video: Батарея менен иштөөчү эшик сенсору үй автоматташтыруу, WiFi жана ESP-АЗЫР: 5 кадам (сүрөттөр менен)
Video: Батарей менен иштоочу инструменттер ОБИ магазин 2024, Июль
Anonim
Image
Image

Бул көрсөтмөдө мен сизге үйдүн автоматташтыруу интеграциясы менен батарея менен иштеген эшик сенсорун кантип жасаганымды көрсөтөм. Мен башка жакшы сенсорлорду жана сигнализация системаларын көрдүм, бирок мен өзүм жасагым келди.

Менин максаттарым:

  • Эшиктин тез ачылып жатканын билдирүүчү сенсор (<5 секунд)
  • Эшиктин жабылышын аныктоочу сенсор
  • Батарея менен иштеген жана батареяда бир нече ай иштеген сенсор

Аппараттык жана программалык камсыздоо шыктанган

  • Kevin Darrah триггери (TPL5111 жана TPS73733).
  • Бул видео

Мен алдыңкы жана арткы эшигим үчүн сенсор жасадым. Жалгыз айырмачылык - бул жетекчи позиция жана тышкы электр которгуч (арткы эшик сенсорунда).

Мен аппараттык жана программалык камсыздоону иштеп чыгуу учурунда бир нече жакшыртууларды киргиздим, муну сүрөттөрдөн көрүүгө болот.

Жабдуулар

Мен Aliexpressтен электрондук компоненттерди сатып алдым, негизги бөлүктөрү:

  • LiPo батареясы
  • TPS73733 LDO
  • TPL5111
  • Камыш которгуч
  • P-канал mosfet: IRLML6401TRPBF
  • Магнит
  • PCD адаптер табак SMD компоненттери жана башка үчүн.

1 -кадам: Аппараттык - Райондук

Аппараттык - Райондук
Аппараттык - Райондук
Аппараттык - Райондук
Аппараттык - Райондук
Аппараттык - Райондук
Аппараттык - Райондук

Райондун тиркелген схемаларын караңыз. Мен SMD бөлүктөрүн адаптердик ПХБ плитасына кошуп, бардык компоненттерди эки тараптуу тактайга ширеттим. Мен ESP-01ди аялдын баштары аркылуу туташтырдым, андыктан аны ушул Нускаманын 3-кадамында көрсөтүлгөн адаптер аркылуу программалоо үчүн алып салышым мүмкүн.

Район төмөнкүдөй иштейт:

  • Эшик ачылганда, TPL5111 DELAY/M_DRV пинине ок тийгизет жана ESP-01ди иштетүүчү TPS73733 LDO иштетет. Бул операция үчүн EN/ONE_SHOT төмөн тартылышы керек, TPL5111 маалымат барагын караңыз.
  • Программа иштей баштагандан кийин (Программалык камсыздоону караңыз), ESP-01 TPL5111ге Done сигналын жөнөтөт, андан кийин TPS73733 өчүрүлөт, натыйжада TPL5111 жана TPS73733 үчүн кубаттуулугу өтө төмөн.

Мен камыш өчүргүчтөрдү NO жана NC туташуулары менен колдоном. Мен NC коргоосун туташтырдым, анткени камыш которгуч магнитти алып салганда (эшик ачык) схеманы жабышы керек жана магнит жакын турганда (эшик жабык) ачылышы керек.

Арткы эшиктин сенсоруна мен кээ бир туруксуздуктарды тапканымда кээ бир конденсаторлорду жана резисторлорду коштум, бирок туруксуздукка кийинчерээк ачкандай программалык камсыздоо (esp_now_init) себеп болгон.

2 -кадам: Аппараттык жабдык

Аппараттык жабдык
Аппараттык жабдык
Аппараттык жабдык
Аппараттык жабдык
Аппараттык жабдык
Аппараттык жабдык

Мен Autodesk Fusion360 тиркемесин ушул видеодон шыктандырган "швейцар акценти бар жигит" долбоорлодум.

Үч бөлүктөн турган STL файлдары:

  • Box
  • Капкак
  • Магнит кармагыч

Менин Thingiverse баракчамда жарыяланган.

3 -кадам: Программалык камсыздоо

Программалык камсыздоо
Программалык камсыздоо

Программа менин Github -да.

Программанын агымы сүрөттө көрсөтүлгөн. Менин башка көрсөтмөмдү караңыз, мен ESP-NOW кантип колдоноорумду түшүндүрүү үчүн.

Модуль күйгүзүлгөндө, ал адегенде ESP-NOW аркылуу 'АЧУУ' билдирүүсүн жөнөтүүгө аракет кылат. Эгер бул ишке ашпаса, анда WiFi жана MQTT туташуусуна өтөт.

Мен, жок дегенде, менин орнотуумда, 'ЖАБЫК' билдирүүсү ESP-NOW аркылуу ийгиликтүү жөнөтүлбөгөнүн билдим, ошондуктан мен муну программадан алып салдым жана WiFi менен MQTTди гана колдоном.

Эшик ачылып, модуль эшиктин жабылышын күтүп жаткан убакта, бул убакытты WiFi жана MQTTге туташуу үчүн колдонот, ошондуктан эшик жабылганда, ал ченелген чыңалууну жана ЖАБЫК кабарды жөнөтүшү керек. ал түз эле уктап калат.

Программа жабык билдирүүнүн туура тема боюнча MQTT билдирүүсүн угуу аркылуу алуучу тарабынан кабыл алынганын текшерет.

4 -кадам: Үйдү автоматташтыруу жана телеграмма

Үйдү автоматташтыруу жана телеграмма
Үйдү автоматташтыруу жана телеграмма
Үйдү автоматташтыруу жана телеграмма
Үйдү автоматташтыруу жана телеграмма
Үйдү автоматташтыруу жана телеграмма
Үйдү автоматташтыруу жана телеграмма

Менин эшик сенсорлорум Raspberry Pi Zero боюнча Openhab Home Automation менен байланышат.

Негизги колдонмолор:

  • Эшиктин абалын окуңуз: АЧЫК же ЖАБЫК.
  • Эгер эшик ачылса телеграмма аркылуу эскертүү (Сигнал күйгүзүлгөн же Монитор функциясы күйгүзүлгөн болсо).
  • Акыркы жолу качан эшик ачылганын же жабылганын окуңуз.
  • Батарея түгөнгөнгө чейин эшик сенсорунун канча тешик бар экенин эсептеңиз.

Мисалы, биз каникулда болсок жана коңшу өсүмдүктөрдү сугарганы келсе, мага кабар келет. Киришүүдөгү видеону көрүңүз.

Менин Openhab элементтерим, эрежелерим жана сайт картасынын файлдары менин Github -да. Бул файлдарда сиз менин эшик сенсорумду көрө аласыз, ал кадимки зымдуу камыш которгучту жана 3D принтерден кулпунун тешигиндеги кичинекей контакт (учу) которгучту колдонот (сүрөттөрдү караңыз).

Openhabде Telegram аракетин кантип колдонуу керектиги бул жерде сүрөттөлгөн.

5 -кадам: жакшыртуулар жана андан ары жакшыртуу

Жакшыртуулар жана андан ары жакшыртуу
Жакшыртуулар жана андан ары жакшыртуу
Жакшыртуулар жана андан ары жакшыртуу
Жакшыртуулар жана андан ары жакшыртуу

Өткөн айларда мен төмөнкү жакшыртууну жасадым.

Узун эшик тешиктерин өзүн-өзү алмаштыруучу импульстук сигнал аркылуу башкарыңыз

Жайында биз үйдө жүргөндө эшикти бир нече саатка ачык калтырабыз. WiFi байланышы бар иштеп жаткан ESP-01 батареяны зарылдыгы жокко чыгарат. Ошентип, мен модулду мындай кырдаалда өчүрүү үчүн күйгүзүү/өчүрүү өчүргүчүн коштум.

Бирок, кээде бул биротоло өчүрүлгөн модулга (мен аны күйгүзүүнү унутуп калганда) жана ачылган эшиктин жана иштеп жаткан модулдун бир нече түштөн кийин батареясынын түгөнүшүнө алып келди (Мен аны өчүрүүнү унутуп калганда).

Ошентип, модул алдын ала белгиленген убакытка (1 мүнөт) күйгүзүлгөндөн кийин, программалык камсыздоо аркылуу модулду өчүргүм келди.

Бирок, ESP-01дин "DONE" импульсу TPL5111ди эшик жабылганда өчүрүп койгондо, мен TPL5111дин "DONE" импульсу өчүрүлбөгөнүн, DELAY/M_DRV пин жогору экенин билдим. DELAY/M_DRV төөнөгүчүндөгү бул Жогорку сигналдын ачылышы эшиктен жана батарея чыңалуусуна туташкан камыш коммутаторунун NC байланышынан улам келип чыккан.

Ошентип, DELAY/M_DRV пинге сигнал үзгүлтүксүз ЖОГОРУ болбошу керек, бирок импульстуу болушу керек. TPL5111 маалымат барагынан> 20 мс импульс болушу керек экенин таба аласыз. Мен бул өзүн-өзү алмаштыруучу сигналды P-канал мосфети, конденсатор жана 10K жана 300К каршылыгы аркылуу жасадым, киргизилген схеманы караңыз.

Бул төмөнкүдөй иштейт:

  • Эгерде камыш которгучтун NC байланышы жабык болсо, дарбаза ТӨМӨН жана Мосфет күйгүзүлөт, натыйжада кечигүү/M_DRV пинде жогорку сигнал пайда болот, ал модулду иштетет.
  • Конденсатор тез заряддалат, натыйжада дарбазанын чыңалуусу жогорулайт.
  • Болжол менен 20 мс өткөндөн кийин, дарбазанын чыңалуусу батарейканын чыңалуусунун 97% ын түзөт (300K/(300K+10K), бул МОСФЕТ өчүрүлгөн, натыйжада DELAY/M_DRV төөнөгүчүндө ТӨМӨН сигнал пайда болот.
  • DELAY/M_DRV пини ТӨМӨН болгондо, ESP-01дин DONE сигналы модулдун өчүшүнө алып келет.

Бул программалык камсыздоодо ишке ашырылат; while-loop эшиктин дагы эле ачылганын текшербестен, модулдун өтө көп убакытка иштетилбегенин да текшерет. Өтө көп күйгүзүлгөндө, ал NULL маанисин жарыялайт (эшиктин аныкталбаган абалы). Бул учурда мен эшиктин ачылганын же жабылганын билбейм жана киришүүдө айтылган бардык максаттарга жете бербейм, бирок батареянын иштөө мөөнөтү маанилүү жана көпчүлүк учурда эшикти ошол күнү кайра ачабыз, натыйжада жабык абал ырасталат эшиктин.

Бул жерде колдонулуучу чыңалуу диапазонуна ылайыктуу P-канал Mosfetти колдонуу маанилүү. Mosfet болжол менен VGSде - 3.8V жана VGSде -0.2 V. толугу менен өчүрүлүшү керек. Мен бир нече Mosfetsти сынап көрдүм жана IRLML6401TRPBF бул максат үчүн 10K жана 300K резисторлору менен жакшы иштээрин билдим.. 1 uF конденсатору болжол менен 20 мс пульболу үчүн жакшы иштейт. Чоң конденсатор TPL5111 жандырылгандыктан, кереги жок, узунураак импульсту алып келет. Мен DSO150 осциллографымды колдонуп, чыңалуумду жана импульс узундугун текшердим.

Пландаштырылган жакшыртуу: OTA жаңыртуусу

Мен OTA жаңыртуусун мурунку программанын жарым -жартылай камтылган төмөнкү процедурасы аркылуу киргизүүнү пландап жатам

  • NodeRedдин Openhab аркылуу, мен "жаңылоо темасы" сакталган билдирүүнү жарыялап турам.
  • Эгерде модуль күйгүзүлүп, MQTT серверине туташып, "жаңыртуу темасына" жазылса, ал жаңыртуу кабарын алат.
  • Жаңыртуу билдирүүсү модулдун өчүшүнө жол бербейт жана HTTPUpdateServerди баштайт.
  • HTTPUpdateServer сайты аркылуу программалык камсыздоону жаңырта аласыз.
  • NodeRedдин Openhab аркылуу мен "бош" деген билдирүүнү "жаңыртуу темасын" жарыялап турам.

Пландаштырылган жакшыртуу: алдын ала белгиленген убакыттан кийин аппараттык өчүрүү

Учурдагы схемада мен TPL5111дин DELAY/M_DRV жана GND ортосунда 200K каршылыгын колдоном. Бул модулду 2 сааттан ашык иштетет (TPL5111 маалымат барагынын 7.5.3. Караңыз). Бирок, модулдун ушунчалык көп убакыт бою күйгүзүлүшүн каалабайм, анткени батарейкасы түгөнөт. Эгерде программалык камсыздоо чечими (жогоруда караңыз) модулду өчүрө албаса, же жаңыртылган билдирүү модулду жаңыртуу режимине койсо, модуль көп убакыт бою күйүп турат.

Ошондуктан TPL5111дин DELAY/M_DRV менен GND ортосунда кичирээк резисторду колдонуу жакшы, андыктан модуль кыска убакыттан кийин өчүрүлөт, мисалы 50K каршылыгы 7 мүнөттө иштейт.

Сунушталууда: