İçindekiler:

Eski Alarm ve Arduino Kullanan Hava Tahmini Saati: 13 Adım (Resimlerle)
Eski Alarm ve Arduino Kullanan Hava Tahmini Saati: 13 Adım (Resimlerle)

Video: Eski Alarm ve Arduino Kullanan Hava Tahmini Saati: 13 Adım (Resimlerle)

Video: Eski Alarm ve Arduino Kullanan Hava Tahmini Saati: 13 Adım (Resimlerle)
Video: EN İLGİNÇ 3 AKILLI SAAT🤫 2024, Kasım
Anonim
Eski Alarm ve Arduino Kullanan Hava Tahmini Saati
Eski Alarm ve Arduino Kullanan Hava Tahmini Saati
Eski Alarm ve Arduino Kullanan Hava Tahmini Saati
Eski Alarm ve Arduino Kullanan Hava Tahmini Saati

Ortada bozuk bir çalar saatim vardı ve onu saat ve hava tahmin istasyonuna dönüştürmek için bir fikir buldum.

Bu proje için ihtiyacınız olacak:

  • Eski dairesel çalar saat
  • Arduino Nano
  • BME280 sensör modülü (sıcaklık, nem, basınç)
  • Nokia 5110'dan LCD ekran modülü
  • DS1307 RTC saati
  • TP4056 Lityum pil şarj cihazı
  • Cep telefonundan eski Li-ion pil kurtarıldı
  • Küçük 3.7v ila 5v güçlendirici modül
  • Işığa Bağlı Direnç (LDR - ışık ölçer)
  • Buzzer (eski PC'den kurtarılmış olanı kullanılır)
  • 3 basma düğmesi
  • Bir grup direnç (2x10k, 270 ohm) ve bir transistör (2N2222A veya benzeri)
  • Bazı geniş büzülme tüpü
  • Ön plaka dekorasyonu olarak kullanmak için hurda PCB
  • Micro-USB uzatma kablosu (dişi ve erkek tarafları Micro-USB'dir)
  • 2x8cm prototip kartı ve bazı teller

Adım 1: Her Şeyi Sökün

Her Şeyi Sök
Her Şeyi Sök

Önce eski saati söktüm. Ziller, motor, bozuk saat mekanizması…

Adım 2: Dijital Ayarlar için Düğmeler

Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler
Dijital Ayarlar için Düğmeler

Yeni saat, içinde mini bilgisayar ile tamamen dijital olacağı için yanlara 3 adet basit hoş görünümlü buton ekledim.

Hurda bir alüminyum parçası kullanarak bir etiket oluşturmak için bindirmeyi kestim. Etiketler için harfler, harf zımbaları ve siyah bir işaretleyici kullanılarak oluşturulmuştur.

Adım 3: Motor Kondansatörü

Motor Kondansatörü
Motor Kondansatörü

Alarmı motorla çalıştırmak için eski çanları saklayacağım. Eski bozuk saat mekanizmasında 104 etiketli seramik bir kapasitör vardı. Devre kartından çıkardım ve doğrudan motora lehimledim - bu, alarm sırasında motoru açarken güç sıçramalarını önlemeye yardımcı olacaktır. Ayrıca, motorun transistör üzerinden kontrol edileceğini, ancak daha sonra bunun üzerinde daha fazla duracağını belirtmek önemlidir.

4. Adım: Saatin Yeni Yüzü

Saatin Yeni Yüzü
Saatin Yeni Yüzü
Saatin Yeni Yüzü
Saatin Yeni Yüzü

Saat için yeni bir yüz yapmaya karar verdiğimden beri - çöplüğümden bir devre kartı aldım ve tüm bileşenleri hızla çıkarmak için bir inşaat tabancası kullandım. Ortadaki delik yeni saatin dijital ekranı için yapılmıştır.

Adım 5: Eski Cep Telefonundan Dijital Ekran

Eski Cep Telefonundan Dijital Ekran
Eski Cep Telefonundan Dijital Ekran
Eski Cep Telefonundan Dijital Ekran
Eski Cep Telefonundan Dijital Ekran

Bu proje için eski Nokia 5110 cep telefonundan bir LCD ekran kullanmaya karar verdim. Bu ekranlar modül olarak yaygın olarak satılmaktadır, çok az güç çekerler ve Arduino için iyi kütüphaneler vardır. 5110 ekranlı yeni bir modül satın alıyorsanız - tüm yeni modüller kurtarılmış 5110, 3110 ve 3210 telefonlardan oluşturulduğu için gezegeni kurtarıyorsunuz!

Adım 6: Devrelerin Bağlanması

Devrelerin Bağlanması
Devrelerin Bağlanması
Devrelerin Bağlanması
Devrelerin Bağlanması
Devrelerin Bağlanması
Devrelerin Bağlanması

Bu saati kontrol etmek için Arduino kartı kullanmayı planladığımı tahmin etmişsinizdir. Kendi devre kartlarımı oluşturmadığım için proje yeni başlayan Arduino hayranları için bile kolayca tekrarlanabilir. BME280 sıcaklık, basınç ve nem sensörü, DS1307 RTC saati, TP4056 Lityum pil şarj cihazı, küçük 3.7v ila 5v güçlendirici modül, Işık Bağımlı Direnç (LDR - ışık ölçer) ve bir sesli uyarı içeren modüllere sahip bir Arduino Nano kartıdır (eski bilgisayardan alınmıştır).

Eskizlere de bir göz atın - tüm bağlantıları gösterirler. Her şeyin okunması ve anlaşılması çok kolay olduğunu düşünüyorum ama herhangi bir sorunuz varsa aşağıdaki yorumlarda sorun.

Kurulum hakkında birkaç not:

  • Motor, transistör aracılığıyla doğrudan aküden bağlanır. Arduino, transistörü direnç ve PWM pin D5 aracılığıyla kontrol eder.
  • D7-12 pinleri LCD konektörü için kullanılır. Toprak ve VCC, bağlantı panosu üzerindeki raya bağlanır.
  • Saat yüzüne LDR takıldı ve saat yüzünün hemen arkasına direnç + 3 giden kablo lehimlendi.
  • Düğme bağlantısı için Arduino içinde dahili PULLUP işlevini kullandım. Menü düğmesi kesmeye bağlıdır ve daha sonra, kesme için dahili PULLUP'ı da kullanabileceğinizi fark ettim. Menü düğmesi için kesme, kodun düğmelerin durumunu her zaman taramaması için gereklidir.
  • Saat, pilin durumunu da izleyecek ve gösterecektir, böylece pil doğrudan A0 pimine bağlanır. Pil voltajı asla 4.2V'den yüksek değildir, bu nedenle pili doğrudan Arduino analog pinine bağlamak güvenlidir.
  • Buzzer doğrudan PWM pin D6'ya bağlıdır. Bu iyi bir uygulama olmasa da, Arduino Nano belirtilenden daha yüksek özellikleri işleyebildiği için ve ayrıca sesli uyarı sürekli çalışmadığı için bundan kurtuldum. Aynı kurulum, ESP kartlarındaki pinleri kolayca yakabilir, bu yüzden bu durumlarda transistör kontrolünü kullanmanızı öneririm.
  • Saatin zaten bir anahtarı vardı, ben de onu kullanmaya karar verdim. Arkada doğal duruyor.

Adım 7: Kolay Bağlantılar için Bağlantı Kartı

Kolay Bağlantılar için Bağlantı Kartı
Kolay Bağlantılar için Bağlantı Kartı
Kolay Bağlantılar için Bağlantı Kartı
Kolay Bağlantılar için Bağlantı Kartı

Tüm modüller pozitif ve toprak bağlantıları gerektirdiğinden 2x8cm prototip kartı kullanmaya karar verdim ve buna 5V ve Toprak rayları lehimledim. I2C arayüzünü kullanan birkaç modülüm olduğu için orada da küçük bir I2C rayı yaptım.

Diğer tarafta, gerektiğinde modülleri takıp çıkarabilmek için standart pinleri lehimledim.

Motor kontrolü için transistör ve direnç ve Interrupt kullanan Menü düğmesi için bir direnç gibi bazı ek bileşenler de burada lehimlenmiştir. Bir önceki bölümde şemaları gösterdim.

btw İlk resimde saat kadranına önceden takılmış olan LDR sensörünü görebiliyor musunuz?

8. Adım: Gücü Ayarlama

Gücü Ayarlama
Gücü Ayarlama

Bu saate güç sağlamak için cep telefonumdan eski bir Lityum-iyon pil kullandım. Genellikle değiştirilen cep telefonu pilleri hala iyi kapasiteye sahiptir (yeni olduğunda en az yarısı). Avantajları, yerleşik bir deşarj koruma devresine sahip olmaları ve ayrıca çok ince olmaları ve dolayısıyla küçük alan senaryolarında kullanılabilmeleridir.

Pili bağlamak için kabloları pil üzerindeki + ve - pinlerine lehimlemeniz yeterlidir. Endişelenmeyin, hücreye zarar vermezsiniz çünkü bir kontrolör ve pimler ile hücrenin kimyasalları arasında bir miktar boşluk vardır.

Bu resimde bataryayı ve ayrıca TP4056 şarj kontrol cihazını ve 5V güçlendiriciyi birbirine ve bataryaya bağlı olarak görebilirsiniz. Her şeyi izole ve kompakt hale getirmek için biraz streç film kullandım.

9. Adım: Ürün Yazılımını Şarj Etmek ve Güncellemek için Mikro USB

Firmware'i Şarj Etmek ve Güncellemek için Mikro USB
Firmware'i Şarj Etmek ve Güncellemek için Mikro USB

Her şeyi lehimledikten sonra zili ve sıcaklık/basınç/nem sensörünü arka panele yapıştırdım. Hepsi eski saat kadranı kontrollerindeki mevcut yuvalara güzelce oturdu.

Artık Mikro USB portunu arkaya takmanın zamanı gelmişti. Nano Mini USB kullanıyorsa neden Mikro USB? Basitçe, evdeki çoğu USB kablosu cep telefonlarından geldiği için saatin bunu da alabilmesi uygun olurdu.

Hem şarj hem de saat ve meteoroloji istasyonu işlevlerini güncellemek için kullanmak istediğim için - USB kablosunu çıkardım, güç kablolarını TP4056 şarj cihazından ve Data+/Data- kablolarından doğrudan Arduino Nano'nun USB soketine yönlendirdim. Bunu önceki bölümlerde gösterdiğim şemada görebilirsiniz.

Adım 10: Son Montaj

Son montaj
Son montaj
Son montaj
Son montaj
Son montaj
Son montaj

Artık her şeyi orijinal saatine geri koymanın zamanı gelmişti. Bileşenleri ve modülleri izole etmek için büzülme borusu kullandım. Arduino bile büzülme tüpüne sarılmıştı.

Her bileşenin nereye yerleştirildiğini görmek için ilk fotoğrafın üzerine gelin.

Adım 11: Kod

Gördüğünüz gibi saat tamamen içeride. Bu, sahip olduğum eski saatten daha sofistike bir şey yaratmamı sağladı - elbette bazı programlama becerileri olduğu göz önüne alındığında. İlk kodu yazdım ama arkadaşımdan içeri girip bana yardım etmesini istedim.

Şimdiye kadar, saatin yanı sıra, bu projenin halihazırda desteklediği işlevler şunlardır:

  • Saat ve tarih gösterimi (aynı ekranda saat ve alarm aktivasyonunun yanı sıra)
  • Karanlık koşullarda veya hareket algılandığında ekran aydınlanır (ışık değişikliklerine bağlı olarak)
  • Hava tahmini (Güneşli, Bulutlu, Yağmurlu)
  • Sıcaklık, basınç ve nem göstergesi (nem için çok kuru olup olmadığını gösterir)
  • Ayarlar menüsü: alarm, saat değiştirme, tarih gösterimini etkinleştirme/devre dışı bırakma, hava durumu değişikliği sesli bildirimlerini etkinleştirme/devre dışı bırakma ve İngiliz ve metrik birimler arasında geçiş yapma
  • Alarm ayarları - açık/kapalı, saati ayarlama, bildirimler için melodiyi ve/veya zilleri ayarlama

En son kod:

Kod gelecekte yeni özelliklerle güncellenecektir, bu nedenle üretici yazılımı güncellemelerini tekrar kontrol ettiğinizden emin olun:-)

Arduino dünyasında yeniyseniz, yapmanızı tavsiye edeceğim adımlar şunlardır:

  • Anakartınız için USB sürücüsünü kurun (ör. CH340)
  • Arduino IDE'yi yükleyin
  • Bu projede kullanılan kitaplıkları yükleyin
  • GitHub'dan indirin ve en son Proje kodunu Mikro USB kablosunu kullanarak saate yükleyin (birini cep telefonundan kullanabilirsiniz)

Tahmin algoritması aşağıdaki gibidir:

Arduino Nano, her 12 dakikada bir BME280 sensöründen yeni veriler alır. Ölçüm döngüsü 3 saattir. 3 saat sonra basınç izleme aralığı (3 saat boyunca maksimum ve minimum değer), mevcut aralık ve mevcut basınç değeri sırasındaki ortalama değerlere göre değişir. Her saat, mevcut basınç değeri ile basınç değişim yönü kaydedilir. Tahmin hesaplaması için kPa birimleri kullanılır.

Nano'nun bellek sınırlamaları nedeniyle, tahmin algoritmasının basitleştirilmesi gerekiyordu. Ancak basitleştirmelere rağmen, tahmin artık daha karamsar olmasına rağmen önümüzdeki 12-24 saat içinde yağış tahmin edebiliyor - varsayılan değer "Bulutlu Hava".

"Güneşli Hava" - mevcut basınç değeri normalden 7 puan daha yüksek, basınç düşmüyor ve son 3 saat içinde minimum ve maksimum değerler arasındaki fark 2 puandan fazla değil.

Olası yağış "Yağmurlu Hava" - mevcut basınç normdan 15 puan daha düşük ve minimum ve maksimum değerler arasındaki fark 2 puandan fazla VEYA Basınç düşüyor ve mevcut değer ile norm arasındaki fark 3 - 30 puan.

Tahmin kalitesini artırmak için ana kod dosyasındaki "rakımınızı" değiştirmeniz önerilir. Örneğin buradan irtifanızı alabilirsiniz:

Adım 12: Adım Adım Video

Image
Image

Yukarıda yaptığımı takip etmek zor olduysa, tüm adımların gösterildiği bir video versiyonu da burada.

Adım 13: Son Sözler

Genel olarak, benim açımdan, bu projenin zorluk seviyesi yüksek değil ve herkes bunu yapabilir. Eski bir saatiniz yoksa, yerel bir bit pazarında ucuz bir tane bulabilirsiniz.

Tüm bileşenler düşük fiyatlıdır ve Sparkfun/Aliexpress/eBay/Amazon'da mevcuttur.

Umarım bu eğitim sizin için ilginç olmuştur ve ilk Instructable in the Clock yarışmamı destekleyebilirseniz minnettar olurum.

Saatler Yarışması
Saatler Yarışması
Saatler Yarışması
Saatler Yarışması

Saatler Yarışmasında İkincilik

Önerilen: