Obsah:

ESP32 rolovanie WordClock na matici LED: 5 krokov (s obrázkami)
ESP32 rolovanie WordClock na matici LED: 5 krokov (s obrázkami)

Video: ESP32 rolovanie WordClock na matici LED: 5 krokov (s obrázkami)

Video: ESP32 rolovanie WordClock na matici LED: 5 krokov (s obrázkami)
Video: Управляйте 10 выходными контактами или реле с помощью 10 кнопочных переключателей с 1 входным контактом Arduino ANPB-V2. 2024, November
Anonim
Image
Image

V tomto projekte vytváram Scrolling WordClock s ESP32, LED Matrix a krabičkou na cigary.

WordClock sú hodiny, ktoré skôr píšu čas, než ich len tlačia na obrazovku alebo majú ruky, ktoré si môžete prečítať. Tieto hodiny vám oznámia, že je 10 minút po tretej hodine popoludní alebo napoludnie. Dokonca som ho naprogramoval tak, aby používal názov Prevening (z teórie veľkého tresku) na nejednoznačné časové obdobie medzi popoludním a večerom. Začína sa o 16:00 hod.

ESP32 je úžasný, sú zábavné a lacné. Ak milujete programovanie Arduina, budete skutočne prekvapení, čo dokáže ESP32 za menej ako 10 dolárov. Používajú Arduino IDE a dajú sa ľahko naprogramovať. V tomto návode ukážem, ako to urobiť.

Zásoby

  • ESP32 - okolo 10 dolárov na Amazone
  • LED Matrix (max7219) (a káble) - 9 dolárov amazon
  • Cigaretový box
  • USB napájací kábel
  • Voliteľná 3D tlačiareň pre stojan esp32

Krok 1: Nastavte IDE Arduino na podporu ESP32

Získajte IDE Arduino:

  • V prehliadači navštívte stránku
  • Kliknutím na Software a potom na položku Downloads získate ARDUINO 1.8.12
Obrázok
Obrázok

Pridajte do svojho Arduino IDE podporu ESP32:

  • Spustite Arduino IDE
  • Kliknite na ponuku Súbor a potom na položku Predvoľby.

Keď ste v časti „Predvoľby“, pridajte podporu výrobcu pridaním nasledujúceho riadku do sekcie „Ďalší správca rady“

Obrázok
Obrázok

dl.espressif.com/dl/package_esp32_index.js

To nám umožní prístup k pridaniu dosky do IDE

Prejdite do ponuky Nástroje a potom na položku Dosky a prejdite na správcu rady

Obrázok
Obrázok

Ďalej vyhľadajte „ESP“a pridajte balík pomocou Expressif.

Obrázok
Obrázok

Nakoniec sa chceme vrátiť späť do ponuky „Nástroje“, potom znova na „Board“a posúvaním nadol nájsť svoje zariadenie ESP32.

Môj je „modul Wrover ESP32“

Obrázok
Obrázok

Krok 2: Pripojte LED maticu k ESP32

Obrázok
Obrázok

LED matica sa skladá zo štyroch blokov LED 8x8 a používa čip MAX7219. To nám dáva 8x32 LED v Matrixe alebo 256 LED !!!

Esp32 sedí v pozícii, ktorú som vytvoril v TinkerCad. Môj držiak drží kolíky nahor, aby ste mohli pripevniť drôty.

LED Matrix sa pripája k ESP32 pomocou SPI (sériové periférne rozhranie).

Použite ženské/ženské vodiče a pripojte kolíky nasledovne:

  • ESP32 - 5v až VCC na matici
  • ESP32 - GND až GND na Matrixe
  • ESP32 - PIN5 (G5) do CS na Matrixe
  • ESP32 - PIN23 (G23) do Din na Matrixe
  • ESP32 - kolík 18 (G18) na CLK na Matrixe

Je možné použiť aj iné piny, alebo ak má váš ESP32 iný vývod.

Krok 3: Spojte to dohromady

Dať to dohromady
Dať to dohromady

Potom som prerezal krabičku cigariet, aby mi poskytlo miesto na umiestnenie LED displeja. Krabica je mäkká a mohol som použiť žiletku. Potom som brúsil, aby som to vyhladil.

Tiež som v zadnej časti odrezal jeden celok pre napájací kábel. Práve som použil napájanie USB. Mohol by som dokonca pridať batériu nabíjačky telefónu USB do škatule na cigarety, keby som chcel, aby bola bezdrôtová.

Krok 4: Súbor Arduino IDE a INO

Súbor Arduino IDE a INO
Súbor Arduino IDE a INO

Najlepšia časť je kód. Najprv však musíme pridať knižnicu, aby mohol program používať zobrazenie jednoduchším spôsobom. Pridal som knižnicu MD_MAX72xx.

Ak chcete pridať knižnicu, kliknite na ponuku „Náčrt“, potom na položky „Zahrnúť knižnicu“a „Spravovať knižnice“. Načíta sa a umožní vám vyhľadať knižnicu MD_MAX72xx. Stačí kliknúť na nainštalovať a máte to.

Ďalej získajte môj súbor Arduino INO:

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

Vložte ino súbor do svojho Arduino IDE, Pripojte USB z ESP32 k vášmu počítaču.

Kliknite na „Náčrt“a potom na položku Nahrať

V tomto mieste hodiny nebudú fungovať, ESP32 nič nezobrazí. Prečo? musíme do kódu pridať vaše WIFI, pretože WordClock sa pripája k internetu, aby získal čas. To je pravda … ďalší krok ->.

Krok 5: Kód

Nakoniec sme sa dostali do mojej obľúbenej časti. Program. Ak vás to zaujíma, pokryjem to zhora nadol. Aby program fungoval s vašim domácim internetom, stačí zmeniť tieto riadky.

// Pridajte informácie o svojej sieti

const char *ssid = "xxxxxx";

const char *heslo = "xxxxxx";

Program je komplexný, ale veľmi zábavný.

Ak chcete vypnúť funkciu „Predchádzanie“, jednoducho zmeňte hodnotu na hodnotu false:

const boolean PREVENING = true; //Teória veľkého tresku.

Ak chcete zakázať zobrazovanie digitálneho času po posúvaní, zmeňte toto na hodnotu false.

const boolean DISPLAY_DIGITAL = true; // zapnutie zobrazovania digitálneho času po posúvaní.

Posúvanie času:

Čas získavam z časového servera na internete pomocou protokolu NTP (Network Time Protocol). Čas je držaný v premennej nazývanej timeinfo a získavame z nej hodinu a minútu

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

int minúta = timeinfo.tm_min; // 0-59

Ďalej skontrolujte AM alebo PM

Je AM, ak je hodina <12

Vytvorím reťazec s názvom „theTime“a spustím ho:

theTime = "Je to";

Aby som dostal číslo ako slová, vytvoril som pole slov pre čísla do 30

const char *čísla = {

„0“, „jeden“, „dva“, „tri“, „štyri“, „päť“, „šesť“, „sedem“, „osem“, „deväť“, „desať“, „jedenásť“, „dvanásť““,„ Trinásť “,„ Štrnásť “,„ Štvrtina “,„ Šestnásť “,„ Sedemnásť “,„ Osemnásť “,„ Devätnásť “,„ Dvadsať “,„ Dvadsaťjeden “,„ Dvadsaťdva “,„ Dvadsaťtri ““,„ Dvadsaťštyri “,„ Dvadsaťpäť “,„ Dvadsaťšesť “,„ Dvadsaťsedem “,„ Dvadsaťosem “,„ Dvadsaťdeväť “,„ Polpola “}};

Takže keď je 12:05 alebo päť minút dvanásť, je to skutočne na Arduino

čísla [5] minúty za číslami [12]

Aby sme zistili, či je to „Minúty po“alebo „Minúty“, stačí sa pozrieť na zápisnicu. Ak sú minúty <31, ide o „Minuty po“, ak sú minúty dlhšie ako 31, použijeme „Minúty do“, ale použijeme čísla [60-minút], takže 12:50 by bolo 60-50 minút alebo čísla [10], ktoré by dajte nám 10 minút do 12:00.

Samozrejme existujú aj iné pravidlá, napríklad 15., 30., 45. minútu nepoužívame, je len pol dvanástej alebo štvrť na dve hodiny, a ak je minúta 0, je čas len „desať hodín“alebo poludnie.

Aby som to spojil, pripojím všetky položky k reťazcu String theTime a potom ho zobrazím na matici LED. Používam veľa príkazov If. Pravdepodobne som mal použiť prípad, ale bolo jednoduchšie ich pridávať.

Pre náš príklad 12:05

theTime = "Je to"

ak minúta <31 použije „Minúty po“, inak „Minúta do“

theTime + = numbers [5] + "Minutes Past" + number [12] + "O'Clock" // Poznámka: Zápis + = je pripojený.

Ďalej sa pozrieme na hodinu, aby sme zistili, či je ráno, popoludní alebo večer.

theTime+= "Vo večerných hodinách"

Posledný reťazec smerujúci do matice je:

„Je päť minút po dvanástej večer“

Tento projekt bol veľmi zábavný na písanie. Ak sa vám páči, kliknite prosím na Srdce a hlasujte za mňa.

Odporúča: