Mündəricat:

Arduino Açıq Pəncərə Detektoru - Qış üçün: 6 addım
Arduino Açıq Pəncərə Detektoru - Qış üçün: 6 addım

Video: Arduino Açıq Pəncərə Detektoru - Qış üçün: 6 addım

Video: Arduino Açıq Pəncərə Detektoru - Qış üçün: 6 addım
Video: ARB-Açıq pəncərə verlişində qonaq oldum 2024, Noyabr
Anonim
Arduino Açıq Pəncərə Detektoru - Qış üçün
Arduino Açıq Pəncərə Detektoru - Qış üçün

Çöldə soyuq olur, amma bəzən otaqlarımda təmiz havaya ehtiyacım var. Beləliklə, pəncərəni açıram, otaqdan çıxıram, qapını bağlayıram və 5-10 dəqiqəyə qayıtmaq istəyirəm. Və bir neçə saatdan sonra pəncərənin açıq olduğunu xatırlayıram … Bəlkə də bunu bilirsən və ya sənə bu təcrübəni verən uşaqların var.

Mənim həllim Açıq Pəncərə Detektoru. Batareya bir ildən çox dayanacaq, buna görə payızda qoyun və yazda çıxarın.

Addım 1: Parça siyahısı

Parça siyahısı
Parça siyahısı
Parça siyahısı
Parça siyahısı
Parça siyahısı
Parça siyahısı
Parça siyahısı
Parça siyahısı
  1. EBay -dən Digispark lövhəsi.
  2. Köhnə qulaqlıq.
  3. Sıfırlama üçün kiçik düymə.
  4. Dinamik üçün bağlayıcılar - əks halda lövhəni yenidən proqramlaşdırmaq mümkün deyil.
  5. Tel.
  6. Elektrik təchizatı üçün sizə lazımdır:

Açma/söndürmə açarı olan AAA batareya qutusu. Modul 2.4Volta qədər işləyəcəyi üçün köhnəlmiş batareyalardan da istifadə edə bilərsiniz

OR

Köhnə lipo batareyası (bunun üçün hətta 30% tutum kifayətdir) və hələ də yoxdursa, eBay -dan lipo batareyaları üçün bir şarj cihazı.

OR

CR2032 sikkə hüceyrəsi üçün tutacaq

1A diodu 1N4001 və ya ekvivalenti - ya da bu ölçüdə nə varsa - əks polariteyi qorumaq üçün

Addım 2: Digispark lövhəsinin proqramlaşdırılması

Digispark lövhəsinin proqramlaşdırılması
Digispark lövhəsinin proqramlaşdırılması
Digispark lövhəsinin proqramlaşdırılması
Digispark lövhəsinin proqramlaşdırılması

Sürücü quraşdırılması

Lövhəni proqramlaşdırmadan əvvəl Digispark sürücüsünü quraşdırmalısınız. Buradan yükləyin, açın və "InstallDrivers.exe" ni işə salın.

Arduino IDE -nin quraşdırılması

Arduino IDE üçün Digispark lövhəsini

Http://digistump.com/package_digistump_index.json yerinə Arduino Fayl/Tercihlərdə yeni https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json əvəzinə Digispark lövhəsi URL -dən istifadə etməyi məsləhət görürəm. Digistump AVR lövhələri 1.6.8 versiyası.

Enerjiyə qənaət etmək istədiyimiz üçün qurğumuzda lövhə saatı 1 MHz -ə keçdi (), Alətlər menyusunda lövhə olaraq Digispark (1mhz - USB yoxdur) seçə bilərsiniz.

Proqramı tərtib edin və lövhəyə yükləyin

Arduino IDE -də File/New ilə yeni bir eskiz yaradın və ad verin. "OpenWindowAlarm". Kodu OpenWindowAlarm.inodan kopyalayın

OR

Anbarı yükləyin və çıxarın. Eskizi Fayl -> Aç… ilə açın və "OpenWindowAlarm" qovluğunu seçin.

Tərtib edin və yükləyin. Unutmayın ki, dinamik qoşulduqda yükləmə işləməyəcək. Hər şey yaxşı işləyirsə, Digispark-ın quraşdırılmış LED-i 5 dəfə yanıb-sönəcək (5 dəqiqəlik həyəcan gecikməsi üçün) və hər bir temperaturun oxunmasını bildirmək üçün 8 saniyədən sonra 24 saniyəlik fasilə ilə yanıb sönməyə başlayacaq.

Addım 3: Gücün Azaldılması

Güc Azaldılması
Güc Azaldılması
Güc Azaldılması
Güc Azaldılması

Digispark lövhəmiz, 3, 0 voltda 5mA istifadə edir. 2 AAA batareyası (1000mAh) ilə 8 gün işləyəcək. Ancaq 3 addımda enerji istehlakını 26 µA -ya endirmək mümkündür.

  1. Güc LED -ini diodla bıçaqla bağlayan mis teli qıraraq və ya 102 rezistoru çıxarıb / söndürərək güc LED -inin söndürülməsi 1,3 mA qənaət edir.
  2. VIN gərginlik tənzimləyicisinin çıxarılması 1,2 mA qənaət edir.
  3. USB çəkmə rezistorunun (152 ilə işarələnmiş) 5 voltdan (VCC) ayrılması, qalan 2,5 mA qənaət edir. ATTiny -ə işarə edən rezistorun yan tərəfindəki mis teli qıraraq onu ayırın. Bu, USB interfeysini deaktiv edir və öz növbəsində Digispark lövhəsini USB vasitəsilə proqramlaşdırmaq imkanı yaradır. Yenidən işə salmaq, lakin yenə də enerjiyə qənaət etmək üçün, rezistoru (152 ilə işarələnmiş) birbaşa diodun xarici tərəfində olan USB 5 volta qoşun.

    Diodun düzgün tərəfini davamlılıq test cihazı ilə tapmaq olar. Bu diodun bir tərəfi ATtiny (VCC) 8 pininə bağlıdır. Digər tərəfi USB 5 volt ilə bağlıdır.

