İçindekiler:

Arduino Açık Pencere Dedektörü - Kış İçin: 6 Adım
Arduino Açık Pencere Dedektörü - Kış İçin: 6 Adım

Video: Arduino Açık Pencere Dedektörü - Kış İçin: 6 Adım

Video: Arduino Açık Pencere Dedektörü - Kış İçin: 6 Adım
Video: Elektronik Atıklardan Proje Yapmak | Atma Dönüştür #İleriDönüşüm 2024, Kasım
Anonim
Arduino Açık Pencere Dedektörü - Kış için
Arduino Açık Pencere Dedektörü - Kış için

Dışarısı soğuyor ama bazen odamda biraz temiz havaya ihtiyacım oluyor. Bu yüzden pencereyi açıyorum, odadan çıkıyorum, kapıyı kapatıyorum ve 5-10 dakika sonra geri gelmek istiyorum. Ve birkaç saat sonra pencerenin açık olduğunu hatırlıyorum… Belki bunu biliyorsundur ya da sana bu deneyimi yaşatan çocuk sahibisindir.

Benim çözümüm Açık Pencere Dedektörü. Pil bir yıldan fazla dayanacak, bu yüzden sadece sonbaharda yerleştirin ve ilkbaharda çıkarın.

Adım 1: Parça Listesi

Parça listesi
Parça listesi
Parça listesi
Parça listesi
Parça listesi
Parça listesi
Parça listesi
Parça listesi
  1. eBay'den Digispark panosu.
  2. Eski kulaklıklar.
  3. Sıfırlamak için küçük düğme.
  4. Hoparlör için konektörler - aksi takdirde kartı yeniden programlamak mümkün değildir.
  5. Tel.
  6. Güç kaynağı için ihtiyacınız olan:

Açma/kapama anahtarlı AAA pil kutusu. Modül 2.4Volt'a kadar çalışacağından, yıpranmış pilleri bile kullanabilirsiniz

VEYA

Eski lipo pil (bu amaç için %30 kapasite bile yeterlidir) ve henüz yoksa, eBay'den lipo piller için bir şarj cihazı.

VEYA

CR2032 madeni para hücresi için bir tutucu

VE

Ters polarite koruması için 1A diyot 1N4001 veya eşdeğeri -veya bu boyutta ne varsa-

Adım 2: Digispark Kartının Programlanması

Digispark Kartının Programlanması
Digispark Kartının Programlanması
Digispark Kartının Programlanması
Digispark Kartının Programlanması

Sürücü kurulumu

Board'u programlamadan önce Digispark sürücüsünü kurmalısınız. Buradan indirin, açın ve " InstallDrivers.exe "yi çalıştırın.

Arduino IDE'nin Kurulumu

Arduino IDE için Digispark kartını https://digistump.com/wiki/digispark/tutorials/connecting'de açıklandığı gibi kurun

Arduino Dosya/Tercihlerinde Digispark pano URL'si olarak https://digistump.com/package_digistump_index.json yerine yeni https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json'u kullanmanızı ve yüklemenizi öneririm. Digistump AVR Panoları sürüm 1.6.8.

Güçten tasarruf etmek istediğimiz için kurulumumuzda () kart saati 1 MHz olarak ayarlanmıştır, Araçlar menüsünden Digispark (1mhz - USB Yok) kartını seçebilirsiniz.

Programı derleyin ve tahtaya yükleyin

Arduino IDE'de Dosya/Yeni ile yeni bir çizim oluşturun ve buna ör. "OpenWindowAlarm". Kodu OpenWindowAlarm.ino'dan kopyalayın

VEYA

Depoyu indirin ve çıkarın. Çizimi Dosya -> Aç… ile açın ve " OpenWindowAlarm " klasörünü seçin.

Derleyin ve yükleyin. Hoparlör bağlıysa yüklemenin çalışmayacağını unutmayın. Her şey yolunda giderse, Digispark'ın yerleşik LED'i 5 kez yanıp sönecek (5 dakikalık alarm gecikmesi için) ve ardından her bir sıcaklık okumasını bildirmek için 8 saniye sonra 24 saniye aralıklarla yanıp sönmeye başlayacaktır.

Adım 3: Güç Azaltma

Güç Azaltma
Güç Azaltma
Güç Azaltma
Güç Azaltma

Digispark kartımız 3,0 voltta 5mA kullanır. 2 adet AAA pil (1000mAh) ile 8 gün çalışacaktır. Ancak güç tüketimini 3 Adımda 26 µA'ya kadar düşürmek mümkündür.

  1. Güç LED'ini diyota bağlayan bakır teli bıçakla keserek veya 102 direncini söküp/devre dışı bırakarak güç LED'ini devre dışı bırakmak 1,3 mA tasarruf sağlar.
  2. VIN voltaj regülatörünün çıkarılması 1,2 mA tasarruf sağlar.
  3. USB Pullup direncinin (152 ile işaretli) 5 Volt'tan (VCC) ayrılması, kalan 2,5 mA'dan tasarruf sağlar. Direncin ATTiny'ye işaret eden tarafındaki bakır teli keserek bağlantısını kesin. Bu, USB arabirimini devre dışı bırakır ve buna karşılık Digispark kartını USB aracılığıyla programlama olanağını devre dışı bırakır. Yeniden etkinleştirmek, ancak yine de güçten tasarruf etmek için, rezistörü (152 ile işaretlenmiş) doğrudan diyotun dış tarafında kolayca bulunabilen USB 5 volt'a bağlayın.

    Diyotun doğru tarafı bir süreklilik test cihazı kullanılarak bulunabilir. Bu diyotun bir tarafı ATtiny'nin (VCC) pim 8'ine bağlanır. Diğer taraf USB 5 volta bağlanır.

Artık USB çekme direnci yalnızca Digispark kartı USB'ye bağlıysa etkinleştirilir; programlama sırasında ve kart uyku sırasında 26 µA tüketir.

Sigortaları yeniden programlarsanız 6 µA güç tüketimi elde edebilirsiniz.

Sigortaları yeniden programlamak için bir ISP'ye (bir Arduino ile oluşturulabilir) ve bir bağlantı adaptörüne ihtiyacınız vardır. Yeniden programlama için bu betiği kullanabilirsiniz.

Adım 4: Sıfırlama Düğmesi

Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu
Yeniden başlatma tuşu

Alarmı sıfırlamak için gücü kesmek istemiyorsanız, PB5 ile toprak arasına bir sıfırlama düğmesi bağlayın. Bunu, bağlı olmayan VIN bakır yüzeyini PB5'e bağlayarak ve sıfırlama düğmesini doğrudan VIN pin deliğine ve çıkarılan VIN voltaj regülatörünün büyük toprak yüzeyine lehimleyerek yaptım.

Reset sonrası USB bağlantısı için 5 saniye bekleme süresinden kurtulmak istiyorsanız ATtiny85 üzerinde mikronükleus çekirdeğini değiştirebilirsiniz. "0_Burn_upgrade-t85_recommended.cmd" betiğini çalıştırın ve ardından Arduino IDE ile OpenWindowAlarm uygulamasını yeniden yükleyin.

Adım 5: Hoparlör

hoparlör
hoparlör
hoparlör
hoparlör
hoparlör
hoparlör

Eski bir kulaklığı demonte ettim ve erkek konektörü kabloya bağladım.

Adım 6: Çalıştırma

İşletme
İşletme
İşletme
İşletme
İşletme
İşletme

Panoyu kullanmak için bir pencere pervazına yerleştirin ve bir aküye bağlayın. Eğer pervazdaki sıcaklık, panonun orijinal olarak bulunduğu sıcaklıktan düşükse, yeni başlangıç değerine akıllıca adapte olmak için ilave 5 Dakika gerekecektir.

Pencereyi beş dakikadan daha uzun süre açık bırakırsanız alarma geçeceksiniz.

Dahili Operasyon

  • TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) saniye sonra, TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) değerinden daha düşük bir sıcaklık değeri TEMPERATURE_COMPARE_DISTANCE * TEMPERATURE_SAMPLE -> 3 dakika ve 12 saniye önce okunduktan sonra açık bir pencere algılandı.
  • Gecikme, güç tüketimini azaltmak için 8 saniyelik bir süre boyunca `SLEEP_MODE_PWR_DOWN` konumunda 3 kez uyuyarak gerçekleştirilir.
  • Açık bir pencerenin algılanması, 20 ms'lik daha uzun bir yanıp sönme ve her 24 saniyede bir kısa tıklama ile belirtilir. Bu nedenle, sıcaklıktaki en küçük değişiklikleri bile yakalamak için dahili sensörün dış sıcaklığa ayarlanması için 3 dakikalık bir süresi vardır. Sıcaklık değişimi ne kadar büyük olursa, sensör değeri o kadar erken değişecek ve açık bir pencere algılayacaktır.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) açık pencere algılamasından 5 dakika sonra alarm etkinleştirilir.

    Mevcut sıcaklık ölçülen minimum sıcaklıktan (+1) daha büyükse, yani pencere zaten kapatılmışsa, alarm başlamaz veya etkinleştirilmiş bir alarm duracaktır.

  • İlk alarm 10 dakika sürer. Bundan sonra, 24 saniyeden 5 dakikaya kadar artan bir ara ile 10 saniyelik bir süre için etkinleştirilir.
  • Her VCC_MONITORING_DELAY_MIN (60) dakikada bir akü voltajı ölçülür. Güç verildiğinde algılanan pil tipine bağlı olarak (bkz. VCC_VOLTAGE_LIPO_DETECTION (3,6 volt)), VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) veya VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD Millivolt'un altında bir pil voltajı LED'in her 24 saniyede bir bip sesiyle ve yanıp sönmesiyle gösterilir. Açık pencere algılaması için yalnızca bip sesi (flaş değil) bip sesinden önemli ölçüde daha uzundur.
  • Güç açıldıktan sonra, etkin olmayan yerleşme süresi 5 dakikadır. Yerleşme süresi boyunca pano soğuyorsa, güç açıldıktan sonra yanlış alarmları önlemek için 4:15 (veya 8:30) dakika eklenir.

Önerilen: