Mündəricat:

Köhnə Alarm və Arduino istifadə edərək hava proqnozu saatı: 13 addım (şəkillərlə)
Köhnə Alarm və Arduino istifadə edərək hava proqnozu saatı: 13 addım (şəkillərlə)

Video: Köhnə Alarm və Arduino istifadə edərək hava proqnozu saatı: 13 addım (şəkillərlə)

Video: Köhnə Alarm və Arduino istifadə edərək hava proqnozu saatı: 13 addım (şəkillərlə)
Video: Lesson 99: Building Arduino Digital Clock using DS3231 LCD and Seven Segment Display 2024, Iyul
Anonim
Köhnə Alarm və Arduino istifadə edərək Hava Proqnozu Saatı
Köhnə Alarm və Arduino istifadə edərək Hava Proqnozu Saatı
Köhnə Siqnal və Arduino istifadə edərək Hava Proqnozu Saatı
Köhnə Siqnal və Arduino istifadə edərək Hava Proqnozu Saatı

Ətrafımda uzanan qırıq bir zəngli saatım vardı və onu saat və hava proqnoz stansiyasına çevirmək fikri gəldi.

Bu layihə üçün sizə lazım olacaq:

  • Köhnə dairəvi zəngli saat
  • Arduino Nano
  • BME280 sensor modulu (temperatur, rütubət, təzyiq)
  • Nokia 5110 -dan LCD ekran modulu
  • DS1307 RTC saatı
  • TP4056 Lityum batareya şarj cihazı
  • Köhnə Li-ion batareyası cib telefonundan xilas edildi
  • Kiçik 3.7V -dən 5V -a qədər gücləndirici modul
  • İşıqdan Rezistor (LDR - işıq sayğacı)
  • Buzzer (köhnə kompüterdən xilas olan istifadə olunur)
  • 3 düymə
  • Bir dəstə rezistor (2x10k, 270 ohm) və bir tranzistor (2N2222A və ya bənzəri)
  • Bəzi geniş büzülmə borusu
  • Ön plaka bəzəyi kimi istifadə etmək üçün PCB hurda
  • Micro-USB uzatma kabeli (qadın və kişi tərəfləri Micro-USB-dir)
  • 2x8cm prototip lövhəsi və bəzi tellər

Addım 1: Hər şeyi sökün

Hər şeyi Sökmək
Hər şeyi Sökmək

Əvvəlcə köhnə saatı sökdüm. Zənglər, motor, pozulmuş saat mexanizmi …

Addım 2: Rəqəmsal Ayarlar üçün Düymələr

Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr
Rəqəmsal Ayarlar üçün Düymələr

Yeni saat içərisində mini kompüterlə tam rəqəmsal olacağından yan tərəfə 3 sadə gözəl görünüşlü düymə əlavə etdim.

Alüminiumdan bir parça istifadə edərək etiket yaratmaq üçün örtüyü kəsdim. Etiketlər üçün hərflər qara zolaqlar və qara işarələrdən istifadə etməklə yaradılmışdır.

Addım 3: Motor üçün kondansatör

Motor üçün kondansatör
Motor üçün kondansatör

Mühərriklə həyəcanı gücləndirmək üçün köhnə zəngləri saxlayacağam. Köhnə qırıq saat mexanizmində 104 etiketli bir keramika kondansatörü var idi. Mən onu lövhədən çıxarıb birbaşa mühərrikə lehimləmişəm - bu, həyəcan zamanı mühərriki işə salanda elektrik sıçrayışlarının qarşısını almağa kömək edəcək. Mühərrikin tranzistor vasitəsilə idarə ediləcəyini də qeyd etmək vacibdir, lakin bu barədə daha sonra.

Addım 4: Saat üçün Yeni Üz

Saat üçün yeni üz
Saat üçün yeni üz
Saat üçün yeni üz
Saat üçün yeni üz

Saat üçün yeni bir üz düzəltmək qərarına gəldiyim üçün - zibil qutusundan bir dövrə lövhəsi götürdüm və bütün komponentləri tez bir zamanda çıxarmaq üçün inşaatçı tüfəngdən istifadə etdim. Ortadakı çuxur yeni saatın rəqəmsal ekranı üçün hazırlanmışdır.

Addım 5: Köhnə Cib Telefonundan Rəqəmsal Ekran

Köhnə Cib Telefonundan Rəqəmsal Ekran
Köhnə Cib Telefonundan Rəqəmsal Ekran
Köhnə Cib Telefonundan Rəqəmsal Ekran
Köhnə Cib Telefonundan Rəqəmsal Ekran

Bu layihə üçün köhnə Nokia 5110 cib telefonundan LCD ekran istifadə etmək qərarına gəldim. Bu ekranlar bir modul olaraq çox satılır, çox az güc çəkirlər və Arduino üçün yaxşı kitabxanalar var. 5110 ekranlı yeni bir modul alırsınızsa - bütün yeni modullar xilas edilmiş 5110, 3110 və 3210 telefonlarından yaradıldığı üçün planeti xilas edirsiniz!

Addım 6: Dövrləri birləşdirmək

Dövrləri birləşdirmək
Dövrləri birləşdirmək
Dövrləri birləşdirmək
Dövrləri birləşdirmək
Dövrləri birləşdirmək
Dövrləri birləşdirmək

Bu saatı idarə etmək üçün Arduino lövhəsindən istifadə etməyi planlaşdırdığımı əvvəlcədən təxmin etmiş ola bilərsiniz. Layihə, hətta Arduino pərəstişkarları üçün də asanlıqla təkrarlana bilər, çünki öz elektron lövhələrimi yaratmamışam. Arduino Nano lövhəsi, modulları - BME280 temperatur, təzyiq və rütubət sensoru, DS1307 RTC saatı, TP4056 Lityum batareya şarj cihazı, kiçik 3.7v -5v gücləndirici modulu, İşıqdan Asılı Rezistor (LDR - işıq sayğacı) və səs siqnalı (köhnə kompüterdən götürülmüşdür).

Eskizlərə də baxın - bütün əlaqələri göstərirlər. Düşünürəm ki, hər şeyi oxumaq və başa düşmək çox asandır, amma suallarınız varsa aşağıdakı şərhlərdə soruşun.

Quraşdırma haqqında bir neçə qeyd:

  • Motor birbaşa batareyadan tranzistor vasitəsilə bağlanır. Arduino, tranzistoru rezistor və PWM pin D5 vasitəsilə idarə edir.
  • D7-12 pinləri LCD konnektoru üçün istifadə olunur. Torpaq və VCC qovşaq lövhəsindəki dəmir yolu ilə əlaqələndirilir.
  • Saat üzünə LDR quraşdırılmış və rezistor + 3 gedən tel saatın arxa tərəfində lehimlənmişdir.
  • Düymə bağlantısı üçün Arduino içərisində daxili PULLUP funksiyasından istifadə etdim. Menyu düyməsi kəsilməyə bağlıdır və yalnız sonra başa düşdüm ki, fasilə üçün daxili PULLUP da istifadə edə bilərsiniz. Menyu düyməsini kəsmək kodun düymələrin vəziyyətini hər zaman taramaması üçün tələb olunur.
  • Saat batareyanın vəziyyətini izləyəcək və göstərəcək, buna görə batareya A0 pininə birbaşa bağlıdır. Batareya gərginliyi heç vaxt 4.2V -dən yüksək deyil, buna görə batareyanı birbaşa Arduino analog pininə bağlamaq təhlükəsizdir.
  • Buzzer, PWM pin D6 ilə birbaşa bağlıdır. Bu yaxşı bir təcrübə olmasa da, Arduino Nano qeyd edildiyindən daha yüksək spesifikasiyanı idarə edə bildiyi üçün və zil fasiləsiz işləməyəcəyindən də qaçdım. Eyni quruluş ESP lövhələrindəki sancaqları asanlıqla yandıracaq, buna görə də bu hallarda tranzistor nəzarətindən istifadə etməyi məsləhət görürəm.
  • Saatın artıq bir açarı var idi, buna görə də istifadə etməyə qərar verdim. Arxada təbii görünür.

Addım 7: Asan Bağlantılar üçün Bağlantı Kartı

Asan əlaqə üçün qovşaq lövhəsi
Asan əlaqə üçün qovşaq lövhəsi
Asan Əlaqələr üçün Bağlantı Kartı
Asan Əlaqələr üçün Bağlantı Kartı

Bütün modullar pozitiv və torpaq əlaqələri tələb edir, buna görə 2x8 sm ölçüdə prototip lövhəsi və 5V və Zəmin raylarını lehimləməyə qərar verdim. I2C interfeysindən istifadə edən bir neçə modulu olduğu üçün orada da kiçik bir I2C dəmir yolu düzəltdim.

Digər tərəfdən, standart pinləri lehimlədim ki, lazım olduqda modulları bağlaya və ayırım.

Əlavə komponentlərdən bəziləri də orada mühərrikin idarə edilməsi üçün tranzistor və rezistor və Interrupt istifadə edən Menyu düyməsi üçün bir rezistor kimi lehimlənmişdir. Əvvəlki hissədə sxemləri göstərdim.

btw İlk şəkildəki saat üzünə artıq quraşdırılmış LDR sensorunu görə bilərsinizmi?

Addım 8: Gücün qurulması

Gücün qurulması
Gücün qurulması

Bu saatı gücləndirmək üçün cib telefonumdan köhnə Lityum-ion batareyadan istifadə etdim. Adətən dəyişdirilən cib telefonu batareyaları hələ də yaxşı tutuma malikdir (yeni olanda ən azı yarısı). Onların üstünlüyü, daxili boşaltma qoruma sxeminin olmasıdır və çox incədirlər, buna görə də kiçik kosmik ssenarilərdə istifadə oluna bilər.

Batareyanı bağlamaq üçün telləri batareyanın + və - pinlərinə lehimləmək kifayətdir. Endişelenmeyin, hüceyrəyə zərər verməyəcəksiniz, çünki nəzarətçi və sancaqlar ilə hüceyrənin kimyəvi maddələri arasında bir az boş yer var.

Bu şəkildə batareyanı, həmçinin TP4056 şarj tənzimləyicisini, 5V gücləndiricini birlikdə və batareyaya qoşulduğunu görə bilərsiniz. Hər şeyi təcrid olunmuş və yığcam etmək üçün büzülmə borusundan istifadə etdim.

Addım 9: Firmware -ni doldurmaq və yeniləmək üçün mikro USB

Firmware -ni doldurmaq və yeniləmək üçün mikro USB
Firmware -ni doldurmaq və yeniləmək üçün mikro USB

Hər şeyi lehimlədikdən sonra səs siqnalını və arxa paneldəki temp/təzyiq/rütubət sensorunu yapışdırdım. Hamısı köhnə saat düymələrindən olan mövcud yuvalara gözəl bir şəkildə quraşdırılmışdır.

İndi mikro USB portunu arxaya quraşdırmağın vaxtı gəldi. Nano Mini USB istifadə edirsə niyə Micro USB? Sadəcə, ev şəraitində əksər USB kabelləri cib telefonlarından alınır və saatın da bunu qəbul etməsi rahat olardı.

Həm şarj etmək, həm də saat və hava stansiyası funksiyalarını yeniləmək üçün istifadə etmək istədiyim üçün - USB kabelini soydum, elektrik tellərini TP4056 şarj cihazı və Data+/Məlumat telləri vasitəsilə birbaşa Arduino Nanonun USB yuvasına yönləndirdim. Bunu əvvəlki hissələrdə göstərdiyim sxemdə görə bilərsiniz.

Addım 10: Son Quraşdırma

Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi
Final Məclisi

İndi hər şeyi orijinal saata yığmağın vaxtı gəldi. Komponentləri və modulları təcrid etmək üçün büzülmə borusundan istifadə etdim. Hətta Arduino büzüşmə borusuna bükülmüşdü.

Hər bir komponentin harada yerləşdirildiyini görmək üçün birinci fotoşəkilin üzərinə gedin.

Addım 11: Kod

Gördüyünüz kimi, saat içəridə tam doludur. Əlbəttə ki, bəzi proqramlaşdırma bacarıqları olduğunu nəzərə alaraq, əlimdəki köhnə saatdan daha mürəkkəb bir şey yaratmağa imkan verdi. İlkin kodu yazdım, amma dostumdan içəri girib mənə kömək etməsini istədim.

İndiyə qədər, saatın özündən başqa, bu layihənin artıq dəstəklədiyi funksiyalar bunlardır:

  • Saat və tarix göstəricisi (eyni ekranda həyəcan siqnalının vaxtı və aktivləşdirilməsi)
  • Ekran qaranlıq şəraitdə və ya hərəkət aşkar edildikdə yanır (işığın dəyişməsinə əsaslanaraq)
  • Hava proqnozu (Günəşli, Buludlu, Yağışlı)
  • Temperatur, təzyiq və rütubətin göstərilməsi (rütubət üçün çox quru olub olmadığını göstərəcək)
  • Ayarlar üçün menyu: həyəcan, vaxtın dəyişdirilməsi, tarixin göstərilməsini aktivləşdirmək/söndürmək, hava dəyişikliyinin səs bildirişlərini aktiv etmək/söndürmək və imperiya və metrik vahidlər arasında keçid
  • Siqnal parametrləri - yandırmaq/söndürmək, vaxtı təyin etmək, melodiya və/və ya bildirişlər üçün zəngləri təyin etmək

Ən son kod:

Kod gələcəkdə yeni xüsusiyyətlərlə yenilənəcək, buna görə də firmware yeniləmələrini yenidən yoxlayın:-)

Arduino dünyasında yeni birisinizsə, bunları etməyi məsləhət görürəm:

  • Kartınız üçün USB sürücüsü quraşdırın (məsələn, CH340)
  • Arduino IDE quraşdırın
  • Bu layihədə istifadə olunan kitabxanaları quraşdırın
  • GitHub -dan yükləyin və Micro USB kabelindən istifadə edərək ən son Layihə kodunu saata yükləyin (cib telefonunuzdan istifadə edə bilərsiniz)

Proqnozlaşdırma alqoritmi belədir:

Arduino Nano, hər 12 dəqiqədə BME280 sensorundan yeni məlumatlar alır. Ölçmə dövrü 3 saatdır. 3 saatdan sonra təzyiq monitorinqi diapazonu (3 saat ərzində maksimum və minimum dəyər) cari aralıq və cari təzyiq dəyəri zamanı orta dəyərlərə nisbətən dəyişir. Hər saat təzyiqin cari təzyiq dəyəri ilə dəyişmə istiqaməti saxlanılır. kPa vahidləri proqnoz hesablanması üçün istifadə olunur.

Nanonun yaddaş məhdudiyyətləri səbəbindən proqnozlaşdırma alqoritmi sadələşdirilməli idi. Sadələşdirmələrə baxmayaraq, proqnozlar indi daha bədbin olsa da, önümüzdəki 12-24 saat ərzində yağıntıları proqnozlaşdıra bilir - standart dəyər "Buludlu Hava" dır.

"Günəşli Hava" - təzyiqin cari dəyəri normadan 7 bal yüksəkdir, təzyiq düşmür və son 3 saat ərzində minimum və maksimum dəyərlər arasındakı fərq 2 baldan çox deyil.

Mümkün yağış "Yağışlı Hava" - cari təzyiq normadan 15 bal aşağıdır və minimum və maksimum dəyərlər arasındakı fərq 2 baldan çoxdur OR Təzyiq düşür və cari dəyər ilə norm arasındakı fərq 3 - 30 baldır.

Proqnozlaşdırmanın keyfiyyətini artırmaq üçün əsas kod faylındakı "yüksəkliyinizi" dəyişdirmək tövsiyə olunur. Yüksəkliyinizi burada əldə edə bilərsiniz, məsələn:

Addım 12: Addım-addım Video

Image
Image

Yuxarıda etdiyimi izləmək çətindirsə, burada göstərilən bütün addımları əks etdirən bir video versiyası da var.

Addım 13: Son sözlər

Ümumiyyətlə, mənim fikrimcə, bu layihənin çətinlik səviyyəsi yüksək deyil və hər kəs edə bilər. Köhnə bir saatınız yoxdursa, yerli bir bazarda ucuz birini tapa bilərsiniz.

Bütün komponentlər aşağı qiymətə malikdir və Sparkfun/Aliexpress/eBay/Amazon -da mövcuddur.

Ümid edirəm ki, bu dərslik sizin üçün maraqlı idi və Saatdakı ilk Təlimatçılığa dəstək verə bilsəniz minnətdar olardıq.

Saat Müsabiqəsi
Saat Müsabiqəsi
Saat Müsabiqəsi
Saat Müsabiqəsi

Saat Yarışmasında 2 -ci yeri tutdu

Tövsiyə: