Mündəricat:

LED Matrisində ESP32 Kaydırma WordClock: 5 Addım (Şəkillərlə)
LED Matrisində ESP32 Kaydırma WordClock: 5 Addım (Şəkillərlə)

Video: LED Matrisində ESP32 Kaydırma WordClock: 5 Addım (Şəkillərlə)

Video: LED Matrisində ESP32 Kaydırma WordClock: 5 Addım (Şəkillərlə)
Video: LED матрица 2024, Iyul
Anonim
Image
Image

Bu layihədə ESP32, LED Matrix və siqar qutusu olan Scrolling WordClock yaradıram.

WordClock, yalnız ekranda çap etmək və ya oxuya biləcəyiniz əllərə sahib olmaqdan daha çox vaxtı yazan bir saatdır. Bu saat sizə günorta saat 3 -dən 10 dəqiqə sonra və ya günorta olduğunu söyləyəcək. Hətta gündüz və axşam arasındakı qeyri -müəyyən müddət üçün Prevening (Big Bang Theory -dən) adını istifadə etmək üçün proqramlaşdırdım. 16:00 başlayır.

ESP32 zəhmlidir, çox əyləncəli və ucuzdur, Arduino proqramlaşdırmağı sevirsinizsə, ESP32 -nin 10 dollardan aşağı nə edə biləcəyinə heyran qalacaqsınız. Arduino IDE -dən istifadə edirlər və proqramlaşdırmaq asandır. Bunun necə ediləcəyini bu təlimatda göstərəcəyəm.

Təchizat

  • ESP32 - Amazonda təxminən 10 dollar
  • LED Matrix (max7219) (və tellər) - 9 dollar Amazon
  • Siqar qutusu
  • USB güc kabeli
  • Esp32 stendi üçün isteğe bağlı 3d printer

Addım 1: Arduino IDE -ni ESP32 -ni dəstəkləmək üçün qurun

Arduino IDE əldə edin:

  • Brauzerdə https://www.arduino.cc/ ünvanına daxil olun.
  • ARDUINO 1.8.12 almaq üçün Proqramı, sonra Yükləmələri vurun
Şəkil
Şəkil

Arduino IDE -yə ESP32 dəstəyi əlavə edin:

  • Arduino IDE -ni işə salın
  • Fayl Menyusunu, sonra Tercihləri vurun.

"Tercihlər" bölməsinə daxil olduqda, "Əlavə İdarəetmə Meneceri" nə aşağıdakı sətri əlavə edərək istehsalçı dəstəyini əlavə edin.

Şəkil
Şəkil

dl.espressif.com/dl/package_esp32_index.js

Bu, lövhəni IDE -yə əlavə etmək imkanı verir

Alətlər menyusuna, sonra lövhələrə gedin və idarə heyətinə gedin

Şəkil
Şəkil

Sonra "ESP" axtarın və paketi Expressif tərəfindən əlavə edin.

Şəkil
Şəkil

Nəhayət, "Alətlər" Menyusuna, sonra yenidən "İdarə Heyətinə" qayıtmaq və ESP32 cihazınızı tapmaq üçün aşağıya fırlamaq istəyirik.

Mənimki "ESP32 Wrover Modulu"

Şəkil
Şəkil

Addım 2: LED Matrisini ESP32 -ə qoşun

Şəkil
Şəkil

LED matrisi 4 ədəd 8x8 LED -lərdən ibarətdir və MAX7219 çipini istifadə edir. Bu bizə Matrixdə 8x32 LED və ya 256 LED verir !!!.

Esp32, TinkerCad -da yaratdığım bir dayaqda oturur. Tutucum sancaqları yuxarıya doğru tutur ki, tellər bağlaya biləsiniz.

LED Matrix, SPI (Serial Periferik İnterfeys) istifadə edərək ESP32 -ə qoşulur.

Dişi/Dişi Telləri və Bağlama pinlərini aşağıdakı kimi istifadə edin:

  • Matrisdə ESP32 - 5V -dən VCC -ə
  • ESP32 - Matrisdə GND -dən GND -ə
  • ESP32 - Matrix üzrə CS5 -ə PIN5 (G5)
  • Matrisdə Din üçün ESP32 - PIN23 (G23)
  • ESP32 - Matrix -də CLK -ə 18 pin (G18) vurun

Digər sancaqlar istifadə etmək mümkündür və ya ESP32 -də fərqli bir pinout varsa.

Addım 3: Bir yerə qoyun

Birlikdə qoyulması
Birlikdə qoyulması

Sonra LED displeyi qoymağa yer vermək üçün siqar qutusunu kəsdim. Qutusu yumşaqdır və ülgücdən istifadə edə bildim. Sonra hamarlaşdırmaq üçün zımpara etdim.

Elektrik kabeli üçün də arxadan bir parça kəsdim. Sadəcə USB gücündən istifadə etdim. Kabelsiz olmasını istəsəydim siqar qutusuna USB telefon şarj cihazı batareyası da əlavə edə bilərdim.

Addım 4: Arduino IDE və INO Fayl

Arduino IDE və INO faylı
Arduino IDE və INO faylı

Ən yaxşı tərəf koddur. Ancaq əvvəlcə proqramın ekrandan daha sadə bir şəkildə istifadə etməsinə icazə vermək üçün bir kitabxana əlavə etməliyik. MD_MAX72xx kitabxanasını əlavə etdim.

Kitabxananı əlavə etmək üçün "Eskiz" menyusuna vurun, sonra "Kitabxana daxil et" və "Kitabxanaları İdarə et" bu yüklənəcək və MD_MAX72xx kitabxanasını axtarmağa imkan verəcəkdir. Yalnız quraşdırma düyməsini basın və sizdə var.

Sonra Arduino INO faylımı əldə edin:

github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino

İno faylını Arduino IDE -yə yükləyin, USB -ni ESP32 -dən kompüterinizə qoşun.

"Eskiz" düyməsini basın, sonra Yükləyin

Bu zaman saat işləməyəcək, ESP32 heç nə göstərməyəcək. Niyə? WIFI kodunuzu koda əlavə etməliyik, çünki WordClock vaxt almaq üçün internetə qoşulur. Doğru … növbəti addım ->.

Addım 5: Kod

Nəhayət ki, ən sevdiyim hissəyə çatdıq. Proqram. Əgər maraqlanırsınızsa yuxarıdan aşağıya qədər əhatə edəcəyəm, Proqramın ev internetinizlə işləməsini təmin etmək üçün sadəcə bu sətirləri dəyişdirməlisiniz.

// Şəbəkə məlumatlarınızı əlavə edin

const char *ssid = "xxxxxx";

const char *parol = "xxxxxx";

Proqram çox mürəkkəbdir, amma çox əyləncəlidir.

"Prevening" i deaktiv etmək üçün dəyəri false olaraq dəyişdirin:

const boolean PREVENING = doğru; // Big Bang nəzəriyyəsi.

Kaydırıldıktan sonra rəqəmsal vaxtın göstərilməsini söndürmək üçün bunu yalana dəyişin.

const boolean DISPLAY_DIGITAL = doğru; // sürüşdürdükdən sonra rəqəmsal vaxtın göstərilməsini yandırın.

Zamanı sürüşdürün:

NTP (Şəbəkə Saatı Protokolu) istifadə edərək İnternetdəki vaxt serverindən vaxt alıram. Zaman, timeinfo adlı bir dəyişkəndə tutulur və ondan saat və dəqiqəni alırıq

int saat = timeinfo.tm_hour; /// 0-23

int dəqiqə = timeinfo.tm_min; // 0-59

Sonra yoxlayın AM və ya PM

Saat <12 olarsa AM

"TheTime" adlı bir simli yaradıram və başlayıram:

theTime = "Bu";

Nömrəni söz olaraq almaq üçün 30 -a qədər ədədlər üçün bir sıra sözlər yaratdım

const char *ədədləri = {

"0", "Bir", "İki", "Üç", "Dörd", "Beş", "Altı", "Yeddi", "Səkkiz", "Doqquz", "On", "On Bir", "On iki" "," On üç "," On dörd "," Dörddə "," On altı "," On yeddi "," On səkkiz "," On doqquz "," İyirmi "," İyirmi Bir "," İyirmi İki "," İyirmi Üç " "," İyirmi Dörd "," İyirmi Beş "," İyirmi Altı "," İyirmi Yeddi "," İyirmi Səkkiz "," İyirmi Doqquz "," Yarım Keçmiş "};

Saat 12: 05 -də və ya 5 dəqiqədə on ikini keçəndə həqiqətən Arduino -ya

nömrələr [5] nömrələrdən keçən dəqiqə [12]

"Keçmiş Dəqiqələr" və ya "Dəqiqələr" olub olmadığını müəyyən etmək üçün sadəcə dəqiqələrə baxırıq. Dəqiqələr <31-dirsə, "Keçmiş Dəqiqələr" dir, əgər dəqiqələr 31-dən çoxdursa, "Dəqiqələr Üçün" istifadə edirik, ancaq rəqəmləri [60 dəqiqə] istifadə edirik, belə ki, 12:50 60-50 dəqiqə və ya [10] olardı bizə 10 dəqiqədən 12 -ə qədər.

Əlbəttə ki, 15, 30, 45 kimi digər qaydalar da var, yalnız yarım yarı və ya dörddəbir dəqiqələri istifadə etmirik və əgər dəqiqə 0 olarsa, vaxt yalnız "Saat 10" və ya Günortadır.

Beləliklə, bir araya gətirmək üçün bütün elementləri String theTime -a əlavə edirəm və sonra onu LED Matrisində göstərirəm. If ifadələrindən istifadə edirəm. Yəqin ki, kassadan istifadə etməliydim, amma onları əlavə etməyə davam etmək daha asan idi.

Bizim nümunə üçün 12:05

theTime = "Bu"

əgər <31 dəqiqədə "Keçmiş Dəqiqələr" istifadə olunursa, əksinə "Dəqiqə"

theTime + = rəqəmlər [5] + "Keçmiş Dəqiqələr" + nömrə [12] + "Saat" // Qeyd: + = işarəsi əlavə olunur.

Daha sonra səhər, günorta və ya axşam olub olmadığını müəyyən etmək üçün saata baxırıq.

theTime+= "Axşam saatlarında"

Matrisə gedən son String:

"Axşam saat on ikidən beş dəqiqə keçdi"

Bu layihəni yazmaq çox əyləncəli idi. Əgər xoşunuza gəlirsə "Ürək" düyməsini vurun və mənə səs verin.

Tövsiyə: