Kazalo:

ESP32 pomikanje WordClock na LED matriki: 5 korakov (s slikami)
ESP32 pomikanje WordClock na LED matriki: 5 korakov (s slikami)

Video: ESP32 pomikanje WordClock na LED matriki: 5 korakov (s slikami)

Video: ESP32 pomikanje WordClock na LED matriki: 5 korakov (s slikami)
Video: How to Make PLC LCD HMI || FLProg 2024, November
Anonim
Image
Image

V tem projektu ustvarim drsni WordClock z ESP32, LED Matrico in škatlo za cigare.

WordClock je ura, ki črkuje čas in ne samo natisne na zaslonu ali ima roke, ki jih lahko berete. Ta ura vam bo povedala, da je 10 minut čez 3 ure popoldne ali opoldne. Programiral sem ga celo tako, da uporablja ime Prevening (iz teorije velikega poka) za dvoumno časovno obdobje med popoldnevom in večerom. Začne se ob 16.00.

ESP32 je super, so zelo zabavni in tako poceni. Če imate radi programiranje Arduina, boste resnično presenečeni, kaj lahko ESP32 naredi za manj kot 10 USD. Uporabljajo Arduino IDE in jih je enostavno programirati. V tem navodilu bom pokazal, kako to storiti.

Zaloge

  • ESP32 - okoli 10 USD na Amazon
  • LED Matrix (max7219) (in žice) - Amazon 9 USD
  • Škatla za cigare
  • Napajalni kabel USB
  • Opcijski 3d tiskalnik za stojalo esp32

1. korak: Nastavite svoj Arduino IDE za podporo ESP32

Pridobite Arduino IDE:

  • V brskalniku pojdite na
  • Kliknite Programska oprema, nato Prenosi, da dobite ARDUINO 1.8.12
Slika
Slika

Dodajte podporo ESP32 v Arduino IDE:

  • Zaženite Arduino IDE
  • Kliknite meni Datoteka in nato Nastavitve.

Ko ste v razdelku »Nastavitve«, dodajte podporo proizvajalca, tako da naslednjo vrstico dodate v »Dodatni upravitelj odbora«

Slika
Slika

dl.espressif.com/dl/package_esp32_index.js

To nam bo omogočilo dostop do plošče v IDE

Pojdite v meni Orodja in nato plošče ter pojdite na upravitelja plošče

Slika
Slika

Nato poiščite "ESP" in dodajte paket po Expressifu.

Slika
Slika

Nazadnje se želimo vrniti v meni »Orodja«, nato še »V desko« in se pomakniti navzdol, da poiščemo svojo napravo ESP32.

Moj je "ESP32 Wrover Module"

Slika
Slika

Korak: Priključite LED matriko na ESP32

Slika
Slika

LED matrika je sestavljena iz štirih blokov LED 8x8 in uporablja čip MAX7219. To nam daje 8x32 LED v matriki ali 256 LED !!!.

Esp32 sedi na čakanju, ki sem ga ustvaril v TinkerCadu. Moj nosilec drži zatiče obrnjene navzgor, tako da lahko pritrdite žice.

LED matrika se poveže z ESP32 s pomočjo SPI (serijski periferni vmesnik).

Za uporabo ženskih/ženskih žic in priključkov uporabite naslednje:

  • ESP32 - 5v v VCC na matriki
  • ESP32 - GND v GND na matriki
  • ESP32 - PIN5 (G5) v CS na matriki
  • ESP32 - PIN23 (G23) v Din on Matrix
  • ESP32 - Pin 18 (G18) za CLK na matriki

Možno je uporabiti druge zatiče ali če ima vaš ESP32 drugačen pinout.

3. korak: Sestavite skupaj

Sestavljanje skupaj
Sestavljanje skupaj

Nato sem prerezal škatlo za cigare in mi dal prostor za LED zaslon. Škatla je mehka in lahko sem uporabil britvico. Potem sem brusil, da sem ga zgladil.

Za napajalni kabel sem zadaj odrezal celoto. Pravkar sem uporabil napajanje USB. V škatlo za cigare bi lahko celo dodal baterijo za polnjenje telefona USB, če bi hotel, da je brezžična.

4. korak: Arduino IDE in INO datoteka

Arduino IDE in INO datoteka
Arduino IDE in INO datoteka

Najboljši del je koda. Najprej pa moramo dodati knjižnico, ki bo programu omogočila enostavnejšo uporabo zaslona. Dodal sem knjižnico MD_MAX72xx.

Če želite dodati knjižnico, kliknite meni "Skica", nato "Vključi knjižnico" in "Upravljanje knjižnic", to se bo naložilo in vam omogočilo iskanje knjižnice MD_MAX72xx. Samo kliknite na namestitev in to imate.

Nato dobite datoteko Arduino INO:

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

Naložite datoteko ino v svoj Arduino IDE, Priključite USB iz ESP32 v računalnik.

Kliknite "Skica" in nato Naloži

Na tej uri ura ne bo delovala, ESP32 ne bo prikazal ničesar. Zakaj? kodi moramo dodati vaš WIFI, ker se WordClock poveže z internetom, da dobite čas. Tako je … naslednji korak ->.

5. korak: Koda

Končno smo prišli do mojega najljubšega dela. Program. Če vas zanima, ga bom pokril od zgoraj navzdol. Če želite, da program deluje z vašim domačim internetom, morate samo spremeniti te vrstice.

// Dodajte podatke o omrežju

const char *ssid = "xxxxxx";

const char *geslo = "xxxxxx";

Program je nekoliko zapleten, a zelo zabaven.

Če želite onemogočiti "Prevencijo", samo spremenite vrednost na false:

const boolean PREVENING = true; //Teorija velikega poka.

Če želite onemogočiti prikaz digitalnega časa po drsenju, spremenite to vrednost na false.

const boolean DISPLAY_DIGITAL = res; // vklopi prikaz digitalnega časa po drsenju.

Premikanje časa:

Čas dobivam s časovnega strežnika v internetu z uporabo NTP (Network Time Protocol). Čas je v spremenljivki, imenovani timeinfo, in iz nje dobimo uro in minuto

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

int minuta = timeinfo.tm_min; // 0-59

Nato preverite AM ali PM

Ura je, če je ura <12

Ustvarim niz, imenovan "theTime", in ga začnem z:

theTime = "To je";

Če želite dobiti številko kot besede, sem ustvaril niz besed za številke do 30

const char *številke = {

"0", "ena", "dva", "tri", "štiri", "pet", "šest", "sedem", "osem", "devet", "deset", "enajst", "dvanajst" "," Trinajst "," Štirinajst "," Četrtina "," Šestnajst "," Sedemnajst "," Osemnajst "," Devetnajst "," Enaindvajset "," Enaindvajset "," Dvaindvajset "," Triindvajset "," Štiriindvajset "," Petindvajset "," Šestindvajset "," Sedemindvajset "," Dvaindvajset

Ko je torej 12:05 ali pet minut čez dvanajsto, je res na Arduinu

številke [5] minut za številkami [12]

Če želimo ugotoviti, ali gre za "Minutes Past" ali "Minutes To", samo pogledamo zapisnike. Če so minute <31, je "Minutes Past", če so minute večje od 31, uporabljamo "Minutes To", vendar uporabljamo številke [60-minutes], tako da bi 12:50 pomenilo 60-50 minut ali številke [10], ki bi dajte nam 10 minut do 12 ur.

Seveda obstajajo druga pravila, na primer 15., 30., 45. minut, ki jih ne uporabljamo šele pol pol ure ali četrtine, in če je minuta 0, je čas samo "ob desetih" ali opoldne.

Tako, da vse skupaj dodam v String theTime in ga nato prikažem na LED matriki. Uporabljam kup stavkov If. Verjetno bi moral uporabiti case, vendar jih je bilo lažje še naprej dodajati.

Za naš primer 12:05

theTime = "To je"

če je minuta <31, uporabite "Minutes Past", sicer pa "Minute To"

theTime + = številke [5] + "Minute v preteklosti" + številka [12] + "O'Clock" // Opomba: Zapis + = je dodan.

Nato pogledamo na uro, da ugotovimo, ali je zjutraj, popoldne ali zvečer.

theTime+= "Zvečer"

Zadnji niz, ki gre v matriko, je:

"Zvečer je pet minut čez dvanajst ur"

Ta projekt je bilo zelo zabavno pisati. Če vam je všeč, kliknite Srce in glasujte zame.

Priporočena: