Sisukord:

ESP32 WordClocki kerimine LED -maatriksil: 5 sammu (piltidega)
ESP32 WordClocki kerimine LED -maatriksil: 5 sammu (piltidega)

Video: ESP32 WordClocki kerimine LED -maatriksil: 5 sammu (piltidega)

Video: ESP32 WordClocki kerimine LED -maatriksil: 5 sammu (piltidega)
Video: MKS Gen L - оптический конечный выключатель 2024, November
Anonim
Image
Image

Selles projektis loon keriva WordClocki koos ESP32, LED -maatriksi ja sigarikarbiga.

WordClock on kell, mis määrab aja, selle asemel, et seda lihtsalt ekraanile printida või sul on käed, mida saate lugeda. See kell ütleb teile, et on 10 minutit pärast kella 3 päeval või keskpäeval. Programmeerisin selle isegi kasutama nime Prevening (Suure Paugu teooriast) pärastlõuna ja õhtu vahelise ebaselge ajavahemiku jaoks. Algus kell 16.00.

ESP32 on vinge, need on nii lõbusad ja nii odavad. Kui teile meeldib Arduino programmeerimine, olete tõesti üllatunud, mida ESP32 saab teha alla 10 dollari eest. Nad kasutavad Arduino IDE -d ja neid on lihtne programmeerida. Näitan selles juhendis, kuidas seda teha.

Tarvikud

  • ESP32 - umbes 10 dollarit amazonil
  • LED -maatriks (max7219) (ja juhtmed) - 9 dollarit amazon
  • Sigari kast
  • USB toitekaabel
  • Valikuline 3D -printer esp32 alusele

Samm: seadistage Arduino IDE ESP32 toeks

Hankige Arduino IDE:

  • Minge brauseris aadressile
  • ARDUINO 1.8.12 hankimiseks klõpsake Tarkvara ja seejärel Laadi alla
Pilt
Pilt

Lisage oma Arduino IDE -le ESP32 tugi:

  • Käivitage Arduino IDE
  • Klõpsake menüü Fail ja seejärel Eelistused.

Kui olete jaotises „Eelistused” lisanud tootja toe, lisades järgmisele reale „Täiendava juhatuse halduri”

Pilt
Pilt

dl.espressif.com/dl/package_esp32_index.js

See annab meile juurdepääsu tahvli IDE -le lisamiseks

Minge menüüsse Tööriistad ja seejärel Lauad ning minge juhatuse haldurile

Pilt
Pilt

Järgmisena otsige "ESP" ja lisage pakett Expressifilt.

Pilt
Pilt

Lõpuks tahame naasta menüüsse "Tööriistad", seejärel uuesti "Lauale" ja kerides alla, et leida oma ESP32 seade.

Minu oma on "ESP32 Wrover Module"

Pilt
Pilt

Samm: ühendage LED -maatriks ESP32 -ga

Pilt
Pilt

LED -maatriks koosneb neljast 8x8 LED -plokist ja kasutab kiipi MAX7219. See annab meile 8x32 LED -i maatriksis või 256 LED -i !!!.

Esp32 istub ootel, mille lõin TinkerCadis. Minu hoidja hoiab tihvte ülespoole, nii et saate juhtmeid kinnitada.

LED -maatriks ühendub ESP32 -ga SPI (Serial Peripheral Interface) abil.

Kasutage naissoost/naisjuhtmeid ja ühendage tihvtid järgmiselt.

  • ESP32 - 5 V to VCC on Matrix
  • ESP32 - GND kuni GND Matrixis
  • ESP32 - PIN5 (G5) CS -le Matrixis
  • ESP32 - PIN23 (G23) Din Matrixile
  • ESP32 - tihvt 18 (G18) CLK -le Matrixis

Võimalik on kasutada ka muid kontakte või kui teie ESP32 -l on erinev pistik.

3. samm: pange see kokku

Selle kokku panemine
Selle kokku panemine

Järgmisena lõikasin sigarikarbi, et anda mulle koht, kuhu LED -ekraan panna. Karp on pehme ja sain kasutada habemenuga. Siis lihvisin, et siluda.

Lõikasin ka toitejuhtme jaoks tagant terveks. Kasutasin just USB toiteallikat. Oleksin võinud isegi sigarikarbi sisse lisada USB -telefonilaadija aku, kui oleksin soovinud, et see oleks traadita.

Samm: Arduino IDE ja INO fail

Arduino IDE ja INO fail
Arduino IDE ja INO fail

Parim osa on kood. Kuid kõigepealt peame lisama raamatukogu, et programm saaks ekraani lihtsamini kasutada. Lisasin kogu MD_MAX72xx.

Kogu lisamiseks klõpsake menüüd "Visand", seejärel laadige "Kaasa raamatukogu" ja "Halda raamatukogusid" ning see võimaldab teil otsida teeki MD_MAX72xx. Lihtsalt klõpsake installil ja teil on see olemas.

Järgmisena hankige minu Arduino INO -fail:

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

Laadige ino -fail oma Arduino IDE -sse, Ühendage ESP32 USB arvutiga.

Klõpsake "Visand" ja seejärel Laadi üles

Sel hetkel kell ei tööta, ESP32 ei näita midagi. Miks? peame teie WIFI koodi lisama, sest WordClock ühendab aja saamiseks Interneti -ühenduse. See on õige … järgmine samm ->.

Samm: kood

Lõpuks jõudsime mu lemmikosa juurde. Programm. Huvi korral katan selle ülevalt alla. Programmi koduinternetiga töötamiseks peate neid ridu lihtsalt muutma.

// Lisage oma võrguteave

const char *ssid = "xxxxxx";

const char *parool = "xxxxxx";

Programm on üsna keeruline, kuid väga lõbus.

"Ennetamise" keelamiseks muutke lihtsalt väärtus valeks:

const boolean PREVENING = tõene; // Suure Paugu teooria.

Digitaalaja kuvamise keelamiseks pärast kerimist muutke see väärtuseks vale.

const boolean DISPLAY_DIGITAL = tõene; // digitaalse aja kuvamise sisselülitamine pärast kerimist.

Aja kerimine:

Ma saan aja Interneti -serverist, kasutades NTP -d (Network Time Protocol). Aega hoitakse muutuja nimega timeinfo ja saame sellest tunni ja minuti

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

int minut = timeinfo.tm_min; 0–59

Järgmine kontroll AM või PM

Kell on AM, kui tund on <12

Loon stringi nimega "theTime" ja alustan sellega:

theTime = "See on";

Numbri saamiseks sõnadena lõin sõnamassiivi numbritele kuni 30

const char *numbrid = {

"0", "üks", "kaks", "kolm", "neli", "viis", "kuus", "seitse", "kaheksa", "üheksa", "kümme", "üksteist", "kaksteist" "," Kolmteist "," Neliteist "," Kvartal "," Kuusteist "," Seitseteist "," Kaheksateist "," Üheksateist "," Kakskümmend "," Kakskümmend üks "," Kakskümmend kaks "," Kakskümmend kolm " "," Kakskümmend neli "," Kakskümmend viis "," Kakskümmend kuus "," Kakskümmend seitse "," Kakskümmend kaheksa "," Kakskümmend üheksa "," Pool mine "};

Nii et kui kell 12:05 või viis minutit üle kaheteistkümne on tõesti Arduino poole

numbrid [5] minutit pärast numbreid [12]

Et teha kindlaks, kas selle "Minutes Past" või "Minutes To", vaatame lihtsalt protokolli. Kui minutid on <31, siis on "Minutes Past", kui minutid on suuremad kui 31, kasutame "Minutes To", kuid kasutame numbreid [60-minutit], nii et 12:50 oleks 60-50 minutit või numbreid [10], mis anna meile 10 minutit kella 12 -ni.

Muidugi on ka teisi reegleid, näiteks 15., 30., 45. päeval, kui me ei kasuta minutit enne kella poolt või veerandit, ja kui minut on 0, on kell lihtsalt kell kümme või keskpäev.

Nii et selle kokku panemiseks lisan kõik üksused ajale String theTime ja kuvan selle LED -maatriksil. Ma kasutan hulga Ifi avaldusi. Tõenäoliselt oleksin pidanud kasutama ümbrist, kuid nende lisamine oli lihtsalt lihtsam.

Meie näitena 12:05

theTime = "See on"

kui minut <31, kasutage "Minutes Past", vastasel juhul "Minute To"

theTime + = numbrid [5] + "Minutes Past" + number [12] + "O'Clock" // Märkus: märge + = on lisatud.

Järgmisena vaatame tundi, et teha kindlaks, kas see on hommikul, pärastlõunal või õhtul.

theTime+= "Õhtul"

Maatriksisse suunduv viimane string on järgmine:

"Kell on viis minutit üle kaheteistkümne õhtul"

Seda projekti oli väga lõbus kirjutada. Kui teile meeldib, klõpsake palun nuppu Süda ja hääletage minu poolt.

Soovitan: