Tartalomjegyzék:

ESP32 Gördülő WordClock LED mátrixon: 5 lépés (képekkel)
ESP32 Gördülő WordClock LED mátrixon: 5 lépés (képekkel)

Videó: ESP32 Gördülő WordClock LED mátrixon: 5 lépés (képekkel)

Videó: ESP32 Gördülő WordClock LED mátrixon: 5 lépés (képekkel)
Videó: esp32 clock 2024, November
Anonim
Image
Image

Ebben a projektben létrehozok egy görgető WordClock -ot ESP32, LED mátrix és szivar dobozzal.

A WordClock olyan óra, amely az időt írja, ahelyett, hogy csak kinyomtatná a képernyőn, vagy kezét olvasná. Ez az óra azt fogja mondani, hogy délután 3 óra vagy délután 10 perccel elmúlt. Még azt is beprogramoztam, hogy használja a Prevening (a Big Bang Theory -ból) nevet a délután és este közötti kétértelmű időszakra. 16:00 órakor kezdődik.

Az ESP32 félelmetes, annyira szórakoztatóak és olcsóak. Ha szereted az Arduino programozását, valóban le fogsz lepődni, hogy egy ESP32 mire képes 10 dollár alatt. Az Arduino IDE -t használják, és könnyen programozhatók. Ebben az oktatóanyagban bemutatom, hogyan kell ezt megtenni.

Kellékek

  • ESP32 - körülbelül 10 dollár az Amazonon
  • LED mátrix (max7219) (és vezetékek) - $ 9 amazon
  • Szivardoboz
  • USB tápkábel
  • Opcionális 3D nyomtató az esp32 állványhoz

Lépés: Állítsa be Arduino IDE -jét az ESP32 támogatásához

Szerezze be az Arduino IDE -t:

  • Nyissa meg a böngészőben a https://www.arduino.cc/ oldalt.
  • Kattintson a Szoftver, majd a Letöltések lehetőségre az ARDUINO 1.8.12 letöltéséhez
Kép
Kép

Adjon hozzá ESP32 támogatást az Arduino IDE -hez:

  • Indítsa el az Arduino IDE -t
  • Kattintson a Fájl menüre, majd a Beállításokra.

A „Beállítások” menüpontban adja hozzá a gyártói támogatást a következő sor hozzáadásával a „Kiegészítő fórumkezelőhöz”

Kép
Kép

dl.espressif.com/dl/package_esp32_index.js

Ez lehetővé teszi számunkra, hogy hozzáadjuk a táblát az IDE -hez

Lépjen az Eszközök menübe, majd a Táblák elemre, és lépjen a fórumkezelőhöz

Kép
Kép

Ezután keressen rá az "ESP" kifejezésre, és adja hozzá a csomagot az Expressif által.

Kép
Kép

Végül szeretnénk visszatérni az "Eszközök" menübe, majd ismét a "Tábla" menübe, és lefelé görgetve keresse meg az ESP32 készülékét.

Az enyém "ESP32 Wrover Module"

Kép
Kép

2. lépés: Csatlakoztassa a LED -mátrixot az ESP32 -hez

Kép
Kép

A LED mátrix négy 8x8 LED -es blokkból áll, és MAX7219 chipet használ. Ez 8x32 LED -et ad a Mátrixban vagy 256 LED -et !!!.

Az esp32 a TinkerCad -ban létrehozott várakozáson ül. A tartóm felfelé tartja a csapokat, így csatlakoztathatja a vezetékeket.

A LED -mátrix SPI (Serial Peripheral Interface) segítségével csatlakozik az ESP32 -hez.

Használjon női/női vezetékeket és csatlakoztassa a csapokat az alábbiak szerint:

  • ESP32 - 5V - VCC a Matrixon
  • ESP32 - GND -GND a Matrixon
  • ESP32 - PIN5 (G5) CS -re a Matrixon
  • ESP32 - PIN23 (G23) Din -nek a Matrixon
  • ESP32 - 18. láb (G18) a CLK -hoz a Matrixon

Lehetőség van más csapok használatára is, vagy ha az ESP32 -nek más tűje van.

3. lépés: Összerakás

Összerakása
Összerakása

Ezután levágtam a szivar dobozt, hogy helyet adjak a LED kijelzőnek. A doboz puha, és borotva kést tudtam használni. Aztán csiszoltam, hogy kisimuljon.

Hátul is egészet vágtam a tápkábelhez. Most használtam USB tápellátást. Akár USB telefontöltőt is hozzáadhattam volna a szivar dobozba, ha azt akartam, hogy vezeték nélküli legyen.

4. lépés: Az Arduino IDE és INO fájl

Az Arduino IDE és INO fájl
Az Arduino IDE és INO fájl

A legjobb rész a kód. De először hozzá kell adnunk egy könyvtárat, hogy a program egyszerűbben használhassa a kijelzőt. Hozzáadtam az MD_MAX72xx könyvtárat.

A könyvtár hozzáadásához kattintson a "Vázlat" menüre, majd a "Könyvtár beillesztése" és a "Könyvtárak kezelése" elemre, ez betöltődik, és lehetővé teszi az MD_MAX72xx könyvtár keresését. Csak kattintson a telepítésre, és megvan.

Ezután szerezze be az Arduino INO fájlomat:

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

Töltse be az ino fájlt az Arduino IDE -be, Csatlakoztassa az USB -t az ESP32 -ből a számítógéphez.

Kattintson a "Vázlat", majd a Feltöltés gombra

Ezen a ponton az óra nem fog működni, az ESP32 nem jelenít meg semmit. Miért? hozzá kell adnunk a WIFI -t a kódhoz, mert a WordClock csatlakozik az internethez, hogy időt kapjon. Így van … a következő lépés ->.

5. lépés: A kód

Végre eljutottunk a kedvenc részemhez. A program. Tetőtől talpig lefedem, ha érdekli. Ahhoz, hogy a program működjön az otthoni internettel, csak meg kell változtatnia ezeket a sorokat.

// Adja hozzá a hálózati információkat

const char *ssid = "xxxxxx";

const char *password = "xxxxxx";

A program elég összetett, de nagyon szórakoztató.

A "Megelőzés" letiltásához csak módosítsa az értéket hamisra:

const boolean PREVENING = igaz; //Ősrobbanás elmélet.

Ha le szeretné tiltani a digitális idő megjelenítését görgetés után, állítsa ezt hamis értékre.

const logikai DISPLAY_DIGITAL = igaz; // a görgetés után kapcsolja be a digitális idő megjelenítését.

Az idő görgetése:

Az időt egy internetes időszerverről kapom NTP (Network Time Protocol) használatával. Az időt az időinformáció nevű változóban tartjuk, és ebből kapjuk az órát és a percet

int óra = időinformáció.tm_óra; /// 0-23

int perc = timeinfo.tm_min; 0-59

Következő ellenőrzés délelőtt vagy délután

AM, ha az óra <12

Létrehozok egy "theTime" nevű karakterláncot, és ezzel kezdem:

theTime = "Ez";

Ahhoz, hogy a számot szavakká tegyem, létrehoztam egy szótömböt 30 -ig terjedő számokhoz

const char *számok = {

"0", "Egy", "Kettő", "Három", "Négy", "Öt", "Hat", "Hét", "Nyolc", "Kilenc", "Tíz", "Tizenegy", "Tizenkét" "," Tizenhárom "," Tizennégy "," Negyed "," Tizenhat "," Tizenhét "," Tizennyolc "," Tizenkilenc "," Húsz "," Huszonegy "," Huszonkettő "," Huszonhárom " "," Huszonnégy "," Huszonöt "," Huszonhat "," Huszonhét "," Huszonnyolc "," Huszonkilenc "," Fél múlt "};

Tehát amikor 12:05 vagy öt perccel elmúlt tizenkettő, valóban az Arduino felé tart

számok [5] perccel múlt számok [12]

Annak megállapításához, hogy a "Minutes Past" vagy a "Minutes To", csak a jegyzőkönyvet nézzük. Ha a percek <31, akkor a "Minutes Past", ha a percek 31-nél nagyobbak, a "Minutes To" kifejezést használjuk, de számokat használunk [60 perc], tehát a 12:50 60-50 perc vagy számok [10] lenne adjon nekünk 10 percet 12 óráig.

Természetesen vannak más szabályok is, például a 15., 30., 45. napon nem használunk perceket, csak fél vagy negyed, és ha a perc 0, akkor az idő csak "tíz óra" vagy dél.

Tehát hogy összeállítsam, az összes elemet hozzáfűzem a String theTime -hez, majd megjelenítem a LED -mátrixon. Egy csomó If állítást használok. Valószínűleg használnom kellett volna a tokot, de egyszerűbb volt folyamatosan hozzáadni őket.

Példánkban 12:05

theTime = "Ez"

ha perc <31, használja a "Minutes Past" értéket, különben a "Minute To"

theTime + = számok [5] + "Minutes Past" + szám [12] + "O'Clock" // Megjegyzés: A + = jelölés csatolva van.

Ezután megnézzük az órát, hogy megállapítsuk, reggel, délután vagy este van -e.

theTime+= "Este"

A mátrixhoz tartozó utolsó karakterlánc:

"Öt perc múlt este tizenkét óra után"

Ezt a projektet nagyon szórakoztató volt írni. Ha tetszik, kattints a Szívre és szavazz rám.

Ajánlott: