Sadržaj:

ESP32 Pomicanje WordClocka na LED matrici: 5 koraka (sa slikama)
ESP32 Pomicanje WordClocka na LED matrici: 5 koraka (sa slikama)

Video: ESP32 Pomicanje WordClocka na LED matrici: 5 koraka (sa slikama)

Video: ESP32 Pomicanje WordClocka na LED matrici: 5 koraka (sa slikama)
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Novembar
Anonim
Image
Image

U ovom projektu stvaram pomični WordClock s ESP32, LED matricom i kutijom za cigare.

WordClock je sat koji ispisuje vrijeme, a ne samo da ga odštampa na ekranu ili ima kazaljke koje možete čitati. Ovaj sat će vam reći da je 10 minuta iza 3 sata popodne ili podne. Čak sam ga programirao da koristi naziv Prevencija (iz Teorije velikog praska) za dvosmislen vremenski period između popodneva i večeri. Počinje u 16:00.

ESP32 je odličan, toliko su zabavni i jeftini. Ako volite programirati Arduino, zaista ćete biti zapanjeni šta sve ESP32 može učiniti za manje od 10 USD. Koriste Arduino IDE i lako ih je programirati. Pokazat ću kako to učiniti u ovom uputstvu.

Supplies

  • ESP32 - oko 10 USD na Amazonu
  • LED Matrix (max7219) (i žice) - 9 USD Amazon
  • Kutija cigara
  • USB kabl za napajanje
  • Opcioni 3d štampač za stalak esp32

Korak 1: Postavite svoj Arduino IDE da podržava ESP32

Nabavite Arduino IDE:

  • U pregledniku idite na
  • Kliknite na Softver, a zatim Preuzimanja da biste dobili ARDUINO 1.8.12
Image
Image

Dodajte podršku za ESP32 u svoj Arduino IDE:

  • Pokrenite Arduino IDE
  • Kliknite na meni Datoteka, a zatim na Postavke.

Jednom u "Postavkama" dodajte podršku proizvođača dodavanjem sljedeće linije u "Dodatni upravitelj odbora"

Image
Image

dl.espressif.com/dl/package_esp32_index.js

To će nam omogućiti pristup dodavanju ploče u IDE

Idite na meni Alati, a zatim na ploče i idite na upravitelja ploče

Image
Image

Zatim potražite "ESP" i dodajte paket prema Expressifu.

Image
Image

Na kraju se želimo vratiti na izbornik "Alati", zatim ponovo "Ukrcaj" i pomaknite se prema dolje kako biste pronašli svoj ESP32 uređaj.

Moj je "ESP32 Wrover Module"

Image
Image

Korak 2: Spojite LED matricu na ESP32

Image
Image

LED matrica se sastoji od četiri LED bloka 8x8 i koristi čip MAX7219. To nam daje 8x32 LED diode u matrici ili 256 LED dioda !!!.

Esp32 sjedi na čekanju koje sam stvorio u TinkerCadu. Moj držač drži igle okrenute prema gore tako da možete pričvrstiti žice.

LED matrica se povezuje sa ESP32 pomoću SPI (serijsko periferno sučelje).

Koristite ženske/ženske žice i priključke za spajanje na sljedeći način:

  • ESP32 - 5v na VCC na Matrixu
  • ESP32 - GND u GND na matrici
  • ESP32 - PIN5 (G5) za CS na matrici
  • ESP32 - PIN23 (G23) na Din na matrici
  • ESP32 - Pin 18 (G18) za CLK na matrici

Moguće je koristiti druge pinove ili ako vaš ESP32 ima drugačiji pinout.

Korak 3: Sastavite to zajedno

Sastavljajući to zajedno
Sastavljajući to zajedno

Zatim sam prerezao kutiju cigara kako bih dobio mjesto za postavljanje LED ekrana. Kutija je mekana i mogao sam koristiti britvicu. Zatim sam brusio kako bih to izgladio.

Takođe sam isekao celinu pozadi za kabl za napajanje. Upravo sam koristio USB napajanje. Mogao sam čak i dodati bateriju za punjenje USB telefona u kutiju cigara da sam htio da bude bežična.

Korak 4: Arduino IDE i INO datoteka

Arduino IDE i INO datoteka
Arduino IDE i INO datoteka

Najbolji dio je kod. Ali prvo moramo dodati biblioteku kako bismo omogućili programu da koristi prikaz na jednostavniji način. Dodao sam biblioteku MD_MAX72xx.

Za dodavanje biblioteke kliknite na meni "Sketch", zatim "Include Library" i "Manage Libraries" ovo će se učitati i omogućiti vam da tražite biblioteku MD_MAX72xx. Samo kliknite na instalaciju i imate je.

Zatim uzmite moju Arduino INO datoteku:

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

Učitajte ino datoteku u svoj Arduino IDE, Priključite USB sa ESP32 na računar.

Kliknite na "Sketch", a zatim otpremite

U ovom trenutku sat neće raditi, ESP32 neće ništa prikazati. Zašto? moramo dodati vaš WIFI u kôd jer se WordClock povezuje na internet kako bi dobio vrijeme. Tako je … sljedeći korak ->.

Korak 5: Kôd

Konačno smo stigli do mog omiljenog dijela. Program. Pokrivat ću to odozgo prema dolje ako ste zainteresirani. Da bi program radio s vašim kućnim internetom, samo morate promijeniti ove retke.

// Dodajte svoje podatke o mreži

const char *ssid = "xxxxxx";

const char *lozinka = "xxxxxx";

Program je pomalo složen, ali vrlo zabavan.

Da biste onemogućili "Prevenciju", samo promijenite vrijednost na false:

const boolean PREVENING = true; //Teorija velikog praska.

Da biste onemogućili prikaz digitalnog vremena nakon pomicanja, promijenite ovo na Netačno.

const boolean DISPLAY_DIGITAL = true; // uključivanje prikaza digitalnog vremena nakon pomicanja.

Pomicanje po vremenu:

Dobijam vrijeme sa vremenskog servera na internetu koristeći NTP (Network Time Protocol). Vrijeme se drži u varijabli koja se zove timeinfo i iz nje dobivamo sat i minute

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

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

Zatim provjerite ujutro ili popodne

AM je ako je sat <12

Kreiram niz pod nazivom "theTime" i započinjem ga sa:

theTime = "To je";

Da bih dobio broj kao riječi, stvorio sam niz riječi za brojeve do 30

const char *brojevi = {

"0", "Jedan", "Dva", "Tri", "Četiri", "Pet", "Šest", "Sedam", "Osam", "Devet", "Deset", "Jedanaest", "Dvanaest" "," Trinaest "," Četrnaest "," Četvrtina "," Šesnaest "," Sedamnaest "," Osamnaest "," Devetnaest "," Dvadeset "," Dvadeset jedna "," Dvadeset dva "," Dvadeset tri "," Dvadeset četiri "," Dvadeset pet "," Dvadeset šest "," Dvadeset sedam "," Dvadeset i osam "," Dvadeset devet "," Pola prošlih "};

Dakle, kad je 12:05 ili pet minuta iza dvanaest, stiže zaista do Arduina

brojevi [5] minuta iza brojeva [12]

Da bismo utvrdili jesu li "protekle minute" ili "minute do", samo gledamo minute. Ako su minute <31, to je "Minutes Past", ako su minute veće od 31, koristimo "Minutes To", ali koristimo brojeve [60-minutes] tako da bi 12:50 bilo 60-50 minuta ili brojevi [10] koji bi dajte nam 10 minuta do 12 0 sati.

Naravno, postoje i druga pravila kao što su 15, 30, 45, ne koristimo minute tek pre pola četvrtine, a ako je minuta 0, vrijeme je samo "deset sati" ili podne.

Da bih to sastavio, sve stavke dodajem u String theTime, a zatim ih prikazujem na LED matrici. Koristim hrpu if naredbi. Vjerojatno sam trebao koristiti case, ali bilo je lakše nastaviti ih dodavati.

Za naš primjer 12:05

theTime = "To je"

ako minuta <31 koristi "Minutes Past", inače "Minute To"

theTime + = numbers [5] + "Minutes Past" + number [12] + "O'Clock" // Napomena: Oznaka + = se dodaje.

Zatim gledamo sat kako bismo utvrdili je li jutro, popodne ili navečer.

theTime+= "Uveče"

Završni niz koji ide do matrice je:

"Pet je sati prošlo dvanaest sati navečer"

Ovaj projekt je bilo jako zabavno napisati. Ako vam se sviđa, kliknite Srce i glasajte za mene, molim.

Preporučuje se: