Оглавление:
- Запасы
- Шаг 1: Аппаратное обеспечение - Схема
- Шаг 2: Аппаратное обеспечение - Корпус
- Шаг 3: Программное обеспечение
- Шаг 4: Домашняя автоматизация и Telegram
- Шаг 5: Улучшения и дальнейшие улучшения
Видео: Дверной датчик с питанием от аккумулятора, интеграция с домашней автоматикой, Wi-Fi и ESP-NOW: 5 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
В этом руководстве я покажу вам, как я сделал дверной датчик с батарейным питанием с интеграцией домашней автоматизации. Я видел и другие хорошие датчики и системы сигнализации, но хотел сделать сам.
Мои цели:
- Датчик, который обнаруживает быстрое открывание двери (<5 секунд) и сообщает о нем.
- Датчик, определяющий закрытие двери
- Датчик, работающий от батареи и работающий несколько месяцев от батареи.
Аппаратное и программное обеспечение вдохновлено
- Доска объявлений Кевина Дарры (TPL5111 и TPS73733).
- Это видео
Я сделал датчик для входной двери и задней двери. Единственное отличие - положение светодиода и внешний выключатель питания (на датчике задней двери).
В процессе разработки я сделал несколько улучшений в аппаратном и программном обеспечении, это видно на фотографиях.
Запасы
Я купил электронные компоненты на Алиэкспресс, основные части:
- LiPo аккумулятор
- TPS73733 LDO
- TPL5111
- Геркон
- MOSFET с P-каналом: IRLML6401TRPBF
- Магнит
- Плата адаптера печатной платы для компонентов SMD и другое.
Шаг 1: Аппаратное обеспечение - Схема
Смотрите приложенные схемы схемы. Я припаял SMD-детали на плате адаптера и припаял все компоненты к двухсторонней монтажной плате. Я подключил ESP-01 через женские заголовки, поэтому я мог удалить его, чтобы запрограммировать его через адаптер, показанный в шаге 3 этой инструкции.
Схема работает следующим образом:
- Когда дверь открывается, TPL5111 получает сигнал на вывод DELAY / M_DRV и включает LDO TPS73733, который питает ESP-01. Для этой операции EN / ONE_SHOT должен быть установлен на низкий уровень, см. Техническое описание TPL5111.
- После запуска программы (см. Шаг «Программное обеспечение») ESP-01 отправляет сигнал «Готово» на TPL5111, который затем отключает TPS73733, что приводит к очень низкому энергопотреблению для TPL5111 и TPS73733.
Я использую герконы как с нормально разомкнутыми, так и с нормально замкнутыми контактами. Я подключил нормально замкнутый провод, так как геркон должен замкнуть цепь при удалении магнита (дверь открыта) и размыкаться, когда магнит находится рядом (дверь закрыта).
Для датчика заднего хода я добавил несколько конденсаторов и резисторов, когда обнаружил некоторые нестабильности, однако нестабильность была вызвана программным обеспечением (esp_now_init), как я обнаружил позже.
Шаг 2: Аппаратное обеспечение - Корпус
Я спроектировал корпус в Autodesk Fusion360, вдохновленный этим видео «парнем со швейцарским акцентом».
Файлы STL из трех частей:
- Коробка
- Крышка
- Держатель магнита
опубликованы на моей странице в Thingiverse.
Шаг 3: Программное обеспечение
Программа есть у меня на Github.
Ход работы программы показан на картинке. См. Другие мои инструкции для объяснения того, как я использую ESP-NOW.
Когда модуль включен, он сначала пытается отправить сообщение «ОТКРЫТЬ» через ESP-NOW. Если это не удается, он переключается на соединение WiFi и MQTT.
Я обнаружил, что, по крайней мере, в моей настройке сообщение «ЗАКРЫТО» не было успешно отправлено через ESP-NOW, поэтому я удалил его из программы и использовал только WiFi и MQTT.
В течение времени, когда дверь открывается и модуль ожидает закрытия двери, он использует это время для подключения к Wi-Fi и MQTT, поэтому, когда дверь закрыта, ему нужно только отправить измеренное напряжение и сообщение ЗАКРЫТО, а затем он сразу засыпает.
Программа проверяет, получено ли закрытое сообщение получателем, путем прослушивания сообщения MQTT по нужной теме.
Шаг 4: Домашняя автоматизация и Telegram
Мои дверные датчики связываются с моей домашней автоматизацией Openhab на моем Raspberry Pi Zero.
Основные приложения:
- Считайте состояние двери: ОТКРЫТА или ЗАКРЫТА.
- Оповещать меня телеграммой, если дверь открыта (если включена сигнализация или функция контроля).
- Прочтите, когда в последний раз открывали или закрывали дверь.
- Подсчитайте количество открытий, которое может обработать дверной датчик, прежде чем разрядится аккумулятор.
Например, если мы в отпуске, и сосед приходит полить растения, я получаю сообщение. Смотрите видео во вступлении.
Мои элементы, правила и файлы карты сайта Openhab находятся в моем Github. В этих файлах вы также можете увидеть мой дверной датчик сарая, который использует обычный проводной геркон и небольшой контактный (концевой) переключатель от 3D-принтера в проеме замка (см. Рисунки).
Здесь описано, как использовать действие Telegram в Openhab.
Шаг 5: Улучшения и дальнейшие улучшения
За последние месяцы я сделал следующее улучшение.
Обработка длинных дверных проемов с помощью импульсного сигнала с автоматическим переключением
Летом мы оставляем черный ход открытым на несколько часов, когда находимся дома. В этом случае работающий ESP-01 с подключением к Wi-Fi будет излишне разряжать аккумулятор. Поэтому я включил переключатель включения / выключения, чтобы иметь возможность выключить модуль в таких ситуациях.
Тем не менее, это иногда приводило к постоянно выключенному модулю (когда я забыл его включить) и разряженной батарее через несколько дней после открытия двери и работающего модуля (когда я забыл выключить его).
Поэтому я хотел иметь возможность выключать модуль через программное обеспечение после того, как модуль был включен в течение заданного времени (1 минута).
Однако, когда импульс «DONE» ESP-01 отключил TPL5111, когда дверь была закрыта, я обнаружил, что TPL5111 не был отключен импульсом «DONE», в то время как вывод DELAY / M_DRV был HIGH. Этот ВЫСОКИЙ сигнал на выводе DELAY / M_DRV был вызван открытой дверцей и нормально замкнутым контактом геркона, подключенным к напряжению батареи.
Таким образом, сигнал на вывод DELAY / M_DRV не должен быть постоянно ВЫСОКИМ, а должен быть импульсным. В таблице данных TPL5111 вы можете найти, что это должен быть импульс> 20 мс. Я сделал этот самопереключающийся сигнал через МОП-транзистор с P-каналом, конденсатор и резисторы 10 кОм и 300 кОм, см. Прилагаемую схему.
Это работает следующим образом:
- Если нормально замкнутый контакт герконового переключателя замкнут, шлюз находится в НИЗКОМ состоянии, а МОП-транзистор включен, в результате чего на выводе DELAY / M_DRV появляется сигнал HIGH, который активирует модуль.
- Конденсатор быстро заряжается, что приводит к повышению напряжения на затворе.
- Примерно через 20 мс напряжение на затворе составляет 97% от напряжения батареи (300 кОм / (300 кОм + 10 кОм), что является ВЫСОКИМ, и Mosfet выключен, что приводит к НИЗКОМУ сигналу на выводе DELAY / M_DRV.
- Когда вывод DELAY / M_DRV имеет значение LOW, сигнал DONE ESP-01 вызывает отключение модуля.
Это реализовано в программном обеспечении; цикл while не только проверяет, открыта ли дверь, но и проверяет, не включается ли модуль слишком долго. Если включен слишком долго, он публикует значение NULL (неопределенное состояние двери). В этом случае я не знаю, открывается дверь или закрывается, и я не достигаю всех целей, упомянутых во вступлении, но время автономной работы более важно, и в большинстве случаев мы снова открываем дверь позже в тот же день, что приводит к подтвержденному закрытому состоянию. двери.
Важно использовать МОП-транзистор с P-каналом, который подходит для используемого здесь диапазона напряжений. Mosfet должен быть полностью включен при VGS около -3,8 В и полностью выключен при VGS около -0,2 В. Я попробовал несколько Mosfet и обнаружил, что IRLML6401TRPBF отлично подходит для этой цели в сочетании с резисторами 10 кОм и 300 кОм.. Конденсатор емкостью 1 мкФ отлично подходит для получения длительности импульса около 20 мс. Конденсатор большего размера дает более длинный импульс, в чем нет необходимости, поскольку TPL5111 был активирован. Я использовал свой осциллограф DSO150, чтобы проверить напряжения и длину импульса.
Планируемое улучшение: обновление OTA
Я планирую включить обновление OTA с помощью следующей процедуры, которая уже частично включена в текущее программное обеспечение.
- Через Openhab в NodeRed я публикую сохраненное сообщение «обновить» и «тему обновления».
- Если модуль включен, подключен к серверу MQTT и подписан на «тему обновления», он получает сообщение об обновлении.
- Сообщение об обновлении предотвратит выключение модуля и запустит
- Через веб-сайт HTTPUpdateServer вы можете обновить программное обеспечение.
- Через Openhab в NodeRed я публикую оставшееся «пустое» сообщение в «тему обновления».
Планируемое улучшение: отключение оборудования по истечении заданного времени
В текущей схеме я использую резистор 200 кОм между DELAY / M_DRV и GND TPL5111. Это включает модуль более чем на 2 часа (см. 7.5.3. Таблицы данных TPL5111). Однако я не хочу, чтобы модуль включался так долго, потому что батарея потом разряжается. Если программное решение (см. Выше) не может выключить модуль, или сообщение об обновлении непреднамеренно переводит модуль в режим обновления, модуль остается включенным в течение длительного времени.
Поэтому лучше использовать резистор меньшего размера между DELAY / M_DRV и GND TPL5111, чтобы модуль отключился через короткое время, например резистор 50 кОм, в результате чего время включения составит 7 минут.
Рекомендуемые:
Умный дверной звонок DIY: код, настройка и интеграция HA: 7 шагов (с изображениями)
Умный дверной звонок DIY: код, настройка и интеграция с высокой доступностью: в этом проекте я покажу вам, как вы можете превратить свой обычный дверной звонок в умный, не изменяя какие-либо текущие функции или не обрезая какие-либо провода. Я буду использовать плату ESP8266 под названием Wemos D1 mini. Вы новичок в ESP8266? Смотрите мое введение
Настенное крепление для IPad в качестве панели управления домашней автоматикой, использование сервоуправляемого магнита для активации экрана: 4 шага (с изображениями)
Настенное крепление для IPad в качестве панели управления домашней автоматикой, использование сервоуправляемого магнита для активации экрана: в последнее время я потратил довольно много времени на автоматизацию вещей в моем доме и вокруг него. Я использую Domoticz в качестве приложения для домашней автоматизации, подробности см. На сайте www.domoticz.com. В моем поиске приложения для приборной панели, которое показывает всю информацию о Domoticz
Голосовое управление домашней автоматикой с помощью Arduino Uno и Bluetooth: 4 шага
Голосовое управление домашней автоматикой с использованием Arduino Uno и Bluetooth: этот проект посвящен взаимодействию модуля Bluetooth с Arduino и мобильным телефоном Android для включения освещения и вентилятора в комнате с помощью голосового управления
ESP IoT с питанием от аккумулятора: 10 шагов (с изображениями)
ESP IoT с питанием от батареи: в этих инструкциях показано, как создать IoT ESP с питанием от батареи на основе конструкции из моих предыдущих инструкций
Конструкция ESP с питанием от аккумулятора: 3 шага (с изображениями)
Конструкция ESP с питанием от батареи: в этой инструкции показано, как снизить потребление энергии батареи при разработке устройства IoT на базе ESP без проводов