Obsah:
- Zásoby
- Krok 1: Nastavte IDE Arduino na podporu ESP32
- Krok 2: Pripojte LED maticu k ESP32
- Krok 3: Spojte to dohromady
- Krok 4: Súbor Arduino IDE a INO
- Krok 5: Kód
Video: ESP32 rolovanie WordClock na matici LED: 5 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:56
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
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“
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
Ďalej vyhľadajte „ESP“a pridajte balík pomocou Expressif.
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“
Krok 2: Pripojte LED maticu k ESP32
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
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
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:
Synchronizovaný Wordclock synchronizovaný s NTP: 6 krokov (s obrázkami)
Synchronizované hodiny Word synchronizované s NTP: Synchronizujte svoje hodiny s časovým serverom NTP, aby mohli skontrolovať správny čas, ak došlo k výpadku prúdu, ak nie ste doma :-)
Lissajousove figúrky na matici LED 8 x 8: 7 krokov
Lissajousove figúrky na matici LED 8 x 8: Svetelný bod kmitajúci v 2 kolmých osiach nakreslí vzor s názvom „Lissajousov obrázok“; (1857) alebo " Bowditch Curve " (1815). Vzory sa pohybujú od jednoduchých po zložité v závislosti od frekvenčného pomeru a fázy 2 osí. 1: 1
RGB WordClock: 10 krokov
RGB WordClock: Ahoj, dnes vám chcem ukázať, ako sa vyrábajú hodiny Word. Na tento projekt potrebujete: Ovládač Wemos D1 2,5 m pásov LED WS2812B (60 LED/m) Laserom rezaná predná doska (ďalšie informácie: krok 6) Drevený panel 244 x 244 mm hdf/mdf (hrúbka 4 mm) 18 x zápustná skrutka M3 x 10 m
DIY Arduino Wordclock: 7 krokov (s obrázkami)
DIY Arduino Wordclock: Moja verzia slovných hodín nebude obsahovať 12 × 12 LED-maticový displej. Namiesto toho je vyrobený z LED pásikov a môžu sa rozsvietiť iba dôležité slová na hodinách. Touto metódou nemôžete zobrazovať vlastné správy, ale celá zostava vás nebude stáť
Rámček na rolovanie obrázku v službe Twitter: 3 kroky
Rámček na rolovanie obrázku na Twitteri: Tento návod vám ukáže, ako vytvoriť rámček na rolovanie obrázku na Twitteri. Budete potrebovať: 1. #twatch ethernetový LCD batoh a 4*20 znakový LCD displej.2. Rám obrazu, ktorý sa hodí k LCD. Náš má 7,5 cm x 11 cm (3 palce x 4,5 palca) .3. Kúsok plazmy