Mündəricat:

Oled Zəngli Saat: 8 Addım (Şəkillərlə birlikdə)
Oled Zəngli Saat: 8 Addım (Şəkillərlə birlikdə)

Video: Oled Zəngli Saat: 8 Addım (Şəkillərlə birlikdə)

Video: Oled Zəngli Saat: 8 Addım (Şəkillərlə birlikdə)
Video: Heydər Əliyev və Həyat yoldaşını Birdə belə görün #azerbaijan #president #prezident #xeberler #xeber 2024, Iyul
Anonim
Oled Zəngli Saat
Oled Zəngli Saat

Bir çox arduino/ESP32 saatı dolaşır, amma o gözəl və xırtıldayan OLED -lərdən istifadə edirlərmi?

Bir müddətdir ki, arduino və ESP32 ilə təcrübə aparıram, amma heç vaxt bitmiş bir məhsula keçə bilməmişəm. 4 1.3 düymlük monoxrom OLED ilə zəngli saat hazırladım. Saatda həm də qaranlıq bir yataq lampası və USB şarj portu var (heç kimin yatağının yanında ehtiyat prizləri yoxdur). OLED -lər də qaranlıqdır, bu layihə sevgilim tərəfindən təhdid edildikdən son dəqiqə əlavə edildi. Qız yoldaşlarının səsi kifayət qədər zəif olmayacaqsa, müəyyən saatlar arasında 3 ekranın işlədiyi kodun bir versiyasını da təqdim edə bilərəm. Məqsəd, "prototip" dən kənarda görünən, asan xidmət edilə bilən bir saat etmək idi. Saatımı hazırlayarkən həll etməli olduğum bəzi çətinliklərlə qarşılaşdım, bu səbəbdən də bu təlimatın paylaşmağa dəyər olduğunu düşünürəm. Saat kiçik alətlərlə hazırlana bilər, "bəyənmirəm" və növbəti addım üçün 10.000 €/$ CNC dəyirmanı "dərslərimi istifadə etdim.

Bu təlimatlı (strukturlaşdırıla bilməyən) anlayışda izah ediləcək bəzi şeylər:

- Arduino/ESP32 ilə I2C OLED ekranı necə istifadə etmək/tel etmək

- Bir arduino/ESP32 ilə birdən çox I2C obyektini necə istifadə etmək olar

- Döner kodlayıcıdan istifadə edərək "sürüşdürə bilən" bir menyu necə hazırlanır (+ ESP32/arduino ilə kodlayıcıdan necə istifadə olunur)

- Fritzing istifadə edərək xüsusi bir PCB hazırlamaq və sifariş etmək.

- Saat eyni zamanda bir RTC (real vaxt saatı), sürücü, aşağı gərginlik modulundan istifadə edir … Bu modullar üçün hazır olan bir çox məlumat olduğu üçün bunlara girməyəcəyəm.

Qeyd etmək istərdim ki, peşəkar proqramçı deyiləm. Təlimatçımın məqsədi yuxarıda qeyd etdiyim məqamları izah etməkdir. Son məhsulum üçün hamısını bir araya gətirməyim ən təmiz yol ola bilməz. Bütün bunları izləməyimə imkan verən yoldur.

Təchizat

Təchizat alarkən həmişə keyfiyyətin/sənədləşmənin qiymətə olan əhəmiyyətini ölçməyə çalışıram. Təchizatlarım A markaları və daha ucuz Çin hissələrinin qarışığıdır. Keyfiyyət vacibdirsə, Mouser əla bir təchizatçıdır, daha ucuz hissələr üçün Banggood/Aliexpress -dən sifariş verirəm.

- Bir ESP32 lövhəsi, adafruitdən Huzzah32 istifadə etdim, amma bir çox başqa (daha ucuz) variant var. Huzzah32 -ni seçdim, çünki çox yaxşı sənədləşdirilmişdir.

- 4 1.3 düymlük I2C OLED displey (128x64, SH1106 sürücüsü ilə), 0.96 "ölçüləri daha çox yayılmışdır, lakin bu layihə üçün 1.3" ölçülərinə üstünlük verirəm.

- LED idarə etmək üçün Sparkfun femtobuck sürücüsü

- RTC saatı, bir lityum hüceyrə ilə istifadə etdim

- Arduino nano

-Qadın USB 2.0 portu (istifadə etdim: Stewart Connector-dan SS-52200-002)

- Qadın DC jakı (istifadə etdim: Switchcraft -dan L722A)

- 12V 3A DC adapter (Mean Well-dən GST36E12-P1J)

- Xüsusi PCB, isteğe bağlıdır, lakin bu, bir hissənin ölməsi halında layihəni daha kompakt və asanlıqla xidmət edə bilər + daha az etibarlılıq səbəbindən daha çox etibarlılıq (jlcpcb.com)

- M3 vintlər və boltlar

- M3 pirinç əlavələr

- Pololu -dan 12V -dən 5V -a qədər aşağı enmə modulu (DF24V22F5)

- Soyuducu ilə işləyən 3 vat

- Jumper telləri

- Buzzer

- I2C multiplexer (adafruitdən TCA9548A)

- 2 Rotary kodlayıcılar (bəzilərini sınadım, hamısı kodumla işləmir. "DFrobot" dan biri işləyir və "DIYmore" dan dəyirmi PCB ilə işləyir. Kodum düymə üçün işləmir. KY-040 tipli. Zəngli saatım DIYmore-dan istifadə edir, çünki panel montajı çox asandır (əlavə vintlər/deliklər lazım deyil).

- Qadın başlıqlarının çeşidi (isteğe bağlı)

- Çərçivə üçün ağac: 18mmx18mmx2400mm

- İzləmə kağızı

Bəzi vasitələrdən (lehimləmə dəmiri, 3 -cü əl, mişar …) istifadə etdim, amma əslində ekzotik heç nə yox idi.

Addım 1: bir Oled istifadə edin

Bir Oled istifadə edin
Bir Oled istifadə edin
Bir Oled istifadə edin
Bir Oled istifadə edin
Bir Oled istifadə edin
Bir Oled istifadə edin

OLED -lərdən istifadə etmək üçün kitabxana quraşdırmalısınız. Oli Krausdan U8G2lib istifadə edirəm, çox başa düşüləndir və aydın nümunələri olan bir istinad bələdçisinə malikdir.

Lövhənizi (ESP və ya arduino) bağlamaq üçün SDA və SCL pinlərini tapmalısınız. Bu pinlər I2C ünsiyyət pinləridir. Tapa bilmirsinizsə, xüsusi lövhənizin "pinout" u üçün Google.

Bir nümunə kodu əlavə etdim. Kod həm arduino, həm də ESP32 üçün işləyir, lakin ESP32 -nin yaddaşının tükənmə ehtimalı daha azdır. İndiyə qədər sınadığım bütün alətlər həm 3.3v (ESP32), həm də 5V ilə işləyir.

Addım 2: Birdən çox OLED

Birdən çox OLED
Birdən çox OLED

Layihəmin bir çox digər zəngli saatlardan fərqlənməyə başladığı yer budur. Əksər arduino/ESP -lərdə yalnız bir və ya iki I2C pin var. Bu cür I2C hissələrinin istifadəsini məhdudlaşdırır. 4 I2C sensorum varsa və oxularını I2C ekranda göstərmək istəsəm nə olar? Multiplexer daxil edin. Muliplexer, 7 fərqli I2C hissəsinə müraciət etməyə imkan verir. Bu, ESP32 -nin I2C real vaxt saatından istifadə etməsinə və I2C -dən istifadə edərək vaxtı 4 ekranda göstərməsinə imkan verir (və ya daha çoxu sizi dayandırmama icazə vermə).

ESP32 üçün bir nümunə kodu əlavə etdim, buradan arduinonun davam edə biləcəyinə əmin deyiləm. Nümunə yalnız ekranlardan istifadə edir, I2C sensorlar və s. Kimi digər şeylər də ola bilər. Prinsip həmişə eynidir, "tcaselect (#)" ilə doğru kanalı çağırırsınız; funksiyasını yerinə yetirirsinizsə, I2C obyektiniz üçün lazım olan hər hansı kodu yerinə yetirirsiniz.

Addım 3: Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq

Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq
Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq
Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq
Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq
Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq
Rotary Encoder ilə Kaydırılabilir Menyu Yaratmaq

Əvvəlcə kodlayıcılarınızı sınayın. Kodlayıcı modullarınızı sınamaq üçün bir neçə kod əlavə etdim. Təchizatlarda qeyd edildiyi kimi: kodumu yalnız DF robotunun fırlanan kodlayıcı modulları və DIYmore -dan dəyirmi PCB modulu ilə uğurla sınadım. Doğru kodlayıcılar üçün yuxarıdakı şəkillərə baxın.

İstifadə etdiyim kitabxana budur:

Əlavə etdiyim PDF, inşallah saatım üçün istifadə etdiyim menyu quruluşuna kömək edər.

Kodlayıcının işləməsi mənim üçün bu layihədə ən çətin hissə idi. Həmişə ESP32 ilə uyğun olmayan bir çox fərqli kodlayıcı və bir çox fərqli kitabxana var. Ancaq bir şey daxil etmək istəyirsinizsə (işləyən) dönər kodlayıcının zərif bir həll olduğunu düşünürəm. Yalnız düymələrdən istifadə etməli olsaydım, 1 -dən çoxuna ehtiyacım olardı və vaxtın təyin edilməsi bir çox basqılar çəkərdi.

Addım 4: Əvvəlki Kodu Bir yerdə qoyun

Əvvəlki Kodu Birlikdə Yerləşdirmək
Əvvəlki Kodu Birlikdə Yerləşdirmək

Başlıq, etdiyimi ümumiləşdirir. Qismən sınadım və sonra hər şeyi bir araya gətirdim. Ancaq heç bir şey asan olmadığı üçün bəzi şeyləri dəyişdirməli oldum. Serial rabitə yavaş bir prosesdir. Bu, kodlayıcının düzgün oxunmasına mane olur. Bunun öhdəsindən gəlmək üçün kodlayıcının pinlərinə fasilələr əlavə etdim. Enkoderi itələsəniz və ya çevirsəniz, kodlayıcıyı oxumaq üçün kod dərhal çağırılır.

Menyunun necə qurulduğunu başa düşdükdən sonra öz zövqünüzə uyğun xüsusiyyətlər əlavə etmək və ya silmək çox asan olduğunu görəcəksiniz. Bəlkə də internetdən mövcud hava və ya saatı almaq və göstərmək istəyirsiniz?

Hər şeydən əvvəl etibarlı bir zaman sülhü istədiyim üçün bu cür fikirləri çox buraxdım. Avtomatik olaraq heç nə etməyən biri. Gün işığı qənaət zonasında çox qəribə saatlarda işləyirəm. Saat hər dəfə dəyişəndə yuxudan yuxuya getməyə əsəbləşirəm. Telefonum saatı avtomatik olaraq dəyişəcəkmi? Saatım olacaq? Özüm dəyişdirməsəm, saatım işləməyəcək. Amma bəlkə də saatınızı mətbəxə qoymaq istəyirsiniz? Fərqli ssenari, yaddaş bitənə qədər xüsusiyyətlər əlavə edin!

Addım 5: Fritzing + Schematic ilə Xüsusi PCB

Fritzing + Schematic ilə Xüsusi PCB
Fritzing + Schematic ilə Xüsusi PCB
Fritzing + Schematic ilə Xüsusi PCB
Fritzing + Schematic ilə Xüsusi PCB
Fritzing + Schematic ilə Xüsusi PCB
Fritzing + Schematic ilə Xüsusi PCB

Diqqət çəkən məqam: Adafruit, huzzah32 -ni USB pin vasitəsi ilə gücləndirə biləcəyinizə baxmayaraq, mikro USB güc girişini eyni vaxtda istifadə etməmək üçün diqqətli olmalısınız. Mənim PCB -ni aşağıdan aşağıya endirməklə işləyirlər, daha sonra USB pin vasitəsilə hüzzahı gücləndirir. Yükləyərkən həmişə xarici gücü ayırın/hüzzahı lövhədən çıxarın.

PCB -də qadın başlıqları lehimləmək qərarına gəldim, çünki bir hissəni dəyişdirməyi və ya əlavə bir I2C sensoru əlavə etməyi asanlaşdırır. Bu da nano və ya ESP32 proqramlarını yükləmək üçün asanlıqla silməyimə imkan verir.

Frizting faylını əlavə etdim, bura roman yaza bilərəm, amma düşünürəm ki, nümunə ən yaxşı danışır. Bütün quruluşun sxemindən başladım. Fritzingin çöpündə çoxlu hissələr olsa da, hər şey orada deyil. Bəzən İnternetdə Fritzing hissəsini tapa bilərsiniz, bəzən tapa bilməzsiniz. Tapa bilmədiyim hissələri sadəcə qadın başlıq hissəsi ilə əvəz etdim. Sağ tıklayarsanız, başlığı istədiyiniz sancaqlar miqdarına düzəldə bilərsiniz və buna bir pinout təyin edə bilərsiniz. Tapa bilmədiyim hər hissədə bunu etdim. Demək olar ki, bütün modullar eyni ölçüdə 0.1in (2.54mm) istifadə etdiyindən, bu hissə üçün düzgün aralıq verəcəkdir.

Sonra, fırıldaqçı tətbiqin PCB görünüşünə keçirsiniz. Bir PCB qoyulacaq, üzərinə basarsanız, ölçüsünü təyin edə və bir və ya iki qatlı bir PCB seçə bilərsiniz. Mənimki 2 qatdan istifadə edir. Fritzing, sxematik şəkildə etdiyiniz əlaqələri təklif edəcək. Proqramın avtomatik idarəetmə seçimi var, amma heç vaxt istifadə etmirəm. Əlaqələrimi əl ilə təşkil etməyi sevirəm. PCB görünüşündə sarı bağlantılar üst təbəqədə, narıncı alt təbəqədədir. Yenə də əlaqəni tıklasanız, xüsusiyyətlərini seçə bilərsiniz.

Həqiqi PCB etmək üçün onu gerber faylı olaraq ixrac etməlisiniz. Bunu etməzdən əvvəl "marşrutlaşdırma" nişanı altında dizayn qaydalarını yoxlaya bilərsiniz. Hər şey yoxlanarsa "PCB üçün ixrac" düyməsini vura bilərsiniz. Əksər istehsalçılar gerber faylını istəyəcəklər, buna görə gerberə ixrac et seçin.

PCB -ni JLCPCB -dən sifariş etdim, dərhal sizə bir qiymət təklif etmələrini sevirəm. Əlbəttə ki, bir çox başqa variant var.

Şematik haqqında: istifadə olunan 2 gərginlik var. LED və femtobuck birbaşa 12V təchizatı ilə təchiz edilmişdir. Qalan hissə 5 volt aşağı salınan bukla işləyir.

Addım 6: Dizayn + Lasercutter

Dizayn + Lasercutter
Dizayn + Lasercutter
Dizayn + Lasercutter
Dizayn + Lasercutter

İlk dizaynım üçün möhkəm palıddan istifadə etdim (ağac emalı dərslərini izləyirəm), amma bunun ideal olmadığı tezliklə aydın oldu. Taxta çox qalındır, hissələrinizə uyğunlaşmağı çətinləşdirir. 3 mm ağcaqayın multipleksi, kodlayıcıları və ekranları bağlamağın daha asan yollarına imkan verir.

Rotterdamda həvəskarlar üçün mövcud olan snijlab.nl onlayn bir lazer xidməti tapdım (Belçikaya, Hollandiyaya və Almaniyaya göndərirlər). Veb saytlarında rəsmlərinizi yükləyə bilərsiniz və onlar dərhal qiymətinizi bildirirlər. İş yerimdə olan Autocad -dan istifadə etdim, amma proqramın heç bir əhəmiyyəti yoxdur. Sadəcə vektor rəsmləri olmalıdır (Vectr, Illustrator, Inkscape …). Əksər mağazalar kəsmək və ya oymaq istədiyinizi müəyyən etmək üçün rənglərdən istifadə edir.

Yadda saxlamalı olduğunuz bəzi şeylər:

- Maks. lazer kəsicinin ölçüləri (hissələrimin ətrafına bir çərçivə çəkdim)

- Min. kəsiklər arasındakı məsafə

- Heç bir ikiqat xətt çəkmədiyinizə əmin olun, lazer sizə daha baha başa gələn əlavə bir keçid edəcək.

- PDF hazırlayarkən 1: 1 planladığınızdan əmin olun. Ölçmək və ya kağıza sığdırmaq istəmirsiniz.

Addım 7: Quraşdırma

Məclis
Məclis
Məclis
Məclis
Məclis
Məclis

Saatı taxta bir çərçivə ətrafında qurdum, panellər M3 vintlər və çərçivədəki əlavələrlə yerində saxlanılır. Bir versiya 2 qursam, panelləri yapışdırmaq üçün alüminium "L" profillərindən istifadə edərdim. Pirinç əlavələr üçün delikləri dəqiq qazmaq çox çətin idi. Qəbul edilə bilən bir nəticə üçün çox uzun çəkdi. Bu, əlbəttə ki, lasercut rəsmini yenidən nəzərdən keçirmək lazımdır. Alüminium profillər və yalnız qoz -fındıq və boltlarla daha yaxşı bir nəticə əldə edəcəyinizi düşünürəm.

İşığı daha yaxşı yaymaq üçün, deşiklərin içərisinə iz kağızı yapışdırdım. Bu işığa gözəl bir parıltı verir.

Addım 8: Burada dayanmayın

Burada dayanma
Burada dayanma
Burada dayanma
Burada dayanma
Burada dayanma
Burada dayanma

Layihə bir ESP32 ətrafında cəmləşib, ancaq istifadə etməmişəm. Yataq otağımın işıqları hazırda blynk istifadə edərək uzaqdan idarə oluna bilər. Onları saatla idarə etmək daha kiçik bir addımdır. Bəlkə də evinizin ətrafındakı istiliyi göstərən əlavə ekranlar istəyirsiniz? Və ya bəzi yerli sensorlar (bu multiplekserdə hələ də ehtiyat I2C əlaqələri var!). Bəlkə bir tətbiq və bluetooth vasitəsilə vaxtı/həyəcanı təyin edin?

Nəyi dəyişdiyini, nəyi dəyişəcəyini, nəyi dəyişməli olduğumu mənə bildir …

Tövsiyə: