Obsah:

4 projekty v 1 s použitím DFRobot FireBeetle ESP32 a maticového krytu LED: 11 krokov (s obrázkami)
4 projekty v 1 s použitím DFRobot FireBeetle ESP32 a maticového krytu LED: 11 krokov (s obrázkami)

Video: 4 projekty v 1 s použitím DFRobot FireBeetle ESP32 a maticového krytu LED: 11 krokov (s obrázkami)

Video: 4 projekty v 1 s použitím DFRobot FireBeetle ESP32 a maticového krytu LED: 11 krokov (s obrázkami)
Video: DFROBOT DFR0339 - Controller - UNBOXING 2024, November
Anonim
Image
Image
Nainštalujte pre projekty spoločné knižnice
Nainštalujte pre projekty spoločné knižnice

Uvažoval som o tom, že pre každý z týchto projektov urobím inštrukciu - ale nakoniec som sa rozhodol, že skutočne najväčší rozdiel je softvér pre každý projekt. Myslel som, že je lepšie vytvoriť jeden veľký pokyn!

Hardvér je pre každý projekt rovnaký a na programovanie zariadenia ESP32 používame Arduino IDE.

Čo je to teda za hardvér: Všetok hardvér poskytli moji priatelia v DFRobot, majú veľmi dobré návody a na to sa ľahko inštalujú základné dosky. Majú tiež zavedený dobrý podporný systém a veľmi rýchle dodanie do USA.

Kompletné informácie o doske Firebeetle ESP32 a LED Matrix poskytla spoločnosť DF Robot. Prezentované projekty a videá sú moje vlastné.

Všetky tieto projekty používajú mikrokontrolér IOT DFRobot FireBeetle ESP32

www.dfrobot.com/product-1590.html

Wiki podpory - pokyny k inštalácii jadra dosky nájdete tu:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Potrebujeme tiež kryty FireBeetle 24x8 LED Matrix (MODRÉ)

www.dfrobot.com/product-1595.html

Nemám rád MODRÉ LED diódy - majú tiež rôzne farby.

ZELENÁ -

ČERVENÁ -

BIELA -

ŽLTÉ -

Potrebujete iba jednu maticu LED - farbu si vyberiete, všetky fungujú rovnako.

Wiki podpory LED Matrix nájdete tu:

www.dfrobot.com/wiki/index.php/FireBeetle_…

Tu nájdeme odkaz na knižnicu Arduino.

github.com/Chocho2017/FireBeetleLEDMatrix

Viac o nich neskôr …

Niečo, čo je voliteľné, ale možno praktické, je držiak batérie MicroUSB 3xAA.

www.dfrobot.com/product-1130.html

To je teda potrebný hardvér - aké sú 4 projekty -

Krok 1: Projekty

Image
Image

Projekt 1: Jedná sa o jednoduché LED maticové NTP hodiny s vojenským displejom času alebo AMPM, Tieto hodiny sa pripoja k časovému serveru NTP (časový server) a použijú offset, aby ste získali miestny čas. Na LED matici zobrazí čas. - Jedná sa o veľmi jednoduché hodiny a veľmi jednoduchý 1. projekt.

Projekt 2: ISS Pass Prediction Display, tento projekt používa 2. jadro procesora. Zobrazí sa, ako blízko (v míľach) sa ISS nachádza, kedy môžete očakávať ďalší prechod ISS vo vašom mieste (v čase UTC) a voliteľne aj to, koľko ľudí je vo vesmíre. Pretože veľa z týchto informácií sa nemení často, používame 2. jadro iba na kontrolu aktualizácií predpovedí povolení alebo počtu ľudí vo vesmíre každých 15 minút. Môžeme týmto spôsobom zabrániť príliš veľkému počtu volaní API na server. Tento projekt je trochu komplikovanejší, ale napriek tomu je celkom ľahké ho vykonať.

Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT, vrátil som sa k projektu, ktorý bol vyrobený pre mini dosku ESP8266 D1, a je to matica LED 8x8 - Cieľom je pripojiť sa k maklérovi MQTT, odoslať správu na tému, ktorou je zariadenie počúvanie - a zobrazenie tejto správy. Je to veľmi jednoduché a veľmi jednoduché, keď je všetko nastavené. A existuje niekoľko krokov k nastaveniu klientskeho softvéru MQTT na stolnom počítači. Po nastavení je MQTT veľmi výkonný protokol na odosielanie správ, ktorý používa mnoho zariadení IoT na odosielanie a prijímanie správ.

Projekt 4: Zobrazenie meteorologickej stanice - na základe mini meteorologickej stanice ESP8266 D1 vyrobenej spoločnosťami Squix78 a ThingPulse. Zhromažďujeme údaje z Wundergroundu a zobrazujeme aktuálne podmienky a teplotu v stupňoch Fahrenheita. Používame druhé jadro ESP32 na aktualizáciu našich údajov každých 10 minút. Je tiež jednoduché nastaviť.

MINIMÁLNE PRÍKLADY BOUNS: Knižnica (a náčrty vyššie) používa písmo 8x4, knižnica tiež obsahuje písmo 5x4, ktoré som použil pre väčšinu týchto mini príkladov BOUNS. Pri malom písme si môžem všimnúť niekoľko problémov. Zdá sa, že spôsobuje problémy pri používaní WIFI zariadenia. Je to niečo, čo by som chcel viac preskúmať, ale mal som na to čas. Ďalším problémom je, že sa neposúva, môže sa posúvať iba väčšie písmo. Žiadny z týchto príkladov teda nepoužíva WIFI - iba aktualizujú displej a viac o nich bude neskôr.

Začnime…..

Krok 2: Nainštalujte dosku DFRobot FireBeetle ESP32 do Arduino IDE

Odkážem vás teda na DF Robot Wiki o inštalácii jadra dosky pre Arduino IDE.

S moderným IDE (1.8.x alebo lepším) je to celkom jednoduché.

www.dfrobot.com/wiki/index.php/FireBeetle_…

Zistil som, že WiFi knižnica zabudovaná v Arduino IDE spôsobuje problémy (PS akákoľvek iná WiFi knižnica, ktorá je nainštalovaná vo vašom adresári knižnice, môže, ale nemusí spôsobovať problémy). Jediný spôsob (alebo aspoň najľahší spôsob), ktorý som našiel na vyriešenie problému, je odstránenie knižnice WiFi z adresára IDE. Bohužiaľ neexistuje dobrý spôsob, ako vám povedať, kde je nainštalovaný - závisí to od toho, ako je nainštalované IDE a od toho, aký operačný systém používate.

To, čo som urobil, je nájdená knižnica WiFi, ktorá spôsobuje problémy, a jednoducho presuňte adresár WiFi do priečinka na pracovnú plochu … a reštartujte IDE. Tak si môžete ponechať knižnicu pre prípad, že by ste ju potrebovali pre WIFI dosky Arduino.

90% problémov, ktoré som videl, súvisí s vyššie uvedeným problémom. Ak sa vám vyskytne veľa chýb pri kompilácii spojených s používaním WiFi z adresára Arduino IDE alebo z adresára Arduino Library, toto je váš problém.

Mojím druhým problémom je niekedy to, že načítanie skici sa nepodarilo nahrať - v takom prípade stačí znova stlačiť tlačidlo nahrávania a funguje to.

A nakoniec, ak máte sériovú konzolu otvorenú a potom ju zatvoríte - FireBeetle zamrzne.

Viem, že DF Robot aktívne pracuje na jadre dosky a za krátky čas, čo mám dosku, vydali nové jadro. Bohužiaľ to nevyriešilo problém s WiFi, čo je môj najväčší problém.

* Espressif má „generického“správcu jadier, ktorý je možné nainštalovať, jadro obsahuje dosku FireBeetle ESP32, ale mal som problém s číslovaním pinov. Zaujímavosťou je, že knižnica WiFi funguje so vstavanou knižnicou WiFi - takže viem, že na tento problém existuje riešenie hneď za rohom.

Ak by ste chceli vyskúšať jadrá Espressif, viac informácií nájdete tu:

github.com/espressif/arduino-esp32

Mne osobne sa páči, ako funguje jadro DF-Robot, aj keď mám niekoľko problémov.

** POZNÁMKA: Používam LinuxMint 18, ktorý je založený na Ubuntu 16.04. Myslím, že som to neskúsil na žiadnom inom počítači, ale verím, že problém je prítomný vo všetkých operačných systémoch na základe niektorých internetových vyhľadávaní, ktoré som urobil. **

Krok 3: Nainštalujte pre projekty spoločné knižnice

Nainštalujte pre projekty spoločné knižnice
Nainštalujte pre projekty spoločné knižnice

Všetky tieto projekty používajú niekoľko bežných knižníc, takže je teraz jednoduchšie vykonať tento krok.

V závislosti od knižnice ju nájdete v správcovi knižníc - čo je zďaleka najľahší spôsob inštalácie knižnice.

Ďalším bežným spôsobom je inštalácia prostredníctvom súboru zip, ktorý funguje rovnako. Spravidla však používam ručnú inštaláciu. Na webových stránkach Arduino je dobrý návod na tri metódy.

www.arduino.cc/en/guide/libraries

Pre tieto knižnice by som odporučil manuálnu metódu - pretože existuje niekoľko rôznych knižníc s rovnakým názvom, pomocou správcu knižníc môžete skončiť s nesprávnou.

Všetky tieto projekty používajú správcu WiFi na uľahčenie pripojenia k vašej sieti Wi -Fi - rozhodol som sa to urobiť tak, že ak potrebujete svoj projekt presunúť, nemusíte preprogramovať dosku. To je niečo, čo používam pre dosky ESP8266 a funguje to dobre - nie je to dokonalé. Našťastie pre použitie knižnicu preniesol na použitie ESP32 používateľ github s názvom bbx10. (Tento správca by mal tiež pracovať s doskami ESP8266)

Aby to fungovalo, musíme nainštalovať tri knižnice.

WiFiManager -

Webový server -

A nakoniec server DNS -

Spoločná pre všetky skice je aj knižnica DF Robot DFRobot_HT1632C pre LED Matrix.

www.dfrobot.com/wiki/index.php/FireBeetle_…

Knižnicu nájdete tu (Opäť by som odporučil metódu manuálnej inštalácie)

github.com/Chocho2017/FireBeetleLEDMatrix

Zvláštna poznámka: v mojom úložisku github - mám niekoľko mierne upravených knižníc DFRobot_HT1632C

github.com/kd8bxp/DFRobot-FireBeetle-ESP32…

Úprava je pre menšie písmo a používa sa iba pre niektoré bonusové príklady. Môžete použiť upravenú knižnicu a nemalo by to spôsobovať žiadne problémy. K dispozícii je tiež mierne upravená knižnica (pripojená k niektorým skicám ako karty), ktorá dokáže vytvárať bitmapové obrázky.

Ak sa rozhodnete použiť mierne upravenú verziu, musíte premenovať adresár „Upravená knižnica“na FireBeetleLEDMatrix a presunúť tento priečinok do adresára knižnice Arduino. Túto verziu nemusíte používať pri týchto projektoch, je potrebná, ak si chcete vyskúšať niektoré z menších písiem z bonusových príkladov.

Toto sú bežné knižnice - pre každý projekt nainštalujeme niektoré konkrétne knižnice.

Prejdeme k LED matici….

Krok 4: Maticový kryt LED 24x8

Maticový kryt 24x8 LED
Maticový kryt 24x8 LED
Maticový kryt 24x8 LED
Maticový kryt 24x8 LED
Maticový kryt 24x8 LED
Maticový kryt 24x8 LED

Budeme sa teda riadiť tutoriálom k robotovi DF pre maticu LED

www.dfrobot.com/wiki/index.php/FireBeetle_…

Úvod: Tento maticový displej 24 × 8 LED je špeciálne navrhnutý pre sériu FireBeetle. Podporuje režim nízkej spotreby energie a rolovacie zobrazenie. S vysoko výkonným LED čipom HT1632C má každá LED nezávislý register, ktorý uľahčuje samostatnú jazdu. Integruje 256KHz RC hodiny, iba 5uA v režime nízkej spotreby, podporuje úpravu jasu PWM v 16 stupňoch. Tento produkt funguje aj s iným mikrokontrolérom Arduino, ako je Arduino UNO.

Špecifikácia:

  • Prevádzkové napätie: 3,3 ~ 5VLED
  • Farba: jednofarebná (biela/modrá/žltá/červená/zelená)
  • Čip disku: HT1632C
  • Pracovný prúd: 6 ~ 100mA
  • Nízka spotreba energie: 5uARC
  • takt: 256KHz
  • Chip Select (CS): D2, D3, D4, D5 voliteľné
  • Podpora posúvania displeja

Predvolené kódy PIN:

  1. DATAD6
  2. WRD7 (spravidla sa nepoužíva)
  3. CSD2, D3, D4, D5 voliteľné (D2 predvolené)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo batéria

(Všetky tieto projekty používajú na výberový kolík D2, ktorý je možné podľa potreby ľahko zmeniť.)

Na zadnej strane LED matice uvidíte 4 malé prepínače, vyberte iba jeden z pinov CS. Tieto malé prepínače slúžia na výber kódu PIN CS a predvolený je D2.

DF Robot WIKI má nejaký ukážkový kód, tento kód je tiež v príkladoch pre knižnicu. (Verím)

Ďalšia poznámka: Na svoje piny použite čísla Dx - v opačnom prípade budú čísla pinov čísla/názvy pinov IO

A to vám môže spôsobiť určité problémy.

Stanovenie bodu:

X je 0 až 23 (alebo ak to považujete za tabuľku, sú to stĺpce).

Y je 0 až 7 (alebo ak o tom uvažujete ako o tabuľke, sú to riadky).

Knižnica poskytuje funkciu nastavenej hodnoty.

display.setPoint (x, y) toto nastaví kurzor na dané miesto, kde teraz môžete vytlačiť správu.

display.print („Hello World“, 40); // to spôsobí, že sa na displeji zobrazí „Hello World“, začínajúc od bodu x, y a posúvaním sa mimo obrazovku.

Existuje aj setPixel (x, y) a clrPixel (x, y) - setPixel zapne jednu diódu LED v mieste x, y a clrPixel vypne LED diódu v mieste x, y.

Táto knižnica môže vykonávať aj ďalšie veci - a väčšina z nich je zahrnutá v príkladoch.

(Odporúčam spustiť a upraviť príklady, aby ste zistili, čo dokáže).

* Jedna vec, ktorá sa zdá byť nedostatočná, je kreslenie bitmap - knižnica to skutočne dokáže, ale z nejakého dôvodu je to súkromná funkcia knižnice. Mierne upravenú verziu knižnice nájdete v mojich bonusových príkladoch

** Ďalšia vec, ktorá obsahuje sadu písem 5x4, je pekné, že máte menšie písmo - je v knižnici komentované ako kedykoľvek predtým. Odkomentoval som to a funguje to, ale všimol som si s tým niekoľko problémov - najväčší, že sa neposúva. A všimol som si, že to spôsobuje problémy s wifi alebo s inou knižnicou, ktorú som chcel použiť.

Jedna z upravených knižníc, ktoré uvádzam, však používa písmo 5x4.

Prejdeme k projektom …

Krok 5: Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom

Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom
Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom
Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom
Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom
Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom
Projekt 1: Jednoduché LED maticové NTP hodiny s vojenským časovým displejom alebo AMPM displejom

Projekt 1: Jedná sa o jednoduché LED maticové NTP hodiny s vojenským displejom času alebo AMPM, Tieto hodiny sa pripoja k časovému serveru NTP (časový server) a použijú offset, aby ste získali miestny čas. Na LED matici zobrazí čas. - Jedná sa o veľmi jednoduché hodiny a veľmi jednoduchý 1. projekt.

Predtým, ako začneme s týmto jednoduchým projektom, môže byť dobré vedieť, čo je to NTP -

NTP je internetový protokol používaný na synchronizáciu hodín počítačov s nejakým časovým odkazom. Je to štandardný protokol. NTP znamená Network Time Protocol.

NTP používa UTC ako referenčný čas (UTC je koordinovaný svetový čas), vyvinul sa z GMT (greenwichský stredný čas) a v niektorých kruhoch sa nazýva zuluský čas (vojenský). UTC je založený na kvantovej rezonancii atómu cézia.

NTP je odolný voči chybám a je vysoko škálovateľný. Protokol je veľmi presný a používa rozlíšenie menšie ako nanosekundy.

*

Hodiny UTC nie sú pre väčšinu ľudí veľmi užitočné, preto musíme hodiny prispôsobiť miestnemu času. Našťastie to dokážeme celkom ľahko. Začnime teda s týmito jednoduchými hodinami NTP ….

Najprv musíme nainštalovať knižnicu, ktorá uľahčuje komunikáciu so servermi NTP.

github.com/arduino-libraries/NTPClient (táto knižnica je pravdepodobne v správcovi knižnice)

Vynechali ste krok 3 - a nie ste si istí, ako nainštalovať knižnice (?) Radšej sa vráťte a prečítajte si krok 3:-)

Musíte ísť na túto webovú stránku a zadať najbližšie mesto, ktoré je vo vašom časovom pásme.

www.epochconverter.com/timezones

Keď stlačíte kláves Enter, zobrazí sa „Výsledky konverzie“a vo výsledkoch získate svoje posunutie (rozdiel voči GMT/UTC) v priebehu niekoľkých sekúnd (pre mňa je to –14400)

V náčrte dfrobot_firebeetle_led_matrix_ntp_clock na riadku 66 uvidíte:

#define TIMEOFFSET -14400 // Nájdite svoje časové pásmo mimo set tu https://www.epochconverter.com/timezones OFF Nastavené v sekundách#definujte AMPM 1 // 1 = AM PM čas, 0 = VOJENSKÝ/24 HR čas

nahraďte -14400 svojim posunom. V nasledujúcom riadku uvidíte AMPM 1 - to spôsobí, že hodiny budú zobrazovať čas v AM/PM - ak ho chcete vidieť skôr za 24 hodín, urobte z neho nulu.

Potom nahrajte skicu na tabuľu, pripojte sa k prístupovému bodu (správca wifi) a zadajte podrobnosti o svojej sieti Wi -Fi. Ak ste to už urobili, na obrazovke by ste mali vidieť „prepojené“posúvanie a o niekoľko sekúnd neskôr by ste mali vidieť čas.

To je všetko pre tento projekt - jednoduché a ľahko použiteľné ….

(Možné vylepšenia: Zobrazte mesiac, deň a rok, nastavte bzučiak a budíky - vo všeobecnosti ovládajte to, čo vidíte, prostredníctvom webovej stránky. Tento nápad by potreboval veľké prepísanie aktuálneho jednoduchého náčrtu.)

Pripravení na ďalší jednoduchý projekt - Ukážte, kde je ISS - Odovzdajte predpovede a koľko ľudí je vo vesmíre! (PS tento náčrt používa na ovládanie toho, čo sa zobrazuje, webovú stránku)…..

Krok 6: Projekt 2: Zobrazenie predpovedí ISS,

Projekt 2: Zobrazenie predpovede ISS,
Projekt 2: Zobrazenie predpovede ISS,
Projekt 2: Zobrazenie predpovede ISS,
Projekt 2: Zobrazenie predpovede ISS,
Projekt 2: Zobrazenie predpovede ISS,
Projekt 2: Zobrazenie predpovede ISS,

Projekt 2: ISS Pass Prediction Display, tento projekt používa 2. jadro procesora. Zobrazí sa, ako blízko (v míľach) je ISS, kedy môžete očakávať ďalší prechod ISS vo vašom mieste (v čase UTC) a voliteľne aj to, koľko ľudí je vo vesmíre. Pretože veľa z týchto informácií sa nemení často, používame 2. jadro iba na kontrolu aktualizácií predpovedí povolení alebo počtu ľudí vo vesmíre každých 15 minút. Môžeme týmto spôsobom zabrániť príliš veľkému počtu volaní API na server. Tento projekt je trochu komplikovanejší, ale napriek tomu je veľmi ľahké ho vykonať.

Tento projekt je založený na jednom z mojich predchádzajúcich projektov, ktoré nájdete tu:

(Jednoduchý oznamovací systém ISS) V tom som použil ESP8266 s vstavanou obrazovkou OLED (D-Duino). Tento projekt väčšinou používa iba iný zobrazovací systém, rozšíril som ho a tak môžete prostredníctvom webovej stránky zmeniť to, čo chcete za behu vidieť. Začnime teda ….

Väčšina kreditu za jednoduché použitie patrí https://open-notify.org, ktorý má veľmi jednoduché a ľahko použiteľné API. Rozhranie API s otvoreným upozornením má tri veci, ktoré je možné zobraziť: polohu ISS v zemepisnej šírke a dĺžke, predávanie predpovedí na základe danej zemepisnej šírky a dĺžky. A nakoniec, koľko ľudí (a ich mená) je vo vesmíre.

Budeme musieť nainštalovať ďalšiu knižnicu - knižnicu ArduinoJson.

github.com/bblanchon/ArduinoJson

Potrebujeme aj TimeLib.h, ale nie som si istý, odkiaľ ho mám alebo či je zahrnutý v IDE (prepáčte) ….

Prečo teda predpovedať, kde bude ISS - ISS obsahuje rôzne amatérske rádiové zariadenia, a keď je „nad hlavou“, šunkový rádiotelegrafista môže nadviazať kontakt s ISS pomocou veľmi jednoduchých (a lacných) rádií. Dokonca som to urobil aj na mobile (jazda v aute). Na to, aby to fungovalo, naozaj nepotrebujete veľa. Jedna vec, ktorú potrebujete, je vedieť, kde to je. Pomáha nasmerovanie antény jej všeobecným smerom.

Riadky 57, 58, 59 predstavujú niektoré premenné displeja - ak sú nastavené na 1, zobrazí sa displej, ak sú nastavené na 0 (nula), neuvidíte displej. (Tieto premenné je možné nastaviť v náčrte alebo aktualizovať z webovej stránky, ktorú vytvorí Firebeetle - o tom neskôr).

int locDis = 1; // Zobrazenie polohy ISSint pasDis = 0; // Zobrazenie predpovedí povolení int pplDis = 1; // Zobrazenie ľudí vo vesmíre

locDis teda zobrazí polohu ISS v zemepisnej šírke a dĺžke - taktiež zobrazí, ako ďaleko je vzdialený.

pasDis získa predpovede povolení z open-notify.org a zobrazí ich.

a nakoniec pplDis zobrazí mená a počet ľudí vo vesmíre - to môže trvať veľmi dlho, nie

tiež sa často menia. (Môžete to zmeniť alebo nechať, je to úplne voliteľné)

Musíme tiež poznať svoju zemepisnú šírku a dĺžku a vložiť ju do náčrtu.

Nemusí to byť presná šírka/dĺžka, môže to byť centrum vášho mesta alebo len málo. Odtlačok nohy ISS je široký, kým je nad hlavou, a dajú sa pokryť stovky (alebo tisíce) míľ, takže byť trochu mimo svojej lat/long nebude prekážkou (väčšinu času), komunikácia na 500 míľ je celkom bežná.

Ak nepoznáte svoju zemepisnú šírku a dĺžku, táto webová stránka vám môže pomôcť.

www.latlong.net Blízko riadku 84 náčrtu uvidíte niečo také:

// Tu nájdete svoju zemepisnú šírku a dĺžku // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84,58558;

To by malo byť všetko, čo je potrebné zmeniť. Odošlite náčrt a pripojte Firebeetle k internetu - mali by ste vidieť polohu ISS uvedenú v zemepisných šírkach/dĺžkach a počet kilometrov od neho (pamätajte, že to bude približná vzdialenosť. ISS sa pohybuje veľmi rýchlo a keď je displej hotový, ISS sa posunula mnoho kilometrov od miesta, kde bola). Mali by ste tiež vidieť ľudí vo vesmíre. (AK ste nezmenili vyššie uvedenú premennú).

Druhé jadro ESP32 používame na prevádzkovanie webovej stránky, pričom nám táto stránka poskytuje kontrolu nad tým, čo je zobrazené na matici LED. Malo by byť celkom intuitívne, ako to funguje, jedna sekcia ukazuje, čo je zapnuté pre zobrazenie, iná sekcia má tlačidlá „áno“„nie“- kliknutím na „áno“to chcete vidieť, „nie“znamená nie neukáž to. Mali by ste tiež vidieť, že horná časť sa mení na základe tlačidiel.

Jediná vec, ktorá tu nie je taká suchá a suchá, je nájsť IP adresu Firebeetle - bohužiaľ som nemohol nájsť dobrý spôsob, ako to nájsť - tak som na zobrazenie použil sériovú konzolu IDE. it (9600 baudov).

Otvorte konzolu a mala by sa vám zobraziť adresa IP. (otvorte ho skôr, ako dostanete pripojenú správu) - mojou ďalšou možnosťou bolo zobraziť ho na LED Matrix hneď pri štarte - rozhodol som sa pre to, pretože sa možno nepozeráte na čas a bude vám to chýbať. Uvažoval som o odoslaní sms správy alebo o niečom, ale nakoniec som to zjednodušil. (Tiež som sa pokúsil priradiť statickú IP/bránu/atď., Nemôžem to správne spustiť pomocou správcu wifi - kód je stále v náčrte, takže ak to niekto zistí, dajte mi vedieť)

Skica tiež napreduje pred zabudovaním FreeRTOS do jadra ESP32 - Máme úlohu, ktorá prebieha zhruba každých 15 minút, a to je aktualizácia predpovedí priechodov a ľudí vo vesmíre. Ako som už povedal, ľudia vo vesmíre sa až tak veľmi nemenia, takže by sa to pravdepodobne dalo presunúť na inú úlohu a možno by sa bežalo raz za 12 hodín (alebo 6 hodín) - ale funguje to a veci sú jednoduché.

Pre tých, ktorí nevedia, FreeRTOS je spôsob, ako nechať jednojadrový mikroovládač vykonávať viacero úloh

Normálne musíte zahrnúť niekoľko knižníc a ďalšie veci, aby to fungovalo - je to však zabudované do jadra ESP32 - čo z ESP32 robí veľmi výkonné zariadenie. pre viac informácií o FreeRTOS

freertos.org/

VYLEPŠENIA: Existuje množstvo vecí, ktoré je možné na tomto projekte zlepšiť, a takmer každý deň myslím na niečo, čo by sa dalo urobiť trochu inak, alebo zmeniť alebo pridať.

A v adresári ďalších príkladov úložiska môžete vidieť niektoré z predchádzajúcich/rôznych vecí, o ktorých som premýšľal- niektoré z nich nefungovali, niektoré sa zmenili a niektoré boli zahrnuté v aktuálnom náčrte.

* V jednom momente som sa pokúsil pridať na displej neopixel, aby to bolo trochu viac ako môj predchádzajúci projekt - nikdy som to nespravil tak, aby to fungovalo správne (zistil som, že je to problém s energiou, o ktorom som neuvažoval). pracujeme na spôsobe, ako zlepšiť tento nápad *

Pri písaní tohto kroku som si myslel, že by som mohol pridať spôsob, ako aktualizovať vašu zemepisnú šírku a dĺžku - tak, že skicu nikdy nebude potrebné upravovať - porozmýšľam aj nad týmto.

Vylepšený spôsob získania adresy IP je niečo, čo by som chcel urobiť (aj na to ešte myslím)

Prejdeme k ďalšiemu projektu ….

Krok 7: Projekt 3: Jednoduchý znak pohybujúcej sa správy pomocou MQTT

Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT
Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT
Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT
Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT
Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT
Projekt 3: Jednoduchý pohyblivý znak správy pomocou MQTT

"loading =" lenivý "" loading = "lenivý"

Bonus časť 2 - Zobrazenie obrázkov
Bonus časť 2 - Zobrazenie obrázkov
Bonus časť 2 - Zobrazenie obrázkov
Bonus časť 2 - Zobrazenie obrázkov
Bonus časť 2 - Zobrazenie obrázkov
Bonus časť 2 - Zobrazenie obrázkov

Ukazuje sa teda, že knižnica môže zobrazovať obrázky - z nejakého dôvodu sa táto funkcia zdá byť "súkromná" - no, pre tieto ďalšie náčrty som knižnicu znova upravil a drawImage som urobil verejnou funkciou.

Tentokrát som upravenú knižnicu vložil do adresára skic, takže knižnicu nemusíte preinštalovať, skica sa najskôr pozrie na seba a potom sa pozrie do adresára knižnice, takže sme dobrí!

*** Plánujem odoslanie tejto zmeny na DFRobot, pretože je skutočne veľmi cool a úhľadné, keď môžem robiť tieto typy skíc ***

Skica LED Matrix Images, tu som sa najskôr pokúšal zistiť, čo knižnica chce a čo bude a nebude fungovať - s rôznym stupňom úspechu. Zistil som, že obrázky 8 x 8 fungujú najlepšie, ale môžete do práce zapojiť aj ostatných. Našiel som aj niekoľko online maticových editorov, niektoré fungujú lepšie ako ostatné.

xantorohara.github.io/led-matrix-editor/-zdá sa, že funguje v poriadku, vytvára obrázky 8x8 a chcete ich ako bajtové polia.

www.riyas.org/2013/12/online-led-matrix-fo… toto funguje dobre a má schopnosť vytvárať rozmery viac ako 8x8, zdá sa, že je displej otočený na boku s týmto displejom však. Zdá sa, že tu najlepšie fungujú bytové polia. Použil som to na vytvorenie „vesmírnych útočníkov“, ktoré sú vidieť na videu vyššie.

Ako to teda funguje, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

premenná poľa bajtov obrázka, šírka obrázka (8), výška obrázku (8), počiatočná pozícia na obrazovke x (0), y (0) zvyčajne a ofsetové číslo, čo nie som Som si 100% istý, čo to robí, takže som to väčšinou nechal na nule.

V náčrte LED maticových obrázkov - existuje 8 rôznych bajtových polí - a tiež tri rôzne metódy.

- ohňostroje sú prvé polia, úprimne povedané, nie som si istý, ako toto funguje - ale funguje.

ďalej je tu ústa - to v skutočnosti nefunguje celkom správne, ústa pre jedného kladú nesprávny smer a pokúšanie sa vykonať akékoľvek zmeny to len zhoršuje. (naučiť sa, čo funguje a čo nie, je polovica zábavy)

Nasleduje prvý marioImg - to je na displej príliš veľké a myslím si, že práve tu vstupuje do hry offset - použil som ho tu a môžete vidieť prednú stranu maria, ak zmeníte ofset na 1 vy ' Uvidím mu zadnú časť. (Nemôžem vám povedať, prečo alebo čo robí ofset. Zdá sa, že sa obraz posúva, ale prečo ho 2 posúva, aby ste videli pred seba a prečo 1 posúva druhý smer, nemôžem vám to povedať)

OBRAZY - bajtové pole je znak @, ktorý som urobil - vyzerá to, čo som vytvoril pomocou nástroja na

Pole bajtov pic1 tiež vyzerá ako to, čo som sa pokúšal vytvoriť, len je menšie, ako som sa pokúšal - čo to je, nemôžem povedať, ale všeobecne môžem povedať, že to vyzerá tak, ako som to robil v editore.

mario2Img - toto je moja vlastná verzia väčšieho Maria vyrobeného pre veľkosť obrazovky 8x8 - a ak tam nie je jeden alebo dva pixely (moja chyba, nie displeje), vyzerá to ako malý Mario (podobne).

invader1 a invader2 - obe moje nápady na vesmírneho útočníka. dopadli celkom dobre a umiestnením obrázkov na seba dokážem vytvoriť efekt pohybu nôh.

V adresári sú dva náčrty ohňostroja, každý je trochu iný a stojí za vyskúšanie.

V jednom sa po obrazovke pohybuje ohňostroj, takže trochu viac/rôzne animácie … v druhom sa zobrazujú dva ohňostroje súčasne

Existujú aj tri náčrty „útočníkov“, každý je trochu iný, v jednom sa útočník pohybuje po obrazovke a môžete sa pozrieť na to, ako som to urobil - (možno existujú aj lepšie spôsoby, ako to urobiť, neviem)

Ešte viac: V testovacom adresári úložiska je niekoľko skíc - väčšina z nich nefungovala tak, ako by som chcel, alebo išlo o nápady, ktoré by som chcel urobiť, ale nefungovali tak, ako by som chcel. Opustil som ich, pretože niekto dostal moje nápady *(Urobil som malý „štít“s pixelom WS2812 na použitie s displejom ISS, ale pripojil som ho k riadku 3v a jednoducho nemal dosť. výkon aj so spustenou LED Matrix, pixel fungoval dobre, bez LED Matrix thou, takže stále existuje niečo, čo by som s tým mohol urobiť)*

Existuje aj adresár s názvom „Ďalšie príklady“- to sú variácie niektorých náčrtov projektu, buď som niečo pridal alebo odstránil, alebo nejakým spôsobom zmenil. Pre tieto fungujú - jednoducho nie sú konečným projektom. Nechal som ich teda znova, niekto z nich môže získať niečo užitočné. (Možno)

Dúfam, že ste si tento návod užili rovnako ako ja tieto projekty:-)

Krok 11: atramenty…

Tento projekt bol sponzorovaný a podporovaný spoločnosťou DF Robot. Na produkty použite nižšie uvedené odkazy:

Firebeetle ESP32 -

Kryt Firebeetle LED 24x8 LED -

Moje úložisko kódu:

Ak považujete tento alebo ktorýkoľvek z mojich projektov za užitočný alebo príjemný, podporte ma. Všetko, čo dostanem, je kúpiť viac dielov a vytvoriť viac/lepších projektov.

www.patreon.com/kd8bxp

Knižnica NTPClient

ArduinoJson.h

Knižnica počasia ESP8266

Knižnica Json-Streaming-Parser

Odporúča: