Sadržaj:
- Korak 1: Projekti
- Korak 2: Instalirajte DFRobot FireBeetle ESP32 ploču u Arduino IDE
- Korak 3: Instalirajte zajedničke knjižnice za projekte
- Korak 4: 24x8 LED matrični poklopac
- Korak 5: Projekt 1: Jednostavan LED matrični NTP sat s vojnim prikazom vremena ili AMPM zaslonom
- Korak 6: Projekt 2: Prikaz predviđanja prolaza ISS -a,
- Korak 7: Projekt 3: Jednostavni pokretni znak poruke pomoću MQTT -a
- Korak 11: POVEZIVANJA…
Video: 4 projekta u 1 pomoću DFRobot FireBeetle ESP32 i omotača LED matrice: 11 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Razmišljao sam o tome da napravim instrukcije za svaki od ovih projekata - ali na kraju sam odlučio da je doista najveća razlika softver za svaki projekt. Mislio sam da je bolje napraviti samo jedan veliki instruktor!
Hardver je isti za svaki projekt, a mi koristimo Arduino IDE za programiranje ESP32 uređaja.
Dakle, što je hardver: Sav hardver su dostavili moji prijatelji iz DFRobota, oni imaju vrlo dobre vodiče i jednostavne za instalaciju osnovne ploče za to. Također uspostavite dobar sustav podrške i prilično brzu isporuku u SAD
Potpuno otkrivanje Firebeetle ESP32 ploče i LED matrice dao je DF Robot, projekti predstavljeni i u video zapisima su moji.
Svi ovi projekti koriste DFRobot FireBeetle ESP32 IOT mikrokontroler
www.dfrobot.com/product-1590.html
Wiki za podršku - s uputama za instalaciju jezgre ploče možete pronaći ovdje:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Također nam treba FireBeetle pokrivač 24x8 LED matrica (PLAVA)
www.dfrobot.com/product-1595.html
Ne sviđaju se PLAVE LED diode - imaju i različite boje.
ZELENO -
CRVENO -
BIJELO -
ŽUTI -
Potrebna vam je samo jedna LED matrica - boja je vaš izbor, sve rade isto.
Wiki za podršku LED Matrix možete pronaći ovdje:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Ovdje nalazimo vezu na Arduino knjižnicu.
github.com/Chocho2017/FireBeetleLEDMatrix
Više o tome malo kasnije….
Nešto što nije obavezno, ali možda je zgodno imati MicroUSB 3xAA držač baterije.
www.dfrobot.com/product-1130.html
Dakle, to je potreban hardver - koja su 4 projekta -
Korak 1: Projekti
Projekt 1: Je li jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili prikazom vremena AMPM, Ovaj će se sat spojiti na NTP (vremenski poslužitelj), zgrabite vrijeme i primijenite isključeni skup tako da dobijete lokalno vrijeme. Prikazat će vrijeme na LED matrici. - To je vrlo jednostavan sat i vrlo jednostavan prvi projekt.
Projekt 2: ISS Pass Prediction Display, ovaj projekt koristi drugu jezgru procesora. Prikazat će koliko je blizu ISS -a (u miljama), kada očekivati sljedeći prolaz ISS -a na vašoj lokaciji (u UTC -vremenu) i po izboru koliko je ljudi u svemiru. Budući da se mnogi od ovih podataka ne mijenjaju često, koristimo 2. jezgru samo za provjeru ažuriranja predviđanja prolaza ili koliko je ljudi u svemiru svakih 15 minuta. Na ovaj način možemo spriječiti previše API poziva poslužitelju. Ovaj projekt je malo složeniji, ali ipak prilično jednostavan za izvesti.
Projekt 3: Jednostavni pokretni znak poruke pomoću MQTT -a, ponovno sam pregledao projekt koji je napravljen za mini ploču ESP8266 D1, a to je LED matrica 8x8 - Ideja je povezati se s posrednikom MQTT, poslati poruku na temu na kojoj je uređaj slušanje - i prikazati tu poruku. Prilično je jednostavno i vrlo jednostavno učiniti kad se sve postavi. Postoji nekoliko koraka za postavljanje klijentskog softvera MQTT na stolno računalo. Nakon postavljanja MQTT je vrlo moćan protokol za razmjenu poruka koji koriste mnogi IoT uređaji za slanje i primanje poruka.
Projekt 4: Prikaz meteorološke postaje - temeljen na mini vremenskoj stanici ESP8266 D1 proizvođača Squix78 i ThingPulse. Prikupljamo naše podatke iz Wundergrounda i prikazujemo trenutne uvjete i temperaturu u stupnjevima Fahrenheita. Koristimo drugu jezgru ESP32 za ažuriranje podataka svakih 10 minuta. Također je jednostavno za postavljanje.
BOUNS MINI PRIMJERI: Knjižnica (i gornje skice) koriste font 8x4, biblioteka također sadrži font 5x4, koji sam koristio za većinu ovih mini primjera BOUNS. Mogu primijetiti nekoliko problema s malim fontom, a čini se da jedan stvara probleme pri korištenju WIFI -ja uređaja. Ovo je nešto što želim više istražiti, ali imao sam vremena. Drugi je problem što se ne pomiče, samo se veći font može pomicati. Dakle, niti jedan od ovih primjera ne koristi WIFI - oni samo ažuriraju zaslon, a o tome će biti više riječi kasnije.
Započnimo…..
Korak 2: Instalirajte DFRobot FireBeetle ESP32 ploču u Arduino IDE
Pa ću vas uputiti na DF Robot Wiki o instaliranju jezgre ploče za Arduino IDE.
To je prilično lako učiniti s modernim IDE -om (1.8.x ili bolji).
www.dfrobot.com/wiki/index.php/FireBeetle_…
Otkrio sam da WiFi biblioteka ugrađena u Arduino IDE uzrokuje probleme (PS bilo koja druga WiFi knjižnica koja je možda instalirana u vašem direktoriju knjižnice može, ali i ne mora uzrokovati probleme). Jedini način (ili barem najlakši način) koji sam otkrio da riješim problem je ukloniti WiFi biblioteku iz IDE direktorija. Nažalost, ne postoji dobar način da vam kažemo gdje je možda instaliran - ovisi o tome kako je IDE instaliran i o tome koji OS koristite.
Ono što sam učinio je pronaći WiFi biblioteku koja uzrokuje probleme, i samo premjestite direktorij WiFi direktorij na radnu površinu … i ponovno pokrenite IDE. Na taj način možete zadržati knjižnicu u slučaju da vam zatreba za Arduino WIFI ploče.
90% problema koje sam vidio povezani su s gornjim problemom. Ako dobijete mnogo pogrešaka pri prevođenju, povezanih s korištenjem WiFi -a iz direktorija Arduino IDE ili direktorija Arduino knjižnice, to je vaš problem.
Moj drugi problem je ponekad da se prijenos skica ne uspije učitati - u tom slučaju jednostavno moram ponovno pritisnuti gumb za prijenos i to funkcionira.
I na kraju, ako imate serijsku konzolu otvorenu, a zatim je zatvorite - FireBeetle se smrzava.
Znam da DF Robot aktivno radi na jezgri ploče, i samo u kratkom vremenu koje sam imao na ploči izdali su novu jezgru. Nažalost, to nije riješilo problem WiFi -a, što je moj najveći problem.
* Espressif ima "generički" upravitelj jezgre koji se može instalirati, jezgra uključuje FireBeetle ESP32 ploču, ali imao sam problem s tim kako ima igle numerirane. Zanimljiva stvar ovdje je što WiFi knjižnica radi s ugrađenom WiFi bibliotekom - pa znam da postoji rješenje za to pitanje iza ugla.
Ako želite isprobati jezgre Espressifa, ovdje možete saznati više informacija:
github.com/espressif/arduino-esp32
Osobno mi se sviđa kako jezgra DF-Robota radi, čak i uz nekoliko problema koje imam.
** NAPOMENA: Ja koristim LinuxMint 18 koji je zasnovan na Ubuntu 16.04. Mislim da ovo nisam probao ni na jednom drugom stroju, ali vjerujem da je problem prisutan za sve operacijske sustave na temelju nekih pretraživanja interneta koje sam napravio. **
Korak 3: Instalirajte zajedničke knjižnice za projekte
Svi ti projekti koriste nekoliko zajedničkih knjižnica, pa je sada lakše napraviti ovaj korak.
Ovisno o knjižnici, možete je pronaći u upravitelju knjižnice - što je daleko najjednostavniji način instaliranja knjižnice.
Drugi uobičajen način je instalacija putem zip datoteke, koja jednako dobro radi. Ali općenito koristim metodu ručne instalacije. Na web stranici Arduino postoji dobar vodič o tri metode.
www.arduino.cc/en/guide/libraries
Za ove knjižnice preporučio bih ručnu metodu - jer postoji nekoliko različitih knjižnica s istim imenom, pomoću upravitelja knjižnice možete završiti s pogrešnom.
Svi ovi projekti koriste WiFi Manager za lakše povezivanje s vašim WiFi -jem - odlučio sam to učiniti pa ako trebate premjestiti svoj projekt, ne morate reprogramirati ploču. Ovo je nešto što koristim za ploče ESP8266 i dobro radi - nije savršeno. Srećom za korištenje biblioteku je githubov korisnik po imenu bbx10 prenio korištenje ESP32. (Ovaj upravitelj trebao bi raditi i s pločama ESP8266)
Moramo instalirati tri knjižnice za ovaj rad.
WiFiManager -
WebServer -
I na kraju DNSServer -
Zajednička svim skicama je i biblioteka DF Robot DFRobot_HT1632C za LED matricu.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Knjižnicu možete pronaći ovdje (opet bih preporučio način ručne instalacije)
github.com/Chocho2017/FireBeetleLEDMatrix
Posebna napomena: u svom github spremištu - imam nekoliko malo izmijenjenih biblioteka DFRobot_HT1632C
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
Izmjena je za manji font i koristi se samo za neke primjere bonusa. Možete koristiti izmijenjenu knjižnicu i to ne bi trebalo uzrokovati probleme. Tu je i malo izmijenjena knjižnica (u prilogu nekih skica kao kartice) koja može raditi bitmap slike.
Ako odlučite koristiti malo izmijenjenu verziju, trebate preimenovati direktorij "modified-library" u FireBeetleLEDMatrix i premjestiti tu mapu u vaš direktorij Arduino knjižnice. Ovu verziju ne morate koristiti za ove projekte, potrebna je ako želite isprobati neke od manjih fontova iz primjera bonusa.
To su zajedničke knjižnice - instalirat ćemo neke posebne knjižnice za svaki projekt.
Prijeđimo na LED matricu….
Korak 4: 24x8 LED matrični poklopac
Za Mi ćemo slijediti DF Robot Tutorial za LED Matrix
www.dfrobot.com/wiki/index.php/FireBeetle_…
Uvod: Ovaj 24 × 8 LED matrični zaslon posebno je dizajniran za FireBeetle seriju. Podržava način niske potrošnje energije i pomični zaslon. S HT1632C LED upravljačkim čipom visokih performansi, svaki LED ima neovisni registar, što olakšava zasebnu vožnju. Integrira RC sat od 256KHz, samo 5uA u načinu rada s niskom potrošnjom energije, podržava podešavanje svjetline s 16 mjerila. Ovaj proizvod također radi s drugim Arduino mikrokontrolerom poput Arduino UNO.
Specifikacija:
- Radni napon: 3.3 ~ 5VLED
- Boja: jednobojna (bijela/plava/žuta/crvena/zelena)
- Pogonski čip: HT1632C
- Radna struja: 6 ~ 100mA
- Potrošnja male snage: 5uARC
- radni takt: 256KHz
- Odabir čipa (CS): D2, D3, D4, D5 odabir
- Podrška Pomicanje zaslona
Zadani PIN -ovi:
- DATAD6
- WRD7 (općenito se ne koristi)
- CSD2, D3, D4, D5 po izboru (D2 zadano)
- RDD8
- VCC 5VUSB; 3.7VLipo baterija
(Svi ovi projekti koriste D2 za odabir pina, to se može lako promijeniti prema potrebi.)
Na stražnjoj strani LED matrice vidjet ćete 4 mala prekidača, pazite da odaberete samo jedan od CS pinova. Ovi mali prekidači odabiru vaš CS pin, a zadani je D2.
DF Robot WIKI ima neke uzorke koda, koji se također nalazi u primjerima za knjižnicu. (Vjerujem)
Još jedna napomena: koristite Dx brojeve za svoje pinove - inače će brojevi pinova biti brojevi/nazivi IO pinova
A to vam može uzrokovati neke probleme.
Postavljanje točke:
X je 0 do 23 (ili ako o tome razmišljate kao o proračunskoj tablici, to su stupci).
Y je 0 do 7 (ili ako o tome razmišljate kao o proračunskoj tablici to su retci).
Knjižnica nudi funkciju zadane vrijednosti.
display.setPoint (x, y) ovo će postaviti kursor na to mjesto, gdje sada možete ispisati poruku.
display.print ("Zdravo Svijete", 40); // ovo će uzrokovati da zaslon prikaže "Hello World" počevši od x, y točke i pomaknuvši se s zaslona.
Tu su i setPixel (x, y) i clrPixel (x, y) - setPixel će uključiti jednu LED na mjestu x, y, a clrPixel će isključiti LED na mjestu x, y.
Ova biblioteka može učiniti još neke stvari - a većina je uključena u primjere.
(Preporučio bih pokretanje i izmjenu primjera da biste vidjeli što može učiniti).
* Jedna stvar koja izgleda nedostaje je crtanje bitmapa - knjižnica to može učiniti, ali iz nekog razloga to je privatna funkcija knjižnice. Pogledajte neke od mojih bonus primjera za malo izmijenjenu verziju biblioteke
** Još jedna stvar uključuje skup fontova 5x4, što je lijepo imati manji font - komentirano je u biblioteci. Dao sam mu komentar i dao mu raditi, ali primijetio sam nekoliko problema s njim - najveći koji se ne pomiče. Primijetio sam da izgleda da uzrokuje probleme ili s wifi -jem ili možda s nekom drugom bibliotekom koju sam želio koristiti.
Jedna od modificiranih knjižnica koju uključujem ipak koristi font 5x4.
Idemo dalje na projekte ….
Korak 5: Projekt 1: Jednostavan LED matrični NTP sat s vojnim prikazom vremena ili AMPM zaslonom
Projekt 1: Je li jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili prikazom vremena AMPM, Ovaj će se sat spojiti na NTP (vremenski poslužitelj), zgrabite vrijeme i primijenite isključeni skup tako da dobijete lokalno vrijeme. Prikazat će vrijeme na LED matrici. - To je vrlo jednostavan sat i vrlo jednostavan prvi projekt.
Prije nego počnemo s ovim jednostavnim projektom, možda bi bilo dobro znati što je to NTP -
NTP je internetski protokol koji se koristi za sinkronizaciju satova računala s određenom vremenskom referencom. To je standardni protokol. NTP znači Network Time Protocol (Mrežni vremenski protokol).
NTP koristi UTC kao referentno vrijeme (UTC je univerzalno vrijeme koordinirano), evoluiralo je iz GMT -a (Greenwich Mean Time), a u nekim se krugovima naziva Zulu Time (vojno). UTC se temelji na kvantnoj rezonanciji atoma cezija.
NTP je otporan na greške i vrlo je skalabilan, protokol je vrlo točan, koristi rezoluciju manju od nanosekunde.
*
UTC sat većini ljudi ne koristi puno pa moramo svoj sat prilagoditi lokalnom vremenu. Srećom, to možemo učiniti prilično lako. Pa počnimo s ovim jednostavnim NTP satom….
Prvo moramo instalirati knjižnicu koja olakšava razgovor s NTP poslužiteljima.
github.com/arduino-libraries/NTPClient (ova se knjižnica vjerojatno nalazi u upravitelju knjižnice)
Jeste li preskočili korak 3 - i niste sigurni kako instalirati knjižnice (?) Bolje se vratite i pročitajte korak 3:-)
Morate otići na ovu web stranicu i staviti vam najbliži grad koji je u vašoj vremenskoj zoni.
www.epochconverter.com/timezones
Kad pritisnete enter, vidjet ćete "Rezultati konverzije", a u rezultatima ćete dobiti pomak (razlika prema GMT/UTC) u sekundama (za mene je to -14400)
Na skici dfrobot_firebeetle_led_matrix_ntp_clock na retku 66 vidjet ćete:
#define TIMEOFFSET -14400 // Pronađite svoju vremensku zonu isključeno Ovdje https://www.epochconverter.com/timezones ISKLJUČENO Postavite u sekundama#definirajte AMPM 1 // 1 = AM popodnevno vrijeme, 0 = VOJNO/24 HR vrijeme
zamijenite -14400 svojim pomakom. U sljedećem retku vidjet ćete AMPM 1 - to će uzrokovati da sat prikazuje vrijeme u AM/PM - ako biste radije da ga vidite u 24 sata, učinite da nula bude jedna.
Zatim prenesite skicu na svoju ploču, spojite se na pristupnu točku (upravitelj WiFi -a) i unesite pojedinosti za svoju WiFi mrežu. AKO ste to već učinili, trebali biste vidjeti "povezani" pomicanje po ekranu, a nekoliko sekundi kasnije trebali biste vidjeti vrijeme.
To je to za ovaj projekt - jednostavan i lagan za korištenje ….
(Moguća poboljšanja: Prikažite mjesec, dan i godinu, postavite zvučni signal i alarme - općenito kontrolirajte ono što vidite putem web stranice. Ove ideje zahtijevaju veliko prepisivanje trenutne jednostavne skice)
Spremni za još jedan jednostavan projekt - Prikažite gdje je ISS - Prođite predviđanja i koliko je ljudi u Svemiru! (PS Ova skica koristi web stranicu za kontrolu prikaza) …..
Korak 6: Projekt 2: Prikaz predviđanja prolaza ISS -a,
Projekt 2: ISS Pass Prediction Display, ovaj projekt koristi drugu jezgru procesora. Prikazat će koliko je blizu ISS -a (u miljama), kada očekivati sljedeći prolaz ISS -a na vašoj lokaciji (u UTC vremenu) i po izboru koliko je ljudi u svemiru. Budući da se mnogi od ovih podataka ne mijenjaju često, koristimo 2. jezgru samo za provjeru ažuriranja predviđanja prolaza ili koliko je ljudi u svemiru svakih 15 minuta. Na ovaj način možemo spriječiti previše API poziva poslužitelju. Ovaj je projekt malo složeniji, ali ipak prilično jednostavan za izvesti.
Ovaj projekt se temelji na jednom od mojih ranijih projekata koji se mogu pronaći ovdje:
(Jednostavan sustav obavijesti o ISS-u) U tome sam koristio ESP8266 s ugrađenim OLED zaslonom (D-Duino). U najvećem dijelu ovaj projekt samo koristi drugačiji sustav prikaza, proširio sam ga tako da možete promijeniti ono što želite vidjeti u hodu putem web stranice. Pa krenimo….
Većina zasluga za jednostavnu upotrebu pripada https://open-notify.org koji ima vrlo jednostavan i lagan za korištenje API. Open-notify API ima tri stvari koje se mogu prikazati, lokaciju ISS-a u zemljopisnoj širini i dužini, predviđanja prolaza na temelju zadane zemljopisne širine i dužine. I na kraju koliko je ljudi (I njihovih imena) u svemiru.
Morat ćemo instalirati drugu knjižnicu - ArduinoJson knjižnicu.
github.com/bblanchon/ArduinoJson
Treba nam i TimeLib.h, ali nisam siguran odakle sam ga nabavio ili je li uključen u IDE (oprostite)….
Pa zašto predviđati gdje će se ISS nalaziti - ISS sadrži različitu radio -amatersku opremu, a kad je "iznad glave" radio -radio operater može uspostaviti kontakt s ISS -om koristeći neke vrlo jednostavne (i jeftine) radijske postaje. Čak sam to radio i dok sam bio na mobilnom (vozio se u autu). Za ovo vam zaista ne treba puno. Jedino što trebate je znati gdje se nalazi. I usmjeravanje antene u općem smjeru pomaže.
Redci 57, 58, 59 neke su varijable prikaza - ako su postavljene na 1 vidjet ćete zaslon, ako su postavljene na 0 (nula) nećete vidjeti zaslon. (Ove se varijable mogu postaviti na skici ili ažurirati s web stranice koju Firebeetle stvara - o tome kasnije).
int locDis = 1; // Prikaz lokacije ISSint pasDis = 0; // Prikaz predviđanja prolaza int pplDis = 1; // Prikaz ljudi u svemiru
pa će locDis prikazati lokaciju ISS -a u zemljopisnoj širini i dužini - također prikazuje koliko je milja udaljeno.
pasDis će dobiti predviđanja prolaza s open-notify.org i prikazati ih.
i na kraju, pplDis će prikazati imena i koliko je ljudi u svemiru - ovo može potrajati jako dugo, ali ne
se također često mijenjaju. (možete ih promijeniti ili ostaviti, potpuno je neobavezno)
Također moramo znati našu zemljopisnu širinu i dužinu i staviti to u skicu.
Ovo ne mora biti precizna širina/dužina, može biti središte vašeg grada ili samo malo dalje. Otisak ISS -a je širok dok je iznad glave i mogu se preći stotine (ili tisuće) milja, pa to što ste malo odmaknuti od zemljopisne širine/duge neće biti prekid dogovora (većinu vremena), komunikacija preko 500 milja prilično je uobičajena.
Ako ne znate svoju zemljopisnu širinu i dužinu, ova web stranica može vam pomoći.
www.latlong.net Blizu retka 84 skice vidjet ćete nešto poput ovoga:
// Ovdje pronađite svoju zemljopisnu širinu i dužinu // https://www.latlong.net/ float mylat = 39.360095; plutajući milon = -84,58558;
To bi trebalo biti sve što treba promijeniti. Prenesite skicu i povežite Firebeetlea s internetom - i trebali biste vidjeti lokaciju ISS -a u zemljopisnoj širini i koliko je kilometara udaljena (zapamtite da će to biti približna udaljenost. ISS se kreće vrlo brzo i do završetka prikaza ISS se pomaknuo mnogo kilometara od mjesta na kojem je bio). Također biste trebali vidjeti ljude u svemiru. (AKO niste promijenili gornju varijablu).
Koristimo drugu jezgru ESP32 za pokretanje web stranice, pomoću koje nam web stranica daje kontrolu nad onim što je prikazano na LED matrici. Trebalo bi biti prilično intuitivno o tome kako radi, jedan odjeljak prikazuje što je uključeno za prikaz, drugi odjeljak ima gumbe "da" "ne" - klik na "da" znači da ga želite vidjeti, "ne" znači nemojte ' t pokazati. Također biste trebali vidjeti da se gornji odjeljak mijenja na temelju gumba.
Jedino što ovdje nije tako izrezano i suho je kako pronaći IP adresu Firebeetlea - nažalost nisam uspio smisliti dobar način da ga pronađem - pa sam samo upotrijebio serijsku konzolu IDE -a za prikaz to (9600 bauda).
Otvorite konzolu i trebali biste vidjeti IP adresu. (otvorite ga prije nego što dobijete povezanu poruku) - moj je drugi izbor bio da ga prikažem na LED matrici jednom odmah pri pokretanju - odlučio sam protiv toga jer možda ne gledate u vrijeme i propustit ćete ga. Razmišljao sam poslati sms poruku ili nešto slično, ali na kraju sam jednostavno. (Također sam pokušao dodijeliti statički IP/pristupnik/itd., Nisam uspio ispravno raditi s upraviteljem WiFi -a - kôd je još uvijek na skici, pa ako to netko shvati, neka mi javi)
Skica također unaprjeđuje ugrađivanje FreeRTOS -a u jezgru ESP32 - imamo zadatak koji se izvršava svakih 15 -ak minuta, a time se ažuriraju predviđanja prolaza, kao i ljudi u svemiru. Kao što sam rekao ranije, ljudi u svemiru se ne mijenjaju toliko, pa bi se to vjerojatno moglo premjestiti na još jedan zadatak i možda pokrenuti jednom svakih 12 sati (ili 6 sati) - ali ovo funkcionira i pojednostavljuje stvari.
Za one koji ne znaju, FreeRTOS je način da jednom jezgrom mikrokontrolera pokrene više zadataka
Obično morate uključiti neke knjižnice i druge stvari da bi funkcionirao - međutim ugrađen je u jezgru ESP32 - što čini ESP32 vrlo moćnim uređajem. za više informacija o FreeRTOS -u
freertos.org/
POBOLJŠANJA: Postoje brojne stvari koje se mogu poboljšati za ovaj projekt, i gotovo svaki dan razmišljam o nečemu što bi se moglo učiniti malo drugačije, ili promijeniti, ili dodati.
I u direktoriju s više primjera spremišta možete vidjeti neke ranije/različite stvari o kojima sam razmišljao- neke od njih nisu radile, neke su se samo promijenile, a neke su uključene u trenutnu skicu.
* U jednom sam trenutku pokušao dodati neopiksel na zaslon kako bi bio malo sličniji mom prethodnom projektu - nikada nisam uspio sasvim ispravno raditi (otkrio sam da je to problem napajanja koji nisam smatrao) radimo na načinu poboljšanja ove ideje *
Dok sam pisao ovaj korak, pomislio sam, možda bih mogao dodati način da ažurirate vašu zemljopisnu širinu i dužinu na web stranici - na taj način skicu nikada ne bi trebalo mijenjati - razmislit ću i o ovoj.
Poboljšani način dobivanja IP adrese je nešto što bih želio učiniti (još uvijek razmišljam o tome)
Prijeđimo na naš sljedeći projekt ….
Korak 7: Projekt 3: Jednostavni pokretni znak poruke pomoću MQTT -a
"loading =" lijen "" loading = "lijen"
Tako se ispostavlja da knjižnica može prikazivati slike - iz nekog razloga vam se čini da je ta funkcija "privatna" - pa, za ove sljedeće skice ponovno sam izmijenila knjižnicu i učinila drawImage javnom funkcijom.
Ovaj put sam izmijenjenu knjižnicu stavio u direktorij sketches, tako da ne morate ponovno instalirati knjižnicu, skica prvo gleda sebe, zatim će pogledati u direktorij knjižnice, pa smo dobri!
*** Planiram podnijeti ovu promjenu DFRobotu, jer je stvarno jako cool i nekako zgodno biti u mogućnosti raditi ove vrste skica ***
Skica LED matričnih slika, ovdje sam prvo pokušavao shvatiti što knjižnica želi, a što bi, a što ne bi uspjelo - s različitim stupnjem uspjeha. Otkrio sam da slike 8x8 najbolje rade, ali možete natjerati i druge da rade. Našao sam i nekoliko mrežnih uređivača matrica, neki rade bolje od drugih.
xantorohara.github.io/led-matrix-editor/-čini se da radi u redu, pravi slike veličine 8x8, a želite ih kao nizove bajtova.
www.riyas.org/2013/12/online-led-matrix-fo… ovaj radi dobro i ima mogućnost stvaranja ekrana većih od 8x8, čini se da je zaslon okrenut sa strane ovog zaslona međutim. Čini se da bajtovi ovdje najbolje funkcioniraju. Koristio sam ga za izradu "svemirskih osvajača" viđenih u gornjem videu.
Pa kako to funkcionira, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
varijabla polja bajtova slike, širina slike (8), visina slike (8), početni položaj na zaslonu x (0), y (0) obično i broj pomaka, što nisam 100% siguran što radi, pa sam većinu vremena ostavio na nuli.
Na skici LED matrične slike - postoji 8 različitih nizova bajtova - s tri različite metode.
- vatromet je prvi niz, iskreno nisam siguran kako ovaj radi - ali radi.
sljedeća su usta - ovo ne funkcionira baš kako treba, usta se krivo postavljaju, a pokušaj unosa bilo kakvih promjena samo ih pogoršava. (pola je zabavno naučiti što radi, a što ne)
Slijedi prvi marioImg - ovo je preveliko za zaslon, i mislim da tu dolazi do izražaja off set - upotrijebio sam ga ovdje i možete vidjeti prednji dio marija, ako pomak promijenite na 1. vidjet ću mu leđa. (ti stvarno ti ne mogu reći zašto ili što čini pomak. Čini se da pomiče sliku, ali zašto je 2 pomakne tako da mu vidiš prednju stranu i zašto 1 pomakne u drugom smjeru, ne mogu ti reći)
IMAGES - niz bajtova je znak @ koji sam napravio - izgleda kao ono što sam napravio pomoću alata na
pic1 bajtni niz također izgleda kao što sam pokušavao napraviti, samo što je manji nego što sam pokušavao - ne mogu reći što je to, ali općenito mogu reći da izgleda kao što sam radio u uređivaču.
mario2Img - ovo je moja vlastita verzija većeg Maria napravljenog za ekran veličine 8x8 - a ti tamo jedan ili dva piksela nije na mjestu (moja greška, a ne zasloni), izgleda kao mali Mario (otprilike).
invader1 i invader2 - obje moje ideje za svemirskog osvajača. ispali su prilično dobri, a postavljanjem slika jednu na drugu mogu stvoriti učinak kretanja stopala.
U imeniku se nalaze dvije skice vatrometa, svaka je malo drugačija i vrijedi je isprobati.
Na jednom se vatromet kreće po ekranu, pa malo više/različita animacija … na drugom su prikazana dva vatrometa istovremeno
Postoje i tri skice "napadača", svaka je malo drugačija, jedna ima napadača koji se kreće po ekranu, a možete pogledati i kako sam to učinio - (postoje možda bolji načini za to, ne znam)
Čak i više: Postoje neke skice u direktoriju za testiranje spremišta - većina njih nije radila baš onako kako sam htjela, ili su bile ideje koje želim raditi, ali nisu funkcionirale onako kako sam htjela. Napustio sam ih jer mi je netko dobio ideje *(napravio sam mali "štit" s pikselom WS2812 na njemu za upotrebu s ISS zaslonom, ali spojio sam ga na 3v liniju i jednostavno mi nije bilo dovoljno napajanje i s LED Matrix -om, piksel je radio dobro, bez LED Matrice ti, pa još uvijek mogu nešto učiniti s njim)*
Tu je i imenik pod nazivom "Više primjera" - ovo su varijacije na nekim skicama projekta, bilo da sam nešto dodao ili uklonio, ili na neki način promijenio. Za njih oni rade - jednostavno nisu konačni projekt. Pa sam ih opet ostavio, netko bi im mogao izvući nešto korisno. (Može biti)
Nadam se da ste uživali u ovoj uputi koliko i ja u izradi ovih projekata:-)
Korak 11: POVEZIVANJA…
Ovaj projekt sponzorirao je i podržao DF Robot. Za proizvode koristite donje veze:
Firebeetle ESP32 -
Poklopac Firebeetle 24x8 LED matrica -
Moje spremište koda:
Ako smatrate da je ovaj ili bilo koji od mojih projekata koristan ili ugodan, podržite me. Sve što dobijem ide za kupnju više dijelova i izradu više/boljih projekata.
www.patreon.com/kd8bxp
Knjižnica NTPClient
ArduinoJson.h
ESP8266 Biblioteka vremena
Knjižnica Json-Streaming-Parser
Preporučeni:
3 najbolja projekta elektronike pomoću tranzistora D-882: 9 koraka
3 najbolja projekta elektronike koji koriste tranzistor D-882: JLCPCB je najveće poduzeće za prototip PCB-a u Kini i visokotehnološki proizvođač specijaliziran za prototipe brzih PCB-a i proizvodnju malih serija PCB-a, s više od 10 godina iskustva u proizvodnji PCB-a. Oni su u mogućnosti pružiti isplativo rješenje
Slikar omotača mjehurićima: 8 koraka
Slikar omotača mjehurićima: Kao dio našeg " Mehatronika 1 - MECA -Y403 " Master 1 tečaj na ULB -u, zamoljeni smo da dizajniramo robota koji obavlja određenu funkciju i izradimo web stranicu koja sažima dizajn robota, počevši od odabira materijala, načina
IoT novčanik (pametni novčanik s Firebeetle ESP32, Arduino IDE i Google proračunskom tablicom): 13 koraka (sa slikama)
IoT novčanik (pametni novčanik s Firebeetle ESP32, Arduino IDE i Google proračunskom tablicom): Prva nagrada na natjecanju džepnih dimenzija Instructables!: Ako ste uložili nešto novca u kriptovalute, vjerojatno već znate da su one vrlo nestabilne. Mijenjaju se preko noći i sada nikad ne znate koliko 'pravog' novca još imate u zidu
Izgradnja GNU/Linux distribucije za Raspberry Pi pomoću Yocto projekta: 6 koraka
Izgradnja GNU/Linux distribucije za Raspberry Pi korištenjem Yocto projekta: Raspberry Pi vjerojatno je najpopularnije jeftino računalo s jednom pločom na tržištu. Često se koristi za Internet stvari i druge ugrađene projekte. Nekoliko GNU/Linux distribucija imaju izvrsnu podršku za Raspberry Pi, a postoji čak i Mi
Baterija za skupljanje omotača ćelija: 5 koraka (sa slikama)
Baterija za skupljanje omotača u obliku novčića: Veliki sam ljubitelj CR2032 " ćelije na novčiće " baterije. Pružaju nešto više od 3 volta električne energije u vrlo kompaktnim veličinama. Možete priključiti jedan u mali držač, a zatim prema potrebi spojiti kabele. Ali što ako trebate više od tri volta? Vi ste