Obsah:

ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)
ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)

Video: ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)

Video: ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)
Video: Full Control of DC Motor with ESP8266 NodeMCU D1 Mini over WiFi 2024, Listopad
Anonim
Image
Image

V tomto projektu vytvářím Scrolling WordClock s ESP32, LED Matrix a krabičkou doutníků.

WordClock jsou hodiny, které určují čas, a ne je jen tisknout na obrazovku nebo mít ruce, které si můžete přečíst. Tyto hodiny vám řeknou, že je 10 minut po třetí hodině odpoledne nebo v poledne. Dokonce jsem ho naprogramoval tak, aby používal název Prevening (z teorie velkého třesku) pro nejednoznačné časové období mezi odpolednem a večerem. Začíná v 16:00.

ESP32 je úžasný, jsou tak zábavné a levné, pokud milujete programování Arduina, budete opravdu překvapeni, co dokáže ESP32 za méně než 10 $. Používají Arduino IDE a snadno se programují. V tomto návodu předvedu, jak to udělat.

Zásoby

  • ESP32 - kolem 10 $ na Amazonu
  • LED Matrix (max7219) (a vodiče) - 9 $ amazon
  • Krabička cigaret
  • USB napájecí kabel
  • Volitelná 3D tiskárna pro stojan esp32

Krok 1: Nastavte IDE Arduino na podporu ESP32

Získejte IDE Arduino:

  • V prohlížeči přejděte na
  • Kliknutím na Software a poté na Stahování získáte ARDUINO 1.8.12
obraz
obraz

Přidejte do svého Arduino IDE podporu ESP32:

  • Spusťte Arduino IDE
  • Klikněte na nabídku Soubor a poté na Předvolby.

Jakmile jste v „Předvolbách“, přidejte podporu výrobce přidáním následujícího řádku do „Dalšího správce tabule“

obraz
obraz

dl.espressif.com/dl/package_esp32_index.js

To nám umožní přístup k přidání desky do IDE

Přejděte do nabídky Nástroje a poté na Desky a přejděte do správce tabule

obraz
obraz

Dále vyhledejte „ESP“a přidejte balíček pomocí Expressif.

obraz
obraz

Nakonec se chceme vrátit zpět do nabídky „Nástroje“, poté znovu na „Board“a posunout dolů, abychom našli vaše zařízení ESP32.

Můj je "modul ESP32 Wrover"

obraz
obraz

Krok 2: Připojte LED matici k ESP32

obraz
obraz

LED matice se skládá ze čtyř bloků LED 8x8 a používá čip MAX7219. To nám dává 8x32 LED v Matrixu nebo 256 LED !!!

ESP32 sedí v blokování, které jsem vytvořil v TinkerCad. Můj držák drží kolíky nahoru, takže můžete připojit dráty.

LED Matrix se připojuje k ESP32 pomocí SPI (Serial Peripheral Interface).

Použijte ženské/ženské vodiče a připojte kolíky následujícím způsobem:

  • ESP32 - 5v na VCC na Matrixu
  • ESP32 - GND až GND na Matrixu
  • ESP32 - PIN5 (G5) na CS na Matrixu
  • ESP32 - PIN23 (G23) na Din na Matrixu
  • ESP32 - Pin 18 (G18) na CLK na Matrixu

Je možné použít jiné piny nebo pokud má váš ESP32 jiný vývod.

Krok 3: Dát to dohromady

Dát to dohromady
Dát to dohromady

Dále jsem rozřezal krabičku na doutníky, abych mi dal místo na LED displej. Krabice je měkká a já jsem mohl použít žiletku. Pak jsem to vybrousil, abych to vyhladil.

Také jsem uřízl celek v zádech pro napájecí kabel. Právě jsem použil napájení USB. Mohl jsem dokonce přidat baterii USB nabíječky telefonu do krabičky na doutníky, kdybych chtěl, aby byla bezdrátová.

Krok 4: Soubor Arduino IDE a INO

Arduino IDE a INO soubor
Arduino IDE a INO soubor

Nejlepší část je kód. Nejprve však musíme přidat knihovnu, která programu umožní používat displej jednodušším způsobem. Přidal jsem knihovnu MD_MAX72xx.

Chcete -li přidat knihovnu, klikněte na nabídku „Skica“, poté na „Zahrnout knihovnu“a „Spravovat knihovny“, načte se a umožní vám vyhledat knihovnu MD_MAX72xx. Stačí kliknout na instalaci a máte to.

Dále získejte můj Arduino INO soubor:

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

Vložte soubor ino do svého Arduino IDE, Připojte USB z ESP32 k počítači.

Klikněte na „Skica“a poté na Nahrát

V tomto okamžiku hodiny nebudou fungovat, ESP32 nic nezobrazí. Proč? musíme do kódu přidat vaše WIFI, protože WordClock se připojuje k internetu, aby získal čas. Správně … další krok ->.

Krok 5: Kód

Nakonec jsme se dostali do mé oblíbené části. Program. Pokud vás to zajímá, pokryju to odshora dolů. Aby program fungoval s vaším domácím internetem, stačí změnit tyto řádky.

// Přidejte informace o vaší síti

const char *ssid = "xxxxxx";

const char *heslo = "xxxxxx";

Program je poměrně složitý, ale velmi zábavný.

Chcete -li zakázat „Prevening“, změňte hodnotu na false:

const boolean PREVENING = true; //Teorie velkého třesku.

Chcete -li zakázat zobrazování digitálního času po posouvání, změňte toto na hodnotu false.

const boolean DISPLAY_DIGITAL = true; // zapněte zobrazování digitálního času po posouvání.

Posouvání času:

Získávám čas z časového serveru na internetu pomocí NTP (Network Time Protocol). Čas je držen v proměnné zvané timeinfo a získáme z něj hodinu a minutu

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

int minuta = timeinfo.tm_min; // 0-59

Dále zkontrolujte dopoledne nebo odpoledne

Je AM, pokud je hodina <12

Vytvořím řetězec s názvem „theTime“a spustím jej:

theTime = "Je";

Abych dostal číslo jako slova, vytvořil jsem řadu slov pro čísla do 30

konstantní char *čísla = {

„0“, „jedna“, „dvě“, „tři“, „čtyři“, „pět“, „šest“, „sedm“, „osm“, „devět“, „deset“, „jedenáct“, „dvanáct““,„ Třináct “,„ Čtrnáct “,„ Čtvrtina “,„ Šestnáct “,„ Sedmnáct “,„ Osmnáct “,„ Devatenáct “,„ Dvacet “,„ Dvacet jedna “,„ Dvacet dva “,„ Dvacet tři “"," Dvacet čtyři "," Dvacet pět "," Dvacet šest "," Dvacet sedm "," Dvacet osm "," Dvacet devět "," Půl půl "};

Takže když je 12:05 nebo pět minut po dvanácté, je to opravdu pro Arduino

čísla [5] minut za čísly [12]

Chcete -li zjistit, zda je to „Minuty po“nebo „Minuty do“, stačí se podívat na zápis. Pokud jsou minuty <31, je to „Minuty po“, pokud jsou minuty větší než 31, použijeme „Minuty do“, ale použijeme čísla [60 minut], takže 12:50 bude 60–50 minut nebo čísla [10], která by dejte nám 10 minut do 12 hodin.

Samozřejmě existují i další pravidla, jako například 15., 30., 45. minutu nepoužíváme, je jen půl druhé nebo čtvrt na, a pokud je minuta 0, je čas jen „deset hodin“nebo poledne.

Abych to dal dohromady, připojím všechny položky k String theTime a poté je zobrazím na LED Matrix. Používám spoustu příkazů If. Pravděpodobně jsem měl použít case, ale bylo jednodušší je stále přidávat.

Pro náš příklad 12:05

theTime = "Je to"

pokud minuta <31, použijte „Minuty po“, jinak „Minuta do“

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

Dále se podíváme na hodinu, abychom zjistili, zda je ráno, odpoledne nebo večer.

theTime+= "Večer"

Poslední řetězec přecházející do matice je:

„Je pět minut po dvanácté hodině večer“

Tento projekt byl velmi zábavný na psaní. Pokud se vám to líbí, klikněte prosím na Srdce a hlasujte pro mě.

Doporučuje: