INHOUDSOPGAWE:

4 projekte in 1 met behulp van DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 stappe (met foto's)
4 projekte in 1 met behulp van DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 stappe (met foto's)

Video: 4 projekte in 1 met behulp van DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 stappe (met foto's)

Video: 4 projekte in 1 met behulp van DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 stappe (met foto's)
Video: как сделать Propeller LED Pendulum Clock, используя Arduino NANO, JLCPCB 2024, November
Anonim
Image
Image
Installeer algemene biblioteke vir die projekte
Installeer algemene biblioteke vir die projekte

Ek het daaraan gedink om 'n instruksie vir elke van hierdie projekte te doen - maar uiteindelik het ek besluit dat die grootste verskil die sagteware vir elke projek is, en ek het gedink dit is beter om net een groot instruksie te maak!

Die hardeware is dieselfde vir elke projek, en ons gebruik die Arduino IDE om die ESP32 -toestel te programmeer.

So, wat is die hardeware: al die hardeware is deur my vriende by DFRobot verskaf, hulle het baie goeie tutoriale en is maklik om kernborde hiervoor te installeer. Het ook 'n goeie ondersteuningstelsel en vinnige aflewering na die VSA

Die Firebeetle ESP32 -bord en die LED Matrix is volledig bekend gemaak deur DF Robot, die projekte wat aangebied word en in die video's is my eie.

Hierdie projekte gebruik almal 'n DFRobot FireBeetle ESP32 IOT MicroController

www.dfrobot.com/product-1590.html

Die ondersteuningswiki - met raad -installasie -instruksies kan hier gevind word:

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

Ons benodig ook 'n FireBeetle Covers 24x8 LED Matrix (BLOU)

www.dfrobot.com/product-1595.html

Hou nie van BLOU LED's nie - hulle het ook verskillende kleure.

GROEN -

ROOI -

WIT -

GEEL -

U benodig slegs een LED Matrix - die kleur is u keuse, hulle werk almal dieselfde.

LED Matrix -ondersteuningswiki kan hier gevind word:

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

Hier vind ons 'n skakel na die Arduino -biblioteek.

github.com/Chocho2017/FireBeetleLEDMatrix

Meer hieroor 'n bietjie later ….

Iets wat opsioneel is, maar miskien handig is, is 'n MicroUSB 3xAA batteryhouer.

www.dfrobot.com/product-1130.html

Dit is die nodige hardeware - wat is die vier projekte -

Stap 1: Die projekte

Image
Image

Projek 1: is 'n eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -tydskerm, Hierdie horlosie maak 'n verbinding met 'n NTP (tydbediener), en gebruik 'n afstel sodat u plaaslike tyd kry. Dit sal die tyd op die LED Matrix vertoon. - Dit is 'n baie eenvoudige klok en 'n baie eenvoudige eerste projek.

Projek 2: ISS Pass Prediction Display, hierdie projek gebruik die 2de kern van die verwerker. Dit sal wys hoe naby die ISS is (in myl), wanneer u die volgende ISS -pas op u plek (in UTC -tyd) kan verwag, en moontlik hoeveel mense in die ruimte is. Aangesien baie van hierdie inligting nie gereeld verander nie, gebruik ons die tweede kern om slegs te kyk na opdaterings van die pasvoorspellings, of hoeveel mense elke 15 minute in die ruimte is. Ons kan op hierdie manier te veel API -oproepe na die bediener voorkom. Hierdie projek is 'n bietjie ingewikkelder, maar steeds redelik maklik om te doen.

Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT, ek het weer 'n projek besoek wat gemaak is vir die ESP8266 D1 mini -bord, en dit is 8x8 LED Matrix - Die idee is om aan te sluit by 'n MQTT -makelaar, 'n boodskap te stuur na 'n onderwerp waarop die toestel is luister - en vertoon daardie boodskap. Dit is redelik maklik en baie eenvoudig om te doen sodra alles opgestel is. En daar is 'n paar stappe om die MQTT -kliënt sagteware op 'n tafelrekenaar op te stel. Sodra dit opgestel is, is MQTT 'n baie kragtige boodskapprotokol wat deur baie IoT -toestelle gebruik word om boodskappe te stuur en te ontvang.

Projek 4: Weerstasievertoning - gebaseer op die ESP8266 D1 mini -weerstasie gemaak deur Squix78 en ThingPulse. Ons haal ons data van Wunderground af, en gee die huidige toestande en die temperatuur in grade Fahrenheit weer. Ons gebruik die tweede kern van die ESP32 om ons data elke 10 minute by te werk. Dit is ook eenvoudig om op te stel.

BOUNS MINI VOORBEELDE: Die biblioteek (en sketse hierbo) gebruik 'n 8x4 lettertipe, die biblioteek bevat ook 'n 5x4 lettertipe, wat ek vir die meeste van hierdie BOUNS mini voorbeelde gebruik het. Daar is 'n paar probleme wat ek kan oplet met die klein lettertipe, dit lyk asof dit probleme veroorsaak as u die WIFI van die toestel gebruik. Dit is iets wat ek meer wil ondersoek, maar ek het tyd gehad. Die ander probleem is dat dit nie blaai nie; slegs die groter lettertipe kan blaai. Geen van hierdie voorbeelde gebruik dus die WIFI nie - hulle werk net die skerm op, en meer hieroor sal later verskyn.

Laat ons begin…..

Stap 2: Installeer die DFRobot FireBeetle ESP32 -bord in die Arduino IDE

Ek verwys u dus na die DF Robot Wiki oor die installering van die bordkern vir die Arduino IDE.

Dit is redelik maklik om te doen met die moderne IDE (1.8.x of beter).

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

Ek het gevind dat die WiFi -biblioteek wat in die Arduino IDE ingebou is, probleme veroorsaak (PS enige ander WiFi -biblioteek wat moontlik in u biblioteekgids geïnstalleer is, kan al dan nie probleme veroorsaak nie). Die enigste manier (of ten minste die maklikste manier) om die probleem op te los, is om die WiFi -biblioteek uit die IDE -gids te verwyder. Ongelukkig is daar geen goeie manier om u te vertel waar dit geïnstalleer is nie - dit hang af van hoe die IDE geïnstalleer is en watter bedryfstelsel u gebruik.

Wat ek gedoen het, is die WiFi -biblioteek wat probleme veroorsaak, gevind, en skuif net die gids WiFi -gids na u lessenaar … en herbegin die IDE. Op hierdie manier kan u die biblioteek bewaar as u dit nodig het vir die Arduino WIFI -borde.

90% van die probleme wat ek gesien het, hou verband met die bogenoemde probleem. As u baie kompilfoute kry wat verband hou met die gebruik van WiFi uit die Arduino IDE -gids of die Arduino Library -gids, is dit die probleem.

My tweede probleem is dat die oplaai van die skets soms nie opgelaai kan word nie - in hierdie geval moet ek net weer op die oplaai -knoppie druk, en dit werk.

En laastens, as u die reekskonsole oopmaak en dit dan toemaak - vries die FireBeetle.

Ek weet dat DF Robot aktief besig is met die kern van die bord, en net in die kort tyd wat ek die bord gehad het, het hulle 'n nuwe kern vrygestel. Ongelukkig het dit nie die WiFi -probleem opgelos nie, wat my grootste probleem is.

* Espressif het 'n 'generiese' kernbestuurder wat geïnstalleer kan word; die kern bevat wel die FireBeetle ESP32 -bord, maar ek het 'n probleem gehad met hoe die penne genommer is. Die interessante ding hier is dat die WiFi -biblioteek werk met die ingeboude WiFi -biblioteek - so ek weet daar is 'n oplossing vir die probleem om die draai.

As u die Espressif -kerne wil probeer, kan u hier meer inligting vind:

github.com/espressif/arduino-esp32

Ek hou persoonlik van die manier waarop die DF-Robot-kern werk, selfs al is daar min probleme.

** OPMERKING: ek gebruik LinuxMint 18 wat op Ubuntu 16.04 gebaseer is, ek dink ek het dit nie op enige ander masjien probeer nie, maar ek glo dat die probleem vir alle bedryfstelsels voorkom, gebaseer op 'n paar soektogte op die internet wat ek gedoen het. **

Stap 3: Installeer algemene biblioteke vir die projekte

Installeer algemene biblioteke vir die projekte
Installeer algemene biblioteke vir die projekte

Al hierdie projekte gebruik 'n paar algemene biblioteke, dus is dit makliker om hierdie stap nou te doen.

Afhangende van die biblioteek, vind u dit moontlik in die biblioteekbestuurder - wat verreweg die maklikste manier is om 'n biblioteek te installeer.

'N Ander algemene manier is om te installeer via 'n zip -lêer, wat ook ewe goed werk. Maar oor die algemeen gebruik ek die handmatige installeringsmetode. Daar is 'n goeie handleiding oor die drie metodes op die Arduino -webwerf.

www.arduino.cc/en/guide/libraries

Vir hierdie biblioteke sou ek die handmatige metode aanbeveel - omdat daar 'n paar verskillende biblioteke met dieselfde naam is, kan u met die verkeerde biblioteek eindig.

Al hierdie projekte gebruik 'n WiFi -bestuurder om die verbinding met u wifi maklik te maak. Dit is iets wat ek vir die ESP8266 -borde gebruik, en dit werk goed - dit is nie perfek nie. Geluk vir gebruik is die biblioteek oorgedra om die ESP32 te gebruik deur 'n github -gebruiker met die naam bbx10. (Hierdie bestuurder moet ook saam met die ESP8266 -borde werk)

Ons moet drie biblioteke installeer om dit ook te kan doen.

Die WiFiManager -

Die WebServer -

En laastens die DNSServer -

Die DF Robot DFRobot_HT1632C -biblioteek vir die LED Matrix is ook algemeen vir al die sketse.

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

Die biblioteek kan hier gevind word (ek sal weer die handmatige installeringsmetode aanbeveel)

github.com/Chocho2017/FireBeetleLEDMatrix

'N Spesiale opmerking: in my github -bewaarplek - ek het 'n paar effens aangepaste DFRobot_HT1632C -biblioteke

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

Die wysiging is vir 'n kleiner lettertipe en word slegs vir sommige van die bonusvoorbeelde gebruik. U kan die gewysigde biblioteek gebruik, en dit behoort geen probleme te veroorsaak nie. Daar is ook 'n effens aangepaste biblioteek (aangeheg aan sommige van die sketse as oortjies) wat bitmap -beelde kan doen.

As u kies om die effens aangepaste weergawe te gebruik, moet u die gids "gewysigde biblioteek" hernoem na FireBeetleLEDMatrix en die gids na die Arduino-biblioteekgids skuif. U hoef nie hierdie weergawe vir hierdie projekte te gebruik nie; dit is nodig as u 'n paar van die kleiner lettertipes uit die bonusvoorbeelde wil probeer.

Dit is die algemene biblioteke - ons sal 'n paar spesifieke biblioteke vir elke projek installeer.

Kom ons gaan na die LED Matrix ….

Stap 4: Die 24x8 LED Matrix Cover

Die 24x8 LED Matrix Cover
Die 24x8 LED Matrix Cover
Die 24x8 LED Matrix Cover
Die 24x8 LED Matrix Cover
Die 24x8 LED Matrix Cover
Die 24x8 LED Matrix Cover

Want ons gaan saam met die DF Robot -tutoriaal vir die LED Matrix volg

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

Inleiding: Hierdie 24 × 8 LED Matrix -skerm is spesiaal ontwerp vir die FireBeetle -reeks. Dit ondersteun die modus vir lae-energieverbruik en blaai-skerm. Met die HT1632C hoëprestasie LED -bestuurderskyfie, het elke led 'n onafhanklike register, wat dit maklik maak om afsonderlik te bestuur. Dit integreer 'n 256KHz RC-klok, slegs 5uA in 'n lae-kragmodus, ondersteun die PWM-helderheidsaanpassing van 16 skaal. Hierdie produk werk ook saam met die ander Arduino -mikrobeheerder, soos Arduino UNO.

Spesifikasie:

  • Bedryfspanning: 3.3 ~ 5VLED
  • Kleur: Enkelkleur (wit/blou/geel/rooi/groen)
  • Drive Chip: HT1632C
  • Werkstroom: 6 ~ 100mA
  • Lae kragverbruik: 5uARC
  • klok: 256KHz
  • Chip Select (CS): D2, D3, D4, D5 kiesbaar
  • Ondersteun rolskerm

Verstek PIN's:

  1. DATAD6
  2. WRD7 (word gewoonlik nie gebruik nie)
  3. CSD2, D3, D4, D5 kiesbaar (standaard D2)
  4. RDD8
  5. VCC 5VUSB; 3.7V Lipo battery

(Al hierdie projekte gebruik D2 vir die kiespen, dit kan maklik verander word indien nodig.)

Op die agterkant van die LED Matrix sal u 4 klein skakelaars sien; maak seker dat u slegs een van die CS -penne kies. Hierdie klein skakelaars is hoe u u CS -pin kies, en die standaard is D2.

Die DF Robot WIKI het 'n voorbeeldkode; hierdie kode is ook in die voorbeelde van die biblioteek. (Ek glo)

Nog 'n opmerking: gebruik die Dx -nommers vir u penne - anders is die speldnommers die IO -speldnommers/-name

En dit kan u probleme veroorsaak.

Stel 'n punt:

X is 0 tot 23 (of as u dit as 'n sigblad beskou, is dit kolomme).

Y is 0 tot 7 (of as jy dit as 'n sigblad beskou, is dit rye).

Die biblioteek bied 'n setpoint -funksie.

display.setPoint (x, y) dit sal die wyser na daardie plek stel, waar u nou 'n boodskap kan druk.

display.print ("Hello World", 40); // Dit sal veroorsaak dat die skerm "Hello World" vertoon vanaf die x, y punt en van die skerm af rol.

Daar is ook 'n setPixel (x, y) en clrPixel (x, y) - setPixel sal een LED op die x, y -plek aanskakel, en clrPixel sal 'n LED op die x, y -plek afskakel.

Daar is 'n paar ander dinge wat hierdie biblioteek kan doen - en die meeste is ingesluit in die voorbeelde.

(Ek beveel aan dat u die voorbeelde laat loop en verander om te sien wat dit kan doen).

* Dit blyk dat dit nie ontbreek nie, is om bitmaps te teken - die biblioteek kan dit eintlik doen, maar dit is om een of ander rede 'n privaat funksie van die biblioteek. Sien 'n paar van my bonusvoorbeelde vir 'n effens aangepaste weergawe van die biblioteek

** 'n Ander ding is dat dit 'n lettertipe van 5x4 bevat, wat aangenaam is om 'n kleiner lettertipe te hê. Ek het dit nie ingedien nie en dit laat werk, maar ek het 'n paar probleme daarmee opgemerk - die grootste is dat dit nie blaai nie. En ek het opgemerk dat dit probleme met die wifi veroorsaak, of miskien 'n ander biblioteek wat ek wou gebruik.

Een van die gewysigde biblioteke wat ek insluit, gebruik egter die 5x4 -lettertipe.

Kom ons gaan oor na die projekte ….

Stap 5: Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -weergave

Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm
Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm
Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm
Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm
Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm
Projek 1: 'n Eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -skerm

Projek 1: is 'n eenvoudige LED Matrix NTP -klok met militêre tydweergawe of AMPM -tydskerm, Hierdie horlosie maak 'n verbinding met 'n NTP (tydbediener), en gebruik 'n afstel sodat u plaaslike tyd kry. Dit sal die tyd op die LED Matrix vertoon. - Dit is 'n baie eenvoudige klok en 'n baie eenvoudige eerste projek.

Voordat ons met hierdie eenvoudige projek begin, is dit miskien 'n goeie idee om te weet wat NTP is -

NTP is 'n internetprotokol wat gebruik word om horlosies van rekenaars met 'n tydsverwysing te sinchroniseer. Dit is 'n standaard protokol. NTP staan vir Network Time Protocol.

NTP gebruik UTC as 'n verwysingstyd (UTC is Universal Time Coordinated) dit het ontwikkel uit GMT (Greenwich Mean Time), en in sommige kringe word dit Zulu Time (Militêr) genoem. UTC is gebaseer op 'n kwantumresonansie van 'n sesiumatoom.

NTP is fouttolerant en hoogs skaalbaar; die protokol is baie akkuraat met 'n resolusie van minder as 'n nanosekonde.

*

'N UTC -klok het nie veel nut vir die meeste mense nie, daarom moet ons ons klok aanpas by die plaaslike tyd. Gelukkig kan ons dit redelik maklik doen. Laat ons dus begin met hierdie eenvoudige NTP -klok ….

In die eerste plek moet ons 'n biblioteek installeer wat dit maklik maak om met die NTP -bedieners te praat.

github.com/arduino-libraries/NTPClient (hierdie biblioteek is waarskynlik in die biblioteekbestuurder)

Het u stap 3 oorgeslaan - en weet u nie hoe u biblioteke moet installeer nie (?) Gaan beter terug en lees stap 3:-)

U moet na hierdie webwerf gaan en die stad wat die naaste aan u is, in u tydsone bevind.

www.epochconverter.com/timezones

As u op enter druk, sien u 'Omskakelingsresultate', en in die resultate kry u die offset (verskil tot GMT/UTC) in sekondes (vir my is dit -14400)

In die skets dfrobot_firebeetle_led_matrix_ntp_clock op reël 66 sal u sien:

#define TIMEOFFSET -14400 // Vind u tydsone af hier stel https://www.epochconverter.com/timesones OFF Stel in sekondes#definieer AMPM 1 // 1 = AM PM -tyd, 0 = MILITAIR/24 HR -tyd

vervang -14400 met u offset. Die volgende reël sien u AMPM 1 - dit sal veroorsaak dat die klok die tyd in AM/PM vertoon - as u dit eerder in 24 uur wil sien, maak die een 'n nul.

Laai die skets vervolgens op u bord, maak verbinding met die toegangspunt (wifi -bestuurder) en voer die besonderhede van u wifi in. As u dit reeds gedoen het, moet u 'gekoppelde' blaai oor die skerm sien, en 'n paar sekondes later moet u die tyd sien.

Dit is dit vir hierdie projek - eenvoudig en maklik om te gebruik ….

(Moontlike verbeterings: vertoon die maand, dag en jaar, stel 'n gonser en alarms op - beheer oor die algemeen wat u via 'n webblad sien. Hierdie idee sou 'n groot herskryf van die huidige eenvoudige skets neem)

Gereed vir nog 'n eenvoudige projek - Vertoon waar die ISS is - Slaag voorspellings en hoeveel mense in die ruimte is! (PS hierdie skets gebruik wel 'n webblad om te beheer wat vertoon word) …..

Stap 6: Projek 2: ISS Pass Prediction Display,

Projek 2: ISS Pass -voorspellingsvertoning,
Projek 2: ISS Pass -voorspellingsvertoning,
Projek 2: ISS Pass -voorspellingsvertoning,
Projek 2: ISS Pass -voorspellingsvertoning,
Projek 2: ISS Pass -voorspellingsvertoning,
Projek 2: ISS Pass -voorspellingsvertoning,

Projek 2: ISS Pass Prediction Display, hierdie projek gebruik die 2de kern van die verwerker. Dit sal wys hoe naby die ISS is (in myl), wanneer u die volgende ISS -pas op u plek (in UTC -tyd) kan verwag, en moontlik hoeveel mense in die ruimte is. Aangesien baie van hierdie inligting nie gereeld verander nie, gebruik ons die tweede kern om slegs te kyk na opdaterings van die pasvoorspellings, of hoeveel mense elke 15 minute in die ruimte is. Ons kan op hierdie manier te veel API -oproepe na die bediener voorkom. Hierdie projek is 'n bietjie ingewikkelder, maar nog steeds redelik maklik om te doen.

Hierdie projek is gebaseer op een van my vorige projekte wat u hier kan vind:

('N Eenvoudige ISS-kennisgewingstelsel) Daarin gebruik ek 'n ESP8266 met 'n ingeboude OLED-skerm (D-Duino). Vir die grootste deel gebruik hierdie projek net 'n ander vertoonstelsel; ek het daarop uitgebrei, sodat u dit wat u wil sien, vinnig kan verander via 'n webblad. So laat ons begin….

Die grootste deel van die krediet vir maklike gebruik gaan na https://open-notify.org, met 'n baie eenvoudige en maklik om te gebruik API. Die open-notify API het drie dinge wat vertoon kan word, die ligging van die ISS in breedtegraad en lengte, voorspellings wat gebaseer is op 'n gegewe breedtegraad en lengte. En uiteindelik hoeveel mense (en hul name) in die ruimte is.

Ons sal 'n ander biblioteek moet installeer - die ArduinoJson -biblioteek.

github.com/bblanchon/ArduinoJson

Ons het ook TimeLib.h nodig, maar ek is nie seker waar ek die een vandaan gekry het nie, of dit by die IDE ingesluit is (jammer) …

So, waarom voorspel waar die ISS sal wees - Die ISS bevat verskillende amateurradio -toerusting, en as dit 'oor die kop' is, kan 'n hamradio -operateur kontak maak met die ISS met 'n paar baie eenvoudige (en goedkoop) radio's. Ek het dit selfs gedoen terwyl ek selfoon was (in die motor gery). U het regtig nie veel nodig om dit te laat werk nie. Die enigste ding wat u nodig het, is om te weet waar dit is. En om die antenna in die algemene rigting te wys, help.

Reël 57, 58, 59 is 'n paar vertoonveranderlikes - as dit op 1 gestel is, sal u 'n skerm sien; as dit op 0 (nul) gestel is, sal u nie 'n skerm sien nie. (Hierdie veranderlikes kan in die skets opgestel word, of opgedateer word vanaf 'n webbladsy wat die vuurpyl skep - meer hieroor later).

int locDis = 1; // Gee ligging van ISSint pasDis = 0; // Wys pasvoorspellings int pplDis = 1; // Wys mense in die ruimte

so locDis sal die ligging van die ISS in breedtegraad en lengte wys - dit wys ook hoeveel myl daarvandaan is.

pasDis sal die slaagvoorspellings van open-notify.org kry en dit vertoon.

en laastens sal pplDis die name en hoeveel mense in die ruimte vertoon - dit kan baie lank word, nie waar nie

verander ook gereeld. (u kan dit verander of laat, dit is heeltemal opsioneel)

Ons moet ook ons breedtegraad en lengtegraad ken en dit in die skets plaas.

Dit hoef nie 'n presiese lengte/lengte te wees nie, dit kan die middelpunt van u stad wees, of net 'n bietjie. Die voetafdruk van die ISS is wyd terwyl dit oor die kop is, en honderde (of duisende) myl kan afgelê word, so om 'n bietjie op jou lat/lang te wees, is nie 'n ooreenkoms nie (meestal), kommunikasie oor 500 myl is redelik algemeen.

As u nie u breedtegraad en lengtegraad ken nie, kan hierdie webwerf u help.

www.latlong.net Naby lyn 84 van die skets sien u so iets:

// Vind u breedtegraad en lengtegraad hier // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84.58558;

Dit moet al wees wat verander moet word. Laai die skets op en koppel die Firebeetle aan die internet - en u moet sien, die ligging van die ISS in lat/lank gegee en hoeveel myl daarvandaan is (onthou dat dit 'n geskatte afstand sal wees. Die ISS beweeg baie vinnig, en teen die tyd dat die skerm klaar is, het die ISS baie kilometers ver beweeg van waar dit was). U moet ook die mense in die ruimte sien. (AS jy nie die veranderlike hierbo verander het nie).

Ons gebruik die tweede kern van die ESP32 om 'n webwerf te bestuur; deur die webwerf te gebruik, kan ons beheer hê oor wat op die LED-matriks verskyn. Dit moet redelik intuïtief wees oor hoe dit werk; een afdeling wys wat aangeskakel is vir vertoning, 'n ander afdeling het 'ja' 'nee' knoppies - as u op die 'ja' klik, beteken dit dat u dit wil sien, die 'nee' beteken ' t dit wys. U moet ook sien dat die boonste gedeelte verander op grond van die knoppies.

Die enigste ding wat hier nie so droog en droog is nie, is hoe om die IP -adres van die Firebeetle te vind - ek kon ongelukkig nie 'n goeie manier vind om dit te vind nie - so ek het net die seriële konsole van die IDE gebruik om te wys dit (9600 baud).

Maak die konsole oop, en u moet die IP -adres sien. (maak dit oop voordat u die gekoppelde boodskap kry) - my ander keuse was om dit dadelik op die LED Matrix te vertoon - ek het daarteen besluit, want u kyk moontlik nie na die tyd nie en u sal dit mis. Ek het dit oorweeg om 'n sms -boodskap te stuur, of iets, maar uiteindelik hou ek dit eenvoudig. (Ek het ook probeer om 'n statiese IP/gateway/ens toe te ken, maar ek kon dit nie regkry met die wifi -bestuurder nie - die kode is nog in die skets, so as iemand dit agterkom laat weet my)

Die skets neem ook 'n vooruitgang van FreeRTOS -ingeboude in die ESP32 -kern - ons het 'n taak wat elke 15 minute of wat duur; wat dit doen, is om die pasvoorspellings, sowel as die mense in die ruimte, by te werk. Soos ek vroeër gesê het, verander mense in die ruimte nie so veel nie, sodat dit waarskynlik na 'n ander taak oorgeplaas kan word en miskien elke 12 uur (of 6 uur) uitgevoer kan word - maar dit werk, en dit hou dinge eenvoudig.

Vir diegene wat nie weet nie, FreeRTOS is 'n manier om 'n enkele kern mikro-beheerder te laat vermenigvuldig take

Normaalweg moet u 'n paar biblioteke en ander dinge insluit om dit te laat werk - maar dit is ingebou in die kern van die ESP32 - wat van die ESP32 'n baie kragtige toestel maak. vir meer inligting oor FreeRTOS

freertos.org/

VERBETERINGS: daar is 'n aantal dinge wat verbeter kan word vir hierdie projek, en byna elke dag dink ek aan iets wat 'n bietjie anders gedoen, verander of bygevoeg kan word.

En in die meer voorbeelde-gids van die bewaarplek kan u 'n paar van die vroeëre/verskillende dinge sien waaraan ek gedink het- sommige hiervan het nie gewerk nie, sommige het net verander, en sommige is in die huidige skets ingesluit.

* Op 'n stadium het ek probeer om 'n neopixel by die skerm te voeg, sodat dit 'n bietjie meer sou lyk soos my vorige projek - ek het dit nooit reg laat werk nie (ek het gevind dat dit 'n kragprobleem was wat ek nie oorweeg het nie). werk aan 'n manier om hierdie idee te verbeter *

Terwyl ek hierdie stap geskryf het, het ek gedink: miskien kan ek 'n manier byvoeg om u breedtegraad en lengtegraad op die webwerf by te werk - sodat die skets nooit hoef gewysig te word nie - ek sal ook 'n bietjie meer hieroor nadink.

'N Verbeterde manier om die IP -adres te kry, is iets anders wat ek graag wil doen (ek dink nog steeds daaraan)

Kom ons gaan na ons volgende projek ….

Stap 7: Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT

Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT
Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT
Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT
Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT
Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT
Projek 3: 'n Eenvoudige bewegende boodskapteken met behulp van MQTT

"laai =" lui "" laai = "lui"

Bonus deel 2 - vertoon beelde
Bonus deel 2 - vertoon beelde
Bonus deel 2 - vertoon beelde
Bonus deel 2 - vertoon beelde
Bonus deel 2 - vertoon beelde
Bonus deel 2 - vertoon beelde

Dit blyk dus dat die biblioteek beelde kan vertoon - om een of ander rede blyk die funksie "privaat" te wees - wel, vir die volgende sketse het ek die biblioteek weer aangepas en van DrawImage 'n openbare funksie gemaak.

Hierdie keer het ek die gewysigde biblioteek in die sketsgids geplaas, sodat u nie die biblioteek hoef te herinstalleer nie; die skets kyk eers na homself, dan sal dit in die biblioteekgids kyk, so ons is goed!

*** Ek is van plan om hierdie verandering aan DFRobot voor te lê, want dit is regtig baie gaaf en netjies om hierdie tipe sketse te kan doen ***

LED Matrix Images skets, hier het ek eers probeer uitvind wat die biblioteek wil hê en wat wel en nie sal werk nie - met verskillende mate van sukses. Ek het gevind dat die 8x8 -beelde die beste werk, maar dat u ook ander kan laat werk. Ek het ook 'n paar aanlyn matrix -redakteurs gevind, sommige werk beter as ander.

xantorohara.github.io/led-matrix-editor/-blykbaar werk dit goed, maak 8x8 beelde, en u wil dit as byte-skikkings hê.

www.riyas.org/2013/12/online-led-matrix-fo … hierdie een werk goed en het die vermoë om groter as 8x8 skerms te maak; dit lyk asof die skerm aan die kant is met hierdie skerm egter. Byte -skikkings werk hier die beste. Ek het dit gebruik om die "ruimte -indringers" te maak wat in die video hierbo gesien word.

So, hoe werk dit, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

beeldbyte skikking veranderlike, die breedte van die beeld (8), die hoogte van die beeld (8), die beginposisie op die skerm x (0), y (0) gewoonlik en 'n verrekeningsgetal, wat ek nie 100% seker wat dit doen, so ek het dit meestal op nul gelaat.

In die skets LED Matrix Images - daar is 8 verskillende byte -skikkings - met drie verskillende metodes ook.

- vuurwerke is die eerste skikkings, ek is eerlikwaar nie seker hoe hierdie een werk nie - maar dit werk wel.

volgende is daar 'n mond - dit werk nie regtig reg nie, die mond lê vir 'n mens verkeerd, en om veranderinge aan te bring, maak dit net erger. (om te leer wat werk en wat nie, is die helfte van die pret)

Gevolg deur die eerste marioImg - dit is te groot vir die vertoning, en ek dink dit is waar die offset in die spel kom - ek het dit hier gebruik, en u kan die voorkant van mario sien as u die offset in 1 u verander ' sal die agterkant van hom sien. (ek kan jou nie regtig vertel hoekom of wat die offset doen nie. Dit blyk dat die beeld verskuif word, maar waarom 2 dit skuif sodat jy die voorkant van hom kan sien en waarom 1 die ander rigting verskuif, wat ek jou nie kan vertel nie)

IMAGES - byte array is 'n @ teken wat ek gemaak het - dit lyk soos wat ek gemaak het met die hulpmiddel op

pic1 byte -skikking lyk ook soos wat ek probeer maak het, net dat dit kleiner is as wat ek probeer het - wat ek kan sê, maar ek kan in die algemeen sê dat dit lyk soos wat ek in die redakteur gedoen het.

mario2Img - dit is my eie weergawe van die groter Mario wat gemaak is vir 'n 8x8 skermgrootte - en daar is een of twee pixels op sy plek (my skuld, nie die skerms nie), dit lyk soos 'n klein Mario (soort).

invader1 en invader2 - beide my idee vir 'n ruimte -indringer. dit het redelik goed gegaan, en deur die beelde bo -op mekaar te plaas, kan ek die effek skep van voete wat beweeg.

Daar is twee vuurwerksketse in die gids, elkeen is 'n bietjie anders en die moeite werd om te probeer.

Die een laat die vuurwerk oor die skerm beweeg, so 'n bietjie meer/verskillende animasie … die ander het twee vuurwerke op dieselfde tyd

Daar is ook drie "indringers" -sketse, elkeen is 'n bietjie anders, die indringer beweeg oor die skerm, en u kan kyk hoe ek dit gedoen het - (daar is miskien beter maniere om dit te doen, ek weet nie)

Meer nog: daar is 'n paar sketse in die toetsgids van die bewaarplek - die meeste hiervan werk nie heeltemal soos ek wou nie, of was idees wat ek wou doen, maar werk nie soos ek wou nie. Ek het dit gelos omdat iemand 'n paar idees kry *(ek het 'n klein "skild" gemaak met 'n WS2812 -pixel daarop vir gebruik met die ISS -skerm, maar ek het dit aan die 3v -lyn gekoppel, maar ek het net nie genoeg nie Die LED -matriks werk ook, die pixel werk goed, sonder die LED -matriks, so daar is nog iets wat ek daarmee kan doen)*

Daar is ook 'n gids genaamd 'Meer voorbeelde' - dit is variasies op sommige van die projeksketse, of ek iets bygevoeg of verwyder het, of op een of ander manier verander het. Hiervoor werk hulle - dit is net nie die finale projek nie. So ek het hulle weer gelos, iemand kan iets nuttigs daaruit kry. (Kan wees)

Ek hoop dat u hierdie instruksies net so geniet het as wat ek dit geniet het om hierdie projekte te maak:-)

Stap 11: Inksies …

Hierdie projek is geborg en ondersteun deur DF Robot. Gebruik die onderstaande skakels vir die produkte:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

My Kodebewaarplek:

Ondersteun my as u hierdie of een van my projekte nuttig of aangenaam vind. Alles wat ek kry, gaan om meer onderdele te koop en meer/beter projekte te maak.

www.patreon.com/kd8bxp

NTPClient-biblioteek

ArduinoJson.h

ESP8266 Weerbiblioteek

Json-Streaming-Parser-biblioteek

Aanbeveel: