Turinys:

4 projektai viename naudojant „DFRobot FireBeetle ESP32“ir LED matricos dangtelį: 11 žingsnių (su paveikslėliais)
4 projektai viename naudojant „DFRobot FireBeetle ESP32“ir LED matricos dangtelį: 11 žingsnių (su paveikslėliais)

Video: 4 projektai viename naudojant „DFRobot FireBeetle ESP32“ir LED matricos dangtelį: 11 žingsnių (su paveikslėliais)

Video: 4 projektai viename naudojant „DFRobot FireBeetle ESP32“ir LED matricos dangtelį: 11 žingsnių (su paveikslėliais)
Video: ОБЫЧНЫЙ СВАРОЧНИК БОЛЬШЕ НЕ НУЖЕН! Невероятно, но факт! 2024, Liepa
Anonim
Image
Image
Įdiekite projektams bendras bibliotekas
Įdiekite projektams bendras bibliotekas

Aš pagalvojau, kad kiekvienam iš šių projektų reikia padaryti pamokomą dalyką - bet galiausiai nusprendžiau, kad iš tikrųjų didžiausias skirtumas yra kiekvieno projekto programinė įranga, kuri, mano manymu, buvo geriau tiesiog padaryti vieną didelį nurodymą!

Kiekvieno projekto aparatinė įranga yra ta pati, o ESP32 įrenginiui programuoti naudojame „Arduino IDE“.

Taigi, kas yra aparatinė įranga: visą aparatūrą parūpino mano draugai „DFRobot“, jie turi labai gerų pamokų ir lengvai sumontuoja pagrindines plokštes. Taip pat turi gerą palaikymo sistemą ir gana greitą pristatymą į JAV.

Visą „Firebeetle ESP32“plokštės ir LED matricos atskleidimą pateikė „DF Robot“, pateikti projektai ir vaizdo įrašai yra mano paties.

Visi šie projektai naudoja „DFRobot FireBeetle ESP32 IOT MicroController“

www.dfrobot.com/product-1590.html

Palaikymo wiki - su pagrindinės plokštės diegimo instrukcijomis rasite čia:

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

Mums taip pat reikia „FireBeetle“dangtelių 24x8 LED matricos (MĖLYNOS)

www.dfrobot.com/product-1595.html

Nemėgsta MĖLYNŲ lempučių - jos taip pat turi skirtingas spalvas.

ŽALIA -

RAUDONA -

BALTA -

GELTONA -

Jums reikia tik vienos LED matricos - spalva yra jūsų pasirinkimas, jie visi veikia vienodai.

„LED Matrix“palaikymo wiki rasite čia:

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

Čia rasite nuorodą į Arduino biblioteką.

github.com/Chocho2017/FireBeetleLEDMatrix

Daugiau apie tai šiek tiek vėliau….

Neprivaloma, bet galbūt patogu turėti „MicroUSB 3xAA“baterijų laikiklį.

www.dfrobot.com/product-1130.html

Taigi reikalinga aparatūra - kokie yra 4 projektai -

1 žingsnis: projektai

Image
Image

1 projektas: Ar paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM laiko ekranu, Šis laikrodis prisijungs prie NTP (laiko serverio), sugriebs laiką ir pritaikys išjungtą rinkinį, kad gautumėte vietinį laiką. LED matricoje bus rodomas laikas. - Tai labai paprastas laikrodis ir labai paprastas 1 -asis projektas.

2 projektas: ISS Pass Prediction Display, šis projektas naudoja antrąjį procesoriaus branduolį. Jis parodys, kaip arti (myliomis) yra ISS, kada tikėtis kito ISS pravažiavimo jūsų vietoje (UTC laiku) ir pasirinktinai, kiek žmonių yra erdvėje. Kadangi daugelis šios informacijos dažnai nesikeičia, mes naudojame antrąjį branduolį, kad tik patikrintume, ar nėra atnaujintų leidimų prognozių arba kiek žmonių yra erdvėje kas 15 minučių. Tokiu būdu galime užkirsti kelią per daug API skambučių į serverį. Šis projektas yra šiek tiek sudėtingesnis, tačiau vis tiek gana lengva padaryti.

3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT, aš dar kartą peržiūrėjau projektą, kuris buvo sukurtas ESP8266 D1 mini plokštei, ir tai yra 8x8 LED matrica - idėja yra prisijungti prie MQTT brokerio, nusiųsti pranešimą tema, kuria įrenginys yra klausytis - ir rodyti tą pranešimą. Tai gana paprasta ir labai paprasta padaryti, kai viskas yra nustatyta. Ir yra keletas žingsnių, kaip nustatyti MQTT kliento programinę įrangą staliniame kompiuteryje. Įdiegus MQTT yra labai galingas pranešimų siuntimo protokolas, kurį daugelis IoT įrenginių naudoja pranešimams siųsti ir gauti.

4 projektas: Meteorologinių stočių ekranas - pagrįstas „Squix78“ir „ThingPulse“sukurta ESP8266 D1 mini orų stotimi. Mes paimame savo duomenis iš „Wunderground“ir rodome esamas sąlygas bei temperatūrą Farenheito laipsniais. Mes naudojame antrąjį ESP32 branduolį, kad atnaujintume savo duomenis kas 10 minučių. Tai taip pat paprasta nustatyti.

BOUNS MINI PAVYZDŽIAI: Bibliotekoje (ir eskizuose aukščiau) naudojamas 8x4 šriftas, bibliotekoje taip pat yra 5x4 šriftas, kurį naudojau daugumai šių BOUNS mini pavyzdžių. Yra keletas problemų, kurias galiu pastebėti su mažu šriftu, viena, atrodo, sukelia problemų, kai naudojate įrenginio WIFI. Noriu daugiau panagrinėti, bet turėjau laiko. Kita problema yra tai, kad jis neslenka, slinkti gali tik didesnis šriftas. Taigi nė vienas iš šių pavyzdžių nenaudoja WIFI - jie tik atnaujina ekraną, o daugiau apie juos bus vėliau.

Pradėkime…..

2 veiksmas: įdiekite „DFRobot FireBeetle ESP32“plokštę į „Arduino IDE“

Taigi, aš nukreipsiu jus į „DF Robot Wiki“, kaip įdiegti „Arduino IDE“plokštės šerdį.

Tai gana lengva padaryti naudojant šiuolaikinį IDE (1.8.x arba geresnis).

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

Radau, kad „Arduino IDE“įmontuota „WiFi“biblioteka sukelia problemų (PS bet kuri kita „WiFi“biblioteka, kuri gali būti įdiegta jūsų bibliotekos kataloge, gali sukelti problemų arba ne). Vienintelis būdas (ar bent jau lengviausias būdas), kurį radau, kad išspręstų problemą, yra pašalinti „WiFi“biblioteką iš IDE katalogo. Deja, nėra gero būdo pasakyti, kur ji galbūt buvo įdiegta - tai priklauso nuo to, kaip įdiegta IDE ir kokia OS naudojate.

Ką aš padariau, radau „WiFi“biblioteką, kuri sukelia problemų, ir tiesiog perkelkite „WiFi“katalogą į darbalaukį … ir paleiskite IDE iš naujo. Tokiu būdu galite išsaugoti biblioteką, jei to prireiks „Arduino WIFI“plokštėms.

90% mano matytų problemų buvo susijusios su aukščiau aprašyta problema. Jei gaunate daug kompiliavimo klaidų, susijusių su „WiFi“naudojimu iš „Arduino IDE“katalogo arba „Arduino Library“katalogo, tai yra jūsų problema.

Antroji mano problema yra ta, kad kartais nepavyksta įkelti eskizo - tokiu atveju aš tiesiog turiu dar kartą paspausti įkėlimo mygtuką ir jis veikia.

Ir galiausiai, jei serijinė konsolė yra atidaryta ir uždaryta, „FireBeetle“užšąla.

Žinau, kad „DF Robot“aktyviai dirba prie plokštės šerdies, ir per tą trumpą laiką, kai turėjau plokštę, jie išleido naują branduolį. Deja, tai neišsprendė „WiFi“problemos, kuri yra mano didžiausia problema.

* „Espressif“turi „bendrąjį“pagrindinį tvarkyklę, kurią galima įdiegti, į šerdį įeina „FireBeetle ESP32“plokštė, tačiau turėjau problemų, kaip jos numeriai yra sunumeruoti. Įdomus dalykas yra tai, kad „WiFi“biblioteka veikia su įmontuota „WiFi“biblioteka - todėl žinau, kad netoliese yra šios problemos sprendimas.

Jei norite išbandyti „Espressif“branduolius, daugiau informacijos rasite čia:

github.com/espressif/arduino-esp32

Man asmeniškai patinka, kaip veikia „DF-Robot“branduolys, net ir turint keletą problemų.

** PASTABA: Aš naudoju „LinuxMint 18“, kuri yra pagrįsta „Ubuntu 16.04“. Manau, kad to nebandžiau jokiame kitame kompiuteryje, tačiau manau, kad ši problema kyla visoms OS, remiantis kai kuriomis mano atliktomis interneto paieškomis. **