İndi USB çəkmə rezistoru yalnız Digispark lövhəsi USB -yə qoşulduqda işə salınır. proqramlaşdırma zamanı və lövhə yuxu zamanı 26 µA istehlak edir.

Sigortaları yenidən proqramlaşdırsanız, 6 µA enerji istehlakı əldə edə bilərsiniz.

Sigortaları yenidən proqramlaşdırmaq üçün bir ISP (Arduino ilə qurula bilən) və birləşdirən adapterə ehtiyacınız var. Yenidən proqramlaşdırmaq üçün bu skriptdən istifadə edə bilərsiniz.

Addım 4: Sıfırlama Düyməsini

Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi
Sıfırlama Düyməsi

Siqnalı sıfırlamaq üçün enerjini kəsmək istəmirsinizsə, PB5 ilə torpaq arasında sıfırlama düyməsini bağlayın. Bunu əlaqəsiz VIN mis səthini PB5 -ə bağlayaraq və sıfırlama düyməsini birbaşa VIN pin çuxuruna və çıxarılan VIN gərginlik tənzimləyicisinin böyük torpaq səthinə lehimləməklə etdim.

Yenidən qurulduqdan sonra USB bağlantısı üçün 5 saniyə gözləməkdən qurtulmaq istəyirsinizsə, ATtiny85 üzərindəki mikro nüvəni dəyişdirə bilərsiniz. "0_Burn_upgrade-t85_recommended.cmd" skriptini işə salın və sonra Arduino IDE ilə OpenWindowAlarm tətbiqini yenidən yükləyin.

Addım 5: Dinamik

Dinamik
Dinamik
Dinamik
Dinamik
Dinamik
Dinamik

Köhnə bir qulaqlığı sökdüm və kişi konnektorunu kabelə bağladım.

Addım 6: Əməliyyat

Əməliyyat
Əməliyyat
Əməliyyat
Əməliyyat
Əməliyyat
Əməliyyat

Lövhəni istifadə etmək üçün onu bir pəncərənin üstünə qoyun və bir batareyaya qoşun. Eşikdəki temperatur lövhənin yerləşdiyi temperaturdan aşağıdırsa, yeni başlanğıc dəyərini ağıllı şəkildə qəbul etmək üçün əlavə 5 dəqiqə çəkəcəkdir.

Pəncərəni beş dəqiqədən çox açıq qoysanız, narahat olacaqsınız.

Daxili Əməliyyat

  • TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) saniyə ərzində TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) temperaturdan aşağı TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE_SAMPLE_SAMPLE_SAMPLE_SONDS (48) saniyə sonra açıq bir pəncərə algılanır.
  • Gecikmə, enerji istehlakını azaltmaq üçün 8 saniyə müddətində 3 dəfə "SLEEP_MODE_PWR_DOWN" rejimində yatmaqla həyata keçirilir.
  • Açıq bir pəncərənin aşkarlanması 20 saniyəlik uzun göz qırpması və hər 24 saniyədə qısa bir klik ilə göstərilir. Bu səbəbdən, daxili sensorun temperaturdakı kiçik dəyişiklikləri belə tutmaq üçün xarici temperatura uyğunlaşmaq üçün 3 dəqiqəlik vaxtı var. Temperatur nə qədər böyük olarsa, sensorun dəyəri bir o qədər əvvəl dəyişər və açıq bir pəncərəni aşkar edər.
  • "OPEN_WINDOW_ALARM_DELAY_MINUTES" (5) açıq pəncərə aşkarlanmasından bir dəqiqə sonra siqnalizasiya işə düşür.

    Mövcud temperatur minimum ölçülmüş temperaturdan (+ 1) çoxdursa, yəni pəncərə artıq bağlanmışdırsa, həyəcan başlamaz və ya aktiv bir həyəcan dayandırılacaq.

  • İlkin həyəcan 10 dəqiqə davam edir. Bundan sonra, 24 saniyədən 5 dəqiqəyə qədər artan bir fasilə ilə 10 saniyə müddətinə aktivləşdirilir.
  • Hər VCC_MONITORING_DELAY_MIN (60) dəqiqədə batareya gərginliyi ölçülür. Güc açıldıqda aşkar edilmiş batareya növündən asılı olaraq (VCC_VOLTAGE_LIPO_DETECTION (3.6 volt) bax), VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) və ya VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDART hər 24 saniyə göstərilir. Yalnız bip (flaş deyil) açıq bir pəncərə aşkarlanması üçün bipdən əhəmiyyətli dərəcədə uzundur.
  • Güc açıldıqdan sonra qeyri -aktiv həll müddəti 5 dəqiqədir. Lövhə həll zamanı soyuyursa, güc açıldıqdan sonra yanlış həyəcan verməmək üçün 4:15 (və ya 8:30) dəqiqə əlavə olunur.

Tövsiyə: