Детектор с отворен прозорец Arduino - за зимата: 6 стъпки
Детектор с отворен прозорец Arduino - за зимата: 6 стъпки
Anonim
Детектор на отворени прозорци Arduino - за зимата
Детектор на отворени прозорци Arduino - за зимата

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

Моето решение е детектор с отворен прозорец. Батерията ще издържи повече от година, така че просто я поставете през есента и я извадете през пролетта.

Стъпка 1: Списък на частите

Списък с части
Списък с части
Списък с части
Списък с части
Списък с части
Списък с части
Списък с части
Списък с части
  1. Табло Digispark от eBay.
  2. Стари слушалки.
  3. Малък бутон за нулиране.
  4. Конектори за високоговорители - в противен случай не е възможно да се препрограмира платката.
  5. Тел.
  6. За захранване се нуждаете от:

Калъф за батерия AAA с превключвател за включване/изключване. Можете дори да използвате износени батерии, тъй като модулът ще работи до 2,4 волта

ИЛИ

Стара липо батерия (дори 30% капацитет е достатъчен за тази цел) и ако все още нямате, зарядно за липо батерии от eBay.

ИЛИ

Поставка за монетна клетка CR2032

И

1A диод 1N4001 или еквивалент - или каквото имате в този размер - за защита от обратна полярност

Стъпка 2: Програмиране на Digispark Board

Програмиране на платката Digispark
Програмиране на платката Digispark
Програмиране на платката Digispark
Програмиране на платката Digispark

Инсталиране на драйвер

Трябва да инсталирате драйвера на Digispark, преди да можете да програмирате платката. Изтеглете го тук, отворете го и стартирайте „InstallDrivers.exe“.

Инсталиране на Arduino IDE

Инсталирайте платката Digispark за Arduino IDE, както е описано в

Препоръчвам да използвате като URL на дъската на Digispark във файла Arduino/Предпочитания новия https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json вместо https://digistump.com/package_digistump_index.j и Digistump AVR платки версия 1.6.8.

Тъй като искаме да пестим енергия, часовникът на платката се превключва на 1 MHz в нашата настройка () можете да изберете Digispark (1mhz - No USB) като платка в менюто Tools.

Компилирайте и качете програмата на дъската

В IDE на Arduino създайте нова скица с File/New и я наречете напр. "OpenWindowAlarm". Копирайте кода от OpenWindowAlarm.ino

ИЛИ

Изтеглете и извлечете хранилището. Отворете скицата с File -> Open… и изберете папката "OpenWindowAlarm".

Компилирайте и качете. Имайте предвид, че това качване няма да работи, ако високоговорителят е свързан. Ако всичко работи добре, вграденият светодиод на Digispark ще мига 5 пъти (за 5-минутното закъснение на алармата) и след това ще започне да мига след 8 секунди с интервал от 24 секунди, за да сигнализира за всяко отчитане на температурата.

Стъпка 3: Намаляване на мощността

Намаляване на мощността
Намаляване на мощността
Намаляване на мощността
Намаляване на мощността

Нашата платка Digispark използва 5mA при 3, 0 волта. С 2 батерии AAA (1000mAh) той ще работи в продължение на 8 дни. Но е възможно да се намали консумацията на енергия до 26 µA в 3 стъпки.

  1. Деактивирането на светодиода за захранване чрез счупване на меден проводник, който свързва захранващия светодиод към диода с нож или премахване / деактивиране на резистора 102 спестява 1,3 mA.
  2. Премахването на VIN регулатора на напрежение спестява 1,2 mA.
  3. Изключването на USB Pullup резистора (маркиран 152) от 5 Volt (VCC) спестява останалите 2,5 mA. Изключете го, като счупите медната жица от страната на резистора, която сочи към ATTiny. Това деактивира USB интерфейса и от своя страна възможността да програмирате платката Digispark чрез USB. За да го активирате отново, но все пак да пестите енергия, свържете резистора (маркиран с 152) директно към USB 5 волта, който е лесно достъпен от външната страна на диода.

    Правилната страна на диода може да бъде намерена с помощта на тестер за непрекъснатост. Едната страна на този диод е свързана към пин 8 на ATtiny (VCC). Другата страна е свързана към USB 5 волта.

Сега USB резисторът се активира само ако платката Digispark е свързана към USB, напр. по време на програмиране и платката консумира 26 µA по време на сън.

Ако препрограмирате предпазителите, можете да получите консумация на енергия 6 µA.

За да препрограмирате предпазителите, имате нужда от ISP (който може да бъде изграден с Arduino) и свързващ адаптер. За препрограмиране можете да използвате този скрипт.

Стъпка 4: Бутон за нулиране

Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране
Бутон за рестартиране

Ако не искате да изключвате захранването, за да нулирате алармата, свържете бутон за нулиране между PB5 и земята. Направих това, като свързах несвързаната VIN медна повърхност към PB5 и запоявам бутона за нулиране директно към отвора на VIN щифта и голямата повърхност на земята на отстранения VIN регулатор на напрежението.

Ако искате да се отървете от 5 -секундното изчакване за USB връзка след нулиране, можете да промените ядрото на микроядрото на ATtiny85. Стартирайте скрипта "0_Burn_upgrade-t85_recommended.cmd" и след това презаредете приложението OpenWindowAlarm отново с Arduino IDE.

Стъпка 5: Високоговорител

Говорителят
Говорителят
Говорителят
Говорителят
Говорителят
Говорителят

Разглобих стара слушалка и свързах мъжкия конектор към кабела.

Стъпка 6: Работа

Работещи
Работещи
Работещи
Работещи
Работещи
Работещи

За да използвате дъската, я поставете на перваза на прозореца и я свържете към батерия. Ако температурата на перваза е по -ниска от температурата, където първоначално се е намирала дъската, ще са необходими още 5 минути, за да се прибере интелигентно новата начална стойност.

След това ще се тревожите, ако оставите прозореца отворен повече от пет минути.

Вътрешна операция

  • Отворен прозорец се открива след TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) секунди при отчитане на температура със стойност от TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) по -ниска от температурата TEMPERATURE_COMPARE_DISTANCES TEMPER 3 секунди * TEMPER
  • Забавянето се осъществява чрез спане 3 пъти на `SLEEP_MODE_PWR_DOWN` за период от 8 секунди, за да се намали консумацията на енергия.
  • Откриването на отворен прозорец се обозначава с по -дълго мигане от 20 ms и кратко щракване на всеки 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 миливолта и всеки мигащ мигащ индикатор на мигащия мигащ индикатор на мигащия индикатор на мигащия мигащ индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия мигащ индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор на мигащия мигащ индикатор на мигащия индикатор на мигащия индикатор на мигащия индикатор. Само звуковият сигнал (не светкавицата) е значително по -дълъг от звуковия сигнал за откриване на отворен прозорец.
  • След включване на захранването, неактивното време за утаяване е 5 минути. Ако дъската става по -студена през времето за утаяване, се добавят 4:15 (или 8:30) минути, за да се избегнат фалшиви аларми след включване на захранването.

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