3 žingsnis: Įdiekite projektų bendras bibliotekas

Įdiekite projektams bendras bibliotekas
Įdiekite projektams bendras bibliotekas

Visuose šiuose projektuose naudojamos kelios bendros bibliotekos, todėl dabar lengviau atlikti šį veiksmą.

Priklausomai nuo bibliotekos, galite ją rasti bibliotekos tvarkyklėje - tai yra lengviausias būdas įdiegti biblioteką.

Kitas įprastas būdas yra įdiegti naudojant ZIP failą, kuris taip pat veikia. Tačiau paprastai naudoju rankinį diegimo metodą. „Arduino“svetainėje yra gera pamoka apie tris metodus.

www.arduino.cc/en/guide/libraries

Šioms bibliotekoms rekomenduočiau rankinį metodą - kadangi yra kelios skirtingos bibliotekos tuo pačiu pavadinimu, naudodamiesi bibliotekos tvarkykle galite rasti netinkamą.

Visuose šiuose projektuose naudojama „WiFi“tvarkyklė, kad būtų lengviau prisijungti prie jūsų „Wi -Fi“- nusprendžiau tai padaryti, taigi, jei jums reikia perkelti savo projektą, jums nereikia perprogramuoti lentos. Tai aš naudoju ESP8266 plokštėms ir gerai veikia - tai nėra tobula. „Github“naudotojas, pavadintas „bbx10“, suteikė galimybę naudotis biblioteka naudoti ESP32. (Šis vadovas taip pat turėtų dirbti su ESP8266 plokštėmis)

Tam taip pat turime įdiegti tris bibliotekas.

„WiFiManager“-

„WebServer“-

Ir galiausiai DNS serveris -

Visiems eskizams taip pat būdinga „DF Robot DFRobot_HT1632C“biblioteka, skirta LED matricai.

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

Biblioteką rasite čia (dar kartą rekomenduočiau rankinio diegimo metodą)

github.com/Chocho2017/FireBeetleLEDMatrix

Speciali pastaba: mano „github“saugykloje - turiu keletą šiek tiek pakeistų DFRobot_HT1632C bibliotekų

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

Modifikacija skirta mažesniam šriftui ir naudojama tik kai kuriems papildomiems pavyzdžiams. Galite naudoti pakeistą biblioteką ir tai neturėtų sukelti jokių problemų. Taip pat yra šiek tiek pakeista biblioteka (pridedama prie kai kurių eskizų kaip skirtukai), kuri gali padaryti bitmap vaizdus.

Jei nuspręsite naudoti šiek tiek pakeistą versiją, turite pervadinti katalogą „modifikuota biblioteka“į „FireBeetleLEDMatrix“ir perkelti tą aplanką į „Arduino“bibliotekos katalogą. Šiems projektams nereikia naudoti šios versijos, ji reikalinga, jei norite išbandyti kai kuriuos mažesnius šriftus iš papildomų pavyzdžių.

Tai yra bendros bibliotekos - kiekvienam projektui įdiegsime tam tikras bibliotekas.

Pereikime prie LED matricos …

4 žingsnis: 24x8 LED matricos dangtelis

24x8 LED matricos dangtelis
24x8 LED matricos dangtelis
24x8 LED matricos dangtelis
24x8 LED matricos dangtelis
24x8 LED matricos dangtelis
24x8 LED matricos dangtelis

Nes mes ketiname sekti kartu su DF robotų pamoka, skirta LED matricai

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

Įvadas: Šis 24 × 8 LED matricos ekranas yra specialiai sukurtas „FireBeetle“serijai. Jis palaiko mažos energijos suvartojimo režimą ir slinkties ekraną. Su HT1632C didelio našumo LED tvarkyklės mikroschema kiekvienas LED turi nepriklausomą registrą, todėl lengva vairuoti atskirai. Jis integruoja 256KHz RC laikrodį, tik 5uA esant mažos galios režimui, palaiko 16 skalių PWM ryškumo reguliavimą. Šis produktas taip pat veikia su kitu „Arduino“mikrovaldikliu, tokiu kaip „Arduino UNO“.

Specifikacija:

  • Darbinė įtampa: 3.3 ~ 5VLED
  • Spalva: viena spalva (balta/mėlyna/geltona/raudona/žalia)
  • Disko lustas: HT1632C
  • Darbinė srovė: 6 ~ 100mA
  • Mažos energijos suvartojimas: 5uARC
  • laikrodis: 256KHz
  • Lusto pasirinkimas (CS): pasirenkamas D2, D3, D4, D5
  • Palaikykite slinkties ekraną

Numatytieji PIN kodai:

  1. DATAD6
  2. WRD7 (paprastai nenaudojamas)
  3. Galima pasirinkti CSD2, D3, D4, D5 (numatytasis D2)
  4. RDD8
  5. VCC 5VUSB; 3.7VLipo baterija

(Visuose šiuose projektuose kaiščiui naudojamas D2, jei reikia, jį galima lengvai pakeisti.)

LED matricos gale pamatysite 4 mažus jungiklius, įsitikinkite, kad pasirinkote tik vieną iš CS kaiščių. Šie maži jungikliai yra tai, kaip pasirenkate CS kaištį, o numatytasis yra D2.

„DF Robot WIKI“turi tam tikrą pavyzdinį kodą, šis kodas taip pat yra bibliotekos pavyzdžiuose. (Aš tikiu)

Kita pastaba: kaiščiams naudokite Dx numerius - kitaip PIN kodai bus IO kaiščių numeriai/pavadinimai

Ir tai gali sukelti tam tikrų problemų.

Taško nustatymas:

X yra nuo 0 iki 23 (arba jei manote, kad tai yra skaičiuoklė, tai yra stulpeliai).

Y yra nuo 0 iki 7 (arba jei manote, kad tai yra skaičiuoklė, tai yra eilutės).

Biblioteka teikia nustatyto taško funkciją.

display.setPoint (x, y) žymeklį nustatys į tą vietą, kur dabar galite atsispausdinti pranešimą.

display.print („Labas pasaulis“, 40); // dėl to ekrane pasirodys „Hello World“, pradedant x, y tašku ir slinkiant nuo ekrano.

Taip pat yra setPixel (x, y) ir clrPixel (x, y) - setPixel įjungs vieną šviesos diodą x, y vietoje, o clrPixel išjungs LED x, y vietoje.

Yra keletas kitų dalykų, kuriuos ši biblioteka gali padaryti - dauguma jų yra įtraukti į pavyzdžius.

(Aš rekomenduočiau paleisti ir modifikuoti pavyzdžius, kad pamatytumėte, ką jis gali padaryti).

* Vienas dalykas, kurio, atrodo, trūksta, yra bitų žemėlapių piešimas - biblioteka iš tikrųjų gali tai padaryti, tačiau dėl tam tikrų priežasčių tai yra privati bibliotekos funkcija. Žiūrėkite kai kuriuos mano papildomus pavyzdžius, kad gautumėte šiek tiek pakeistą bibliotekos versiją

** Kitas dalykas, į kurį įeina 5x4 šriftų rinkinys, malonu turėti mažesnį šriftą - jis kaip visada buvo komentuojamas bibliotekoje. Aš jį nekomentavau ir veikiau, tačiau pastebėjau keletą problemų - didžiausią jis neslenka. Ir pastebėjau, kad atrodo, kad tai sukelia problemų dėl „Wi -Fi“, o gal kitos bibliotekos, kurią norėjau naudoti.

Tačiau vienoje iš modifikuotų bibliotekų naudojamas 5x4 šriftas.

Pereikime prie projektų ….

5 žingsnis: 1 projektas: paprastas LED matricos NTP laikrodis su karinio laiko ekranu arba AMPM ekranu

1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu
1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu
1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu
1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu
1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu
1 projektas: paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM ekranu

1 projektas: Ar paprastas LED matricinis NTP laikrodis su karinio laiko ekranu arba AMPM laiko ekranu, Šis laikrodis prisijungs prie NTP (laiko serverio), sugriebs laiką ir pritaikys išjungtą rinkinį, kad gautumėte vietinį laiką. LED matricoje bus rodomas laikas. - Tai labai paprastas laikrodis ir labai paprastas 1 -asis projektas.

Prieš pradedant šį paprastą projektą, gali būti gera idėja žinoti, kas yra NTP -

NTP yra interneto protokolas, naudojamas kompiuterių laikrodžiams sinchronizuoti su tam tikra laiko nuoroda. Tai standartinis protokolas. NTP reiškia tinklo laiko protokolą.

NTP naudoja UTC kaip atskaitos laiką (UTC yra universalus laiko koordinuojamas), jis išsivystė iš GMT (Grinvičo laikas), o kai kuriuose sluoksniuose jis vadinamas Zulu laiku (karinis laikas). UTC yra pagrįstas cezio atomo kvantiniu rezonansu.

NTP yra atsparus gedimams ir labai keičiamas, protokolas yra labai tikslus, naudojant mažesnę nei nanosekundės skiriamąją gebą.

*

UTC laikrodis daugeliui žmonių nėra labai naudingas, todėl turime pritaikyti savo laikrodį pagal vietos laiką. Laimei, mes galime tai padaryti gana lengvai. Taigi pradėkime nuo šio paprasto NTP laikrodžio….

Pirma, turime įdiegti biblioteką, kuri palengvintų pokalbį su NTP serveriais.

github.com/arduino-libraries/NTPClient (ši biblioteka tikriausiai yra bibliotekos tvarkyklėje)

Ar praleidote 3 veiksmą ir nežinote, kaip įdiegti bibliotekas (?) Geriau grįžkite atgal ir perskaitykite 3 veiksmą:-)

Turite eiti į šią svetainę ir įvesti artimiausią miestą, esantį jūsų laiko juostoje.

www.epochconverter.com/timezones

Kai paspausite „Enter“, pamatysite „Konversijų rezultatus“, o rezultatuose per kelias sekundes gausite kompensavimą (skirtumas nuo GMT/UTC) (man tai yra -14400)

66 eilutėje eskize „dfrobot_firebeetle_led_matrix_ntp_clock“pamatysite:

#define TIMEOFFSET -14400 // Laiko juostos nustatymas nustatytas čia

pakeiskite -14400 savo poslinkiu. Kitoje eilutėje matysite 1 AMPM - dėl to laikrodis rodys laiką AM/PM - jei norite, kad jis būtų matomas per 24 val., Padarykite jį nuliu.

Tada įkelkite eskizą į savo lentą, prisijunkite prie prieigos taško („Wi -Fi“tvarkyklės) ir įveskite išsamią „Wi -Fi“informaciją. Jei jau tai padarėte, ekrane turėtumėte matyti slinktį „prijungtas“, o po kelių sekundžių - laiką.

Tai šiam projektui - paprasta ir paprasta naudoti ….

(Galimi patobulinimai: rodykite mėnesį, dieną ir metus, nustatykite garsinį signalą ir signalus - paprastai valdykite tai, ką matote tinklalapyje. Ši idėja labai pakeistų dabartinį paprastą eskizą)

Pasiruošę kitam paprastam projektui - Parodykite, kur yra TKS - Praleiskite prognozes ir kiek žmonių yra kosmose! (PS šis eskizas naudoja tinklalapį, kad kontroliuotų, kas rodoma)…..

6 žingsnis: 2 projektas: ISS Pass Prediction Display,

2 projektas: ISS Pass Prediction Display,
2 projektas: ISS Pass Prediction Display,
2 projektas: ISS Pass Prediction Display,
2 projektas: ISS Pass Prediction Display,
2 projektas: ISS Pass Prediction Display,
2 projektas: ISS Pass Prediction Display,

2 projektas: ISS Pass Prediction Display, šis projektas naudoja antrąjį procesoriaus branduolį. Jis parodys, kaip arti (myliomis) yra ISS, kada tikėtis kito ISS pravažiavimo jūsų vietoje (UTC laiku) ir pasirinktinai, kiek žmonių yra erdvėje. Kadangi daugelis šios informacijos dažnai nesikeičia, mes naudojame antrąjį branduolį, kad tik patikrintume, ar nėra atnaujintų leidimų prognozių arba kiek žmonių yra erdvėje kas 15 minučių. Tokiu būdu galime užkirsti kelią per daug API skambučių į serverį. Šis projektas yra šiek tiek sudėtingesnis, tačiau vis tiek gana lengva padaryti.

Šis projektas yra paremtas vienu iš mano ankstesnių projektų, kuriuos galima rasti čia:

(Paprasta ISS pranešimų sistema) Tuo, kad naudojau ESP8266 su OLED ekranu (D-Duino). Dažniausiai šiame projekte naudojama kitokia rodymo sistema, aš ją išplėtiau, kad galėtumėte pakeisti tai, ką norite matyti skrisdami per tinklalapį. Taigi pradėkime….

Didžioji dalis lengvo naudojimo yra skirta https://open-notify.org, kuri turi labai paprastą ir lengvai naudojamą API. Atviro pranešimo API turi tris dalykus, kuriuos galima rodyti, ISS vietą platumoje ir ilgumoje, perduoti prognozes pagal tam tikrą platumą ir ilgumą. Ir galiausiai, kiek žmonių (ir jų vardų) yra kosmose.

Mums reikės įdiegti kitą biblioteką - „ArduinoJson“biblioteką.

github.com/bblanchon/ArduinoJson

Mums taip pat reikia „TimeLib.h“, bet nesu tikras, iš kur tai gavau, ar jis įtrauktas į IDE (atsiprašau)….

Taigi kodėl prognozuoti, kur bus TKS - ISS yra įvairi mėgėjų radijo įranga, o kai ji yra „virš galvos“, kumpio radijo operatorius gali susisiekti su ISS naudodamas labai paprastus (ir pigius) radijo imtuvus. Aš tai dariau net būdamas mobilus (važiuodamas automobiliu). Šiam darbui jums tikrai nereikia daug. Vienintelis dalykas, kurio jums reikia, yra žinoti, kur jis yra. Ir padeda nukreipti anteną bendra kryptimi.

57, 58, 59 eilutės yra keletas rodiklių - jei jie nustatyti į 1, pamatysite ekraną, jei jie bus nustatyti į 0 (nulis), ekrano nematysite. (Šie kintamieji gali būti nustatyti eskize arba atnaujinti iš tinklalapio, kurį sukuria ugnikalnis - daugiau apie tai vėliau).

int locDis = 1; // Rodyti ISSint pasDis = 0 vietą; // „Display Pass“prognozės int pplDis = 1; // Rodyti žmones erdvėje

taigi locDis parodys TKS vietą platumoje ir ilgumoje - taip pat parodys, kiek mylių jis yra.

PasDis gaus leidimo prognozes iš open-notify.org ir jas parodys.

ir galiausiai, pplDis parodys vardus ir kiek žmonių yra kosmose - tai gali užtrukti labai ilgai

taip pat dažnai keistis. (galite juos pakeisti arba palikti, tai visiškai neprivaloma)

Taip pat turime žinoti savo platumą ir ilgumą ir įtraukti ją į eskizą.

Tai neturi būti tikslus platus/ilgas, tai gali būti jūsų miesto centras arba šiek tiek nutolęs. ISS pėdų pėdsakas yra platus, kai jis yra virš galvos, ir gali būti įveikiami šimtai (ar tūkstančiai) mylių, todėl šiek tiek nukrypus nuo savo lato/ilgio nebus daugumos problemų (dažniausiai), komunikacija per 500 mylių yra gana įprasta.

Jei nežinote savo platumos ir ilgumos, ši svetainė gali jums padėti.

www.latlong.net Netoli eskizo 84 linijos pamatysite kažką panašaus:

// Raskite savo platumą ir ilgumą čia // https://www.latlong.net/ float mylat = 39.360095; plūdė mylon = -84,58558;

Tai turėtų būti viskas, ką reikia pakeisti. Įkelkite eskizą ir prijunkite „Firebeetle“prie interneto - ir turėtumėte pamatyti, kokia ISS vieta nurodyta latais/ilgiais ir kiek mylių ji yra (atminkite, kad tai bus apytikslis atstumas. ISS juda labai greitai ir kai ekranas bus baigtas, TKS pajudėjo daug mylių nuo buvusios vietos). Jūs taip pat turėtumėte pamatyti žmones erdvėje. (JEI nepakeitėte aukščiau pateikto kintamojo).

Mes naudojame antrąjį ESP32 branduolį, norėdami paleisti svetainę, naudojant svetainę mes galime kontroliuoti, kas rodoma LED matricoje. Tai turėtų būti gana intuityvu, kaip tai veikia, viename skyriuje rodoma, kas įjungta rodymui, kitoje skiltyje yra mygtukai „taip“, „ne“- spustelėjus „taip“reiškia, kad norite tai pamatyti, „ne“reiškia ne t parodyti. Taip pat turėtumėte pamatyti, kad viršutinė dalis keičiasi atsižvelgiant į mygtukus.

Vienintelis dalykas, kuris čia nėra toks iškirptas ir išdžiovintas, yra tai, kaip rasti „Firebeetle“IP adresą - deja, negalėjau sugalvoti gero būdo jį rasti - todėl tiesiog naudoju IDE serijinę konsolę tai (9600 baudų).

Atidarykite konsolę ir turėtumėte pamatyti IP adresą. (atidarykite jį prieš gaudami prijungtą pranešimą) - kitas mano pasirinkimas buvo vieną kartą rodyti jį LED matricoje iškart paleidžiant - nusprendžiau prieš tai, nes galbūt nežiūrėsite į laiką ir praleisite. Aš galvojau išsiųsti SMS žinutę ar kažką panašaus, bet galų gale aš paprasčiau. (Aš taip pat bandžiau priskirti statinį IP/šliuzą/ir tt, man nepavyko tinkamai dirbti su „Wi -Fi“tvarkykle - kodas vis dar yra eskize, taigi, jei kas nors tai supras, praneškite man)

