Arduino ачык терезе детектору - кыш үчүн: 6 кадам
Arduino ачык терезе детектору - кыш үчүн: 6 кадам
Anonim
Arduino ачык терезе детектору - кыш үчүн
Arduino ачык терезе детектору - кыш үчүн

Сыртта суук болуп жатат, бирок кээде бөлмөлөрүмдө таза аба керек. Ошентип, мен терезени ачып, бөлмөдөн чыгып, эшикти жаап, 5-10 мүнөттөн кийин кайра келгим келет. Ал эми бир нече сааттан кийин терезе ачык экенин эстейм … Балким, сиз муну билесиз же балалуу болосуз, сизге бул тажрыйбаны берет.

Менин чечимим - Ачык терезе детектору. Батарея бир жылдан ашык иштейт, андыктан күзүндө коюп, жазында алып салыңыз.

1 -кадам: Бөлүктөрдүн тизмеси

Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
Бөлүктөр тизмеси
  1. EBayден Digispark тактасы.
  2. Эски гарнитура.
  3. Кайра коюу үчүн кичинекей баскыч.
  4. Динамик үчүн туташтыргычтар - антпесе тактайды кайра программалоо мүмкүн эмес.
  5. Зым.
  6. Электр менен камсыздоо үчүн сизге керек:

ААА батарейка капкагы күйгүзүү/өчүрүү менен. Модулу 2.4 Вольтко чейин иштей тургандыктан, эскилиги жеткен батарейкаларды да колдонсоңуз болот

ЖЕ

Эски липо батареясы (бул үчүн 30% кубаттуулук жетиштүү) жана эгер сизде жок болсо, eBayден келген липо батареялары үчүн заряддагыч түзүлүш.

ЖЕ

CR2032 монета клеткасынын кармагычы

ЖАНА

1A диод 1N4001 же эквиваленти - же сизде бар нерсенин бардыгы - тескери полярдуулуктан коргоо үчүн

2 -кадам: Digispark тактасын программалоо

Digispark тактасын программалоо
Digispark тактасын программалоо
Digispark тактасын программалоо
Digispark тактасын программалоо

Айдоочу орнотуу

Башкарманы программалоодон мурун Digispark драйверин орнотушуңуз керек. Бул жерден жүктөп алыңыз, ачыңыз жана "InstallDrivers.exe" иштетиңиз.

Arduino IDE орнотуу

Http://digistump.com/wiki/digispark/tutorials/connecting сүрөттөлгөндөй Arduino IDE үчүн Digispark тактасын орнотуңуз.

Мен https://digistump.com/package_digistump_index.json ордуна Arduino File/Preferences жаңы https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json ичинде Digispark тактасынын URLин колдонууну сунуштайм жана орнотуңуз. Digistump AVR Boards 1.6.8 версиясы.

Биз энергияны үнөмдөөнү каалаганыбыз үчүн, тактабыздын сааты 1 МГцке которулду () сиз куралдар менюсунда Digispark (1mhz - USB жок) тандай аласыз.

Программаны түзүп, тактага жүктөңүз

Arduino IDEде File/New менен жаңы эскиз түзүп, аны ат. "OpenWindowAlarm". OpenWindowAlarm.ino кодун көчүрүү

ЖЕ

Репозиторийди жүктөп алыңыз. Эскизди File -> Open… менен ачыңыз жана "OpenWindowAlarm" папкасын тандаңыз.

Аны түзүңүз жана жүктөңүз. Унутпаңыз, эгер динамик туташкан болсо, бул жүктөө иштебейт. Эгерде баары жакшы иштесе, Digisparkтын камтылган диоду 5 жолу (5 мүнөт сигнализацияны кечиктирүү үчүн) жана андан кийин 8 секундадан кийин 24 секунд аралыгы менен жаркылдай баштайт жана ар бир температуранын көрсөткүчтөрүнө сигнал берет.

3 -кадам: Power азайтуу

Кубатты азайтуу
Кубатты азайтуу
Кубатты азайтуу
Кубатты азайтуу

Биздин Digispark тактасы 5мАны 3, 0 вольтто колдонот. 2 AAA батарейкасы (1000mAh) менен 8 күн иштейт. Бирок 3 этапта энергия керектөөнү 26 мкА чейин азайтууга болот.

  1. Электр диодун бычак менен туташтырган жез зымын үзүү же 102 каршылыгын алып салуу / өчүрүү менен электр энергиясын өчүрүү 1.3 мА үнөмдөйт.
  2. VIN чыңалуу жөндөгүчүн алып салуу 1,2 мА үнөмдөйт.
  3. USB Pullup каршылыгын (152 менен белгиленген) 5 Вольттон (VCC) ажыратуу калган 2,5 мАны үнөмдөйт. ATTiny көрсөткөн резистордун капталындагы жез зымын үзүп, аны ажыратыңыз. Бул USB интерфейсин өчүрөт жана өз кезегинде Digispark тактасын USB аркылуу программалоо мүмкүнчүлүгүн өчүрөт. Кайра иштетүү үчүн, бирок дагы эле энергияны үнөмдөө үчүн, резисторду (152 менен белгиленген) түз диоддун сырт жагында жеткиликтүү USB 5 вольтко туташтырыңыз.

    Диоддун туура тарабын үзгүлтүксүздүк сыноочу аркылуу табууга болот. Бул диоддун бир тарабы ATtiny (VCC) 8 пинине туташкан. Башка жагы USB 5 вольтко туташкан.

Эми USB тартуу каршылыгы Digispark тактасы USBге туташканда гана иштетилет. программалоо учурунда жана такта уктап жатканда 26 мкА керектейт.

Эгерде сиз сактандыргычтарды кайра программаласаңыз, 6 мкА кубаттуулукту ала аласыз.

Фузияларды кайра программалоо үчүн сизге ISP (Arduino менен түзүлүшү мүмкүн) жана туташтыруучу адаптер керек. Кайра программалоо үчүн бул скриптти колдонсоңуз болот.

4 -кадам: Кайра коюу баскычы

Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы
Кайра коюу баскычы

Эгерде сиз ойготкучту баштапкы абалга келтирүү үчүн электр кубатын өчүргүңүз келбесе, PB5 менен жердин ортосундагы баштапкы абалга келтирүү баскычын туташтырыңыз. Мен муну PB5ке туташтырылбаган VIN жез бетин туташтыруу менен жана баштапкы абалга келтирүү баскычын VIN пин тешигине жана VIN чыңалуу жөндөгүчүнүн чоң жер бетине ширетүү аркылуу кылдым.

Эгер кайра орнотулгандан кийин USB туташуусун күткөн 5 секунддан арылгыңыз келсе, ATtiny85теги микро ядро ядросун өзгөртө аласыз. "0_Burn_upgrade-t85_recommended.cmd" скриптин иштетип, Arduino IDE менен OpenWindowAlarm тиркемесин кайра жүктөңүз.

5 -кадам: Динамик

Баяндамачы
Баяндамачы
Баяндамачы
Баяндамачы
Баяндамачы
Баяндамачы

Мен эски гарнитураны ажыратып, эркек коннекторун кабелге туташтырдым.

6 -кадам: Иштетүү

Иштеп жатат
Иштеп жатат
Иштеп жатат
Иштеп жатат
Иштеп жатат
Иштеп жатат

Досканы колдонуу үчүн, аны терезенин үстүнө коюп, батареяга туташтырыңыз. Эгер силлдеги температура такта башында турган температурадан төмөн болсо, анда жаңы баштоо маанисин акылдуу түрдө кабыл алуу үчүн кошумча 5 мүнөт талап кылынат.

Терезени беш мүнөттөн ашык ачык калтырсаңыз, сиз коркуп кетесиз.

Ички операция

  • Ачык терезе TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) секунддан кийин температура TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) температурадан төмөн TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE_SAMPLE_SAMPLESSONDS (48) секунддан кийин аныкталат.
  • Кечигүү электр энергиясын керектөөнү азайтуу үчүн 8 секундага чейин 3 жолу "SLEEP_MODE_PWR_DOWN" уктоо менен ишке ашат.
  • Ачык терезенин табылышы узунураак 20 мс жана 24 секунд сайын кыска чыкылдатуу менен көрсөтүлөт. Ошондуктан, ички сенсор температуранын кичине өзгөрүүсүн кармоо үчүн сырткы температурага жөнгө салуу үчүн 3 мүнөт убакытка ээ. Температуранын өзгөрүүсү канчалык эрте болсо, сенсордун мааниси ошончолук өзгөрөт жана ачык терезени аныктайт.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) ачык терезени аныктагандан кийин, ойготкуч иштетилет.

    Учурдагы температура минималдуу өлчөнгөн температурадан (+ 1) жогору болсо, ойготкуч иштебейт же иштетилген сигнал токтотулат, б.а. терезе мурунтан эле жабылган.

  • Баштапкы ойготкуч 10 мүнөткө созулат. Андан кийин ал 24 секунддан 5 мүнөткө чейин тыныгуу менен 10 секундага активдештирилет.
  • Ар бир VCC_MONITORING_DELAY_MIN (60) мүнөт сайын батареянын чыңалуусу өлчөнөт. Кубатталууда аныкталган батареянын түрүнө жараша (VCC_VOLTAGE_LIPO_DETECTION (3.6 вольт) караңыз), батареянын чыңалуусу VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) же VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT жаркырап турат. Бир гана бип (флеш эмес) ачык терезени аныктоо үчүн бипке караганда кыйла узун.
  • Күйгүзүлгөндөн кийин, активдүү эмес чөгүү убактысы 5 мүнөт. Эгерде такта эсептешүү мезгилинде сууп баратса, 4:15 (же 8:30) мүнөт кошулгандан кийин жалган сигналдарды болтурбоо үчүн кошулат.

Сунушталууда: