Sadržaj:
- Korak 1: Projekti
- Korak 2: Instalirajte DFRobot FireBeetle ESP32 ploču u Arduino IDE
- Korak 3: Instalirajte zajedničke biblioteke za projekte
- Korak 4: 24x8 LED Matrix poklopac
- Korak 5: Projekat 1: Jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili AMPM ekranom
- Korak 6: Projekat 2: Prikaz predviđanja prolaza ISS -a,
- Korak 7: Projekat 3: Jednostavni pokretni znak poruke pomoću MQTT -a
- Korak 11: Linkovi…
Video: 4 projekta u 1 pomoću DFRobot FireBeetle ESP32 i LED matrice Poklopac: 11 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
Razmišljao sam o tome da napravim instrukcije za svaki od ovih projekata - ali na kraju sam odlučio da je zaista 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, šta 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 sistem 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 je potrebna FireBeetle maska 24x8 LED matrica (PLAVA)
www.dfrobot.com/product-1595.html
Ne sviđaju se PLAVE LED diode - imaju i različite boje.
ZELENO -
CRVENO -
BELO -
ŽUTI -
Potrebna vam je samo jedna LED matrica - boja je vaš izbor, sve rade isto.
Wiki za podršku LED Matrix -a možete pronaći ovdje:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Ovdje nalazimo vezu do Arduino biblioteke.
github.com/Chocho2017/FireBeetleLEDMatrix
Više o ovome malo kasnije….
Nešto što je opcionalno, 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
Projekat 1: Je li jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili prikazom vremena AMPM, Ovaj sat će se povezati s NTP -om (poslužitelj vremena), 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 projekat.
Projekat 2: ISS Pass Prediction Display, ovaj projekat koristi drugo jezgro 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 mnoge ove informacije 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 za napraviti kad se sve postavi. Postoji nekoliko koraka za postavljanje klijentskog softvera MQTT na stolnom računaru. 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 stanice - zasnovano na mini vremenskoj stanici ESP8266 D1 proizvođača Squix78 i ThingPulse. Prikupljamo naše podatke iz Wundergrounda i prikazujemo trenutne uslove i temperaturu u stupnjevima Fahrenheita. Koristimo drugo jezgro ESP32 za ažuriranje podataka svakih 10 minuta. Takođe je jednostavno za postavljanje.
BOUNS MINI PRIMJERI: Biblioteka (i gornje skice) koriste font 8x4, biblioteka takođe sadrži font 5x4, koji sam koristio za većinu ovih BOUNS mini primjera. Mogu primijetiti nekoliko problema s malim fontom, a čini se da jedan uzrokuje probleme kada koristite WIFI uređaja. Ovo je nešto što želim više istražiti, ali imao sam vremena. Drugi problem je što se ne pomiče, samo se veći font može pomicati. Dakle, nijedan od ovih primjera ne koristi WIFI - oni samo ažuriraju zaslon, a o tome će biti više riječi kasnije.
Hajde da počnemo…..
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 biblioteka koja je možda instalirana u vašem direktoriju biblioteke može, ali i ne mora uzrokovati probleme). Jedini način (ili barem najlakši način) koji sam pronašao za rješavanje problema je uklanjanje WiFi biblioteke iz IDE direktorija. Nažalost, ne postoji dobar način da vam kažemo gdje je možda instaliran - to ovisi o tome kako je IDE instaliran i o tome koji OS koristite.
Ono što sam učinio je da sam pronašao WiFi biblioteku koja uzrokuje probleme i samo premjestite direktorij WiFi direktorij na radnu površinu… i ponovo pokrenite IDE. Na taj način možete zadržati biblioteku u slučaju da vam zatreba za Arduino WIFI ploče.
90% problema koje sam vidio povezani su s gornjim pitanjem. Ako dobijete mnogo grešaka pri kompajliranju, povezanih s korištenjem WiFi -a iz Arduino IDE direktorija ili direktorija Arduino Library, to je vaš problem.
Moj drugi problem je što se učitavanje skice ne uspije učitati - u tom slučaju samo moram ponovo pritisnuti dugme 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 za kratko vrijeme od kada sam imao ploču su objavili novo jezgro. Nažalost, nije riješio problem WiFi -a, što je moj najveći problem.
* Espressif ima 'generički' core manager koji se može instalirati, jezgra uključuje FireBeetle ESP32 ploču, ali imao sam problem s tim kako ima igle numerisane. Zanimljiva stvar ovdje je to što WiFi biblioteka 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
Lično mi se sviđa kako jezgro DF-Robota radi, čak i sa nekoliko problema koje imam.
** NAPOMENA: Koristim LinuxMint 18 koji je zasnovan na Ubuntu 16.04 Mislim da ovo nisam probao ni na jednoj drugoj mašini, ali vjerujem da je problem prisutan za sve operativne sisteme na osnovu nekih pretraživanja interneta koje sam obavio. **
Korak 3: Instalirajte zajedničke biblioteke za projekte
Svi ovi projekti koriste nekoliko zajedničkih biblioteka, pa je sada lakše napraviti ovaj korak.
Ovisno o biblioteci, možete je pronaći u upravitelju biblioteke - što je daleko najlakši način za instaliranje biblioteke.
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 biblioteke preporučio bih ručnu metodu - jer postoji nekoliko različitih biblioteka s istim imenom, pomoću upravitelja biblioteka možete završiti s pogrešnom.
Svi ovi projekti koriste WiFi Manager za olakšavanje povezivanja na vaš WiFi - 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 radi dobro - nije savršeno. Srećom za korištenje biblioteke je githubov korisnik po imenu bbx10 prenio upotrebu ESP32. (Ovaj upravitelj bi također trebao raditi s pločama ESP8266)
Moramo instalirati tri biblioteke da bi i ovo radilo.
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_…
Biblioteku 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 biblioteku i to ne bi trebalo uzrokovati probleme. Postoji i malo izmijenjena biblioteka (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 biblioteke. Ne morate koristiti ovu verziju za ove projekte, potrebna je ako želite isprobati neke od manjih fontova iz primjera bonusa.
To su zajedničke biblioteke - instalirat ćemo neke posebne biblioteke za svaki projekt.
Prijeđimo na LED matricu….
Korak 4: 24x8 LED Matrix poklopac
Jer mi ćemo slijediti DF Robot Tutorial za LED matricu
www.dfrobot.com/wiki/index.php/FireBeetle_…
Uvod: Ovaj 24 × 8 LED matrični zaslon posebno je dizajniran za FireBeetle seriju. Podržava režim niske potrošnje energije i pomicanje ekrana. S HT1632C LED čipom visokih performansi, svaki LED dioda ima nezavisni registar, što olakšava zasebnu vožnju. Integriše 256KHz RC sat, samo 5uA u režimu niske potrošnje energije, podržava podešavanje osvetljenosti PWM u 16 skali. 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
- Mala potrošnja energije: 5uARC
- radni takt: 256KHz
- Odabir čipa (CS): odabir D2, D3, D4, D5
- Podrška za pomicanje ekrana
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 biblioteku. (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.
Određivanje tač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 redovi).
Biblioteka nudi funkciju zadane vrijednosti.
display.setPoint (x, y) ovo će postaviti kursor na tu lokaciju, gdje sada možete ispisati poruku.
display.print ("Hello World", 40); // ovo će uzrokovati da se na ekranu prikaže "Hello World" počevši od x, y tačke i skrolujući sa ekrana.
Tu su i setPixel (x, y) i clrPixel (x, y) - setPixel će uključiti jednu LED na x, y lokaciji, a clrPixel će isključiti LED na x, y lokaciji.
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 vidite šta može učiniti).
* Jedna stvar koja izgleda nedostaje je crtanje bitmapa - biblioteka to može učiniti, ali iz nekog razloga to je privatna funkcija biblioteke. 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 - komentarirano je u biblioteci. Dao sam mu komentar i dao mu da radi, 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 biblioteka koje uključujem ipak koristi font 5x4.
Idemo dalje na projekte ….
Korak 5: Projekat 1: Jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili AMPM ekranom
Projekt 1: Je li jednostavan LED matrični NTP sat sa prikazom vojnog vremena ili prikazom vremena AMPM, Ovaj sat će se povezati s NTP -om (poslužitelj vremena), 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 projekat.
Prije nego počnemo s ovim jednostavnim projektom, možda bi bilo dobro znati što je NTP -
NTP je internetski protokol koji se koristi za sinhronizaciju satova računara s određenom vremenskom referencom. To je standardni protokol. NTP je kratica za Network Time Protocol.
NTP koristi UTC kao referentno vrijeme (UTC je univerzalno koordinirano vrijeme), evoluiralo je iz GMT -a (Greenwich Mean Time), a u nekim se krugovima naziva Zulu Time (Military). UTC se temelji na kvantnoj rezonanciji atoma cezija.
NTP je otporan na greške i visoko skalabilan, protokol je vrlo precizan, koristeći rezoluciju manju od nanosekunde.
*
UTC sat većini ljudi ne koristi mnogo, pa moramo svoj sat prilagoditi lokalnom vremenu. Srećom, ovo možemo učiniti prilično lako. Pa počnimo s ovim jednostavnim NTP satom….
Prvo moramo instalirati biblioteku koja olakšava razgovor sa NTP serverima.
github.com/arduino-libraries/NTPClient (ova biblioteka je vjerojatno u upravitelju biblioteke)
Jeste li preskočili korak 3 - i niste sigurni kako instalirati biblioteke (?) Bolje se vratite i pročitajte korak 3:-)
Morate otići na ovu web stranicu i postaviti vam najbliži grad koji je u vašoj vremenskoj zoni.
www.epochconverter.com/timezones
Kada 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 liniji 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 sa 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 za 24 sata, učinite da je nula jednaka.
Zatim prenesite skicu na svoju ploču, povežite se s pristupnom točkom (upravitelj WiFi -a) i unesite pojedinosti o svojoj WiFi mreži. 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 zujalicu i alarme - općenito kontrolirajte ono što vidite putem web stranice. Ova ideja bi zahtijevala veliko prepisivanje trenutne jednostavne skice)
Spremni za još jedan jednostavan projekat - Prikažite gdje se nalazi ISS - Prođite predviđanja i koliko je ljudi u Svemiru! (PS Ova skica koristi web stranicu za kontrolu prikazanog sadržaja)…..
Korak 6: Projekat 2: Prikaz predviđanja prolaza ISS -a,
Projekat 2: ISS Pass Prediction Display, ovaj projekat koristi drugo jezgro 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 mnoge od ovih informacija 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.
Ovaj projekt se temelji na jednom od mojih ranijih projekata koji se mogu pronaći ovdje:
(Jednostavan sistem za obaveštavanje o ISS-u) U tom sam koristio ESP8266 sa ugrađenim OLED ekranom (D-Duino). U najvećem dijelu ovaj projekt koristi samo drugačiji sistem prikaza, proširio sam ga tako da možete promijeniti ono što želite vidjeti u hodu putem web stranice. Pa počnimo….
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 na zemljopisnoj širini i dužini, predviđanja prolaza zasnovana na datoj širini i dužini. I na kraju, koliko ljudi (i njihovih imena) ima u svemiru.
Morat ćemo instalirati drugu biblioteku - ArduinoJson biblioteku.
github.com/bblanchon/ArduinoJson
Treba nam i TimeLib.h, ali nisam siguran odakle mi to ili je uključeno u IDE (oprostite)….
Pa zašto predviđati gdje će se ISS nalaziti - ISS sadrži različitu radio -amatersku opremu, a kada je "iznad glave" radio -operater sa šunkom 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). Zaista vam ne treba mnogo da bi ovo uspjelo. Jedina stvar koju trebate je znati gdje se nalazi. I usmjeravanje antene u opštem smjeru pomaže.
Redovi 57, 58, 59 su neke 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 sa open-notify.org i prikazati ih.
i na kraju, pplDis će prikazati imena i koliko ljudi ima u svemiru - ovo može potrajati jako dugo, ali ne
se takođe često menjaju. (možete ih promijeniti ili ostaviti, potpuno je neobavezno)
Također moramo znati našu geografsku širinu i dužinu i staviti to u skicu.
Ovo ne mora biti precizna širina/dužina, može biti centar vašeg grada ili samo malo dalje. Otisak ISS -a je širok dok je iznad glave i mogu se preći stotine (ili hiljade) milja, tako da malo skretanja sa geografske širine/dužine neće biti prekid dogovora (većinu vremena), komunikacija preko 500 milja je prilično uobičajena.
Ako ne znate svoju geografsku š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. Otpremite skicu i povežite Firebeetlea s internetom - i trebali biste vidjeti lokaciju ISS -a u zemljopisnoj širini i koliko je milja udaljena (zapamtite da će to biti približna udaljenost. ISS se kreće vrlo brzo i do završetka prikaza ISS se pomerio mnogo milja od mesta na kome je bio). Trebali biste vidjeti i ljude u svemiru. (AKO niste promijenili gornju varijablu).
Koristimo drugo jezgro ESP32 za pokretanje web stranice, pomoću koje nam web lokacija daje kontrolu nad onim što je prikazano na LED matrici. Trebalo bi biti prilično intuitivno kako funkcionira, jedan odjeljak prikazuje šta je uključeno za prikaz, drugi odjeljak ima tipke "da" "ne" - klik na "da" znači da želite vidjeti, "ne" znači nemojte ne pokazuj. Također biste trebali vidjeti da se gornji odjeljak mijenja na osnovu dugmadi.
Jedino što ovdje nije tako izrezano i suho je kako pronaći IP adresu Firebeetle - nažalost nisam uspio smisliti dobar način da je 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 drugi izbor je bio da ga prikažem na LED matrici jednom odmah pri pokretanju - odlučio sam protiv toga jer možda nećete gledati u vrijeme i propustit ćete ga. Razmišljao sam da pošaljem sms poruku, ili nešto slično, ali na kraju jednostavno ostajem jednostavan. (Također sam pokušao dodijeliti statički IP/gateway/itd., Nisam uspio ispravno raditi s wifi menadžerom - 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 ovo ažurira predviđanja prolaza, kao i ljude 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 se jednom jezgru mikrokontrolera pokrene više zadataka
Obično morate uključiti neke biblioteke 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 projekat, i skoro svaki dan razmišljam o nečemu što bi se moglo učiniti malo drugačije, ili promijeniti, ili dodati.
I u direktoriju sa 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 trenutku sam pokušao dodati neopiksel na ekran kako bi bio malo sličniji mom prethodnom projektu - nikada ga nisam uspio ispravno raditi (otkrio sam da je to problem napajanja koji nisam smatrao) radimo na načinu da poboljšamo ovu ideju *
Dok sam pisao ovaj korak, pomislio sam, možda bih mogao dodati način da ažurirate vašu geografsku š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 dobijanja IP adrese je nešto što bih želio učiniti (i dalje razmišljam o tome)
Prijeđimo na naš sljedeći projekt ….
Korak 7: Projekat 3: Jednostavni pokretni znak poruke pomoću MQTT -a
"loading =" lijen "" loading = "lijen"
Tako se ispostavlja da biblioteka može prikazati slike - iz nekog razloga vam se čini da je ova funkcija "privatna" - pa, za ove sljedeće skice ponovo sam izmijenio biblioteku i napravio drawImage javnom funkcijom.
Ovaj put, stavio sam izmijenjenu biblioteku u direktorij sketches, tako da ne morate ponovno instalirati biblioteku, skica prvo gleda sebe, zatim će pogledati u direktorij biblioteke, pa smo dobri!
*** Planiram podnijeti ovu promjenu DFRobotu, jer je zaista super i prilično je zgodno biti u mogućnosti raditi ove vrste skica ***
Skica LED matričnih slika, ovdje sam prvo pokušavao shvatiti što biblioteka želi, a što bi, a što ne bi uspjelo - s različitim stupnjem uspjeha. Otkrio sam da slike 8x8 najbolje rade, ali možete navesti i druge da rade. Pronaš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 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 na ovom ekranu kako god. Čini se da bajtovi ovdje najbolje funkcioniraju. Koristio sam ga za izradu "svemirskih osvajača" viđenih u videu iznad.
Pa kako ovo funkcionira, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
varijabla niza bajtova slike, širina slike (8), visina slike (8), početna pozicija na ekranu x (0), y (0) obično i broj pomaka, što ja nisam 100% siguran šta 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 da se naprave bilo kakve promjene samo ih pogoršava. (pola zabave je naučiti šta radi, a šta ne)
Slijedi prvi marioImg - ovo je preveliko za ekran, i mislim da tu dolazi do izražaja off set - ja sam ga upotrijebio ovdje i možete vidjeti prednji dio marija, ako pomak promijenite na 1. videću mu leđa. (ne mogu vam zaista reći zašto ili šta čini pomak. Čini se da pomjera sliku, ali zašto je 2 pomakne tako da možete vidjeti njegovu prednju stranu i zašto 1 pomakne u drugom smjeru, ne mogu vam reći)
SLIKE - niz bajtova je znak @ koji sam napravio - izgleda kao ono što sam napravio pomoću alata na
pic1 bajtni niz takođe izgleda kao ono što sam pokušavao da napravim, samo što je manji nego što sam pokušavao - ne mogu reći šta je to, ali generalno mogu reći da izgleda kao što sam radio u editoru.
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 ekrani), 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 efekt 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 "osvajača", svaka je malo drugačija, jedna ima napadača koji se kreće po ekranu, a možete pogledati 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 je neko dobio neke ideje *(Napravio sam mali "štit" sa pikselom WS2812 na njemu za upotrebu sa ISS ekranom, ali spojio sam ga na 3v liniju i jednostavno mi nije bilo dovoljno napajanje i sa LED Matrix -om koja radi, piksel je radio dobro, bez LED Matrice ti, tako da još uvijek mogu nešto učiniti s njim)*
Tu je i direktorij 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 funkcioniraju - jednostavno nisu konačni projekt. Pa sam ih opet ostavio, neko bi im mogao izvući nešto korisno. (Možda)
Nadam se da ste uživali u ovom uputstvu koliko i ja u izradi ovih projekata:-)
Korak 11: Linkovi…
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 kupovinu više dijelova i stvaranje više/boljih projekata.
www.patreon.com/kd8bxp
NTPClient biblioteka
ArduinoJson.h
ESP8266 Biblioteka vremena
Biblioteka Json-Streaming-Parser
Preporučuje se:
Kako vezati poklopac pogona palca: 3 koraka (sa slikama)
Kako privezati kapu s palcem: Moj Corsair GTX pogon s palcem vrlo je robustan uređaj s tvrdom, aluminijskom vanjštinom. Međutim, nema pričvršćivanja između poklopca i tijela samog pogona palca, pa je gubitak kape vrlo realna mogućnost. U ovom kratkom uputstvu, ja
IoT novčanik (pametni novčanik sa 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 Instructables Pocket-Sized Contest!: 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 pomoću Yocto projekta: Raspberry Pi je vjerovatno najpopularniji jeftini single board računar na tržištu. Često se koristi za Internet stvari i druge ugrađene projekte. Nekoliko GNU/Linux distribucija imaju odličnu podršku za Raspberry Pi, a postoji čak i Mi
Poklopac gramofona od Perpexa: 6 koraka (sa slikama)
Napravite omot gramofona Perspex: Dakle, iskopao sam svoj stari vinil
NodeMCU / ESP8266 Nosač držača za poklopac: 13 koraka (sa slikama)
NodeMCU / ESP8266 Nosač držača: Želim vam pokazati u ovom uputstvu - kako montirati NodeMCU V2 (ESP8266) modul u ormar. Ovo može biti vrlo korisno za mnoge profesionalne aplikacije poput sistema za pristup vratima, pametnih domova itd. Na uređaju postoji mnogo različitih ESP8266 modula