Kazalo:
- 1. korak: Projekti
- 2. korak: Namestite ploščo DFRobot FireBeetle ESP32 v Arduino IDE
- 3. korak: Namestite skupne knjižnice za projekte
- 4. korak: 24x8 LED matrični pokrov
- 5. korak: Projekt 1: Enostavna matrična NTP ura z LED matriko z vojaškim prikazom časa ali prikazom AMPM
- Korak 6: Projekt 2: Prikaz napovedi prehoda ISS,
- Korak 7: Projekt 3: Preprost premikajoč se sporočni znak z uporabo MQTT
- 11. korak: Povezave…
Video: 4 projekti v 1 z uporabo DFRobot FireBeetle ESP32 in LED matričnega pokrova: 11 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Razmišljal sem o tem, da bi za vsakega od teh projektov naredil navodila, vendar sem se na koncu odločil, da je res največja razlika programska oprema za vsak projekt. Mislil sem, da je bolje narediti samo enega velikega učitelja!
Strojna oprema je za vsak projekt enaka, za programiranje naprave ESP32 pa uporabljamo Arduino IDE.
Kaj je torej strojna oprema: vso strojno opremo so priskrbeli moji prijatelji v DFRobotu, saj imajo zelo dobre vaje in za to enostavne namestitve osnovnih plošč. Vzpostavite tudi dober sistem podpore in precej hitro pošiljanje v ZDA
Popolno razkritje plošče Firebeetle ESP32 in LED matrike je zagotovil DF Robot, predstavljeni projekti in videoposnetki so moji.
Vsi ti projekti uporabljajo mikrokrmilnik DFRobot FireBeetle ESP32 IOT
www.dfrobot.com/product-1590.html
Podporni wiki - z navodili za namestitev jedra plošče najdete tukaj:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Potrebujemo tudi ohišje FireBeetle 24x8 LED Matrix (BLUE)
www.dfrobot.com/product-1595.html
Ne maram modrih LED diod - imajo tudi različne barve.
ZELENO -
RDEČA -
BELA -
RUMENI -
Potrebujete samo eno LED matrico - barva je vaša izbira, vsi delujejo enako.
Podporni wiki LED Matrix najdete tukaj:
www.dfrobot.com/wiki/index.php/FireBeetle_…
Tu najdemo povezavo do knjižnice Arduino.
github.com/Chocho2017/FireBeetleLEDMatrix
Več o tem malo kasneje….
Neobvezno, a morda priročno za uporabo je držalo za baterijo MicroUSB 3xAA.
www.dfrobot.com/product-1130.html
Torej, to je strojna oprema - kateri so 4 projekti -
1. korak: Projekti
Projekt 1: Je preprosta matrična NTP ura LED z zaslonom vojaškega časa ali prikazom časa AMPM, Ta ura se bo povezala z NTP (časovnim strežnikom), zgrabila čas in uporabila izklop, tako da boste dobili lokalni čas. Na matriki LED bo prikazal čas. - To je zelo preprosta ura in zelo preprost prvi projekt.
Projekt 2: Prikaz napovedi prehoda ISS Pass, ta projekt uporablja drugo jedro procesorja. Prikazal bo, kako blizu je (v miljah) ISS, kdaj pričakovati naslednji prehod ISS na vaši lokaciji (v UTC -času) in po želji, koliko ljudi je v vesolju. Ker se veliko teh informacij ne spreminja pogosto, uporabljamo drugo jedro samo za preverjanje posodobitev napovedi prehoda ali koliko ljudi je v vesolju vsakih 15 minut. Na ta način lahko preprečimo preveč klicev API -ja na strežnik. Ta projekt je nekoliko bolj zapleten, a še vedno precej enostaven za izvedbo.
Projekt 3: Enostaven premikajoči se sporočilni znak z uporabo MQTT, ponovno sem preučil projekt, ki je bil narejen za mini ploščo ESP8266 D1, in to je matrika LED 8x8 - ideja je povezati se z posrednikom MQTT, poslati sporočilo na temo, ki je naprava poslušanje - in prikaže to sporočilo. To je precej enostavno in zelo preprosto, ko je vse nastavljeno. In obstaja nekaj korakov za nastavitev odjemalca MQTT na namiznem računalniku. Ko je nastavitev MQTT zelo zmogljiv protokol za sporočanje, ki ga uporabljajo številne naprave IoT za pošiljanje in prejemanje sporočil.
Projekt 4: Prikaz vremenske postaje - na podlagi mini vremenske postaje ESP8266 D1 proizvajalcev Squix78 in ThingPulse. Naše podatke vzamemo iz Wundergrounda in prikažemo trenutne razmere in temperaturo v stopinjah Fahrenheita. Za posodabljanje podatkov vsakih 10 minut uporabljamo drugo jedro ESP32. Prav tako je enostavna za nastavitev.
PRIMERI BOUNS MINI: Knjižnica (in skice zgoraj) uporabljajo pisavo 8x4, knjižnica vsebuje tudi pisavo 5x4, ki sem jo uporabil za večino teh primerov mini BOUNS. Pri majhni pisavi lahko opazim nekaj težav, ena se zdi, da povzroča težave, ko uporabljate WIFI naprave. To je nekaj, kar želim raziskati več, a sem imel čas. Druga težava je, da se ne premika, samo večja pisava se lahko premika. Torej nobeden od teh primerov ne uporablja WIFI - samo posodobijo zaslon, več o tem pa bo kasneje.
Začnimo…..
2. korak: Namestite ploščo DFRobot FireBeetle ESP32 v Arduino IDE
Zato vas bom napotil na DF Robot Wiki za namestitev jedra plošče za Arduino IDE.
S sodobnim IDE (1.8.x ali boljši) je to precej enostavno.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Ugotovil sem, da knjižnica WiFi, vgrajena v Arduino IDE, povzroča težave (PS katera koli druga knjižnica WiFi, ki je morda nameščena v vašem imeniku knjižnice, lahko povzroči težave ali pa tudi ne). Edini način (ali vsaj najlažji način), ki sem ga našel za rešitev težave, je odstranitev knjižnice WiFi iz imenika IDE. Na žalost ni dobrega načina, da bi vam povedali, kje je morda nameščen - odvisno je od tega, kako je nameščen IDE, in od tega, kateri operacijski sistem uporabljate.
Kar sem naredil, sem našel knjižnico WiFi, ki povzroča težave, in premaknite imenik imenika WiFi na namizje … in znova zaženite IDE. Tako lahko shranite knjižnico, če jo potrebujete za plošče Arduino WIFI.
90% težav, ki sem jih videl, je povezanih z zgornjim vprašanjem. Če dobite veliko napak pri prevajanju, povezanih z uporabo WiFi iz imenika Arduino IDE ali imenika knjižnice Arduino, je to vaša težava.
Moja druga težava je, da se nalaganje skice včasih ne prenese - v tem primeru moram samo še enkrat pritisniti gumb za nalaganje in deluje.
In nazadnje, če imate serijsko konzolo odprto in jo nato zaprete - FireBeetle zamrzne.
Vem, da DF Robot aktivno dela na jedru plošče in v kratkem času, ko sem imel ploščo, so izdali novo jedro. Na žalost ni rešil težave z WiFi, kar je moja največja težava.
* Espressif ima "generični" upravitelj jedra, ki ga je mogoče namestiti, jedro vključuje ploščo FireBeetle ESP32, vendar sem imel težave s tem, kako so oštevilčeni zatiči. Zanimivo pri tem je, da knjižnica WiFi deluje z vgrajeno knjižnico WiFi - zato vem, da je rešitev za to težavo tik za vogalom.
Če želite preizkusiti jedra Espressif, lahko več informacij najdete tukaj:
github.com/espressif/arduino-esp32
Osebno mi je všeč, kako deluje jedro DF-Robot, tudi z nekaj težavami, ki jih imam.
** OPOMBA: Uporabljam LinuxMint 18, ki temelji na Ubuntu 16.04. Mislim, da tega nisem preizkusil na nobenem drugem računalniku, vendar verjamem, da je težava prisotna v vseh operacijskih sistemih na podlagi nekaterih internetnih iskanj. **
3. korak: Namestite skupne knjižnice za projekte
Vsi ti projekti uporabljajo nekaj skupnih knjižnic, zato je ta korak zdaj lažje narediti.
Odvisno od knjižnice jo lahko najdete v upravitelju knjižnice - kar je daleč najlažji način za namestitev knjižnice.
Drug pogost način je namestitev prek zip datoteke, ki deluje enako dobro. Toda na splošno uporabljam način ročne namestitve. Na spletnem mestu Arduino je dobra vadnica o treh metodah.
www.arduino.cc/en/guide/libraries
Za te knjižnice bi priporočal ročno metodo - ker obstaja nekaj različnih knjižnic z istim imenom, lahko z upraviteljem knjižnic napišete napačno.
Vsi ti projekti uporabljajo WiFi Manager, da se olajša povezava z wifi - odločil sem se za to, zato, če morate premakniti svoj projekt, vam ni treba ponovno programirati plošče. To je nekaj, kar uporabljam za plošče ESP8266 in dobro deluje - ni popolno. Srečo pri uporabi je knjižnico za uporabo ESP32 prenesel uporabnik github z imenom bbx10. (Ta upravitelj bi moral delati tudi s ploščami ESP8266)
Za to delo moramo namestiti tri knjižnice.
WiFiManager -
Spletni strežnik -
In končno DNSServer -
Za vse skice je skupna tudi knjižnica DF Robot DFRobot_HT1632C za LED matriko.
www.dfrobot.com/wiki/index.php/FireBeetle_…
Knjižnico najdete tukaj (še enkrat priporočam način ročne namestitve)
github.com/Chocho2017/FireBeetleLEDMatrix
Posebna opomba: v mojem skladišču github - imam nekaj nekoliko spremenjenih knjižnic DFRobot_HT1632C
github.com/kd8bxp/DFRobot-FireBeetle-ESP32…
Sprememba je namenjena manjši pisavi in se uporablja le za nekatere primere bonusov. Lahko uporabite spremenjeno knjižnico in to ne bi smelo povzročati težav. Obstaja tudi nekoliko spremenjena knjižnica (priložena nekaterim skicam kot zavihki), ki lahko naredi bitne slike.
Če se odločite za uporabo rahlo spremenjene različice, morate imenik "spremenjena knjižnica" preimenovati v FireBeetleLEDMatrix in to mapo premakniti v imenik knjižnice Arduino. Te različice vam ni treba uporabljati za te projekte, potrebna je, če želite preizkusiti nekatere manjše pisave iz primerov bonusov.
To so skupne knjižnice - za vsak projekt bomo namestili nekaj posebnih knjižnic.
Preidimo na LED matrico….
4. korak: 24x8 LED matrični pokrov
Kajti nadaljevali bomo skupaj z DF Robot Tutorial za LED Matrico
www.dfrobot.com/wiki/index.php/FireBeetle_…
Uvod: Ta 24 × 8 LED matrični zaslon je posebej zasnovan za serijo FireBeetle. Podpira način nizke porabe energije in drsni zaslon. Z visoko zmogljivim LED gonilnikom čipom HT1632C ima vsak LED neodvisen register, kar olajša vožnjo ločeno. Vgraja 256KHz RC uro, le 5uA v načinu nizke porabe energije, podpira 16-stopenjsko nastavitev svetlosti PWM. Ta izdelek deluje tudi z drugim mikrokrmilnikom Arduino, kot je Arduino UNO.
Specifikacija:
- Delovna napetost: 3.3 ~ 5VLED
- Barva: enobarvna (bela/modra/rumena/rdeča/zelena)
- Pogonski čip: HT1632C
- Delovni tok: 6 ~ 100mA
- Poraba pri nizki porabi energije: 5uARC
- Ura: 256KHz
- Izbira čipov (CS): izbira D2, D3, D4, D5
- Podpora za pomikanje zaslona
Privzete kode PIN:
- DATAD6
- WRD7 (na splošno se ne uporablja)
- Izbira CSD2, D3, D4, D5 (privzeto D2)
- RDD8
- VCC 5VUSB; 3.7V Lipo baterija
(Vsi ti projekti uporabljajo D2 za izbrani pin, to lahko po potrebi enostavno spremenite.)
Na hrbtni strani LED matrice boste videli 4 majhna stikala, izberite le enega od zatičev CS. S temi majhnimi stikali izberete svoj CS pin, privzeto pa je D2.
DF Robot WIKI ima nekaj vzorčne kode, ta koda je tudi v primerih za knjižnico. (Verjamem)
Še opomba: za svoje zatiče uporabite številke Dx - sicer bodo številke pinov številke/imena IO pin
In to vam lahko povzroči nekaj težav.
Določitev točke:
X je od 0 do 23 (ali če o tem razmišljate kot o preglednici, so to stolpci).
Y je od 0 do 7 (ali če o tem razmišljate kot o preglednici, so to vrstice).
Knjižnica ponuja funkcijo nastavljene vrednosti.
display.setPoint (x, y) s tem bo kazalec nastavljen na tisto mesto, kamor lahko zdaj natisnete sporočilo.
display.print ("Pozdravljeni svet", 40); // to bo povzročilo, da se na zaslonu prikaže "Hello World", ki se začne od točke x, y in se pomakne z zaslona.
Obstajata tudi setPixel (x, y) in clrPixel (x, y) - setPixel bo vklopil eno LED na lokaciji x, y, clrPixel pa ugasnil LED na lokaciji x, y.
Ta knjižnica lahko naredi še nekaj drugih stvari - večina je vključenih v primere.
(Priporočam, da zaženete in spremenite primere, da vidite, kaj lahko naredi).
* Ena stvar, ki se zdi pomanjkljiva, je risanje bitnih slik - knjižnica lahko to dejansko stori, vendar je iz nekega razloga zasebna funkcija knjižnice. Za nekoliko spremenjeno različico knjižnice si oglejte nekaj mojih bonus primerov
** Druga stvar je, da vključuje 5x4 nabor pisav, kar je lepo imeti manjšo pisavo - komentirano je v knjižnici. Komentiral sem ga in deloval, vendar sem opazil nekaj težav z njim - največji se ne premika. Opazil sem, da se zdi, da povzroča težave bodisi z wifi ali morda drugo knjižnico, ki sem jo želel uporabiti.
Ena od spremenjenih knjižnic, ki jih vključujem, pa uporablja pisavo 5x4.
Gremo naprej k projektom ….
5. korak: Projekt 1: Enostavna matrična NTP ura z LED matriko z vojaškim prikazom časa ali prikazom AMPM
Projekt 1: Je preprosta matrična NTP ura z LED -prikazovalnikom s časom vojaškega časa ali prikazom časa AMPM, Ta ura se bo povezala z NTP (časovnim strežnikom), zgrabila čas in uporabila izklop, tako da boste dobili lokalni čas. Na matriki LED bo prikazal čas. - To je zelo preprosta ura in zelo preprost prvi projekt.
Preden začnemo s tem preprostim projektom, bi bilo dobro vedeti, kaj je NTP -
NTP je internetni protokol, ki se uporablja za sinhronizacijo ur računalnikov z določeno časovno referenco. To je standardni protokol. NTP pomeni Network Time Protocol.
NTP uporablja UTC kot referenčni čas (UTC je univerzalni časovno usklajen čas), razvil se je iz GMT (Greenwich Mean Time), v nekaterih krogih pa se imenuje Zulu Time (vojaški). UTC temelji na kvantni resonanci atoma cezija.
NTP je odporen na napake in zelo razširljiv, protokol je zelo natančen in uporablja ločljivost, manjšo od nanosekunde.
*
Ura UTC večini ljudi ne koristi veliko, zato moramo svojo uro prilagoditi lokalnemu času. Na srečo lahko to naredimo precej enostavno. Začnimo torej s to preprosto uro NTP….
Najprej moramo namestiti knjižnico, ki olajša pogovor s strežniki NTP.
github.com/arduino-libraries/NTPClient (ta knjižnica je verjetno v upravitelju knjižnice)
Ste preskočili 3. korak - in niste prepričani, kako namestiti knjižnice (?) Raje se vrnite in preberite 3. korak:-)
Morate obiskati to spletno mesto in postaviti najbližje mesto, ki je v vašem časovnem pasu.
www.epochconverter.com/timezones
Ko pritisnete enter, boste videli "Rezultati konverzije", v rezultatih pa boste dobili odmik (razlika do GMT/UTC) v nekaj sekundah (zame je -14400)
Na skici dfrobot_firebeetle_led_matrix_ntp_clock v vrstici 66 boste videli:
#define TIMEOFFSET -14400 // Poiščite izklop svojega časovnega pasu Tu https://www.epochconverter.com/timezones OFF Nastavite v sekundah#definirajte AMPM 1 // 1 = AM PM PM, 0 = MILITARY/24 HR Time
-14400 zamenjajte z odmikom. V naslednji vrstici boste videli AMPM 1 - zaradi tega bo ura prikazala čas v AM/PM - če bi jo radi videli v 24 urah, naj bo ena nič.
Nato naložite skico na svojo ploščo, se povežite z dostopno točko (upravitelj wifi) in vnesite podrobnosti za wifi. Če ste to že storili, bi se morali po zaslonu pomakniti "povezani" in nekaj sekund kasneje bi morali videti čas.
To je to za ta projekt - preprost in enostaven za uporabo ….
(Možne izboljšave: Prikažite mesec, dan in leto, nastavite zvočni signal in alarme - na splošno nadzirajte, kaj vidite prek spletne strani. Te zamisli bi zahtevale velik prepis trenutne preproste skice)
Pripravljeni na še en preprost projekt - Prikažite, kje je ISS - Prenesite napovedi in koliko ljudi je v vesolju! (PS ta skica uporablja spletno stran za nadzor prikazanega)…..
Korak 6: Projekt 2: Prikaz napovedi prehoda ISS,
Projekt 2: ISS Pass Prediction Display, ta projekt uporablja drugo jedro procesorja. Prikazal bo, kako blizu je (v miljah) ISS, kdaj pričakovati naslednji prehod ISS na vaši lokaciji (v UTC -času) in po želji, koliko ljudi je v vesolju. Ker se veliko teh informacij ne spreminja pogosto, uporabljamo drugo jedro samo za preverjanje posodobitev napovedi prehoda ali koliko ljudi je v vesolju vsakih 15 minut. Na ta način lahko preprečimo preveč klicev API -ja na strežnik. Ta projekt je nekoliko bolj zapleten, vendar še vedno precej enostaven za izvedbo.
Ta projekt temelji na enem od mojih prejšnjih projektov, ki ga najdete tukaj:
(Enostaven sistem obveščanja ISS) Pri tem sem uporabil ESP8266 z vgrajenim zaslonom OLED (D-Duino). Večinoma ta projekt uporablja samo drugačen sistem prikaza, razširila sem ga, tako da lahko prek spletne strani spremenite, kaj želite videti na tekočem. Pa začnimo….
Večino zaslug za preprosto uporabo ima https://open-notify.org, ki ima zelo preprost in enostaven za uporabo API. API za odprto obveščanje lahko prikaže tri stvari: lokacijo ISS v zemljepisni širini in dolžini, napovedi prenosov na podlagi zemljepisne širine in dolžine. In končno, koliko ljudi (in njihovih imen) je v vesolju.
Namestiti bomo morali še eno knjižnico - knjižnico ArduinoJson.
github.com/bblanchon/ArduinoJson
Potrebujemo tudi TimeLib.h, vendar nisem prepričan, od kod sem ga dobil ali če je vključen v IDE (žal) …
Zakaj bi torej predvidevali, kje bo ISS - ISS vsebuje različno radioamatersko opremo, in ko je "nad glavo", lahko radijski operater stopi v stik z ISS z uporabo zelo preprostih (in poceni) radijskih sprejemnikov. To sem celo počel med mobilnim telefonom (vožnja v avtu). Za to res ne potrebujete veliko. Edina stvar, ki jo potrebujete, je vedeti, kje je. Pomaga tudi usmerjanje antene v njeno splošno smer.
Vrstice 57, 58, 59 so nekatere spremenljivke prikaza - če so nastavljene na 1, boste videli zaslon, če so nastavljene na 0 (nič), ne boste videli zaslona. (Te spremenljivke lahko nastavite na skici ali posodobite s spletne strani, ki jo ustvari ognjeni hrošč - več o tem kasneje).
int locDis = 1; // Prikaz lokacije ISSint pasDis = 0; // Prikaz napovedi prehoda int pplDis = 1; // Prikaz ljudi v vesolju
zato bo locDis prikazal lokacijo ISS v zemljepisni širini in dolžini - prikazuje tudi, koliko milj je oddaljen.
pasDis bo od open-notify.org prejel napovedi prehodov in jih prikazal.
in končno, pplDis prikaže imena in koliko ljudi je v vesolju - to lahko traja zelo dolgo, ne
se tudi pogosto spreminjajo. (lahko jih spremenite ali jih pustite, to je popolnoma neobvezno)
Prav tako moramo poznati svojo zemljepisno širino in dolžino in jo vnesti v skico.
Ni nujno, da je natančna širina/dolžina, lahko je središče vašega mesta ali pa le malo. Odtis ISS -a je širok, medtem ko je nad glavo, in lahko preidete na stotine (ali tisoče) kilometrov, zato malo odmika na zemljevidu/dolžini ne bo prekinilo dogovora (večino časa), komunikacija več kot 500 milj je precej pogosta.
Če ne poznate zemljepisne širine in dolžine, vam lahko to spletno mesto pomaga.
www.latlong.net V bližini vrstice 84 skice boste videli nekaj takega:
// Tukaj poiščite svojo zemljepisno širino in dolžino // https://www.latlong.net/ float mylat = 39.360095; plavajoči milon = -84,58558;
To bi moralo biti vse, kar je treba spremeniti. Naložite skico in povežite Firebeetle z internetom - in videli boste, kje je ISS v lat/dolžini in koliko milj je oddaljena (ne pozabite, da bo to približna razdalja. ISS se premika zelo hitro in do konca prikaza se je ISS premaknil veliko kilometrov od mesta, kjer je bil). Morali bi videti tudi ljudi v vesolju. (ČE zgornje spremenljivke niste spremenili).
Drugo jedro ESP32 uporabljamo za vodenje spletnega mesta, ki nam omogoča nadzor nad prikazom na LED matriki. Moral bi biti precej intuitiven glede tega, kako deluje, v enem razdelku je prikazano, kaj je vklopljeno za prikaz, v drugem razdelku so gumbi "da" "ne" - če kliknete "da" pomeni, da si ga želite ogledati, "ne" pomeni ne ne pokaži. Videti morate tudi, da se zgornji del spreminja glede na gumbe.
Edino, kar tukaj ni tako odrezano in suho, je, kako najti naslov IP Firebeetla - žal nisem mogel najti dobrega načina, da bi ga našel - zato sem za prikaz uporabil samo serijsko konzolo IDE to (9600 baud).
Odprite konzolo in videli boste naslov IP. (odprite ga, preden dobite povezano sporočilo) - moja druga izbira je bila, da ga prikažem na matriki LED takoj ob zagonu - odločil sem se proti temu, ker morda ne gledate na čas in ga boste zamudili. Razmišljal sem, da bi poslal sms sporočilo ali kaj podobnega, vendar mi je na koncu preprosto. (Poskušal sem dodeliti tudi statični IP/prehod/itd., Z upraviteljem wifi pa mi ni uspelo delovati - koda je še vedno na skici, zato, če jo kdo ugotovi, mi to sporoči)
Skica vključuje tudi napredek FreeRTOS -a, ki je vgrajen v jedro ESP32 - imamo nalogo, ki se izvaja vsakih 15 minut, s tem pa posodobimo napovedi prehodov in ljudi v vesolju. Kot sem rekel prej, se ljudje v vesolju ne spremenijo tako zelo, zato bi to verjetno lahko premaknili na drugo nalogo in morda izvedli enkrat na 12 ur (ali 6 ur) - vendar to deluje in stvari olajšajo.
Za tiste, ki ne veste, je FreeRTOS način, da enojedrnemu mikrokrmilniku omogočite izvajanje več nalog
Običajno morate vključiti nekatere knjižnice in druge stvari, da deluje, vendar je vgrajeno v jedro ESP32, zaradi česar je ESP32 zelo zmogljiva naprava. za več informacij o FreeRTOS -u
freertos.org/
IZBOLJŠANJA: Za ta projekt je mogoče izboljšati številne stvari in skoraj vsak dan pomislim na nekaj, kar bi lahko naredili nekoliko drugače, spremenili ali dodali.
V imeniku več primerov skladišča si lahko ogledate nekatere prejšnje/različne stvari, o katerih sem razmišljal- nekatere od teh niso delovale, nekatere so se le spremenile, nekatere pa so vključene v trenutno skico.
* V nekem trenutku sem na zaslon poskušal dodati neopixel, da bi bil nekoliko bolj podoben mojemu prejšnjemu projektu - nikoli mi ni uspelo povsem pravilno (ugotovil sem, da gre za napajanje, ki ga nisem upošteval) delam na tem, kako izboljšati to idejo *
Med pisanjem tega koraka sem pomislil, morda bi lahko na spletno stran dodal način za posodobitev vaše zemljepisne širine in dolžine - tako skice nikoli ne bo treba spreminjati - tudi o tem bom razmišljal nekoliko bolj.
Izboljšan način pridobivanja naslova IP je nekaj drugega, kar bi rad naredil (še vedno razmišljam o tem)
Preidimo na naslednji projekt ….
Korak 7: Projekt 3: Preprost premikajoč se sporočni znak z uporabo MQTT
"loading =" leni "" loading = "leni"
Tako se je izkazalo, da lahko knjižnica prikaže slike - ti iz nekega razloga se zdi, da je ta funkcija "zasebna" - no, za te naslednje skice sem knjižnico še enkrat spremenila in naredila drawImage javno funkcijo.
Tokrat sem spremenjeno knjižnico dal v imenik skic, zato vam knjižnice ni treba znova namestiti, skica najprej pogleda sebe, nato bo pogledala v imenik knjižnice, tako da smo dobri!
*** To spremembo nameravam predložiti DFRobotu, saj je res zelo kul in nekako lepo, da lahko delam te vrste skic ***
Skica LED matričnih slik, tukaj sem najprej poskušal ugotoviti, kaj knjižnica želi in kaj bi in kaj ne bi delovalo - z različnimi stopnjami uspeha. Ugotovil sem, da slike 8x8 delujejo najbolje, lahko pa delate tudi druge. Našel sem tudi nekaj spletnih matričnih urednikov, nekateri delujejo bolje kot drugi.
xantorohara.github.io/led-matrix-editor/-zdi se, da deluje v redu, naredi slike 8x8 in jih želite kot bajtne matrike.
www.riyas.org/2013/12/online-led-matrix-fo… ta deluje dobro in ima možnost prikazovanja več kot 8x8, zdi se, da je zaslon obrnjen na stran tega zaslona vendar. Zdi se, da bajtovi nizi najbolje delujejo tukaj. Uporabil sem ga za izdelavo "vesoljskih napadalcev", prikazanih v zgornjem videu.
Kako torej to deluje, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);
spremenljivka matrike matrike slike, širina slike (8), višina slike (8), začetni položaj na zaslonu x (0), y (0) običajno in številka odmika, kar pa nisem 100% prepričan, kaj počne, zato sem večino časa pustil pri ničli.
V skici LED matričnih slik - obstaja 8 različnih bajtnih nizov - s tremi različnimi metodami.
- ognjemeti so prva polja, iskreno, nisem prepričan, kako ta deluje - vendar deluje.
naslednja so usta - to v resnici ne deluje povsem pravilno, usta se pripeljejo v napačno smer, poskušanje kakršnih koli sprememb pa le poslabša. (Učenje, kaj deluje in kaj ne, je pol zabave)
Sledi prvi marioImg - ta je prevelik za zaslon in mislim, da tu nastopi offset - sem ga uporabil tukaj in sprednji del mario lahko vidite, če spremenite odmik na 1 mu bom videl hrbet. (ti res ne morem povedati, zakaj ali kaj naredi odmik. Zdi se, da sliko premakne, ampak zakaj jo 2 premakne, tako da lahko vidiš njegovo sprednjo stran in zakaj 1 premakne drugo smer, ti ne morem povedati)
IMAGES - matrika bajtov je znak @, ki sem ga naredil - izgleda, kot sem naredil z orodjem na
Tudi bajt matrika pic1 izgleda tako, kot sem poskušal narediti, le da je manjši, kot sem poskušal - tega, kar je, ne morem reči, lahko pa na splošno rečem, da je videti, kot sem počel v urejevalniku.
mario2Img - to je moja lastna različica večjega Maria, narejenega za velikost zaslona 8x8 - in ti imaš eno ali dve slikovni piki na mestu (moja krivda, ne zasloni), izgleda kot majhen Mario (nekako).
invader1 in invader2 - moja ideja za vesoljskega vsiljivca. izkazali so se precej dobri in s postavljanjem slik drug na drugega lahko ustvarim učinek premikanja stopal.
V imeniku sta dve skici ognjemeta, ki sta nekoliko drugačni in jih je vredno preizkusiti.
Pri enem se ognjemet premika po zaslonu, zato malo več/drugačna animacija … pri drugem sta prikazana dva ognjemeta hkrati
Obstajajo tudi tri skice "napadalcev", vsaka je nekoliko drugačna, ena ima napadalca, ki se premika po zaslonu, in si lahko ogledate, kako sem to naredil - (morda obstajajo boljši načini, ne vem)
Še več: V preskusnem imeniku skladišča je nekaj skic - večina teh ni delovala tako, kot sem si želela, ali pa so bile ideje, ki jih želim narediti, vendar niso delovale tako, kot sem želela. Zapustil sem jih, ker ima nekdo nekaj idej *(naredil sem majhen "ščit" z slikovno piko WS2812 za uporabo z zaslonom ISS, vendar sem ga priključil na linijo 3v in preprosto nisem imel dovolj moč tudi pri delujoči LED matriki, slikovna pika je delovala dobro, brez LED matrike ti, zato bi lahko še kaj naredil z njo)*
Obstaja tudi imenik z imenom "Več primerov" - to so različice nekaterih skic projekta, bodisi sem kaj dodal ali odstranil ali pa na nek način spremenil. Pri teh delujejo - le niso končni projekt. Zato sem jih spet pustil, da bi jim kdo lahko kaj koristnega prinesel. (Mogoče)
Upam, da ste uživali v tem navodilu tako kot jaz pri ustvarjanju teh projektov:-)
11. korak: Povezave…
Ta projekt je sponzoriral in podprl DF Robot. Za izdelke uporabite spodnje povezave:
Firebeetle ESP32 -
Ovitek Firebeetle 24x8 LED Matrix -
Moje skladišče kod:
Če se vam zdi ta ali kateri od mojih projektov koristen ali prijeten, me podprite. Karkoli dobim, gre za nakup več delov in ustvarjanje več/boljših projektov.
www.patreon.com/kd8bxp
Knjižnica NTPClient
ArduinoJson.h
ESP8266 Vremenska knjižnica
Knjižnica Json-Streaming-Parser
Priporočena:
Reciklirano motorno kolo iz pokrova steklenice: 9 korakov (s slikami)
Reciklirano motorno kolo iz pokrova steklenice: v Kaj storiti doma? Tukaj je nekaj preprostih načinov za izdelavo dirkalnih avtomobilov doma. Vodil vas bom korak za korakom pri izdelavi osnovnih in naprednih dirkalnih avtomobilov. Lahko naredite in preizkusite. ali pa ga zapakirate kot darilo, ki ga podarite svojim otrokom ali prijateljem. Upam
Digitalna ura z uporabo Arduino in LED matričnega zaslona: 6 korakov
Digitalna ura z uporabo Arduina in Led Dot Matrix Display: Danes ustvarjalci in razvijalci raje uporabljajo Arduino za hiter razvoj prototipov projektov. Arduino je odprtokodna elektronska platforma, ki temelji na enostavni strojni in programski opremi. Arduino ima zelo dobro skupnost uporabnikov. V tem projektu
Nosljiva značka LED matričnega zaslona: 8 korakov (s slikami)
Nosljiva značka LED matričnega zaslona: Ali vodite dogodek, tekmovanje ali celo gostite rojstnodnevno zabavo? Značke so vsestranski element, ki lahko olajša predstavitve in praznovanja. Nikoli ne bi začeli pogovora z " zdravo, moje ime je .. ……….. " s
Odstranitev pokrova zaslona Nokia 6280 za čiščenje prahu: 7 korakov
Odstranitev pokrova zaslona Nokia 6280 za čiščenje prahu: Za razliko od mnogih drugih modelov se zdi, da Nokia 6280 ni narejena tako, da lahko uporabniki sami odstranijo pokrov zaslona. To moti tiste, ki med dejanskim LCD -jem in pokrovom zaslona dobijo prah, kar je veliko lastnikov … Pravzaprav se sčasoma "
Izboljšan modul LED za osvetlitev pokrova: 9 korakov
Izboljšan modul LED za osvetlitev pokrova: ta navodila vam bodo pokazala, kako me lahko spremenite za modul za osvetlitev pokrova, da boste dobili več svetlobe