Съдържание:

Сензор за врати с батерия с интеграция на домашната автоматизация, WiFi и ESP-NOW: 5 стъпки (със снимки)
Сензор за врати с батерия с интеграция на домашната автоматизация, WiFi и ESP-NOW: 5 стъпки (със снимки)

Видео: Сензор за врати с батерия с интеграция на домашната автоматизация, WiFi и ESP-NOW: 5 стъпки (със снимки)

Видео: Сензор за врати с батерия с интеграция на домашната автоматизация, WiFi и ESP-NOW: 5 стъпки (със снимки)
Видео: Xiaomi Mijia LSC-M01, умный дверной звонок с широкоугольной камерой 2024, Юли
Anonim
Image
Image

В тази инструкция ще ви покажа как направих сензор за врата с батерия с интеграция на домашната автоматизация. Виждал съм някои други хубави сензори и алармени системи, но исках сам да си направя такъв.

Моите цели:

  • Сензор, който открива и съобщава за бързо отваряне на врата (<5 секунди)
  • Сензор, който открива затварянето на вратата
  • Сензор, който работи с батерии и работи няколко месеца на батерия

Хардуерът и софтуерът са вдъхновени от

  • Тригбордът на Кевин Дара (TPL5111 и TPS73733).
  • Това видео

Направих сензор за моята и задната врата. Единствената разлика е позицията на светодиода и външния превключвател на захранването (на сензора на задната врата).

Направих няколко подобрения по време на разработката в хардуера и софтуера, може да се види на снимките.

Консумативи

Купих електронните компоненти от Aliexpress, основните части:

  • LiPo батерия
  • TPS73733 LDO
  • TPL5111
  • Тръстен превключвател
  • P-канал MOSFET: IRLML6401TRPBF
  • Магнит
  • Адаптерна платка за печатни платки за SMD компоненти и други.

Стъпка 1: Хардуер - Схема

Хардуер - Електрическа верига
Хардуер - Електрическа верига
Хардуер - Електрическа верига
Хардуер - Електрическа верига
Хардуер - Електрическа верига
Хардуер - Електрическа верига

Вижте приложените схеми за веригата. Запоявах SMD частите на адаптерна печатна платка и запоявах всички компоненти към двустранна перф платка. Свързах ESP-01 чрез женски заглавки, за да мога да го премахна, за да го програмирам чрез адаптера, показан в стъпка 3 на тази инструкция.

Схемата работи по следния начин:

  • Когато вратата се отвори, TPL5111 получава изстрел в щифта DELAY/M_DRV и позволява TPS73733 LDO, който захранва ESP-01. За тази операция EN/ONE_SHOT трябва да се издърпа ниско, вижте листа с данни на TPL5111.
  • След стартиране на програмата (вижте стъпка Софтуер), ESP-01 изпраща сигнал Done към TPL5111, който след това деактивира TPS73733, което води до състояние на много ниска мощност за TPL5111 и TPS73733.

Използвам тръстикови превключватели с NO и NC връзки. Свързах NC кабела, тъй като герконът трябва да затвори веригата, когато магнитът е отстранен (вратата е отворена) и да се отвори, когато магнитът е близо (вратата е затворена).

За сензора на задната врата добавих някои кондензатори и резистори, когато открих някои нестабилности, но нестабилността беше причинена от софтуера (esp_now_init), както открих по -късно.

Стъпка 2: Хардуер - заграждение

Хардуер - кутия
Хардуер - кутия
Хардуер - кутия
Хардуер - кутия
Хардуер - кутия
Хардуер - кутия

Проектирах корпуса в Autodesk Fusion360, вдъхновен от това видео от „човека с швейцарския акцент“.

STL файловете от трите части:

  • Кутия
  • Капак
  • Поставка за магнит

са публикувани на моята страница Thingiverse.

Стъпка 3: Софтуер

Софтуер
Софтуер

Програмата е в моя Github.

Потокът на програмата е показан на снимката. Вижте моя друг Instructable за обяснението как използвам ESP-NOW.

Когато модулът е включен, той първо се опитва да изпрати съобщението „ОТВОРЕНО“чрез ESP-NOW. Ако това не успее, преминава към WiFi и MQTT връзка.

Разбрах, че поне в моята настройка съобщението „ЗАТВОРЕНО“не е изпратено успешно през ESP-NOW, затова премахнах това от програмата и използвах само WiFi и MQTT.

През времето, през което вратата се отваря и модулът изчаква вратата да се затвори, той използва това време за свързване към WiFi и MQTT, така че когато вратата е затворена, тя трябва само да изпрати измереното напрежение и съобщение ЗАТВОРЕН и след това директно заспива.

Програмата проверява дали затвореното съобщение е получено от приемника чрез слушане на MQTT съобщение по правилната тема.

Стъпка 4: Домашна автоматизация и телеграма

Домашна автоматизация и Telegram
Домашна автоматизация и Telegram
Домашна автоматизация и Telegram
Домашна автоматизация и Telegram
Домашна автоматизация и Telegram
Домашна автоматизация и Telegram

Сензорите на вратата ми комуникират с Openhab Home Automation на моя Raspberry Pi Zero.

Основни приложения:

  • Прочетете състоянието на вратата: ОТВОРЕНО или ЗАТВОРЕНО.
  • Алармирайте ме чрез телеграма, ако се отвори врата (Ако алармата е включена или е включена функцията Монитор).
  • Прочетете последния път, когато вратата беше отворена или затворена.
  • Пребройте броя отвори, които сензорът на вратата може да обработи, преди батерията да се изтощи.

Например, ако сме на почивка и съседът влиза да полива растенията, получавам съобщение. Вижте видеото във въведението.

Моите елементи от Openhab, правила и файлове със карта на сайта са в моя Github. В тези файлове можете да видите и моя сензор за врата на навеса, който използва обикновен кабелен тръстиков превключвател и малък контакт (краен) превключвател от 3D принтер в отвора за заключване (вижте снимките).

Как се използва действието Telegram в Openhab е описано тук.

Стъпка 5: Подобрения и допълнителни подобрения

Подобрения и допълнителни подобрения
Подобрения и допълнителни подобрения
Подобрения и допълнителни подобрения
Подобрения и допълнителни подобрения

През последните месеци направих следното подобрение.

Дръжте дългите отвори на вратите чрез самопревключващ се импулсен сигнал

През лятото оставяме задната врата отворена за няколко часа, когато сме у дома. Работещият ESP-01 с WiFi връзка след това ненужно ще изтощи батерията. Затова включих превключвател за включване/изключване, за да мога да изключвам модула в тези ситуации.

Това обаче понякога води до постоянно изключен модул (когато забравих да го включа) и изтощена батерия след няколко следобеда на отворена врата и работещ модул (Когато забравих да го изключа).

Затова исках да мога да изключа модула чрез софтуера, след като модулът беше включен за предварително определено време (1 минута).

Въпреки това, когато импулсът „DONE“на ESP-01 изключи TPL5111, когато вратата беше затворена, установих, че TPL5111 не е изключен от импулс „DONE“, докато щифтът DELAY/M_DRV е ВИСОК. Този ВИСОК сигнал на щифта DELAY/M_DRV е причинен от отворената врата и NC контакта на тръстиковия превключвател, свързан към напрежението на акумулатора.

Така че сигналът към извода DELAY/M_DRV не трябва да бъде непрекъснато ВИСОК, а трябва да бъде импулсен. В листа с данни TPL5111 можете да откриете, че той трябва да бъде импулс от> 20 ms. Направих този самопревключващ сигнал чрез P-канал MOSFET, кондензатор и 10K и 300K резистор, вижте включената схема.

Работи по следния начин:

  • Ако NC контактът на тръстиковия превключвател е затворен, портата е НИСКА и Mosfet е включен, което води до ВИСОК сигнал на щифт DELAY/M_DRV, който активира модула.
  • Кондензаторът се зарежда бързо, което води до повишаване на напрежението на портата.
  • След приблизително 20 ms напрежението на портата е 97% от напрежението на акумулатора (300K/(300K+10K), което е ВИСОКО и MOSFET се изключва, което води до НИСКИ сигнал на щифта DELAY/M_DRV.
  • Когато изводът DELAY/M_DRV е НИСКИ, сигналът DONE на ESP-01 води до изключване на модула.

Това е внедрено в софтуера; цикъл while не само проверява дали вратата все още е отворена, но също така проверява дали модулът не е включен твърде дълго. Ако е включен твърде дълго, той публикува NULL стойност (неопределено състояние на вратата). В този случай не знам дали вратата е отворена или затворена и не постигам всички цели, споменати във въведението, но животът на батерията е по -важен и повечето пъти отваряме вратата отново по -късно същия ден, което води до потвърдено затворено състояние на вратата.

Важно е да използвате P-канал Mosfet, който е подходящ за използвания тук диапазон на напрежение. Mosfet трябва да бъде напълно включен при VGS от около - 3.8V и напълно изключен при VGS от около -0.2 V. Опитах няколко Mosfeta и установих, че IRLML6401TRPBF работи добре за тази цел в комбинация с 10K и 300K резистори. Кондензатор от 1 uF работи добре, за да получи дължина на импулса от около 20 ms. По -голям кондензатор води до по -дълъг импулс, което не е необходимо, тъй като TPL5111 е активиран. Използвах моя осцилоскоп DSO150, за да проверя напреженията и дължината на импулса.

Планирано подобрение: OTA актуализация

Планирам да включа OTA актуализация чрез следната процедура, която вече е частично включена в текущия софтуер

  • Чрез Openhab на NodeRed публикувам запазено съобщение „актуализация“и „тема за актуализация“.
  • Ако модулът е включен и свързан към MQTT сървъра и се абонира за „темата за актуализация“, той получава съобщението за актуализация.
  • Съобщението за актуализация ще попречи на изключването на модула и стартира
  • Чрез уебсайта на HTTPUpdateServer можете да актуализирате софтуера.
  • Чрез Openhab на NodeRed публикувам запазено „празно“съобщение и „тема за актуализация“.

Планирано подобрение: изключване на хардуера след предварително определено време

В настоящата схема използвам 200K резистор между DELAY/M_DRV и GND на TPL5111. Това включва модула за повече от 2 часа (вижте 7.5.3. От листа с данни TPL5111). Не искам обаче модулът да е включен толкова дълго, защото след това батерията се изтощава. Ако софтуерното решение (вижте по -горе) не успее да изключи модула или съобщението за актуализация неволно поставя модула в режим на актуализация, модулът остава включен за дълго време.

Затова е по -добре да използвате по -малък резистор между DELAY/M_DRV и GND на TPL5111, така че модулът да се изключи след кратко време, например 50K резистор, което води до включване от 7 минути.

Препоръчано: