Obsah:
- Zásoby
- Krok 1: Nastavte IDE Arduino na podporu ESP32
- Krok 2: Připojte LED matici k ESP32
- Krok 3: Dát to dohromady
- Krok 4: Soubor Arduino IDE a INO
- Krok 5: Kód
Video: ESP32 Rolování WordClockem na LED matici: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
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
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“
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
Dále vyhledejte „ESP“a přidejte balíček pomocí Expressif.
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"
Krok 2: Připojte LED matici k ESP32
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á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
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:
Vytvořte si vlastní 10x10 LED matici: 5 kroků (s obrázky)
Vytvořte si vlastní 10x10 LED matici: V tomto projektu vám ukážu, jak zkombinovat běžně dostupné RGB LED diody WS2812B s Arduino Nano za účelem vytvoření barevné 10x10 LED matice. Začněme
Pong Tennis s LED maticí, Arduino a joysticky: 5 kroků (s obrázky)
Pong Tennis s LED Matrix, Arduino a Joysticks: Tento projekt je určen začátečníkům i zkušeným drotářům. Na základní úrovni to lze provést pomocí prkénka, propojovacích drátů a přilepit na kus šrotu (použil jsem dřevo) pomocí Blu-Tack a bez pájení. Nicméně s větším předstihem
Jak vytvořit 8x8 VELKOU LED matici (MAX7219 LED 10 mm): 9 kroků (s obrázky)
Jak vytvořit 8x8 VELKOU LED matici (MAX7219 LED 10 mm): Pracovali jste s již připravenou maticí 8x8 LED jako displeje? Přicházejí v různých velikostech a je docela zajímavé s nimi pracovat. Velká snadno dostupná velikost je přibližně 60 mm x 60 mm. Pokud však hledáte mnohem větší hotovou matici LED
Bluetooth reproduktor s LED maticí reagující na hudbu: 12 kroků (s obrázky)
Bluetooth reproduktor s LED maticí reagující na hudbu: Tento projekt je zařazen do soutěže Wireless Contest a LED Contest-pokud se vám líbí, budu moc rád za váš hlas. Díky! Navrhl jsem a postavil reproduktor DIY Bluetooth s integrovanou maticí LED. LED matice obsahuje řadu různých
Telesketch Arduino s LED maticí: 6 kroků (s obrázky)
Telesketch Arduino s LED maticí: Zde je jen jednoduchý návod, jak vytvořit telesketch pomocí Arduina. Tento design používá Arduino, dvě LED matice 8x32, bzučák, dva rotační kodéry a některá tlačítka. Doufáme, že se naučíte používat rotační kodéry a LED matici. Také hop