Tartalomjegyzék:
- 1. lépés: A projektek
- 2. lépés: Telepítse a DFRobot FireBeetle ESP32 kártyát az Arduino IDE -be
- 3. lépés: Telepítse a közös könyvtárakat a projektekhez
- 4. lépés: A 24x8 LED mátrix burkolat
- 5. lépés: 1. projekt: Egyszerű LED mátrix NTP óra, akár katonai időkijelzővel, akár AMPM kijelzővel
- 6. lépés: 2. projekt: ISS Pass Prediction Display,
- 7. lépés: 3. projekt: Egy egyszerű mozgó üzenetjel az MQTT használatával
- 11. lépés: Bukások…
Videó: 4 projekt egyben a DFRobot FireBeetle ESP32 és LED mátrixfedél használatával: 11 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
Arra gondoltam, hogy minden ilyen projekthez megtaníthatót teszek - de végül úgy döntöttem, hogy valóban a legnagyobb különbség az egyes projektek szoftvere, és úgy gondoltam, jobb, ha csak egy nagy oktathatót készítek!
A hardver minden projekt esetében ugyanaz, és az Arduino IDE -t használjuk az ESP32 eszköz programozásához.
Tehát mi a hardver: Az összes hardvert a DFRobot -os barátaim adták, nagyon jó oktatóanyagokkal rendelkeznek, és ehhez könnyen telepíthetők az alaplapok. Ezenkívül jó támogatási rendszerrel kell rendelkeznie, és meglehetősen gyors szállítás az Egyesült Államokba.
A Firebeetle ESP32 táblát és a LED -mátrixot a DF Robot biztosította, a bemutatott projektek és a videók a sajátjaim.
Ezek a projektek mind DFRobot FireBeetle ESP32 IOT mikrokontrollert használnak
www.dfrobot.com/product-1590.html
A támogatási wiki - az alaplap telepítési utasításaival itt található:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Szükségünk van egy FireBeetle borítóra is 24x8 LED mátrix (KÉK)
www.dfrobot.com/product-1595.html
Nem szeretik a KÉK LED -eket - különböző színűek is.
ZÖLD -
PIROS -
FEHÉR -
SÁRGA -
Csak egy LED -mátrixra van szüksége - a színt választja, mindegyik ugyanúgy működik.
A LED Matrix támogató wiki itt található:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Itt találunk egy linket az Arduino könyvtárhoz.
github.com/Chocho2017/FireBeetleLEDMatrix
Ezekről bővebben kicsit később….
Egy opcionális, de talán hasznos eszköz a MicroUSB 3xAA elemtartó.
www.dfrobot.com/product-1130.html
Tehát ez a hardver szükséges - Melyek a 4 projekt -
1. lépés: A projektek
1. projekt: Egy egyszerű LED mátrix NTP óra, akár katonai idő, akár AMPM időkijelzővel, Ez az óra egy NTP -hez (időkiszolgálóhoz) csatlakozik, és megragadja az időt, és alkalmazza az off beállítást, hogy helyi időt kapjon. Megjeleníti az időt a LED mátrixon. - Ez egy nagyon egyszerű óra, és nagyon egyszerű 1. projekt.
2. projekt: ISS Pass Prediction Display, ez a projekt a processzor 2. magját használja. Megjeleníti, hogy milyen közel van (mérföldben) az ISS, mikor várható a következő ISS áthaladás az Ön tartózkodási helyén (UTC idő szerint), és opcionálisan hány ember tartózkodik az űrben. Mivel sok ilyen információ nem változik gyakran, a 2. magot használjuk arra, hogy csak a jóslat -előrejelzések frissítéseit, vagy azt nézzük meg, hány ember tartózkodik az űrben 15 percenként. Így megakadályozhatjuk a túl sok API -hívást a szerverre. Ez a projekt egy kicsit bonyolultabb, de mégis nagyon könnyen kivitelezhető.
3. projekt: Egy egyszerű mozgó üzenetjelzés az MQTT segítségével hallgatni - és megjeleníteni az üzenetet. Ez nagyon egyszerű, és nagyon egyszerű megtenni, ha minden be van állítva. Az asztali számítógépen néhány lépésben beállíthatja az MQTT kliensszoftvert. A beállítás után az MQTT nagyon hatékony üzenetküldési protokoll, amelyet sok IoT -eszköz használ üzenetek küldésére és fogadására.
4. projekt: Meteorológiai állomás kijelző - a Squix78 és a ThingPulse által készített ESP8266 D1 mini időjárásállomás alapján. Az adatokat a Wundergroundból nyerjük, és megjelenítjük az aktuális körülményeket és a hőmérsékletet Fahrenheit fokban. Az ESP32 második magját használjuk, hogy 10 percenként frissítsük adatainkat. A beállítás is egyszerű.
BOUNS MINI PÉLDÁK: A könyvtár (és a fenti vázlatok) 8x4 -es betűtípust használ, a könyvtár tartalmaz egy 5x4 -es betűtípust is, amelyet a legtöbb BOUNS mini példánál használtam. Van néhány probléma, amelyet megjegyezhetek a kis betűtípussal, az egyik úgy tűnik, hogy problémákat okoz, amikor az eszköz WIFI -jét használja. Ezt szeretném még felfedezni, de volt időm. A másik probléma, hogy nem görget, csak a nagyobb betű tud görgetni. Tehát ezen példák egyike sem használja a WIFI -t - csak frissítik a kijelzőt, és ezekről később lesz szó.
Lássunk neki…..
2. lépés: Telepítse a DFRobot FireBeetle ESP32 kártyát az Arduino IDE -be
Tehát a DF Robot Wikire hivatkozom az Arduino IDE alaplapjának telepítéséről.
A modern IDE -vel (1.8.x vagy jobb) nagyon könnyű megtenni.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Azt tapasztaltam, hogy az Arduino IDE -be épített WiFi könyvtár problémákat okoz (PS bármely más WiFi könyvtár, amely esetleg a könyvtár könyvtárába van telepítve, problémákat okozhat, vagy nem). A probléma megoldásának egyetlen módja (vagy legalábbis a legegyszerűbb módja) a WiFi könyvtár eltávolítása az IDE könyvtárból. Sajnos nincs jó módja annak, hogy megmondjuk, hol telepítették - az IDE telepítésének módjától és a használt operációs rendszertől függ.
Amit tettem, megtaláltam a problémát okozó WiFi könyvtárat, és csak helyezze át a WiFi könyvtárat az asztalára… és indítsa újra az IDE -t. Így megőrizheti a könyvtárat arra az esetre, ha szüksége lenne rá az Arduino WIFI táblákhoz.
A látott problémák 90% -a a fenti problémához kapcsolódik. Ha sok fordítási hibát észlel a WiFi használatával kapcsolatban az Arduino IDE vagy az Arduino Library könyvtárból, akkor ez a probléma.
A második problémám az, hogy a vázlatfeltöltés néha nem sikerül - ilyenkor csak újra meg kell nyomnom a feltöltés gombot, és működik.
És végül, ha a soros konzol nyitva van, majd zárja be - a FireBeetle lefagy.
Tudom, hogy a DF Robot aktívan dolgozik az alaplapon, és csak az alatt a rövid idő alatt, amikor megkaptam a táblát, kiadtak egy új magot. Sajnos nem oldotta meg a WiFi problémát, ami a legnagyobb problémám.
* Az Espressif rendelkezik egy „általános” magkezelővel, amely telepíthető, a mag tartalmazza a FireBeetle ESP32 táblát, de problémám volt a csapok számozásával. Az érdekes dolog itt az, hogy a WiFi könyvtár a beépített WiFi könyvtárral működik - tehát tudom, hogy van megoldás erre a kérdésre a sarkon.
Ha szeretné kipróbálni az Espressif magokat, további információkat itt talál:
github.com/espressif/arduino-esp32
Én személy szerint szeretem a DF-Robot mag működését, még akkor is, ha néhány problémám van.
** MEGJEGYZÉS: LinuxMint 18 -at használok, amely Ubuntu 16.04 alapú, azt hiszem, ezt még nem próbáltam más gépen, de úgy gondolom, hogy a probléma az összes operációs rendszerre vonatkozik, néhány internetes keresés alapján. **
3. lépés: Telepítse a közös könyvtárakat a projektekhez
Mindezek a projektek néhány közös könyvtárat használnak, így most könnyebb elvégezni ezt a lépést.
A könyvtáratól függően megtalálhatja a könyvtárkezelőben - ez messze a legegyszerűbb módja a könyvtár telepítésének.
Egy másik gyakori módszer a telepítés zip fájlon keresztül, amely ugyanúgy működik. De általában a manuális telepítési módszert használom. Az Arduino webhelyen van egy jó oktatóanyag a három módszerről.
www.arduino.cc/en/guide/libraries
Ezekhez a könyvtárakhoz a manuális módszert javasolnám - mivel néhány különböző könyvtár létezik azonos nevű könyvtárkezelővel, a végén rossz lehet.
Mindezek a projektek WiFi -kezelőt használnak, hogy megkönnyítsék a wifi -hez való csatlakozást - úgy döntöttem, hogy ezt megteszem, így ha át kell helyeznie a projektet, nem kell újraprogramoznia a táblát. Ezt használom az ESP8266 táblákhoz, és jól működik - nem tökéletes. A bbx10 nevű github -felhasználó áthelyezte a könyvtárat az ESP32 használatához. (Ennek a menedzsernek az ESP8266 táblákkal is együtt kell működnie)
Ehhez három könyvtárat is telepítenünk kell.
A WiFiManager -
A webszerver -
És végül a DNS -kiszolgáló -
Szintén közös minden vázlatnál a DF Robot DFRobot_HT1632C könyvtár a LED mátrixhoz.
www.dfrobot.com/wiki/index.php/FireBeetle_…
A könyvtár itt található (Ismét a manuális telepítési módszert javasolnám)
github.com/Chocho2017/FireBeetleLEDMatrix
Külön megjegyzés: a github tárolómban - van néhány enyhén módosított DFRobot_HT1632C könyvtárom
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
A módosítás egy kisebb betűtípusra vonatkozik, és csak néhány bónuszpéldához használható. Használhatja a módosított könyvtárat, és nem okozhat problémát. Van egy kissé módosított könyvtár (néhány vázlathoz fülekként csatolva), amely képes bitképes képek készítésére.
Ha a kissé módosított verzió használata mellett dönt, át kell neveznie a "módosított könyvtár" könyvtárat FireBeetleLEDMatrix-re, és át kell helyeznie azt a mappát az Arduino könyvtárkönyvtárába. Nem kell ezt a verziót használni ezekhez a projektekhez, szükség van rá, ha ki szeretné próbálni a bónusz példákból származó kisebb betűtípusokat.
Ezek a közös könyvtárak - minden projekthez telepítünk néhány speciális könyvtárat.
Térjünk át a LED mátrixra….
4. lépés: A 24x8 LED mátrix burkolat
Ugyanis a LED -mátrix DF Robot oktatóanyagát követjük
www.dfrobot.com/wiki/index.php/FireBeetle_…
Bevezetés: Ez a 24 × 8 LED -es mátrix kijelző kifejezetten a FireBeetle sorozathoz készült. Támogatja az alacsony fogyasztású üzemmódot és a görgethető kijelzőt. A HT1632C nagy teljesítményű LED -illesztőprogram -chipnek köszönhetően minden LED független regiszterrel rendelkezik, ami megkönnyíti a külön vezetést. 256KHz-es RC órát integrál, alacsony energiaigényű üzemmódban csak 5uA, támogatja a 16 skála PWM fényerő beállítását. Ez a termék a másik Arduino mikrovezérlővel is működik, mint az Arduino UNO.
Leírás:
- Üzemi feszültség: 3.3 ~ 5VLED
- Szín: egyszínű (fehér/kék/sárga/piros/zöld)
- Meghajtó chip: HT1632C
- Működési áram: 6 ~ 100mA
- Alacsony fogyasztás: 5uARC
- órajel: 256KHz
- Chip Select (CS): D2, D3, D4, D5 választható
- Görgető kijelző támogatása
Alapértelmezett PIN -kódok:
- DATAD6
- WRD7 (általában nem használt)
- CSD2, D3, D4, D5 választható (D2 alapértelmezett)
- RDD8
- VCC 5VUSB; 3.7VLipo akkumulátor
(Mindezek a projektek a D2 -t használják a választócsaphoz, ez szükség szerint könnyen megváltoztatható.)
A LED -mátrix hátoldalán 4 kis kapcsoló látható, ügyeljen arra, hogy csak az egyik CS -tűt válassza ki. Ezekkel a kis kapcsolókkal választhatja ki a CS Pin -t, és az alapértelmezett D2.
A DF Robot WIKI rendelkezik néhány mintakóddal, ez a kód szerepel a könyvtár példáiban is. (Hiszek)
Egy másik megjegyzés: használja a Dx számokat a csapokhoz - különben a PIN számok az IO pin számok/nevek lesznek
És ez némi problémát okozhat.
Pont beállítása:
X 0 és 23 között van (vagy ha táblázatként gondolkodik, ezek oszlopok).
Y 0-7 (vagy ha táblázatként gondolja, ezek sorok).
A könyvtár alapérték funkciót biztosít.
display.setPoint (x, y) ezzel a kurzort arra a helyre állítja, ahol most kinyomtathat egy üzenetet.
display.print ("Hello World", 40); // ez azt eredményezi, hogy a kijelzőn a "Hello World" felirat jelenik meg az x, y ponttól kezdődően és lefelé görgetve a képernyőn.
Van setPixel (x, y) és clrPixel (x, y) is - a setPixel bekapcsol egy LED -et az x, y helyen, és a clrPixel kikapcsol egy LED -et az x, y helyen.
Van még néhány dolog, amit ez a könyvtár megtehet - és a legtöbbet a példák tartalmazzák.
(Azt javaslom, hogy futtassa és módosítsa a példákat, hogy lássa, mire képes).
* Egy dolog hiányzik a bitképek rajzolásából - a könyvtár valójában képes erre, de valamilyen oknál fogva ez a könyvtár privát funkciója. Nézze meg néhány bónusz példámat a könyvtár kissé módosított verziójához
** A másik dolog, hogy tartalmaz egy 5x4 -es betűkészletet, ami jó, ha van egy kisebb betűtípusa - ez a könyvtárban mindenképpen megjegyzésre került. Nem tettem megjegyzést, és működik, de észrevettem néhány problémát - a legnagyobb, hogy nem görget. És észrevettem, hogy úgy tűnik, problémákat okoz akár a wifivel, akár egy másik könyvtárral, amelyet használni akartam.
A módosított könyvtárak egyike azonban az 5x4 betűtípust használja.
Térjünk át a projektekre ….
5. lépés: 1. projekt: Egyszerű LED mátrix NTP óra, akár katonai időkijelzővel, akár AMPM kijelzővel
1. projekt: Egy egyszerű LED mátrix NTP óra, akár katonai idő, akár AMPM időkijelzővel, Ez az óra egy NTP -hez (időkiszolgálóhoz) csatlakozik, és megragadja az időt, és kikapcsolási készletet alkalmaz, hogy helyi időt kapjon. Megjeleníti az időt a LED mátrixon. - Ez egy nagyon egyszerű óra, és nagyon egyszerű 1. projekt.
Mielőtt belekezdenénk ebbe az egyszerű projektbe, jó ötlet lehet tudni, mi az NTP -
Az NTP egy internetes protokoll, amelyet a számítógép óráinak szinkronizálására használnak. Ez egy szabványos protokoll. Az NTP jelentése: Network Time Protocol.
Az NTP az UTC -t használja referenciaidőként (az UTC Universal Time Coordinated), amelyet a GMT -ből (Greenwich Mean Time) fejlesztettek ki, és bizonyos körökben Zulu Time -nak (katonai) hívják. Az UTC egy céziumatom kvantumrezonanciáján alapul.
Az NTP hibatűrő és nagymértékben skálázható, a protokoll rendkívül pontos, kevesebb, mint egy nanosekundum felbontást használ.
*
Az UTC óra a legtöbb ember számára nem sok haszna van, ezért az órát a helyi időhöz kell igazítanunk. Szerencsére ezt nagyon könnyen megtehetjük. Kezdjük tehát ezzel az egyszerű NTP órával….
Először telepítenünk kell egy könyvtárat, amely megkönnyíti az NTP szerverekkel való beszélgetést.
github.com/arduino-libraries/NTPClient (ez a könyvtár valószínűleg a könyvtárkezelőben található)
Kihagyta a 3. lépést - és nem tudja, hogyan kell telepíteni a könyvtárakat (?) Jobb, ha visszamegy, és elolvassa a 3. lépést:-)
El kell mennie erre a webhelyre, és be kell állítania a legközelebbi várost, amely az Ön időzónájában található.
www.epochconverter.com/timezones
Amikor megnyomja az Enter billentyűt, megjelenik a "Konverziós eredmények", és az eredményekben másodpercek alatt megkapja az eltolást (GMT/UTC eltérés) (számomra ez -14400)
A 66. sor dfrobot_firebeetle_led_matrix_ntp_clock vázlatában ezt láthatja:
#define TIMEOFFSET -14400 // Keresse meg az időzónát itt https://www.epochconverter.com/timezones OFF Beállítás másodpercben#define AMPM 1 // 1 = AM PM time, 0 = MILITARY/24 HR Time
cserélje ki a -14400 -at az eltolásával. A következő sorban az AMPM 1 jelenik meg - ez azt eredményezi, hogy az óra megjeleníti az időt AM/PM -ben - ha inkább 24 óra múlva szeretné látni, akkor nullázza az órát.
Ezután töltse fel a vázlatot a táblájára, csatlakozzon a hozzáférési ponthoz (wifi -kezelő), és adja meg a wifi adatait. HA ezt már megtette, látnia kell a "csatlakoztatott" görgetést a képernyőn, és néhány másodperccel később látni kell az időt.
Ennyi a projekthez - egyszerű és könnyen használható…..
(Lehetséges fejlesztések: jelenítse meg a hónapot, a napot és az évet, állítsa be a hangjelzőt és a riasztásokat - általában ellenőrizheti, hogy mit lát egy weboldalon. Ez az ötlet nagy átírást igényelne az aktuális egyszerű vázlatból)
Készen áll egy újabb egyszerű projektre - Jelenítse meg, hol van az ISS - Jósolja előre, és hány ember van az űrben! (PS ez a vázlat egy weboldalt használ a megjelenítettek szabályozására)…..
6. lépés: 2. projekt: ISS Pass Prediction Display,
2. projekt: ISS Pass Prediction Display, ez a projekt a processzor 2. magját használja. Megjeleníti, hogy milyen közel van (mérföldben) az ISS, mikor várható a következő ISS áthaladás az Ön tartózkodási helyén (UTC idő szerint), és opcionálisan hány ember tartózkodik az űrben. Mivel sok ilyen információ nem változik gyakran, a 2. magot használjuk arra, hogy csak a jóslat -előrejelzések frissítéseit nézzük meg, illetve azt, hogy hány ember tartózkodik az űrben 15 percenként. Így megakadályozhatjuk a túl sok API -hívást a szerverre. Ez a projekt egy kicsit bonyolultabb, de mégis nagyon könnyen kivitelezhető.
Ez a projekt az egyik korábbi projektemre épül, amely itt található:
(Egy egyszerű ISS értesítési rendszer) Ebben az esetben ESP8266-ot használtam, beépített OLED képernyővel (D-Duino). Ez a projekt többnyire csak más megjelenítési rendszert használ, kibővítettem, hogy egy weboldalon keresztül menet közben módosíthassa a megjeleníteni kívánt tartalmat. Tehát kezdjük….
Az egyszerű használatért járó elismerés nagy része a https://open-notify.org weboldalra tartozik, amely nagyon egyszerű és könnyen használható API-val rendelkezik. A nyílt értesítés API három dolgot jeleníthet meg: az ISS elhelyezkedése szélességi és hosszúsági fokokon, előrejelzések átadása egy adott szélességi és hosszúsági fok alapján. És végül hány ember (és nevük) van az űrben.
Telepítenünk kell egy másik könyvtárat - az ArduinoJson könyvtárat.
github.com/bblanchon/ArduinoJson
Szükségünk van a TimeLib.h -ra is, de nem vagyok biztos benne, hogy honnan szereztem be, vagy benne van -e az IDE -ben (bocs)….
Akkor miért kell megjósolni, hol lesz az ISS - Az ISS különféle amatőr rádióberendezéseket tartalmaz, és amikor "fej fölött" van, egy sonkás rádiókezelő kapcsolatba léphet az ISS -szel néhány nagyon egyszerű (és olcsó) rádió segítségével. Még mobil közben is csináltam (autóban vezetve). Valóban nem kell sok, hogy ez működjön. Az egyetlen dolog, amire szüksége van, hogy tudja, hol van. És az antenna általános irányba mutatása segít.
Az 57., 58., 59. sor néhány megjelenítési változó - ha 1 -re van állítva, akkor megjelenik egy kijelző, ha 0 -ra (nulla) van beállítva, akkor nem jelenik meg kijelző. (Ezek a változók beállíthatók a vázlatban, vagy frissíthetők a firebeetle által létrehozott weboldalról - erről később.)
int locDis = 1; // Az ISSint pasDis = 0 helyének megjelenítése; // Display Pass Predictions int pplDis = 1; // Emberek megjelenítése az űrben
így a locDis megjeleníti az ISS helyét szélességi és hosszúsági fokon - azt is, hogy hány mérföld távolságban van.
A pasDis megkapja az előrejelzéseket az open-notify.org webhelyről, és megjeleníti azokat.
és végül a pplDis megjeleníti a neveket és azt, hogy hány ember tartózkodik az űrben - ez nagyon hosszú lehet, nem
gyakran változik is. (ezeket megváltoztathatja vagy elhagyhatja, ez teljesen opcionális)
Ismernünk kell a szélességünket és a hosszúságunkat, és bele kell foglalni a vázlatba.
Ennek nem kell pontos lat/hosszúnak lennie, lehet a város központja, vagy csak egy kicsit. Az ISS lábnyoma széles, miközben a feje fölött van, és több száz (vagy több ezer) mérföldet lehet lefedni, így ha egy kicsit elhagyja a latját/hosszúságát, nem lesz üzlet megszakító (az idő nagy részében), a kommunikáció 500 mérföld felett elég gyakori.
Ha nem tudja szélességi és hosszúsági fokát, akkor ez a webhely segíthet.
www.latlong.net A vázlat 84. sora közelében valami ilyesmit láthat:
// Keresse meg szélességi és hosszúsági fokát itt // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84,58558;
Ennyit kellene változtatni. Töltse fel a vázlatot, és csatlakoztassa a Firebeetle -t az internethez - és látnia kell, hogy az ISS latban/hosszúban van megadva, és hány mérföldre van (ne feledje, hogy ez közelítő távolság lesz. Az ISS nagyon gyorsan halad, és mire a kijelző befejeződik, az ISS sok mérföldet távolodott el attól a helytől, ahol volt). Látnia kell az embereket is az űrben. (HA nem változtatta meg a fenti változót).
Az ESP32 második magját használjuk egy weboldal futtatásához, az oldal használatával szabályozhatjuk, hogy mi jelenjen meg a LED-mátrixon. Elég intuitívnak kell lennie a működésében, az egyik szakasz azt mutatja, hogy mi van bekapcsolva a megjelenítéshez, egy másik szakaszban vannak "igen" "nem" gombok - az "igen" gombra kattintva azt szeretné látni, a "nem" azt jelenti, hogy ne t mutassa meg. Azt is látnia kell, hogy a felső rész a gombok alapján változik.
Az egyetlen dolog, ami itt nem annyira vágott és száraz, hogyan lehet megtalálni a Firebeetle IP -címét - sajnos nem tudtam jó módszert találni rá -, ezért csak az IDE soros konzolját használtam a megjelenítéshez ez (9600 baud).
Nyissa meg a konzolt, és látnia kell az IP -címet. (nyissa meg, mielőtt megkapja a csatlakoztatott üzenetet) - a másik választásom az volt, hogy az indításkor egyszer megjelenítem a LED -mátrixon - én ez ellen döntöttem, mert lehet, hogy nem az időt nézi, és lemarad. Gondoltam, hogy küldök egy sms -t, vagy valami ilyesmit, de végül csak leegyszerűsítem. (Megpróbáltam statikus IP -t/átjárót/stb. Is hozzárendelni, de nem tudtam megfelelően működni a wifi -kezelővel - a kód még mindig benne van a vázlatban, ezért ha valaki rájön, jelezze)
A vázlat elősegíti a FreeRTOS beépítését is az ESP32 magjába - Van egy feladatunk, amely körülbelül 15 percenként fut, ez pedig frissíti az előrejelzéseket, valamint az űrben tartózkodókat. Mint korábban mondtam, az emberek az űrben nem sokat változnak, így valószínűleg áthelyezhetők egy másik feladatra, és talán 12 óránként (vagy 6 óránként) futhatnak - de ez működik, és egyszerűvé teszi a dolgokat.
Azok számára, akik nem tudják, a FreeRTOS egy módja annak, hogy egyetlen magos mikrovezérlő többszöri feladatot futtasson
Általában néhány könyvtárat és egyéb dolgot kell tartalmaznia ahhoz, hogy működjön - bár ez az ESP32 magjába épül -, ami az ESP32 -t nagyon hatékony eszközzé teszi. További információ a FreeRTOS -ról
freertos.org/
JÓVÁNYOK: ebben a projektben számos dolgon lehet javítani, és szinte minden nap eszembe jut valami, amit egy kicsit másképp lehet csinálni, megváltoztatni vagy hozzáadni.
És a tároló további példák könyvtárában láthat néhány korábbi/különböző dolgot, amelyekre gondoltam- ezek közül néhány nem működött, néhány csak megváltozott, és néhány, ahol szerepel az aktuális vázlat.
* Egy ponton megpróbáltam hozzáadni egy neopixelt a kijelzőhöz, hogy egy kicsit jobban hasonlítson az előző projektemhez - soha nem sikerült megfelelően működnöm (energiaellátási problémának találtam, amit nem vettem figyelembe) azon dolgozunk, hogy javítsuk ezt az ötletet *
E lépés írása közben arra gondoltam, talán hozzá tudok adni egy módot a szélességi és hosszúsági fokok frissítéséhez a webhelyen - így a vázlatot soha nem kell módosítani -, ezen is elgondolkodom egy kicsit.
Az IP -cím megszerzésének továbbfejlesztett módja valami más, amit szeretnék csinálni (még mindig gondolok erre)
Térjünk át a következő projektünkre…..
7. lépés: 3. projekt: Egy egyszerű mozgó üzenetjel az MQTT használatával
"loading =" lusta "" loading = "lusta"
Így kiderül, hogy a könyvtár képes megjeleníteni a képeket - te valamilyen oknál fogva úgy tűnik, hogy ez a funkció "privát" -, ezekhez a következő vázlatokhoz még egyszer módosítottam a könyvtárat, és a drawImage -t nyilvános funkcióvá tettem.
Ezúttal a módosított könyvtárat tettem a sketches könyvtárba, így nem kell újratelepíteni a könyvtárat, a vázlat először önmagát nézi, majd a könyvtár könyvtárában fog kinézni, szóval jól vagyunk!
*** Azt tervezem, hogy elküldöm ezt a módosítást a DFRobotnak, mivel tényleg nagyon jó és ügyes az ilyen típusú vázlatok készítése ***
LED Matrix Images vázlat, itt először azt próbáltam kitalálni, hogy mit akar a könyvtár, és mi működne, és mi nem - változó sikerrel. Azt tapasztaltam, hogy a 8x8 -as képek működnek a legjobban, de másokat is működésre bírhat. Találtam néhány online led mátrix szerkesztőt is, néhány jobban működik, mint mások.
xantorohara.github.io/led-matrix-editor/-úgy tűnik, jól működik, 8x8 képet készít, és byte tömbként szeretné őket.
www.riyas.org/2013/12/online-led-matrix-fo… ez jól működik, és képes 8x8-nál nagyobb méretű képeket készíteni, úgy tűnik, hogy a kijelző az oldalán van bekapcsolva ezzel a kijelzővel azonban. A bájt tömbök itt működnek a legjobban. Ezzel készítettem a fenti videóban látható "űrtámadókat".
Tehát hogyan működik ez, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
képbájtos tömbváltozó, a kép szélessége (8), a kép magassága (8), a kiindulási helyzet a képernyőn x (0), y (0) általában, és egy eltolási szám, amit én nem 100% -ig biztos abban, hogy mit csinál, ezért legtöbbször nullára hagytam.
A vázlatos LED -mátrixképekben - 8 különböző bájtos tömb található - három különböző módszerrel is.
- a tűzijáték az első tömb, őszintén szólva nem vagyok biztos benne, hogyan működik ez - de működik.
a következő egy száj - ez valójában nem működik megfelelően, a száj rossz irányba fekteti az egyiket, és ha megpróbál változtatni, az csak ront. (megtanulni, hogy mi működik és mi nem, fél szórakozás)
Ezt követi az első marioImg - ez túl nagy a kijelzőhöz, és azt hiszem, itt jön szóba az off set - itt használtam, és láthatja a mario elejét, ha az eltolást 1 -re változtatja” Látni fogom a hátát. (nem igazán tudom megmondani, hogy miért vagy mit tesz az eltolás. Úgy tűnik, hogy elmozdítja a képet, de miért 2 eltolja, hogy láthassa őt, és miért 1 eltolja a másik irányt, nem tudom megmondani)
KÉPEK - a bájt tömb @ jel, amit készítettem - úgy néz ki, mint amit az eszköz segítségével készítettem a https://xantorohara.github.io/led-matrix-editor oldalon
A pic1 bájtos tömb is úgy néz ki, mint amit megpróbáltam létrehozni, csak kisebb, mint amit próbáltam - azt nem tudom megmondani, de általában azt mondhatom, hogy úgy néz ki, mint amit a szerkesztőben csináltam.
mario2Img - ez a saját verzióm a nagyobb Mario -ból, amely 8x8 -as képernyőméretre készült - és te egy vagy két képpontot nem találsz (az én hibám, nem a kijelzők), úgy néz ki, mint egy kis Mario (sorta).
Invader1 és Invader2 - mindkettő ötletem egy űrhódítóról. nagyon jók lettek, és ha egymásra helyezem a képeket, képes vagyok a lábmozgás hatását létrehozni.
A könyvtárban két tűzijáték -vázlat található, mindegyik egy kicsit más, és érdemes kipróbálni.
Az egyikben a tűzijáték mozog a képernyőn, tehát egy kicsit több/más animáció… a másikban két tűzijáték látható egyszerre
Három "betolakodó" vázlat is létezik, mindegyik egy kicsit más, az egyikben a betolakodó mozog a képernyőn, és megnézheti, hogyan tettem ezt ((lehet, hogy vannak jobb módszerek is erre, nem tudom)
Még több: Van néhány vázlat az adattár tesztkönyvtárában - ezek többsége nem úgy működött, ahogyan szerettem volna, vagy olyan ötletek voltak, amelyeket meg szeretnék valósítani, de nem úgy, ahogy szerettem volna. Azért hagytam ott őket, mert valakinek van ötlete * tápellátás a LED -mátrix működésével is, a pixel jól működött, anélkül, hogy a LED -mátrixot használná, tehát van még valami, amit ezzel megtehetnék)*
Van egy "További példák" nevű könyvtár is - ezek a projektek néhány vázlatának változatai, vagy hozzáadtam vagy eltávolítottam valamit, vagy valamilyen módon megváltoztattam. Ezeknél dolgoznak - csak nem a végső projekt. Szóval megint otthagytam őket, valaki valami hasznosat hozhat ki belőlük. (Talán)
Remélem, nektek is annyira tetszett ez a tanulságos, mint nekem ezeknek a projekteknek az elkészítése:-)
11. lépés: Bukások…
Ezt a projektet a DF Robot támogatta és támogatta. Kérjük, használja az alábbi linkeket a termékekhez:
Firebeetle ESP32 -
Firebeetle Cover 24x8 LED Matrix -
Saját kódtár:
Ha ezt vagy bármelyik projektemet hasznosnak vagy élvezetesnek találja, kérjük, támogasson engem. Bármi, amit kapok, több alkatrész vásárlása és több/jobb projekt megvalósítása.
www.patreon.com/kd8bxp
NTPClient könyvtár
ArduinoJson.h
ESP8266 Időjárási Könyvtár
Json-Streaming-Parser könyvtár
Ajánlott:
Minden egyben digitális kronométer (óra, időzítő, riasztás, hőmérséklet): 10 lépés (képekkel)
All in One digitális kronométer (óra, időzítő, ébresztő, hőmérséklet): Terveztük, hogy készítünk egy időzítőt egy másik versenyhez, de később egy órát is megvalósítottunk (RTC nélkül). Ahogy elkezdtük a programozást, érdeklődtünk, hogy több funkciót alkalmazzunk az eszközön, és végül hozzáadtuk a DS3231 RTC -t, mint
Minden egyben · DMX Terminator & DMX Tester: 3 lépés
Mindent egyben · DMX Terminator & DMX Tester: Fénytechnikusként néha tudnia kell, hogy a dmx kapcsolatok mennyire egészségesek a berendezések között. Néha a vezetékek, a szerelvények vagy a feszültségingadozások miatt a DMX rendszer számos problémának és hibának van kitéve. Szóval elkészítettem
Hogyan készítsünk négy az egyben Arduino Nano fejlesztőlapot: 4 lépés
Hogyan készítsünk négy az egyben Arduino Nano Fejlesztőtáblát: Ebben az útmutatóban megtanulhatja, hogyan készítsen Arduino Nano fejlesztőlapot. Az Arduino nano fejlesztőpanel fedélzeti nyílásokkal rendelkezik az ultrahangos érzékelő (HCSR-04), a gyorsulásmérő, a DHT11 érzékelő és a folyadékkristályos kijelző (LCD) számára. Ez a bo
Minden egyben hordozható segédprogram Power Bank: 11 lépés (képekkel)
All in One Portable Utility Power Bank: A terheléscsökkenés vagy a Rolling Blackout nagyon gyakori jelenség a fejlődő országokban, például Indiában, Dél -Afrikában, Bangladesben stb. Nagymértékben befolyásolja mindennapi tevékenységeinket, és főleg a moo
Jelszókezelő, gépíró, makró, hasznos terhelés Minden egyben!: 11 lépés (képekkel)
Jelszókezelő, gépíró, makró, hasznos terhelés … Mindent egyben !: FIGYELEM KÉRJÜK: Ha problémái vannak az eszköz gyártásával (pcb, forrasztás vagy más), írjon nekem privát üzenetet ide vagy e -mailt a [email protected]. Szívesen elküldöm a már gyártott PCB -ket vagy eszközöket