Mundarija:

Oled budilniki: 8 qadam (rasmlar bilan)
Oled budilniki: 8 qadam (rasmlar bilan)

Video: Oled budilniki: 8 qadam (rasmlar bilan)

Video: Oled budilniki: 8 qadam (rasmlar bilan)
Video: Купить электроскутер цена за дешёвый citycoco 2021 электроскутер надежный citycoco skyboard 2024, Noyabr
Anonim
Oled budilnik
Oled budilnik

Juda ko'p arduino/ESP32 soatlari bor, lekin ular yaxshi va aniq OLED -lardan foydalanadimi?

Men bir muncha vaqt arduino va ESP32 -ni sinab ko'rdim, lekin men uni hech qachon tayyor mahsulotga aylantira olmadim. Men 1,3 dyuymli 4 ta monoxrom OLED bilan budilnik yasadim. Soat, shuningdek, karavotning yonadigan chirog'i va USB zaryadlovchi portiga ega (hech kimning karavoti yonida zaxira rozetkalari yo'q). OLED -lar ham xiralashgan, bu mening qiz do'stim tomonidan mening loyihamga tahdid qilinganidan so'ng oxirgi daqiqada qo'shilgan. Agar qiz do'stlarining ovozi etarlicha xira bo'lmasligi kerak bo'lsa, men kodning versiyasini ham bera olaman, u erda 3 displey ma'lum soatlarda ishlaydi. Maqsad, "prototip" dan tashqariga qaraydigan, oson xizmat ko'rsatiladigan soatni yaratish edi. Soatimni tuzayotganda men hal qilishim kerak bo'lgan ba'zi qiyinchiliklarga duch keldim, shuning uchun men bu ko'rsatma bilan bo'lishishga arziydi. Soatni kichik asboblar yordamida yasash mumkin, menga "yoqmaydi" va keyingi bosqichda men 10.000 €/$ CNC tegirmon "darsligimdan foydalandim.

Bu ko'rsatma (tushunib bo'lmaydigan qabul qilish) da tushuntiriladigan ba'zi narsalar:

- I2C OLED displeyini arduino/ESP32 bilan qanday ishlatish/ulash

- Bir arduino/ESP32 bilan bir nechta I2C moslamalarini qanday ishlatish kerak

- Aylanadigan kodlovchi yordamida "aylana oladigan" menyuni qanday qilish kerak (+ ESP32/arduino bilan kodlovchi qanday ishlatiladi)

- Fritzing yordamida maxsus PCBni qanday loyihalash va buyurtma qilish mumkin.

- Soat shuningdek, RTC (real vaqtda soat), etakchi haydovchi, pastga tushirish kuchlanish modulidan foydalanadi … Men bunga kirmayman, chunki bu modullar uchun juda ko'p ma'lumot mavjud.

Shuni ta'kidlashni istardimki, men professional dasturchi emasman. O'qituvchimning maqsadi - yuqorida aytib o'tgan fikrlarimni tushuntirish. Men hammasini yakuniy mahsulotim uchun qanday yig'gan bo'lsam, eng toza usul bo'lmasligi mumkin. Bu menga hammasini kuzatib borishga imkon berdi.

Ta'minotlar

Ta'minot sotib olayotganda, men har doim narx/sifat va hujjatlarning ahamiyatini o'lchashga harakat qilaman. Mening materiallarim-A markalari va arzonroq Xitoy qismlari. Mouser - bu yaxshi etkazib beruvchi, agar sifat muhim bo'lsa, men Banggood/Aliexpress -dan arzonroq qismlarga buyurtma beraman.

- ESP32 kartasi, men Huzzah32 -ni adafruitdan ishlatardim, lekin boshqa (arzonroq) variantlar ko'p. Men Huzzah32 ni tanladim, chunki u juda yaxshi hujjatlashtirilgan.

- 1,3 dyuymli 4 dyuymli I2C OLED -displeylar (128x64, SH1106 drayveri bilan), 0,96 dyuymlar keng tarqalgan, lekin bu loyiha uchun men 1,3 dyuymni afzal ko'raman.

- LEDni boshqarish uchun Sparkfun femtobuck haydovchisi

- RTC soati, men lityum hujayrali soatni ishlatardim

- Arduino nano

-Ayol USB 2.0 porti (men ishlatganman: Styuart ulagichidan SS-52200-002)

- Ayol shahar uyasi (men ishlatganman: Switchcraft -dan L722A)

- 12V 3A shahar adapteri (o'rtacha quduqdan GST36E12-P1J)

- Maxsus PCB, ixtiyoriy, lekin bu loyihani ancha ixcham va oson xizmat ko'rsatishga imkon beradi, agar uning bir qismi o'lsa + ishonchliligi oshadi, chunki simlar kamroq (jlcpcb.com)

- M3 vintlardek va murvat

- M3 guruch qo'shimchalari

- Pololu -dan 12V dan 5V gacha tushish moduli (DF24V22F5)

- 3 vatt, sovutgich bilan quvvatlanadi

- o'tish simlari

- Buzzer

- I2C multipleksor (adafruitdan TCA9548A)

- 2 ta aylanuvchi kodlovchi (men sinab ko'rdim, hammasi ham mening kodim bilan ishlamaydi. "DFrobot" dagi "DIYmore" dumaloq PCB bilan ishlaydi. Mening kodim tugmachada ishlamaydi) KY-040 tipidagi Mening budilnikim DIYmore-dan foydalanadi, chunki ularni panelga o'rnatish juda oson (qo'shimcha vintlar/teshiklar kerak emas).

- Ayol sarlavhalari assortimenti (ixtiyoriy)

- Ramka uchun yog'och: 18mmx18mmx2400mm

- Kuzatuv qog'ozi

Men ham ba'zi asboblarni ishlatardim (lehimlantiruvchi temir, 3 -qo'l, arra …), lekin hech qanday ekzotik narsa yo'q.

1 -qadam: Oleddan foydalanish

Oleddan foydalanish
Oleddan foydalanish
Oleddan foydalanish
Oleddan foydalanish
Oleddan foydalanish
Oleddan foydalanish

OLED -dan foydalanish uchun kutubxonani o'rnatish kerak. Men U8G2lib -dan Oli Krausdan foydalanaman, u juda tushunarli va aniq misollar bilan ma'lumotnomaga ega.

Kengashni (ESP yoki arduino) ulash uchun siz SDA va SCL pinlarini topishingiz kerak. Bu pinlar I2C aloqa pinlari. Agar siz ularni topa olmasangiz, Google sizning maxsus taxtangiz "pinout" uchun.

Men misol kodini qo'shdim. Kod arduino uchun ham, ESP32 uchun ham ishlaydi, lekin ESP32 xotirasi kam bo'ladi. Men hozirgacha sinab ko'rgan barcha oledlar 3.3v (ESP32) va 5V bilan ishlaydi.

2 -qadam: bir nechta OLED

Bir nechta OLED
Bir nechta OLED

Bu erda mening loyiham boshqa ko'plab budilniklardan farq qila boshlaydi. Ko'pgina arduino/ESP faqat bitta yoki ikkita I2C piniga ega. Bu turdagi I2C qismlaridan foydalanishni cheklaydi. Agar menda 4 ta I2C sensori bo'lsa va ularning o'qilishini I2C displeyida ko'rsatishni xohlasam nima bo'ladi? Multipleksorni kiriting. Muliplexer sizga I2C -ning 7 xil qismiga murojaat qilish imkonini beradi. Bu mening ESP32 -ga I2C real vaqtli soatidan foydalanishga va I2C yordamida vaqtni 4 displeyda ko'rsatishga imkon beradi (yoki undan ko'prog'i, sizni to'xtatishga ruxsat bermang).

Men ESP32 uchun bir nechta misol kodini qo'shdim, shu erdan men arduino -ni ushlab turishiga amin emasman. Misol faqat displeylardan foydalanadi, bu I2C datchiklari va boshqalar kabi boshqa narsalar bo'lishi mumkin. Printsip har doim bir xil bo'ladi, siz to'g'ri kanalni "tcaselect (#);" bilan chaqirasiz. funktsiyasi, keyin siz I2C obyekti uchun kerakli kodni bajarasiz.

3 -qadam: aylanadigan kodlovchi yordamida aylanadigan menyu yaratish

Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish
Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish
Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish
Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish
Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish
Aylanadigan kodlovchi yordamida aylanadigan menyuni yaratish

Birinchidan, kodlovchilaringizni sinab ko'ring. Men sizning kodlovchi modullaringizni sinab ko'rish uchun kod qo'shdim. Ta'minotda aytilganidek: men o'z kodimni faqat DF robotining aylanadigan kodlovchi modullari va DIYmore dumaloq tenglikni moduli bilan muvaffaqiyatli sinab ko'rdim. To'g'ri kodlovchi uchun yuqoridagi rasmlarga qarang.

Men foydalangan kutubxona bu:

Men qo'shgan PDF, umid qilamanki, men soat uchun ishlatgan menyu tuzilishiga yordam beradi.

Kodlayıcı ishini bajarish men uchun bu loyihadagi eng qiyin qism edi. ESP32 bilan har doim ham mos kelmaydigan juda ko'p turli xil kodlovchi va ko'plab kutubxonalar mavjud. Menimcha, agar siz biror narsani kiritmoqchi bo'lsangiz (ishlaydigan) aylanuvchi kodlovchi - oqlangan yechim. Agar men faqat tugmachalarni ishlatgan bo'lsam, menga 1 tadan ko'p kerak bo'lardi va vaqtni belgilashga ko'p bosish kerak bo'lardi.

4 -qadam: Oldingi kodni bir joyga qo'yish

Oldingi kodni bir joyga qo'yish
Oldingi kodni bir joyga qo'yish

Sarlavha turi men qilgan ishlarimni umumlashtiradi. Men bir qismini sinab ko'rdim, keyin hamma narsani birlashtirdim. Ammo hech narsa oson bo'lmagani uchun, ba'zi narsalarni o'zgartirishim kerak edi. Seriya aloqasi sekin jarayon. Bu kodlovchini to'g'ri o'qishga to'sqinlik qiladi. Buni bartaraf etish uchun men kodlovchi pinlariga uzilishlar qo'shdim. Enkoderni bosish yoki burish paytida kodlovchi o'qiladigan kod darhol chaqiriladi.

Menyu qanday tuzilganini tushunganingizdan so'ng, siz o'zingiz yoqtirgan funktsiyalarni qo'shish yoki o'chirish juda oson ekanligini bilib olasiz. Balki, siz hozirgi ob -havo yoki vaqtni internetdan olib, ko'rsatishni xohlaysizmi?

Men bunday g'oyalarni chetda qoldirdim, chunki men avvalambor ishonchli tinchlik-osoyishtalikni xohlardim. O'z -o'zidan hech narsa qilmaydigan kishi. Men kunduzgi tejamkorlik zonasida juda g'alati soatlarda ishlayman. Har safar soat o'zgarganda, men uxlab qolishdan asabiylashaman. Telefonim soatni avtomatik ravishda o'zgartiradimi? Mening soatingmi? Men o'zimni o'zgartirmagunimcha, soatim ishlamaydi. Lekin, ehtimol siz soatingizni oshxonaga qo'yishni xohlaysizmi? Har xil stsenariy, xotira tugamaguncha xususiyatlarni qo'shing!

5 -qadam: Fritzing + sxemali maxsus PCB

Fritzing + sxemali maxsus PCB
Fritzing + sxemali maxsus PCB
Fritzing + sxemali maxsus PCB
Fritzing + sxemali maxsus PCB
Fritzing + sxemali maxsus PCB
Fritzing + sxemali maxsus PCB

Diqqat: Adafruit, huzz32 -ni USB -pin orqali quvvatlantirish mumkin bo'lsa -da, siz bir vaqtning o'zida mikro USB quvvat manbasini ishlatmaslik uchun ehtiyot bo'lishingiz kerakligini ta'kidlaydi. Mening PCB -ni pastga tushirish puli orqali quvvatlanadi, u huzani USB -pin orqali quvvatlaydi. Shunday qilib, yuklash paytida har doim tashqi quvvatni uzing/huzzani taxtadan olib tashlang.

Men PCB -da ayol sarlavhalarini lehimlashga qaror qildim, chunki bu qismni almashtirishni osonlashtiradi yoki masalan, qo'shimcha I2C sensorini qo'shadi. Bu menga dasturlarni yuklash uchun nano yoki ESP32 ni osongina olib tashlashga imkon beradi.

Men Frizting faylini qo'shdim, bu erga roman yozishim mumkin, lekin menimcha, bu misol eng yaxshi gapiradi. Men butun o'rnatish sxemasidan boshladim. Fritzingning qutilarida ko'p qismlar bo'lsa -da, hamma narsa u erda emas. Ba'zida Internetda Fritzing qismini topishingiz mumkin, ba'zida topa olmaysiz. Men topa olmagan qismlar, men faqat ayol bosh qismi bilan almashtirdim. Agar siz sichqonchaning o'ng tugmachasini bosgan bo'lsangiz, sarlavhani kerakli sonlar soniga qarab o'zgartirishingiz va unga pinout belgilashingiz mumkin. Men buni topa olmagan har bir qismim bilan qildim. Deyarli barcha modullar 0,1 dyuymli (2,54 mm) bir xil balandlikdan foydalanganligi uchun bu qism uchun to'g'ri oraliqni beradi.

Keyinchalik, siz fritzing ilovasining PCB ko'rinishiga o'tasiz. PCB o'rnatiladi, agar siz uni bosgan bo'lsangiz, siz uning hajmini belgilashingiz va bitta yoki ikki qatlamli tenglikni tanlashingiz mumkin. Meniki 2 qatlamdan foydalanadi. Fritzing sxematik ko'rinishda qilgan ulanishlaringizni taklif qiladi. Dasturda autoroute varianti bor, lekin men uni hech qachon ishlatmayman. Men ulanishlarni qo'lda tartibga solishni yaxshi ko'raman. PCB ko'rinishida sariq ulanishlar yuqori qatlamda, to'q sariq pastki qatlamda joylashgan. Agar siz ulanishni bosgan bo'lsangiz, uning xususiyatlarini tanlashingiz mumkin.

Haqiqiy tenglikni yaratish uchun uni gerber fayli sifatida eksport qilish kerak. Buni amalga oshirishdan oldin, "marshrutlash" yorlig'i ostida siz dizayn qoidalarini tekshirishingiz mumkin. Agar hamma narsa tekshirilsa, "PCB uchun eksport" tugmasini bosishingiz mumkin. Ko'pgina ishlab chiqaruvchilar gerber faylini so'rashadi, shuning uchun gerberga eksport qilishni tanlang.

Men PCB -ni JLCPCB -dan buyurtma qildim, ular sizga darhol narx taklif qilishlarini yoqtiraman. Albatta, boshqa ko'plab variantlar mavjud.

Sxema haqida: 2 ta kuchlanish ishlatiladi. LED va femtobuck to'g'ridan -to'g'ri 12V kuchlanish bilan quvvatlanadi. Qolganlari 5 voltli pastga tushadigan paqir orqali quvvatlanadi.

6 -qadam: Dizayn + Lasercutter

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

Birinchi dizaynimda men qattiq eman ishlatishga harakat qildim (men yog'ochni qayta ishlash darslarini kuzataman), lekin bu ideal emasligi tezda ma'lum bo'ldi. Yog'och juda qalin bo'lib, uning qismlarini joylashtirish qiyin. 3 mm qayin multipleksi kodlovchi va displeylarni mahkamlashning oson yo'llarini beradi.

Men Rotterdamda joylashgan havaskorlar uchun mavjud snijlab.nl lasercut xizmatini topdim (ular Belgiya, Gollandiya va Germaniyaga jo'natiladi). O'z veb -saytida siz chizmalaringizni yuklashingiz mumkin va ular darhol sizning narxingizni taklif qilishadi. Men ishda bo'lgan Autocad -dan foydalandim, lekin dasturiy ta'minotning ahamiyati yo'q. Bu faqat vektorli rasm bo'lishi kerak (Vectr, Illustrator, Inkscape …). Ko'pgina do'konlar kesish yoki o'yishni xohlayotganingizni aniqlash uchun ranglardan foydalanadi.

Yodda tutish kerak bo'lgan ba'zi narsalar:

- Maks. lazer kesgichning o'lchamlari (men qismlarim atrofida ramka chizdim)

- Min. kesmalar orasidagi masofa

- Ikkita chiziq chizmasligingizga ishonch hosil qiling, lazer sizga qo'shimcha xarajat qiladi.

- PDF -ga reja tuzayotganda, 1: 1 chizilganligiga ishonch hosil qiling. Siz qog'ozni kichraytirishni xohlamaysiz.

7 -qadam: yig'ish

O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish
O'rnatish

Men soatni yog'och ramka atrofida qurdim, panellar M3 vintlari va ramkadagi qo'shimchalar bilan joyida saqlanadi. Agar men 2 -versiyani qursam, panellarni biriktirish uchun alyuminiy "L" profillaridan foydalanardim. Guruch qo'shimchalari uchun teshiklarni aniq burg'ulash juda qiyin edi. Menga juda ko'p vaqt kerak bo'ldi, faqat maqbul natija. Bu, albatta, lazer chizig'ini qayta ko'rib chiqish kerakligini anglatadi. O'ylaymanki, alyuminiy profil va faqat yong'oq va murvat bilan siz yaxshi natijaga erishasiz.

Yorug'likni yaxshiroq tarqatish uchun men teshiklarning ichki qismiga kuzatuv qog'ozini yopishtirdim. Bu yorug'likni yaxshi yoritadi.

8 -qadam: Bu erda to'xtamang

Bu erda to'xtamang
Bu erda to'xtamang
Bu erda to'xtamang
Bu erda to'xtamang
Bu erda to'xtamang
Bu erda to'xtamang

Loyiha ESP32 atrofida joylashgan, men uni deyarli ishlatmadim. Mening yotoqxonadagi chiroqlar hozirda blynk yordamida masofadan boshqarilishi mumkin. Ularni soat bilan boshqarish - bu kichik qadam. Balki siz uyingiz atrofidagi haroratni ko'rsatadigan qo'shimcha displeylarni xohlaysizmi? Yoki ba'zi mahalliy sensorlar (bu multipleksorda hali ham zaxira I2C ulanishlari bor!). Balki vaqt/signalni ilova va bluetooth orqali o'rnatasizmi?

Menga ayting -chi, siz nimani o'zgartirdingiz, nimani o'zgartirmoqchisiz, men nimani o'zgartirishim kerak …

Tavsiya: