Obsah:

4 projekty v 1 pomocí DFRobot FireBeetle ESP32 a LED maticového krytu: 11 kroků (s obrázky)
4 projekty v 1 pomocí DFRobot FireBeetle ESP32 a LED maticového krytu: 11 kroků (s obrázky)

Video: 4 projekty v 1 pomocí DFRobot FireBeetle ESP32 a LED maticového krytu: 11 kroků (s obrázky)

Video: 4 projekty v 1 pomocí DFRobot FireBeetle ESP32 a LED maticového krytu: 11 kroků (s obrázky)
Video: jak vyrobit tester elektronických součástek pomocí Arduino nano, dfrobot 2024, Červenec
Anonim
Image
Image
Nainstalujte pro projekty společné knihovny
Nainstalujte pro projekty společné knihovny

Přemýšlel jsem o tom, že u každého z těchto projektů udělám instruktáž - ale nakonec jsem se rozhodl, že opravdu největším rozdílem je software pro každý projekt. Myslel jsem, že je lepší udělat jeden velký instruktáž!

Hardware je pro každý projekt stejný a k programování zařízení ESP32 používáme Arduino IDE.

Jaký je tedy hardware: Veškerý hardware poskytli moji přátelé z DFRobot, mají velmi dobré návody a snadno se instalují základní desky. Mají také zavedený dobrý podpůrný systém a velmi rychlou přepravu do USA.

Kompletní informace o desce Firebeetle ESP32 a LED Matrix poskytla společnost DF Robot. Prezentované projekty a videa jsou moje vlastní.

Všechny tyto projekty používají mikrořadič IOT DFRobot FireBeetle ESP32 IOT

www.dfrobot.com/product-1590.html

Wiki podpory - pokyny k instalaci jádra desky najdete zde:

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

Také potřebujeme FireBeetle Kryty 24x8 LED Matrix (MODRÁ)

www.dfrobot.com/product-1595.html

Nelíbí se vám MODRÉ LED diody - mají také různé barvy.

ZELENÁ -

ČERVENÁ -

BÍLÁ -

ŽLUTÉ -

Potřebujete pouze jednu matici LED - barvu si vyberete, všechny fungují stejně.

Wiki podpory LED Matrix najdete zde:

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

Zde najdeme odkaz na knihovnu Arduino.

github.com/Chocho2017/FireBeetleLEDMatrix

Více o nich o něco později….

Něco, co je volitelné, ale možná praktické, je držák baterie MicroUSB 3xAA.

www.dfrobot.com/product-1130.html

To je tedy potřebný hardware - Jaké jsou 4 projekty -

Krok 1: Projekty

Image
Image

Projekt 1: Jedná se o jednoduché LED maticové NTP hodiny s buď vojenským zobrazením času, nebo zobrazením času AMPM, Tyto hodiny se připojí k časovému serveru NTP (časový server) a použijí offset, abyste získali místní čas. Zobrazí čas na LED matici. - Jsou to velmi jednoduché hodiny a velmi jednoduchý 1. projekt.

Projekt 2: ISS Pass Prediction Display, tento projekt využívá 2. jádro procesoru. Zobrazí se, jak blízko (v mílích) je ISS, kdy očekávat další průchod ISS ve vašem místě (v čase UTC) a případně kolik lidí je ve vesmíru. Protože se spousta těchto informací nemění často, používáme 2. jádro pouze ke kontrole aktualizací předpovědí průchodu nebo kolik lidí je ve vesmíru každých 15 minut. Tímto způsobem můžeme zabránit příliš velkému počtu volání API na server. Tento projekt je trochu komplikovanější, ale přesto docela snadno proveditelný.

Projekt 3: Jednoduché přesouvání zprávy pomocí MQTT, vrátil jsem se k projektu, který byl vytvořen pro mini desku ESP8266 D1, a je to matice 8x8 LED - myšlenka je připojit se k brokerovi MQTT, odeslat zprávu na téma, kterým je zařízení poslouchat - a zobrazit tuto zprávu. Je to docela snadné a velmi jednoduché, jakmile je vše nastaveno. A existuje několik kroků k nastavení klientského softwaru MQTT na stolním počítači. Po nastavení je MQTT velmi výkonný protokol pro zasílání zpráv, který používá mnoho zařízení IoT k odesílání a přijímání zpráv.

Projekt 4: Zobrazení meteorologické stanice - na základě mini meteorologické stanice ESP8266 D1 od společností Squix78 a ThingPulse. Shromažďujeme data z Wundergroundu a zobrazujeme aktuální podmínky a teplotu ve stupních Fahrenheita. K aktualizaci našich dat každých 10 minut používáme 2. jádro ESP32. Nastavení je také jednoduché.

MINIMÁLNÍ PŘÍKLADY BOUNS: Knihovna (a náčrty výše) používá písmo 8x4, knihovna také obsahuje písmo 5x4, které jsem použil pro většinu těchto mini příkladů BOUNS. U malého písma mohu zaznamenat několik problémů, zdá se, že způsobuje problémy při používání WIFI zařízení. To je něco, co bych chtěl prozkoumat více, ale měl jsem čas. Dalším problémem je, že se neposouvá, může se posouvat pouze větší písmo. Žádný z těchto příkladů tedy nepoužívá WIFI - pouze aktualizují displej a více o nich bude později.

Začněme…..

Krok 2: Nainstalujte desku DFRobot FireBeetle ESP32 do Arduino IDE

Odkážu vás tedy na DF Robot Wiki ohledně instalace jádra desky pro Arduino IDE.

Je to docela snadné dělat s moderním IDE (1.8.x nebo lepší).

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

Zjistil jsem, že knihovna WiFi zabudovaná v Arduino IDE způsobuje problémy (PS jakákoli jiná knihovna WiFi, která může být nainstalována ve vašem adresáři knihovny, může nebo nemusí způsobovat problémy). Jediný způsob (nebo alespoň nejjednodušší způsob), který jsem našel k vyřešení problému, je odebrat knihovnu WiFi z adresáře IDE. Bohužel neexistuje dobrý způsob, jak vám říci, kde je nainstalován - záleží na tom, jak je nainstalováno IDE a na jakém operačním systému používáte.

To, co jsem udělal, bylo nalezeno knihovně WiFi, která způsobuje problémy, a jednoduše přesuňte adresář WiFi adresář na plochu … a restartujte IDE. Tímto způsobem si můžete ponechat knihovnu pro případ, že ji budete potřebovat pro desky Arduino WIFI.

90% problémů, které jsem viděl, souvisí s výše uvedeným problémem. Pokud se vám hromadí mnoho chyb při kompilaci, spojených s používáním WiFi z adresáře Arduino IDE nebo z adresáře Arduino Library, máte tento problém.

Můj 2. problém je někdy v tom, že se načtení skici nepodaří nahrát - v takovém případě musím znovu stisknout tlačítko pro odeslání a funguje to.

A nakonec, pokud máte otevřenou sériovou konzolu a poté ji zavřete - FireBeetle zamrzne.

Vím, že DF Robot aktivně pracuje na jádru desky, a během krátké doby, co mám desku, vydali nové jádro. Bohužel to nevyřešilo problém s WiFi, což je můj největší problém.

* Espressif má „generického“správce jádra, který lze nainstalovat, jádro obsahuje desku FireBeetle ESP32, ale měl jsem problém s číslováním pinů. Zajímavostí je, že knihovna WiFi pracuje s integrovanou knihovnou WiFi - takže vím, že řešení tohoto problému je hned za rohem.

Pokud byste chtěli vyzkoušet jádra Espressif, více informací naleznete zde:

github.com/espressif/arduino-esp32

Osobně se mi líbí, jak funguje jádro DF-Robot, i když mám několik problémů.

** POZNÁMKA: Používám LinuxMint 18, který je založen na Ubuntu 16.04 Myslím, že jsem to nezkoušel na žádném jiném počítači, ale domnívám se, že problém je přítomen u všech operačních systémů na základě některých internetových vyhledávání, která jsem provedl. **

Krok 3: Nainstalujte pro projekty společné knihovny

Nainstalujte pro projekty společné knihovny
Nainstalujte pro projekty společné knihovny

Všechny tyto projekty používají několik běžných knihoven, takže je nyní snazší provést tento krok.

V závislosti na knihovně ji najdete ve správci knihoven - což je zdaleka nejjednodušší způsob instalace knihovny.

Dalším běžným způsobem je instalace pomocí souboru zip, který funguje stejně. Ale obecně používám metodu ruční instalace. Na webových stránkách Arduino existuje dobrý návod ke třem metodám.

www.arduino.cc/en/guide/libraries

U těchto knihoven bych doporučil ruční metodu - protože existuje několik různých knihoven se stejným názvem, pomocí správce knihoven můžete skončit se špatnou.

Všechny tyto projekty používají správce WiFi, aby bylo snadné se připojit k vaší síti Wi -Fi - rozhodl jsem se to udělat, takže pokud potřebujete svůj projekt přesunout, nemusíte přeprogramovat desku. To je něco, co používám pro desky ESP8266 a funguje to dobře - není to dokonalé. Štěstí pro použití bylo přeneseno do knihovny ESP32 uživatelem github s názvem bbx10. (Tento manažer by měl také pracovat s deskami ESP8266)

Aby to fungovalo, musíme nainstalovat tři knihovny.

WiFiManager -

Webový server -

A nakonec server DNS -

Společná pro všechny skici je také knihovna DF Robot DFRobot_HT1632C pro LED Matrix.

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

Knihovnu najdete zde (Opět bych doporučil metodu ruční instalace)

github.com/Chocho2017/FireBeetleLEDMatrix

Zvláštní poznámka: v mém úložišti github - mám několik mírně upravených knihoven DFRobot_HT1632C

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

Úprava je pro menší písmo a používá se pouze u některých bonusových příkladů. Můžete použít upravenou knihovnu a nemělo by to způsobovat žádné problémy. K dispozici je také mírně upravená knihovna (Připojená k některým skicám jako záložky), která umí bitmapové obrázky.

Pokud se rozhodnete použít mírně upravenou verzi, musíte přejmenovat adresář „Upravená knihovna“na FireBeetleLEDMatrix a přesunout tuto složku do adresáře knihovny Arduino. Pro tyto projekty tuto verzi nemusíte používat, je to nutné, pokud si chcete vyzkoušet některá menší písma z bonusových příkladů.

To jsou běžné knihovny - pro každý projekt budeme instalovat některé konkrétní knihovny.

Přejděme k LED Matrixu….

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 následovat spolu s výukovým programem DF Robot pro LED Matrix

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

Úvod: Tento maticový displej 24 × 8 LED je speciálně navržen pro řadu FireBeetle. Podporuje režim nízké spotřeby energie a rolovací displej. S vysoce výkonným LED čipem HT1632C má každá LED nezávislý registr, což usnadňuje samostatné řízení. Integruje 256KHz RC hodiny, pouze 5uA v režimu nízké spotřeby, podpora nastavení jasu PWM v 16 stupních. Tento produkt také funguje s jiným mikrokontrolérem Arduino, jako je Arduino UNO.

Specifikace:

  • Provozní napětí: 3,3 ~ 5VLED
  • Barva: Jednobarevná (bílá/modrá/žlutá/červená/zelená)
  • Čip disku: HT1632C
  • Pracovní proud: 6 ~ 100mA
  • Nízká spotřeba energie: 5uARC
  • takt: 256KHz
  • Chip Select (CS): D2, D3, D4, D5 volitelné
  • Podpora rolovacího displeje

Výchozí kódy PIN:

  1. DATAD6
  2. WRD7 (obecně se nepoužívá)
  3. Volitelné CSD2, D3, D4, D5 (výchozí nastavení D2)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo baterie

(Všechny tyto projekty používají pro výběrový pin D2, to lze snadno změnit podle potřeby.)

Na zadní straně LED Matrix uvidíte 4 malé přepínače, ujistěte se, že jste vybrali pouze jeden z pinů CS. Tyto malé přepínače slouží k výběru CS Pin a výchozí je D2.

DF Robot WIKI má nějaký ukázkový kód, tento kód je také v příkladech pro knihovnu. (Věřím)

Další poznámka: použijte pro své piny čísla Dx - jinak budou čísla pinů čísla/názvy pinů IO

A to vám může způsobit určité problémy.

Nastavení bodu:

X je 0 až 23 (nebo pokud o tom uvažujete jako o tabulce, jsou to sloupce).

Y je 0 až 7 (nebo pokud o tom uvažujete jako o tabulce, jsou to řádky).

Knihovna poskytuje funkci set point.

display.setPoint (x, y) toto nastaví kurzor na toto místo, kde nyní můžete vytisknout zprávu.

display.print („Hello World“, 40); // to způsobí, že se na displeji zobrazí „Hello World“počínaje bodem x, y a rolováním mimo obrazovku.

Existuje také setPixel (x, y) a clrPixel (x, y) - setPixel rozsvítí jednu LED v místě x, y a clrPixel vypne LED v místě x, y.

Existuje několik dalších věcí, které tato knihovna umí - a většina z nich je obsažena v příkladech.

(Doporučil bych spustit a upravit příklady, abyste zjistili, co dokáže).

* Jedna věc, která vypadá, že chybí, je kreslení bitmap - knihovna to ve skutečnosti umí, ale z nějakého důvodu je to soukromá funkce knihovny. Mírně upravenou verzi knihovny najdete v některých mých bonusových příkladech

** Další věc, která obsahuje sadu písem 5x4, je hezké mít menší písmo - v knihovně je to komentováno. Odkomentoval jsem to a nechal to fungovat, ale všiml jsem si několika problémů - největšího, co se neposouvá. A všiml jsem si, že to vypadá, že to způsobuje problémy buď s wifi, nebo s jinou knihovnou, kterou jsem chtěl použít.

Jedna z upravených knihoven, které zahrnuji, však používá písmo 5x4.

Přejděme k projektům ….

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

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

Projekt 1: Jedná se o jednoduché LED maticové NTP hodiny s buď vojenským zobrazením času, nebo zobrazením času AMPM, Tyto hodiny se připojí k časovému serveru NTP (časový server) a použijí offset, abyste získali místní čas. Zobrazí čas na LED matici. - Jsou to velmi jednoduché hodiny a velmi jednoduchý 1. projekt.

Než začneme s tímto jednoduchým projektem, může být dobré vědět, co je NTP -

NTP je internetový protokol používaný k synchronizaci hodin počítačů s určitým časovým odkazem. Je to standardní protokol. NTP znamená Network Time Protocol.

NTP používá UTC jako referenční čas (UTC je Universal Time Coordinated), který se vyvinul z GMT (Greenwich Mean Time) a v některých kruzích se nazývá Zulu Time (Military). UTC je založen na kvantové rezonanci atomu cesia.

NTP je odolný vůči chybám a je vysoce škálovatelný, protokol je vysoce přesný a používá rozlišení menší než nanosekundy.

*

Hodiny UTC nejsou pro většinu lidí příliš užitečné, takže musíme upravit hodiny na místní čas. Naštěstí to můžeme udělat docela snadno. Začněme tedy s těmito jednoduchými hodinami NTP….

Nejprve musíme nainstalovat knihovnu, která usnadňuje komunikaci se servery NTP.

github.com/arduino-libraries/NTPClient (tato knihovna je pravděpodobně ve správci knihovny)

Přeskočili jste krok 3 - a nejste si jisti, jak instalovat knihovny (?) Je lepší vrátit se a přečíst si krok 3:-)

Musíte jít na tento web a zadat nejbližší město, které je ve vašem časovém pásmu.

www.epochconverter.com/timezones

Když stisknete Enter, zobrazí se „Výsledky převodu“a ve výsledcích získáte svůj posun (rozdíl oproti GMT/UTC) během několika sekund (pro mě je to –14400)

V náčrtu dfrobot_firebeetle_led_matrix_ntp_clock na řádku 66 uvidíte:

#define TIMEOFFSET -14400 // Najděte své časové pásmo mimo sadu Zde https://www.epochconverter.com/timezones OFF Nastaveno v sekundách#definujte AMPM 1 // 1 = AM PM čas, 0 = VOJENSKÝ/24 HR čas

nahraďte -14400 svým ofsetem. V dalším řádku uvidíte AMPM 1 - to způsobí, že hodiny budou zobrazovat čas v dopoledních/odpoledních hodinách - pokud jej chcete vidět za 24 hodin, udělejte z něj nulu.

Poté nahrajte skicu na svoji tabuli, připojte se k přístupovému bodu (správce wifi) a zadejte podrobnosti o vaší wifi. POKUD jste to již udělali, měli byste vidět „připojené“posouvání po obrazovce a o několik sekund později byste měli vidět čas.

To je pro tento projekt vše - jednoduché a snadno použitelné ….

(Možná vylepšení: Zobrazení měsíce, dne a roku, nastavení bzučáku a alarmů - obecně ovládejte to, co vidíte prostřednictvím webové stránky. Tyto nápady by vyžadovaly velké přepsání aktuálního jednoduchého náčrtu)

Připraveni na další jednoduchý projekt - Ukažte, kde je ISS - Předejte předpovědi a kolik lidí je ve vesmíru! (PS tento náčrt používá webovou stránku k ovládání toho, co je zobrazeno)…..

Krok 6: Projekt 2: ISS Pass Prediction Display,

Project 2: ISS Pass Prediction Display,
Project 2: ISS Pass Prediction Display,
Project 2: ISS Pass Prediction Display,
Project 2: ISS Pass Prediction Display,
Project 2: ISS Pass Prediction Display,
Project 2: ISS Pass Prediction Display,

Projekt 2: ISS Pass Prediction Display, tento projekt využívá 2. jádro procesoru. Zobrazí se, jak blízko (v mílích) je ISS, kdy očekávat další průchod ISS ve vašem místě (v čase UTC) a případně kolik lidí je ve vesmíru. Protože se spousta těchto informací často nemění, používáme 2. jádro pouze ke kontrole aktualizací předpovědí průchodu nebo počtu lidí ve vesmíru každých 15 minut. Tímto způsobem můžeme zabránit příliš velkému počtu volání API na server. Tento projekt je trochu komplikovanější, ale přesto docela snadno proveditelný.

Tento projekt je založen na jednom z mých dřívějších projektů, které najdete zde:

(Jednoduchý systém oznámení ISS) V tom jsem použil ESP8266 s integrovanou obrazovkou OLED (D-Duino). Tento projekt z velké části používá jiný zobrazovací systém, který jsem rozšířil, takže můžete prostřednictvím webové stránky změnit to, co chcete vidět za běhu. Pojďme tedy začít….

Většina kreditu za snadné použití jde na https://open-notify.org, který má velmi jednoduché a snadno použitelné API. Otevřené oznámení API má tři věci, které lze zobrazit, umístění ISS v zeměpisné šířce a délce, předávání předpovědí na základě dané zeměpisné šířky a délky. A konečně, kolik lidí (a jejich jména) je ve vesmíru.

Budeme muset nainstalovat další knihovnu - knihovnu ArduinoJson.

github.com/bblanchon/ArduinoJson

Potřebujeme také TimeLib.h, ale nejsem si jistý, odkud jsem ho vzal, nebo zda je zahrnut v IDE (omlouvám se)….

Proč tedy předpovídat, kde bude ISS - ISS obsahuje různá amatérská rádiová zařízení, a když je to „přes hlavu“, šunkový radista může navázat kontakt s ISS pomocí velmi jednoduchých (a levných) rádií. Dokonce jsem to udělal i na mobilu (řízení v autě). K tomu, aby to fungovalo, opravdu nepotřebujete mnoho. Jediná věc, kterou potřebujete, je vědět, kde to je. A nasměrování antény jejím obecným směrem pomáhá.

Řádky 57, 58, 59 jsou některé proměnné zobrazení - pokud jsou nastaveny na 1, uvidíte displej, pokud jsou nastaveny na 0 (nula), neuvidíte displej. (Tyto proměnné lze nastavit v náčrtu nebo aktualizovat z webové stránky, kterou vytvoří firebeetle - o tom později).

int locDis = 1; // Zobrazení umístění ISSint pasDis = 0; // Zobrazení předpovědí průchodu int pplDis = 1; // Zobrazení lidí ve vesmíru

locDis tedy zobrazí polohu ISS v zeměpisné šířce a délce - také zobrazí, jak daleko je.

pasDis získá předpovědi průchodů z open-notify.org a zobrazí je.

a nakonec pplDis zobrazí jména a kolik lidí je ve vesmíru - to může trvat velmi dlouho, ne

také často měnit. (můžete je změnit nebo je nechat, je to zcela volitelné)

Musíme také znát svou zeměpisnou šířku a délku a dát ji do náčrtu.

Nemusí to být přesné zeměpisné délky/délky, může to být centrum vašeho města nebo jen málo. Otisk nohou ISS je široký, i když je nad hlavou, a lze pokrýt stovky (nebo tisíce) mil, takže být trochu mimo vaši lat/long nebude překážkou (většinu času), komunikace přes 500 mil je docela běžná.

Pokud neznáte svou zeměpisnou šířku a délku, může vám tento web pomoci.

www.latlong.net Blízko řádku 84 náčrtu uvidíte něco takového:

// Najděte svou zeměpisnou šířku a délku zde // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84,58558;

To by mělo být vše, co je třeba změnit. Nahrajte skicu a připojte Firebeetle k internetu - a měli byste vidět polohu ISS uvedenou v lat/long a kolik mil je to daleko (pamatujte, že to bude přibližná vzdálenost. ISS se pohybuje velmi rychle a v době, kdy je displej dokončen, se ISS přesunula o mnoho mil od místa, kde byla). Měli byste také vidět lidi ve vesmíru. (Pokud jste proměnnou výše nezměnili).

Druhé jádro ESP32 používáme ke spouštění webové stránky, přičemž tato stránka nám dává kontrolu nad tím, co je zobrazeno na matici LED. Mělo by být docela intuitivní, jak to funguje, jedna sekce ukazuje, co je zapnuto pro zobrazení, další sekce má tlačítka "ano" "ne" - kliknutím na "ano" to chcete vidět, "ne" znamená ne neukaž to. Měli byste také vidět, že horní část se mění na základě tlačítek.

Jediná věc, která zde není tak ostrá a suchá, je zjistit IP adresu Firebeetle - bohužel jsem nemohl přijít na dobrý způsob, jak ji najít - tak jsem použil sériovou konzolu IDE k zobrazení to (9600 baudů).

Otevřete konzolu a měla by se vám zobrazit IP adresa. (otevřete ji, než dostanete připojenou zprávu) - moje další volba byla zobrazit ji na LED Matrixu hned při spuštění - rozhodl jsem se proti tomu, protože se možná nedíváte na čas a bude vám to chybět. Zvažoval jsem odeslání sms zprávy, nebo tak něco, ale nakonec jsem to zkrátil. (Také jsem se pokusil přiřadit statickou IP/bránu/atd., Nemohl jsem to správně spustit pomocí správce wifi - kód je stále v náčrtu, takže pokud to někdo zjistí, dejte mi vědět)

Náčrt také předbírá vestavbu FreeRTOS do jádra ESP32 - Máme úkol, který běží zhruba každých 15 minut, a to je aktualizace předpovědí průchodu a také lidí ve vesmíru. Jak jsem řekl dříve, lidé ve vesmíru se tolik nemění, takže by to pravděpodobně mohlo být přesunuto na další úkol a možná spuštěno jednou za 12 hodin (nebo 6 hodin) - ale funguje to a udržuje věci jednoduché.

Pro ty, kteří nevědí, FreeRTOS je způsob, jak nechat jednojádrový mikrořadič spouštět více úkolů

Normálně musíte zahrnout některé knihovny a další věci, aby to fungovalo - nicméně je to zabudováno do jádra pro ESP32 - což z ESP32 dělá velmi výkonné zařízení. pro více informací o FreeRTOS

freertos.org/

VYLEPŠENÍ: existuje řada věcí, které lze na tomto projektu zlepšit, a téměř každý den přemýšlím o něčem, co by se dalo udělat trochu jinak, nebo změnit nebo přidat.

A v adresáři více příkladů úložiště můžete vidět některé z dřívějších/různých věcí, o kterých jsem přemýšlel- některé z nich nefungovaly, některé se změnily a některé byly zahrnuty do aktuálního náčrtu.

* V jednu chvíli jsem se pokusil přidat na displej neopixel, aby to bylo trochu více jako můj předchozí projekt - nikdy jsem to nedostal tak, aby to fungovalo úplně správně (zjistil jsem, že jde o problém s napájením, o kterém jsem neuvažoval) pracujeme na způsobu, jak tuto myšlenku vylepšit *

Při psaní tohoto kroku mě napadlo, že bych mohl přidat způsob, jak na web aktualizovat vaši zeměpisnou šířku a délku - tak, že by skica nikdy nemusela být upravována - o tom se také trochu zamyslím.

Vylepšený způsob, jak získat IP adresu, je něco, co bych chtěl udělat (stále na to myslím)

Přejděme k našemu dalšímu projektu ….

Krok 7: Projekt 3: Jednoduché přesouvání zprávy pomocí MQTT

Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT
Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT
Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT
Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT
Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT
Projekt 3: Jednoduchý pohybující se znak zprávy pomocí MQTT

"loading =" líný "" načítání = "líný"

Bonus Část 2 - Zobrazení obrázků
Bonus Část 2 - Zobrazení obrázků
Bonus Část 2 - Zobrazení obrázků
Bonus Část 2 - Zobrazení obrázků
Bonus Část 2 - Zobrazení obrázků
Bonus Část 2 - Zobrazení obrázků

Ukázalo se tedy, že knihovna může zobrazovat obrázky - z nějakého důvodu se tato funkce jeví jako "soukromá" - no, pro tyto další skici jsem knihovnu ještě jednou upravil a drawImage jsem vytvořil jako veřejnou funkci.

Tentokrát jsem upravenou knihovnu vložil do adresáře skic, takže knihovnu nemusíte znovu instalovat, skica se nejprve podívá na sebe, pak se podívá do adresáře knihovny, takže jsme dobří!

*** Mám v plánu odeslat tuto změnu do DFRobot, protože je to opravdu velmi cool a trochu úhledné, že mohu dělat tyto typy skic ***

Skica LED Matrix Images, zde jsem se nejprve pokoušel zjistit, co knihovna chce a co bude a nebude fungovat - s různou mírou úspěchu. Zjistil jsem, že obrázky 8x8 fungují nejlépe, ale můžete nechat pracovat i ostatní. Našel jsem také několik online maticových editorů, některé fungují lépe než jiné.

xantorohara.github.io/led-matrix-editor/-zdá se, že funguje dobře, vytváří obrázky 8x8 a chcete je jako bajtová pole.

www.riyas.org/2013/12/online-led-matrix-fo… toto funguje dobře a má schopnost vytvářet větší než 8x8 displeje, zdá se, že je displej otočen na své straně s tímto displejem nicméně. Zdá se, že zde nejlépe fungují bytová pole. Použil jsem to k vytvoření "vesmírných útočníků", které jsou vidět na videu výše.

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

proměnná pole bajtů obrázku, šířka obrázku (8), výška obrázku (8), počáteční pozice na obrazovce x (0), y (0) obvykle a ofsetové číslo, což nejsem Jsem si 100% jistý, co to dělá, takže jsem to většinu času nechal na nule.

V náčrtu LED Matrix Images - existuje 8 různých bajtových polí - se třemi různými metodami.

- ohňostroje jsou první pole, upřímně si nejsem jistý, jak toto funguje - ale funguje.

další je tu ústa - to opravdu nefunguje úplně správně, ústa pro jednoho pokládají špatnou cestu a pokus o provedení jakýchkoli změn to jen zhoršuje. (naučit se, co funguje a co ne, je polovina zábavy)

Následuje první marioImg - to je na displej příliš velké a myslím, že právě zde se hraje offset - použil jsem ho zde a můžete vidět přední část maria, pokud změníte offset na 1 vás ' Uvidím jeho záda. (ty ti opravdu nedokážu říct, proč nebo co dělá ofset. Zdá se, že to posune obraz, ale proč to 2 posune, abys viděl před sebe a proč 1 mění jiný směr, to ti nemohu říct)

OBRÁZKY - bajtové pole je znak @, který jsem vytvořil - vypadá to, co jsem vytvořil pomocí nástroje na

Pole pic1 byte také vypadá jako to, co jsem se pokoušel vytvořit, jen je menší, než jsem se snažil - co to je, nemohu říci, ale obecně mohu říci, že to vypadá, jako bych dělal v editoru.

mario2Img - toto je moje vlastní verze většího Mario vytvořeného pro velikost obrazovky 8x8 - a ty tam máš jeden nebo dva pixely na místě (moje chyba, ne displeje), vypadá to jako malý Mario (sorta).

invader1 a invader2 - oba můj nápad na vesmírného útočníka. dopadly docela dobře, a tím, že jsem ty obrázky položil na sebe, jsem schopen vytvořit efekt pohybu nohou.

V adresáři jsou dva náčrty ohňostrojů, každý je trochu jiný a stojí za vyzkoušení.

Na jednom se po obrazovce pohybuje ohňostroj, takže trochu více/různé animace … u druhého se zobrazují dva ohňostroje současně

K dispozici jsou také tři náčrtky „útočníků“, každý je trochu jiný, na jednom se útočník pohybuje po obrazovce a můžete se podívat, jak jsem to udělal - (možná existují lepší způsoby, jak to udělat, nevím)

Ještě více: V testovacím adresáři úložiště je několik skic - většina z nich nefungovala tak, jak jsem chtěl, nebo to byly nápady, které chci dělat, ale nefungovaly tak, jak jsem chtěl. Opustil jsem je, protože někdo dostal nějaké nápady *(Udělal jsem malý „štít“s pixelem WS2812 pro použití s displejem ISS, ale připojil jsem ho k 3v linii a prostě jsem neměl dost napájení s běžící LED Matrix také, pixel fungoval dobře, bez LED Matrix thou, takže je stále něco, co bych s tím mohl udělat)*

Existuje také adresář s názvem „Další příklady“- to jsou variace na některé náčrty projektu, buď jsem něco přidal nebo odstranil, nebo nějakým způsobem změnil. Pro ty fungují - prostě nejsou konečným projektem. Opustil jsem je tedy znovu, někdo z nich mohl získat něco užitečného. (Možná)

Doufám, že se vám tento návod líbil stejně jako mě bavilo dělat tyto projekty:-)

Krok 11: Inkousty…

Tento projekt byl sponzorován a podporován společností DF Robot. U produktů použijte níže uvedené odkazy:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

Úložiště mého kódu:

Pokud vám tento nebo některý z mých projektů připadá užitečný nebo příjemný, podpořte mě. Cokoli, co dostanu, jde koupit více dílů a vytvořit více/lepších projektů.

www.patreon.com/kd8bxp

Knihovna NTPClient

ArduinoJson.h

Knihovna počasí ESP8266

Knihovna analyzátoru Json-Streaming-Parser

Doporučuje: