Turinys:

ESP32 „WordClock“slinkimas LED matricoje: 5 žingsniai (su paveikslėliais)
ESP32 „WordClock“slinkimas LED matricoje: 5 žingsniai (su paveikslėliais)

Video: ESP32 „WordClock“slinkimas LED matricoje: 5 žingsniai (su paveikslėliais)

Video: ESP32 „WordClock“slinkimas LED matricoje: 5 žingsniai (su paveikslėliais)
Video: ESP32, более мощная чем любая другая Ардуино 2024, Lapkritis
Anonim
Image
Image

Š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
Vaizdas
Vaizdas

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“

Vaizdas
Vaizdas

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ę

Vaizdas
Vaizdas

Toliau ieškokite „ESP“ir pridėkite „Expressif“paketą.

Vaizdas
Vaizdas

Galiausiai norime grįžti į meniu „Įrankiai“, tada dar kartą „Lentą“ir slinkite žemyn, kad surastumėte savo ESP32 įrenginį.

Mano yra „ESP32 Wrover Module“

Vaizdas
Vaizdas

2 veiksmas: prijunkite LED matricą prie ESP32

Vaizdas
Vaizdas

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

Sujungimas
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

„Arduino IDE“ir „INO“failai
„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: