Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
На улице становится холодно, но иногда мне нужно подышать свежим воздухом в своих комнатах. Итак, я открываю окно, выхожу из комнаты, закрываю дверь и хочу вернуться через 5-10 минут. И через несколько часов я вспоминаю, что окно открыто … Может быть, вы это знаете или у вас есть дети, которые дают вам этот опыт.
Мое решение - детектор открытых окон. Батареи хватит на год, поэтому просто вставьте ее осенью и снимите весной.
Шаг 1: Список деталей
- Доска Digispark от eBay.
- Старые наушники.
- Маленькая кнопка для сброса.
- Разъемы для динамика - иначе перепрограммировать плату не удастся.
- Проволока.
- Для электроснабжения вам понадобятся:
Батарейный отсек AAA с переключателем включения / выключения. Вы даже можете использовать изношенные батареи, так как модуль будет работать при напряжении до 2,4 В
ИЛИ
Старый липо-аккумулятор (для этого достаточно даже 30% емкости) и, если у вас его еще нет, зарядное устройство для липо-аккумуляторов от eBay.
ИЛИ
Держатель для монетного элемента CR2032
А ТАКЖЕ
1A диод 1N4001 или аналог - или что у вас есть в этом размере - для защиты от обратной полярности
Шаг 2: Программирование платы Digispark
Установка драйвера
Перед программированием платы необходимо установить драйвер Digispark. Загрузите его здесь, откройте и запустите «InstallDrivers.exe».
Установка Arduino IDE
Установите плату Digispark для Arduino IDE, как описано в
Я рекомендую использовать в качестве URL-адреса платы Digispark в Arduino File / Preferences новый https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json вместо https://digistump.com/package_digistump_index.json и установить Платы Digistump AVR версии 1.6.8.
Поскольку мы хотим сэкономить электроэнергию, частота платы переключена на 1 МГц в наших настройках (), вы можете выбрать Digispark (1 МГц - без USB) в качестве платы в меню «Инструменты».
Скомпилируйте и загрузите программу на плату
В среде Arduino IDE создайте новый эскиз с помощью File / New и назовите его, например, "OpenWindowAlarm". Скопируйте код из OpenWindowAlarm.ino
ИЛИ
Скачайте и распакуйте репозиторий. Откройте эскиз с помощью File -> Open… и выберите папку «OpenWindowAlarm».
Скомпилируйте и загрузите его. Имейте в виду, что загрузка не будет работать, если динамик подключен. Если все работает нормально, встроенный светодиод Digispark мигнет 5 раз (для 5-минутной задержки сигнала тревоги), а затем начнет мигать через 8 секунд с интервалом 24 секунды, чтобы сигнализировать о каждом показании температуры.
Шаг 3: снижение мощности
Наша плата Digispark использует 5 мА при напряжении 3,0 вольт. С 2 батареями AAA (1000 мАч) он проработает 8 дней. Но можно снизить энергопотребление до 26 мкА за 3 шага.
- Отключение светодиода питания путем разрыва медного провода, соединяющего светодиод питания с диодом, ножом или снятие / отключение резистора 102 позволяет сэкономить 1,3 мА.
- Удаление регулятора напряжения VIN экономит 1,2 мА.
-
Отключение подтягивающего резистора USB (помечено 152) от напряжения 5 В (VCC) позволяет сэкономить оставшиеся 2,5 мА. Отключите его, оборвав медный провод на стороне резистора, которая указывает на ATTiny. Это отключает интерфейс USB и, в свою очередь, возможность программирования платы Digispark через USB. Чтобы включить его снова, но при этом сохранить энергию, подключите резистор (помеченный 152) непосредственно к USB-разъему 5 В, который легко доступен на внешней стороне диода.
Правильную сторону диода можно найти с помощью прибора для проверки целостности цепи. Одна сторона этого диода подключена к выводу 8 ATtiny (VCC). Другая сторона подключена к USB 5 вольт.
Теперь подтягивающий резистор USB активируется только в том случае, если плата Digispark подключена к USB, например. во время программирования плата потребляет 26 мкА во время сна.
Если вы перепрограммируете предохранители, вы можете получить потребляемую мощность 6 мкА.
Для перепрограммирования предохранителей вам понадобится интернет-провайдер (который можно собрать с помощью Arduino) и соединительный адаптер. Для перепрограммирования вы можете использовать этот скрипт.
Шаг 4: кнопка сброса
Если вы не хотите отключать питание для сброса аварийного сигнала, подключите кнопку сброса между PB5 и массой. Я сделал это, подключив неподключенную медную поверхность VIN к PB5 и припаяв кнопку сброса непосредственно к отверстию для вывода VIN и большой поверхности заземления снятого регулятора напряжения VIN.
Если вы хотите избавиться от 5 секунд ожидания USB-подключения после сброса, вы можете изменить ядро micronucleus на ATtiny85. Запустите сценарий «0_Burn_upgrade-t85_recommended.cmd», а затем снова загрузите приложение OpenWindowAlarm с помощью IDE Arduino.
Шаг 5: динамик
Разобрал старую гарнитуру и подключил штекер к кабелю.
Шаг 6: Эксплуатация
Чтобы использовать доску, поместите ее на подоконник и подключите к батарее. Если температура на подоконнике ниже, чем температура, в которой изначально находилась плата, потребуется еще 5 минут, чтобы разумно адаптироваться к новому начальному значению.
Вы будете встревожены, если оставите окно открытым дольше пяти минут.
Внутренняя операция
- Открытое окно обнаруживается через TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) секунд после считывания температуры со значением TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) ниже, чем температура TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_DISTANCE_SECONS * TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SECONDS до 3 секунд до 3 секунд (12 - SEMPERATURE_DISTANCE * TEMPERATURE_DISTANCE> 3 секунды)
- Задержка реализуется за счет трехкратного сна в «SLEEP_MODE_PWR_DOWN» в течение 8 секунд для снижения энергопотребления.
- Об обнаружении открытого окна свидетельствует более длительное мигание 20 мс и короткий щелчок каждые 24 секунды. Таким образом, у внутреннего датчика есть время в 3 минуты, чтобы приспособиться к внешней температуре, чтобы улавливать даже небольшие изменения температуры. Чем больше изменение температуры, тем раньше значение датчика изменится и обнаружит открытое окно.
-
OPEN_WINDOW_ALARM_DELAY_MINUTES (5) минут после обнаружения открытого окна срабатывает сигнал тревоги.
Аварийный сигнал не сработает или активированный аварийный сигнал прекратится, если текущая температура выше минимальной измеренной температуры (+ 1), т.е. окно уже закрыто.
- Первоначальный сигнал тревоги длится 10 минут. После этого он активируется на 10 секунд с увеличивающимся перерывом с 24 секунд до 5 минут.
- Каждые VCC_MONITORING_DELAY_MIN (60) минут напряжение батареи измеряется. В зависимости от типа батареи, обнаруженного при включении (см. VCC_VOLTAGE_LIPO_DETECTION (3,6 В)), напряжение батареи ниже VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) или VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD мигает каждые 24 секунды, и каждые 24 секунды мигает индикатор Милливольт. Только звуковой сигнал (не вспышка) значительно длиннее звукового сигнала при обнаружении открытого окна.
- После включения время неактивной стабилизации составляет 5 минут. Если плата становится холоднее во время установления, добавляются 4:15 (или 8:30) минут, чтобы избежать ложных срабатываний после включения.