Mundarija:
- Ta'minotlar
- 1 -qadam: Arduino IDE -ni ESP32 -ni qo'llab -quvvatlash uchun o'rnating
- 2 -qadam: LED matritsasini ESP32 ga ulang
- 3 -qadam: uni birlashtirish
- 4 -qadam: Arduino IDE va INO fayli
- 5 -qadam: Kod
Video: LED matritsasida ESP32 aylantirish WordClock: 5 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Ushbu loyihada men ESP32, LED matritsali va sigaret qutisi bo'lgan aylantiruvchi WordClock yarataman.
WordClock - bu soatni ekranda chop etish yoki o'qish uchun qo'llar emas, balki vaqtni belgilaydigan soat. Bu soat sizga kunduzi soat 3 dan 10 minut yoki peshin ekanligini aytadi. Men hatto uni tushdan keyin kechgacha bo'lgan noaniq vaqt uchun Prevening (Katta portlash nazariyasidan) nomidan foydalanishni dasturlashtirdim. 16:00 da boshlanadi.
ESP32 ajoyib, ular juda qiziqarli va juda arzon, agar siz Arduino dasturini yoqtirsangiz, ESP32 10 dollardan pastroqda nima qila olishidan hayron qolasiz. Ular Arduino IDE -dan foydalanadilar va dasturlash oson. Men buni qanday qilishni ko'rsatma ko'rsatmasida ko'rsataman.
Ta'minotlar
- ESP32 - Amazonda taxminan 10 dollar
- LED matritsasi (max7219) (va simlar) - 9 dollarlik Amazon
- Sigara qutisi
- USB quvvat kabeli
- Esp32 stend uchun ixtiyoriy 3d printer
1 -qadam: Arduino IDE -ni ESP32 -ni qo'llab -quvvatlash uchun o'rnating
Arduino IDE -ni oling:
- Brauzerda https://www.arduino.cc/ saytiga o'ting.
- "ARDUINO 1.8.12" ni olish uchun "Dasturiy ta'minot" ni, so'ng "Yuklamalar" ni bosing
Arduino IDE -ga ESP32 qo'llab -quvvatlashini qo'shing:
- Arduino IDE -ni ishga tushiring
- Fayl menyusini, so'ngra Sozlamalar -ni bosing.
"Sozlamalar" bo'limida "Qo'shimcha boshqaruv menejeri" ga quyidagi qatorni qo'shib, ishlab chiqaruvchi yordamini qo'shing.
dl.espressif.com/dl/package_esp32_index.js
Bu bizga taxtani IDE -ga qo'shish imkoniyatini beradi
"Asboblar" menyusiga, so'ng "Kengashlar" ga o'ting va boshqaruv menejeriga o'ting
Keyingi "ESP" ni qidiring va Expressif paketini qo'shing.
Nihoyat, biz "Asboblar" menyusiga, so'ngra "Kengash" ga qaytishni va ESP32 qurilmangizni topish uchun pastga aylanishni xohlaymiz.
Meniki bu "ESP32 Wrover moduli"
2 -qadam: LED matritsasini ESP32 ga ulang
LED matritsasi 8x8 o'lchamli to'rtta LED blokdan iborat bo'lib, MAX7219 chipidan foydalanadi. Bu bizga Matrixdagi 8x32 LED yoki 256 LEDni beradi !!!.
Esp32 men TinkerCad -da yaratgan panjara ustida joylashgan. Mening ushlagichim pinlarni yuqoriga qaragan holda ushlab turadi, shunda siz simlarni ulashingiz mumkin.
LED matritsasi ESP32 ga SPI (ketma -ket periferik interfeys) yordamida ulanadi.
Ayol/ayol simlarini va ulanish pinlarini quyidagicha ishlating:
- ESP32 - matritsadagi VCC uchun 5V
- ESP32 - matritsada GND dan GNDgacha
- ESP32 - Matrix bo'yicha CS5 -ga PIN5 (G5)
- ESP32 - Matrixdagi Din -ga PIN23 (G23)
- ESP32 - 18 -gachasi (G18) matritsadagi CLK -ga ulang
Boshqa pinlardan foydalanish mumkin yoki ESP32 -da boshqa pinout bo'lsa.
3 -qadam: uni birlashtirish
Men LED displey qo'yish uchun joy berish uchun sigaret qutisini kesib tashladim. Quti yumshoq va men ustara pichog'ini ishlatishga muvaffaq bo'ldim. Keyin silliqlash uchun zımpara qildim.
Men ham elektr simini orqasidan bir butunni kesib tashladim. Men faqat USB quvvatidan foydalandim. Agar men simsiz bo'lishni xohlaganimda, hatto sigaret qutisiga USB telefon zaryadlovchi batareyasini qo'shgan bo'lardim.
4 -qadam: Arduino IDE va INO fayli
Eng yaxshi qism - bu kod. Lekin avval dasturni displeydan sodda tarzda foydalanishiga ruxsat berish uchun kutubxona qo'shishimiz kerak. MD_MAX72xx kutubxonasini qo'shdim.
Kutubxonani qo'shish uchun "Chizma" menyusini bosing, so'ng "Kutubxonani qo'shish" va "Kutubxonalarni boshqarish" tugmachalari yuklanadi va MD_MAX72xx kutubxonasini qidirishga imkon beradi. O'rnatish tugmachasini bosish kifoya.
Keyin mening Arduino INO faylimni oling:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
Ino faylini Arduino IDE -ga yuklang, ESP32 -dan USB -ni kompyuteringizga ulang.
"Eskiz" ni bosing, so'ng yuklang
Bu vaqtda soat ishlamaydi, ESP32 hech narsani ko'rsatmaydi. Nima uchun? biz sizning Wi -Fi -ni kodga qo'shishimiz kerak, chunki WordClock vaqtni olish uchun Internetga ulanadi. To'g'ri … keyingi qadam ->.
5 -qadam: Kod
Nihoyat men eng sevimli qismimga etib keldik. Dastur. Agar siz qiziqsangiz, men uni yuqoridan pastgacha qamrab olaman, dasturni uyingizdagi Internet bilan ishlash uchun siz faqat ushbu satrlarni o'zgartirishingiz kerak.
// Tarmoq ma'lumotlarini qo'shing
const char *ssid = "xxxxxx";
const char *parol = "xxxxxx";
Dastur juda murakkab, lekin juda qiziqarli.
"Prevening" ni o'chirish uchun qiymatni false ga o'zgartiring:
const boolean PREVENING = rost; // Katta portlash nazariyasi.
O'tkazgandan so'ng raqamli vaqtni ko'rsatishni o'chirish uchun buni noto'g'ri deb o'zgartiring.
const boolean DISPLAY_DIGITAL = rost; // aylantirilgandan keyin raqamli vaqtni ko'rsatishni yoqing.
Vaqtni aylantirish:
Vaqtni NTP (Tarmoq vaqti protokoli) yordamida Internetdagi vaqt serveridan olaman. Vaqt timeinfo deb nomlangan o'zgaruvchida saqlanadi va biz undan soat va daqiqani olamiz
int soat = timeinfo.tm_hour; /// 0-23
int daqiqa = timeinfo.tm_min; // 0-59
Keyin AM yoki PM ni tekshiring
Agar soat <12 bo'lsa, uning AM
Men "theTime" nomli satr yarataman va uni quyidagidan boshlayman:
theTime = "Bu";
Raqamni so'z sifatida olish uchun men 30 gacha raqamlar uchun so'zlar majmuasini yaratdim
const char *raqamlari = {
"0", "Bir", "Ikki", "Uch", "To'rt", "Besh", "Olti", "Etti", "Sakkiz", "To'qqiz", "O'n", "O'n bir", "O'n ikki" "," O'n uch "," O'n to'rt "," Chorak "," O'n olti "," O'n etti "," O'n sakkiz "," O'n to'qqiz "," Yigirma "," Yigirma bir "," Yigirma ikki "," Yigirma uch " "," Yigirma to'rt "," Yigirma besh "," Yigirma olti "," Yigirma etti "," Yigirma sakkiz "," Yigirma to'qqiz "," Yarim o'tgan "};
Shunday qilib, soat 12:05 yoki o'n beshdan besh minut o'tganda, bu Arduinoga to'g'ri keladi
raqamlar [5] sonlardan o'tgan daqiqalar [12]
"O'tgan daqiqalar" yoki "daqiqalar" ni aniqlash uchun biz faqat daqiqalarga qaraymiz. Agar daqiqalar <31 bo'lsa, bu "O'tgan daqiqalar", agar daqiqalar 31dan katta bo'lsa, biz "Daqiqalar uchun" dan foydalanamiz, lekin sonlarni ishlatamiz [60 daqiqa], shuning uchun 12:50 60-50 daqiqani yoki raqamlarni [10] tashkil qiladi. bizga 10 dan 12 minutgacha.
Albatta, boshqa qoidalar bor, masalan, 15, 30, 45 da biz yarim soat yoki chorakni ishlatmaymiz, agar daqiqa 0 bo'lsa, vaqt "O'n soat" yoki peshin.
Shunday qilib, uni birlashtirish uchun men barcha elementlarni String theTime -ga qo'shaman va keyin LED matritsasida ko'rsataman. Men If iboralaridan foydalanaman. Ehtimol, men ishni ishlatishim kerak edi, lekin ularni qo'shishni davom ettirish osonroq edi.
Bizning misolimiz uchun 12:05
theTime = "Bu"
agar <31 daqiqada "O'tgan daqiqalar" ishlatilsa, aks holda "Minutgacha"
theTime + = raqamlar [5] + "O'tgan daqiqalar" + raqam [12] + "O'Clock" // Eslatma: + = belgisi qo'shilgan.
Keyin biz ertalabmi, tushdanmi yoki kechmi ekanligini aniqlash uchun soatga qaraymiz.
theTime+= "Kechqurun"
Matritsaga ketadigan oxirgi satr:
"Kechki soat o'n ikkidan besh daqiqa o'tdi"
Bu loyihani yozish juda qiziq edi. Agar sizga yoqqan bo'lsa, "Yurak" tugmasini bosing va menga ovoz bering.
Tavsiya:
Floresan chiroqni LED (akvarium) ga aylantirish: 5 qadam (rasmlar bilan)
Floresan chiroqni LED (akvarium) ga aylantiring: Hammaga salom! Ushbu yo'riqnomada biz nuqsonli lyuminestsent yoritish moslamasini LED yoritgichga aylantiramiz. Kafolat ostida uchta akvarium yoritgichini almashtirib, men o'zimning LED versiyasini yaratishga qaror qildim
Yorug'lik moslamasini LED klasteriga aylantirish: 7 qadam (rasmlar bilan)
Yorug'lik moslamasini LED -klasterga aylantiring: Mening uyimning old tomonida chiroyli eski chiroq bor, lekin uning lampochkasi juda xira. Bu lyuminestsent bo'lib, taxminan 100 vt akkor (filamentli) ekvivalenti. Bundan tashqari, asosan, armatura dizaynidagi nuqson tufayli, o'ng tomonga soya soladi
Batareya bilan ishlaydigan elektronikani ACda ishlashga aylantirish: 4 qadam (rasmlar bilan)
Batareya bilan ishlaydigan elektronikani ACda ishlashga aylantiring: Biz ko'p elektronikani quvvatlantirish uchun batareyalardan foydalanamiz. Ammo batareyali qurilmalar ham bor, ular doimo ko'chma bo'lishi shart emas. Bir misol, o'g'limning akkumulyator bilan ishlaydigan burilishidir. U ko'chirilishi mumkin, lekin odatda u erda qoladi
Lcd monitorni aylantirish yoki aylantirish: 6 qadam
Lcd monitorni aylantirish yoki aylantirish: bu moslama hujjatlarni portret tarzda o'qilishini ko'rish uchun monitorni 90 daraja burish uchun juda foydalidir, bu rejimlarni qo'llab -quvvatlaydigan video karta drayverlari bor, men buni pdf fayllarini o'qish uchun ishlataman
Zerikarli aylantirish g'ildiragi Eliminatorni bosing (silliq aylantirish): 5 qadam
Zerikarli aylantirish g'ildiragi Eliminator -ni bosing (silliq aylantirish): aylantirish g'ildiragining ovozidan bezovta bo'lasizmi? Mana, bu sichqonchani bu varaqdan chiqarib olish imkoniyati! Agar sichqonchani sindirib qo'ysang, bu mening aybim emas. Men bu modani logitech sichqonchasi bilan qilaman. Ishonchim komilki, u boshqa sichqonchada ishlaydi