Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом руководстве я покажу вам, как я сделал датчик с батарейным питанием для отслеживания состояния двери и блокировки моего удаленного навеса для велосипедов. У меня нет сетевого питания, поэтому он работает от батареи. Батарея заряжается от небольшой солнечной батареи.
Модуль разработан для работы с низким энергопотреблением и работает на ESP-07S в режиме глубокого сна, который каждую минуту просыпается и проверяет положение двери и замка. Однако, когда дверь открыта, модуль будит простая аппаратная схема, чтобы немедленно послать информацию «дверь открыта». Модуль обменивается данными через ESP-Now, в котором время передачи очень короткое и требуется лишь небольшое количество энергии.
Моя домашняя автоматизация, работающая на Openhab, и Mosquitto обрабатывает сообщения и отправляет мне тревожное сообщение через Telegram, если сигнализация включена.
Запасы
Все комплектующие покупаются на Алиэкспресс.
- Модуль ESP-07S выбран для простого подключения внешней антенны для увеличения дальности действия ESP-Now.
- Плата зарядного устройства TP4056 с защитой аккумулятора
- 18650 LiPo аккумулятор
- Геркон (НЕТ для контроля положения двери)
- Контактный переключатель (положение блокировки монитора)
- Солнечная панель (6 В, 0,6 Вт)
- Транзисторы, резисторы, диоды, разъемы (см. Схему)
Шаг 1. Аппаратное обеспечение
Исполнительная схема включена в качестве изображения. Сначала я сделал прототип схемы на макете. Затем я спаял все компоненты на перфокарт.
Я использую модуль ESP-07S ESP8266, так как он имеет подключение для внешней антенны. Поскольку мой навес для велосипедов находится снаружи, сигнал Wi-Fi должен проходить через бетонную стену. Выяснил, что внешняя антенна сильно увеличивает дальность действия ESP-Now. Вполне логично, так как это сигнал WiFi.
Для датчика двери я использовал геркон с двумя нормально разомкнутыми и нормально замкнутыми контактами. Когда дверь закрыта, магнит, прикрепленный к переключателю, открывает переключатель. Модуль проверяет состояние двери и замка каждые 60 секунд, однако, когда дверь открывается, я хочу быть проинформирован немедленно, поэтому я реализовал схему сброса, см. Ниже.
Для датчика блокировки я использовал контактный выключатель с двумя нормально разомкнутыми и нормально замкнутыми контактами. Когда замок закрыт, стопорный штифт открывает переключатель. Итак, датчик двери и датчик замка нормально открыты (НЕТ).
Аккумулятор заряжается через плату зарядного устройства TP4056 с защитой аккумулятора, прикрепленную к небольшой солнечной панели на 6 В.
Я объясню некоторые части схемы ниже.
Схема сброса
Схема сброса с 2N7000 Mosfet подключена к выводу сброса ESP8266. Если дверь закрыта, контакт разомкнут, и затвор, и исток транзистора имеют высокий уровень, а МОП-транзистор выключен. Конденсатор, подключенный к затвору, имеет положительный заряд. ESP8266 закрывает GPIO12 как HIGH = закрыто.
Когда дверь открыта, источник МОП подключается к земле. Поскольку на затворе высокий уровень, MOSFET-транзистор включается и подтягивает контакт сброса к земле, что приводит к сбросу ESP8266. Конденсатор разряжается через R7, а затем выключает МОП-транзистор. См. Снимок экрана моего осциллографа для низкого импульса 50 мс. После импульса ESP8266 загружается. ESP8266 язычков GPIO12 как LOW = открытый.
Когда дверь снова закрывается, резистор R6 подтягивает исток и GPIO12 вверх.
Мониторинг батареи
Напряжение батареи считывается через делитель напряжения между VBat и GND. Однако я не хочу постоянного соединения между VBat и GND, потому что это разряжает батарею. Поэтому я установил МОП-транзистор с P-каналом на стороне высокого напряжения делителя напряжения, и затвор МОП-транзистора подтянут вверх, поэтому МОП-транзистор выключен. Только при низком уровне GPIO14 включается МОП-транзистор, и ESP8266 может регулировать напряжение с помощью АЦП.
Шаг 2: Программное обеспечение
Модуль ESP8266 в основном находится в режиме глубокого сна для экономии энергии.
Каждые 60 секунд модуль загружается с отключенным Wi-Fi, измеряет положение замка и двери и проверяет, изменились ли эти положения по сравнению со значениями, хранящимися в памяти RTC. Если позиция изменилась, модуль спит минимальное время и просыпается с включенным Wi-Fi, чтобы отправить новую позицию через ESP-Now. И, конечно же, новые позиции сохраняются в RTC-памяти. Если ничего не было изменено, модуль просто снова засыпает и просыпается с выключенным Wi-Fi.
См. Другую мою инструкцию, в которой я объясняю, как я использую ESP-Now для передачи сообщений и преобразования их в сообщения MQTT.
Если «OTA-цепь» вручную замкнута с помощью перемычки, модуль просыпается и подключается к моей сети WiFi, чтобы дождаться обновления OTA через ESP8266HTTPUpdateServer.
Каждые 30 минут измеряется и публикуется напряжение батареи.
Он работает как конечный автомат. Состояния определены в программе, опубликованной на моем Github.
STATE_CHECK: просыпайтесь с выключенным радио (WiFi выключен), просто проверьте, не изменилось ли что-то
STATE_INIT: просыпаться с включенным радио (Wi-Fi включен) и передавать информацию о состоянии двери и замка
STATE_DOOR: просыпайтесь с включенным радио, опубликуйте состояние двери при следующей загрузке
STATE_LOCK: просыпаться с включенным радио, публиковать состояние блокировки при следующей загрузке
STATE_VOLTAGE: просыпайтесь с включенным радио, опубликуйте напряжение при следующей загрузке
STATE_OTA 5: просыпайтесь с включенным радио, перейдите в режим OTA
Шаг 3: соберите
Я использую винтовые клеммы и штекерные / гнездовые разъемы постоянного тока, чтобы иметь возможность собирать и разбирать свой проект. Я поместил все детали в небольшую коробку из АБС-пластика, смотрите фотографии. Я заключил детали в каптоновую ленту для гальванической изоляции.
Я подключаю солнечную панель через штекер постоянного тока (5,5 x 2,1) с диодом 1N5817, который имеет низкое прямое напряжение.
Геркон вклеен в коробку и магнит приклеен к двери в нужном положении.
Контакт блокировки вводится сбоку, см. Рисунок.
Шаг 4: Рабочий модуль
Полученные данные читает моя домашняя автоматизация Openhab. Если вам нравится, я могу выложить файлы Openhab.
Я слежу за:
- Напряжение батареи (постоянно, поэтому я вижу напряжение во времени на графике).
- Позиции двери и замка.
- Времена позиция менялась.
Таким образом, когда я ложусь спать, я могу легко увидеть, все ли сараи заперты.
В начале использования аккумулятор заряжался в ясный день, и примерно через неделю аккумулятор был полностью заряжен. Теперь осенью аккумулятор остается заряженным. Очевидно, модуль очень экономичен и потребляет гораздо меньше энергии, чем генерирует небольшая солнечная панель. Мощная батарея, вероятно, способна выдержать несколько месяцев темноты. Посмотрим, как работает модуль этой зимой, когда температура в сарае намного ниже.