Eskizas taip pat apima „FreeRTOS“įdiegimą į ESP32 branduolį - turime užduotį, kuri vykdoma maždaug kas 15 minučių, o tai atnaujina praleidimo prognozes, taip pat žmones erdvėje. Kaip jau sakiau anksčiau, žmonės erdvėje nesikeičia tiek daug, todėl greičiausiai tai būtų galima perkelti į kitą užduotį ir galbūt paleisti kartą per 12 valandų (arba 6 valandas), tačiau tai veikia ir viskas paprasta.

Tiems, kurie nežino, „FreeRTOS“yra būdas leisti vieno branduolio mikrovaldikliui atlikti daugybės užduočių

Paprastai jūs turite įtraukti kai kurias bibliotekas ir kitus dalykus, kad jis veiktų, tačiau jis yra įtrauktas į ESP32 pagrindą - todėl ESP32 yra labai galingas įrenginys. Norėdami gauti daugiau informacijos apie „FreeRTOS“

freertos.org/

PATVERINIMAI: šiam projektui galima patobulinti daugybę dalykų ir beveik kiekvieną dieną pagalvoju apie tai, ką būtų galima padaryti šiek tiek kitaip, pakeisti ar pridėti.

Daugiau saugyklos pavyzdžių kataloge galite pamatyti kai kuriuos ankstesnius/skirtingus dalykus, apie kuriuos galvojau- kai kurie iš jų neveikė, kai kurie tiesiog pasikeitė, o kai kurie buvo įtraukti į dabartinį eskizą.

* Vienu metu bandžiau pridėti neopikselį prie ekrano, kad jis būtų šiek tiek panašesnis į mano ankstesnį projektą - niekada nesugebėjau tinkamai veikti (man pasirodė, kad tai galios problema, apie kurią nesvarsčiau) stengiamės patobulinti šią idėją *

Rašydamas šį žingsnį galvojau, gal galėčiau pridėti būdą, kaip atnaujinti jūsų platumą ir ilgumą į svetainę - tokiu būdu eskizo niekada nereikės keisti - taip pat šiek tiek pagalvosiu apie šį.

Patobulintas būdas gauti IP adresą yra kažkas, ką norėčiau padaryti (vis dar galvoju apie tai)

Pereikime prie kito projekto ….

7 žingsnis: 3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT

3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT
3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT
3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT
3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT
3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT
3 projektas: paprastas judantis pranešimo ženklas naudojant MQTT

"loading =" tingus "" loading = "tingus"

Premija 2 dalis - Rodyti vaizdus
Premija 2 dalis - Rodyti vaizdus
Premija 2 dalis - Rodyti vaizdus
Premija 2 dalis - Rodyti vaizdus
Premija 2 dalis - Rodyti vaizdus
Premija 2 dalis - Rodyti vaizdus

Taigi paaiškėja, kad biblioteka gali rodyti vaizdus - jūs kažkodėl atrodo, kad ši funkcija yra „privati“- na, šiems kitiems eskizams aš dar kartą pakeičiau biblioteką ir padariau „drawImage“viešą funkciją.

Šį kartą modifikuotą biblioteką įdėjau į eskizų katalogą, todėl jums nereikia iš naujo įdiegti bibliotekos, eskizas pirmiausia žiūri į save, tada jis atrodys bibliotekos kataloge, taigi mums gerai!

*** Aš planuoju pateikti šį pakeitimą „DFRobot“, nes tai tikrai labai šaunu ir tvarkinga, kad galėčiau padaryti tokio tipo eskizus ***

„LED Matrix Images“eskizas, čia aš pirmiausia bandžiau išsiaiškinti, ko biblioteka nori, o kas veiktų ir kas ne - su skirtinga sėkme. Radau, kad 8x8 vaizdai veikia geriausiai, tačiau galite priversti ir kitus dirbti. Aš taip pat radau keletą internetinių vedamų matricų redaktorių, kai kurie veikia geriau nei kiti.

xantorohara.github.io/led-matrix-editor/-atrodo veikia gerai, sukuria 8x8 vaizdus ir norite, kad jie būtų kaip baitų masyvai.

www.riyas.org/2013/12/online-led-matrix-fo… tai veikia gerai ir turi galimybę sukurti didesnius nei 8x8 ekranus, atrodo, kad ekranas yra įjungtas šone su šiuo ekranu tačiau. Atrodo, kad čia geriausiai veikia baitų masyvai. Aš jį panaudojau aukščiau esančiame vaizdo įraše matomiems „kosmoso įsibrovėliams“padaryti.

Taigi, kaip tai veikia, drawImage (const baitas * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

vaizdo baitų masyvo kintamasis, vaizdo plotis (8), vaizdo aukštis (8), pradinė padėtis ekrane x (0), y (0) paprastai ir poslinkio skaičius, kurio aš nesu 100% tikras, ką jis daro, todėl dažniausiai palikau jį nuliui.

LED eskizo eskizo eskizuose - 8 skirtingi baitų matricos - taip pat trys skirtingi metodai.

- fejerverkai yra pirmieji masyvai, sąžiningai nesu tikras, kaip šis veikia, bet jis veikia.

šalia yra burna - tai iš tikrųjų neveikia teisingai, burna yra netinkama, o bandymas ką nors pakeisti tik pablogina. (išmokti, kas veikia, o kas ne, yra pusė malonumo)

Po to sekė pirmasis „marioImg“- tai per didelis ekranui, ir manau, kad čia įsijungia išjungimo rinkinys - aš jį panaudojau čia ir jūs galite pamatyti mario priekį, jei pakeisite poslinkį į 1 jūs “Pamatysiu jo nugarą. (Tu tikrai negaliu pasakyti, kodėl ar ką daro poslinkis. Atrodo, kad vaizdas keičiasi, bet kodėl 2 jį perkelia, kad galėtum pamatyti jo priekį ir kodėl 1 perkelia kitą pusę, aš negaliu tau pasakyti)

VAIZDAI - baitų masyvas yra @ ženklas, kurį padariau - atrodo, kad tai padariau naudojant įrankį adresu

pic1 baitų masyvas taip pat atrodo taip, kaip aš bandžiau padaryti, tik jis yra mažesnis nei aš bandžiau - kas tai yra, aš negaliu pasakyti, bet apskritai galiu pasakyti, kad atrodo, ką aš dariau redaktoriuje.

mario2Img - tai mano sukurta didesnio „Mario“versija, skirta 8x8 ekrano dydžiui - ir tu ten vienas ar du pikseliai ne vietoje (mano kaltė, o ne ekranai), jis atrodo kaip mažas Mario (sorta).

„Invader1“ir „Invader2“- abi mano idėjos įsibrauti į kosmosą. jie pasirodė gana geri, ir, sukurdami vaizdus vienas ant kito, galiu sukurti judančių pėdų efektą.

Kataloge yra du fejerverkų eskizai, kiekvienas yra šiek tiek kitoks ir vertas išbandyti.

Viename fejerverkai juda per ekraną, taigi šiek tiek daugiau/skirtingos animacijos … kitame vienu metu rodomi du fejerverkai

Taip pat yra trys „įsibrovėlių“eskizai, kiekvienas šiek tiek kitoks, vienas užpuolikas juda per ekraną, o jūs galite pažiūrėti, kaip aš tai padariau - (gal yra geresnių būdų tai padaryti, nežinau)

Dar daugiau: saugyklos bandymų kataloge yra keletas eskizų - dauguma jų veikė ne taip, kaip norėjau, arba buvo idėjos, kurias noriu padaryti, bet ne taip, kaip norėjau. Aš juos palikau, nes kažkas turi idėjų *(aš padariau nedidelį „skydą“su WS2812 pikseliu, skirtą naudoti su ISS ekranu, bet prijungiau jį prie 3v linijos, bet man tiesiog to nepakanka maitinant ir veikiant LED matricai, pikselis veikė gerai, be LED matricos, todėl vis tiek yra kažkas, ką galėčiau su juo padaryti)*

Taip pat yra katalogas pavadinimu „Daugiau pavyzdžių“- tai kai kurių projekto eskizų variantai, arba aš kažkas buvo pridėta, pašalinta arba kažkaip pakeista. Dėl to jie veikia - jie tiesiog nėra galutinis projektas. Taigi aš vėl juos palikau, kažkas gali jiems ką nors naudinga. (Gal būt)

Tikiuosi, kad jums patiko šis pamokomas dalykas, kaip man patiko kurti šiuos projektus:-)

11 žingsnis: Sėkmės…

Šį projektą rėmė ir rėmė „DF Robot“. Naudokite toliau pateiktas nuorodas produktams:

„Firebeetle ESP32“-

„Firebeetle“dangtelis 24x8 LED matrica -

Mano kodo saugykla:

Jei manote, kad šis ar bet kuris mano projektas yra naudingas ar malonus, palaikykite mane. Viskas, ką gaunu, perka daugiau dalių ir sukuria daugiau/geresnių projektų.

www.patreon.com/kd8bxp

NTPClient biblioteka

ArduinoJson.h

ESP8266 orų biblioteka

Json-Streaming-Parser biblioteka

Rekomenduojamas: