Оглавление:

Детектор открытого окна Arduino - для зимы: 6 шагов
Детектор открытого окна Arduino - для зимы: 6 шагов

Видео: Детектор открытого окна Arduino - для зимы: 6 шагов

Видео: Детектор открытого окна Arduino - для зимы: 6 шагов
Видео: У Кремля снесло строительные леса , обрушившие зубцы ( 2024, Июль
Anonim
Детектор открытого окна Arduino - на зиму
Детектор открытого окна Arduino - на зиму

На улице становится холодно, но иногда мне нужно подышать свежим воздухом в своих комнатах. Итак, я открываю окно, выхожу из комнаты, закрываю дверь и хочу вернуться через 5-10 минут. И через несколько часов я вспоминаю, что окно открыто … Может быть, вы это знаете или у вас есть дети, которые дают вам этот опыт.

Мое решение - детектор открытых окон. Батареи хватит на год, поэтому просто вставьте ее осенью и снимите весной.

Шаг 1: Список деталей

Список деталей
Список деталей
Список деталей
Список деталей
Список деталей
Список деталей
Список деталей
Список деталей
  1. Доска Digispark от eBay.
  2. Старые наушники.
  3. Маленькая кнопка для сброса.
  4. Разъемы для динамика - иначе перепрограммировать плату не удастся.
  5. Проволока.
  6. Для электроснабжения вам понадобятся:

Батарейный отсек AAA с переключателем включения / выключения. Вы даже можете использовать изношенные батареи, так как модуль будет работать при напряжении до 2,4 В

ИЛИ

Старый липо-аккумулятор (для этого достаточно даже 30% емкости) и, если у вас его еще нет, зарядное устройство для липо-аккумуляторов от eBay.

ИЛИ

Держатель для монетного элемента CR2032

А ТАКЖЕ

1A диод 1N4001 или аналог - или что у вас есть в этом размере - для защиты от обратной полярности

Шаг 2: Программирование платы Digispark

Программирование платы Digispark
Программирование платы Digispark
Программирование платы Digispark
Программирование платы 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 шага.

  1. Отключение светодиода питания путем разрыва медного провода, соединяющего светодиод питания с диодом, ножом или снятие / отключение резистора 102 позволяет сэкономить 1,3 мА.
  2. Удаление регулятора напряжения VIN экономит 1,2 мА.
  3. Отключение подтягивающего резистора 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) минут, чтобы избежать ложных срабатываний после включения.

Рекомендуемые: