Turinys:
- Prekės
- 1 veiksmas: nustatykite „Arduino IDE“, kad palaikytų ESP32
- 2 veiksmas: prijunkite LED matricą prie ESP32
- 3 žingsnis: sujungimas
- 4 žingsnis: „Arduino IDE“ir „INO“failai
- 5 žingsnis: Kodas
Video: ESP32 „WordClock“slinkimas LED matricoje: 5 žingsniai (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Šiame projekte sukuriu slenkantį „WordClock“su ESP32, LED matrica ir cigarų dėžute.
„WordClock“yra laikrodis, kuris nurodo laiką, o ne tik spausdina jį ekrane arba turi rodykles, kurias galite skaityti. Šis laikrodis jums pasakys, kad yra 10 minučių po 3 valandos po pietų arba vidurdienio. Aš net užprogramavau jį naudoti „Prevening“(iš Didžiojo sprogimo teorijos) pavadinimą dviprasmiškam laikotarpiui tarp popietės ir vakaro. Prasideda 16:00.
ESP32 yra nuostabus, jie yra labai įdomūs ir tokie nebrangūs. Jei jums patinka programuoti „Arduino“, tikrai nustebsite, ką ESP32 gali padaryti už mažiau nei 10 USD. Jie naudoja „Arduino IDE“ir yra lengvai programuojami. Šioje instrukcijoje parodysiu, kaip tai padaryti.
Prekės
- ESP32 - apie 10 USD „Amazon“
- LED matrica (max7219) (ir laidai) - 9 USD „Amazon“
- Cigarų dėžutė
- USB maitinimo kabelis
- Neprivalomas 3D spausdintuvas esp32 stovui
1 veiksmas: nustatykite „Arduino IDE“, kad palaikytų ESP32
Gaukite „Arduino IDE“:
- Naršyklėje eikite į
- Spustelėkite Programinė įranga, tada Atsisiuntimai, kad gautumėte ARDUINO 1.8.12
Pridėkite ESP32 palaikymą prie „Arduino IDE“:
- Paleiskite „Arduino IDE“
- Spustelėkite meniu Failas, tada - Nuostatos.
Įėję į „Parinktys“pridėkite gamintojo palaikymą pridėdami šią eilutę prie „Papildomos valdybos tvarkyklės“
dl.espressif.com/dl/package_esp32_index.js
Tai suteiks mums galimybę pridėti plokštę prie IDE
Eikite į meniu „Įrankiai“, tada „Lentos“ir eikite į lentos tvarkyklę
Toliau ieškokite „ESP“ir pridėkite „Expressif“paketą.
Galiausiai norime grįžti į meniu „Įrankiai“, tada dar kartą „Lentą“ir slinkite žemyn, kad surastumėte savo ESP32 įrenginį.
Mano yra „ESP32 Wrover Module“
2 veiksmas: prijunkite LED matricą prie ESP32
LED matricą sudaro keturi 8x8 šviesos diodų blokai ir naudojama MAX7219 mikroschema. Tai suteikia mums 8x32 šviesos diodus matricoje arba 256 šviesos diodus !!!.
Esp32 sėdi ant sulaikymo, kurį sukūriau TinkerCad. Mano laikiklis laiko smeigtukus į viršų, kad galėtumėte pritvirtinti laidus.
LED matrica jungiama prie ESP32 naudojant SPI (Serial Peripheral Interface).
Naudokite moterų/moterų laidus ir prijunkite kaiščius taip:
- ESP32 - 5v į VCC „Matrix“
- ESP32 - nuo GND iki GND „Matrix“
- ESP32 - PIN5 (G5) į CS „Matrix“
- ESP32 - PIN23 (G23) „Din on Matrix“
- ESP32 - 18 kaištis (G18) prie CLK „Matrix“
Galima naudoti kitus kaiščius arba jei jūsų ESP32 turi skirtingą kištuką.
3 žingsnis: sujungimas
Tada aš nukirpiau cigarų dėžę, kad galėčiau įdėti LED ekraną. Dėžutė yra minkšta ir aš galėjau naudoti skutimosi peilį. Tada nušlifavau, kad išlygintų.
Taip pat perpjoviau visą galą maitinimo laidui. Aš tiesiog naudojau USB maitinimą. Aš netgi galėjau pridėti USB telefono įkroviklio bateriją cigarų dėžutės viduje, jei norėčiau, kad ji būtų belaidė.
4 žingsnis: „Arduino IDE“ir „INO“failai
Geriausia dalis yra kodas. Tačiau pirmiausia turime pridėti biblioteką, kad programa galėtų paprasčiau naudoti ekraną. Pridėjau MD_MAX72xx biblioteką.
Norėdami pridėti biblioteką, spustelėkite meniu „Eskizas“, tada „Įtraukti biblioteką“ir „Tvarkyti bibliotekas“- tai bus įkelta ir leis jums ieškoti MD_MAX72xx bibliotekos. Tiesiog spustelėkite įdiegti ir turėsite.
Toliau gaukite mano „Arduino INO“failą:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
Įkelkite „Ino“failą į „Arduino IDE“, Prijunkite USB prie ESP32 prie kompiuterio.
Spustelėkite „Eskizas“, tada - Įkelti
Šiuo metu laikrodis neveiks, ESP32 nieko nerodys. Kodėl? prie kodo turime pridėti jūsų WIFI, nes „WordClock“prisijungia prie interneto, kad gautų laiko. Teisingai … kitas žingsnis ->.
5 žingsnis: Kodas
Pagaliau pasiekėme mano mėgstamiausią dalį. Programa. Jei susidomėsite, apimsiu jį iš viršaus į apačią. Kad programa veiktų su jūsų namų internetu, jums tiesiog reikia pakeisti šias eilutes.
// Pridėkite tinklo informaciją
const char *ssid = "xxxxxx";
const char *slaptažodis = "xxxxxx";
Programa gana sudėtinga, bet labai smagi.
Norėdami išjungti „Prevening“, tiesiog pakeiskite reikšmę į false:
const boolean PREVENING = tiesa; //Didžiojo sprogimo teorija.
Norėdami išjungti skaitmeninio laiko rodymą po slinkimo, pakeiskite jį į klaidingą.
const boolean DISPLAY_DIGITAL = tiesa; // įjunkite skaitmeninio laiko rodymą po slinkimo.
Laiko slinkimas:
Laiko gaunu iš laiko serverio internete naudodamas NTP (tinklo laiko protokolą). Laikas laikomas kintamajame, vadinamame timeinfo, ir mes gauname valandą ir minutę
int valanda = timeinfo.tm_hour; /// 0-23
int minute = timeinfo.tm_min; // 0-59
Kitas patikrinimas - AM arba PM
Tai AM, jei valanda <12
Sukuriu eilutę „TheTime“ir pradedu ją:
theTime = "Tai";
Norėdami gauti skaičių kaip žodžius, sukūriau žodžių masyvą skaičiams iki 30
const char *skaičiai = {
„0“, „vienas“, „du“, „trys“, „keturi“, „penki“, „šeši“, „septyni“, „aštuoni“, „devyni“, „dešimt“, „vienuolika“, „dvylika““,„ Trylika “,„ Keturiolika “,„ Ketvirtis “,„ Šešiolika “,„ Septyniolika “,„ Aštuoniolika “,„ Devyniolika “,„ Dvidešimt “,„ Dvidešimt vienas “,„ Dvidešimt du “,„ Dvidešimt trys ““,„ Dvidešimt keturi “,„ Dvidešimt penki “,„ Dvidešimt šeši “,„ Dvidešimt septyni “,„ Dvidešimt aštuoni “,„ Dvidešimt devyni “,„ Pusė praeities “};
Taigi, kai 12:05 arba penkios minutės po dvyliktos, tai tikrai į Arduino
skaičiai [5] minutės praeityje [12]
Norėdami nustatyti, ar tai yra „Minutes Past“, ar „Minutes To“, mes tik pažvelgiame į minutes. Jei minutės yra <31, tai yra „Minutes Past“, jei minutės yra didesnės nei 31, mes naudojame „Minutes To“, bet naudojame skaičius [60 minutes], taigi 12:50 būtų 60–50 minučių arba skaičiai [10], kurie duok mums 10 minučių iki 12 0 val.
Žinoma, yra ir kitų taisyklių, tokių kaip 15, 30, 45, mes nenaudojame minučių, kai tik yra pusė ar ketvirtis, o jei minutė yra 0, laikas yra tik „Dešimt valanda“arba vidurdienis.
Taigi, norėdamas sudėti viską, pridedu visus elementus prie „String theTime“, tada rodau juos LED matricoje. Aš naudoju krūvą If teiginių. Tikriausiai turėjau naudoti dėklą, bet buvo lengviau juos pridėti.
Mūsų pavyzdys 12:05
theTime = "Tai"
jei minutė <31, naudokite „Minutes Past“, kitaip „Minute To“
theTime + = skaičiai [5] + "Minutes Past" + skaičius [12] + "O'Clock" // Pastaba: žymėjimas + = pridedamas.
Toliau žiūrime į valandą, kad nustatytume, ar ji ryte, ar po pietų, ar vakare.
theTime+= "Vakare"
Paskutinė eilutė, einanti į matricą, yra tokia:
„Jau penkios minutės po dvyliktos valandos vakare“
Šį projektą buvo labai smagu parašyti. Jei jums tai patinka, spustelėkite „Širdis“ir „Balsuokite už mane“.
Rekomenduojamas:
Vienos LCD eilutės slinkimas: 4 žingsniai (su nuotraukomis)
Slinkti vieną LCD eilutę: Skystųjų kristalų biblioteka turi dvi naudingas funkcijas scrollDisplayLeft () ir scrollDisplayRight (). Šios funkcijos slenka per visą ekraną. Tai reiškia, kad jie slenka abi eilutes 1602 skystųjų kristalų ekrane ir visas keturias eilutes 2004 m. Mums dažnai reikia pagalbos
„WebApp Puzzle“LED lempa su ESP32: 5 žingsniai (su paveikslėliais)
„WebApp Puzzle“LED lempa su ESP32: Aš daugelį metų žaidžiau su LED juostelėmis ir neseniai persikėliau į draugo vietą, kur negalėjau atlikti didelių pakeitimų, pavyzdžiui, pritvirtinti juostelę ant sienų, todėl sumontavau šią lempą vienas laidas išeina iš maitinimo ir gali būti dedamas
NTP sinchronizuotas „Wordclock“: 6 žingsniai (su paveikslėliais)
NTP sinchronizuotas „Wordclock“: sinchronizuokite savo laikrodį su NTP laiko serveriu, kad jie galėtų patikrinti tinkamą laiką, ar buvo užtemimas, jei jūsų nėra namuose :-)
Lissajous figūros 8X8 LED matricoje: 7 žingsniai
Lissajous figūros 8X8 LED matricoje: 2 statmenomis ašimis svyruojantis šviesos taškas piešia modelį pavadinimu „Lissajous paveikslas“; (1857) arba " Bowditch Curve " (1815 m.). Šablonai svyruoja nuo paprastų iki sudėtingų, priklausomai nuo 2 ašių dažnio santykio ir fazės. 1: 1
Erzinantis slinkties rato paspaudimų šalinimo įrenginys (sklandus slinkimas): 5 žingsniai
Erzinantis slinkties rato paspaudimų šalinimo įrenginys (sklandus slinkimas): ar jus erzina slinkties rato garsas? Na, čia yra jūsų galimybė pašalinti tą paspaudimą iš šio slinkties! jei sulaužysi pelę, tai ne mano kaltė. Aš tai darau su logitech pele. nesu tikras, ar jis veiks su kita pele