Indholdsfortegnelse:

4 projekter i 1 ved hjælp af DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 trin (med billeder)
4 projekter i 1 ved hjælp af DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 trin (med billeder)

Video: 4 projekter i 1 ved hjælp af DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 trin (med billeder)

Video: 4 projekter i 1 ved hjælp af DFRobot FireBeetle ESP32 & LED Matrix Cover: 11 trin (med billeder)
Video: hvordan man laver elektronisk komponenttester ved hjælp af Arduino nano, dfrobot 2024, November
Anonim
Image
Image
Installer fælles biblioteker til projekterne
Installer fælles biblioteker til projekterne

Jeg tænkte på at lave en instruerbar til hvert af disse projekter - men til sidst besluttede jeg mig for, at den største forskel egentlig er softwaren til hvert projekt, jeg syntes, det var bedre bare at lave en stor instruerbar!

Hardwaren er den samme for hvert projekt, og vi bruger Arduino IDE til at programmere ESP32 -enheden.

Så hvad er hardwaren: Al hardware blev leveret af mine venner på DFRobot, de har meget gode selvstudier og nemme at installere core boards til dette. Har også et godt supportsystem på plads og temmelig hurtig forsendelse til USA

Fuld oplysning om Firebeetle ESP32 -kortet og LED Matrix blev leveret af DF Robot, de præsenterede projekter og i videoerne er mine egne.

Disse projekter bruger alle en DFRobot FireBeetle ESP32 IOT MicroController

www.dfrobot.com/product-1590.html

Support wiki - med board core installationsinstruktioner kan findes her:

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

Vi har også brug for en FireBeetle Covers 24x8 LED Matrix (BLÅ)

www.dfrobot.com/product-1595.html

Kan ikke lide BLÅ leds - De har også forskellige farver.

GRØN -

RØD -

HVID -

GUL -

Du behøver kun en LED Matrix - farven er dit valg, de fungerer alle ens.

LED Matrix support wiki findes her:

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

Her finder vi et link til Arduino -biblioteket.

github.com/Chocho2017/FireBeetleLEDMatrix

Mere om disse lidt senere….

Noget der er valgfrit, men måske praktisk at have, er en MicroUSB 3xAA batteriholder.

www.dfrobot.com/product-1130.html

Så det er den nødvendige hardware - Hvad er de 4 projekter -

Trin 1: Projekterne

Image
Image

Projekt 1: Er et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM tidsvisning, Dette ur vil oprette forbindelse til en NTP (tidsserver), få fat i tiden og anvende et off -set, så du får lokal tid. Det viser tiden på LED Matrix. - Det er et meget simpelt ur, og et meget enkelt 1. projekt.

Projekt 2: ISS Pass Prediction Display, dette projekt bruger processorens 2. kerne. Det viser, hvor tæt (i miles) ISS er, hvornår man kan forvente det næste ISS -pass på din placering (i UTC -tid), og eventuelt hvor mange mennesker der er i rummet. Da mange af disse oplysninger ikke ændres ofte, bruger vi den 2. kerne til kun at søge efter opdateringer af pasforudsigelserne, eller hvor mange mennesker der er i rummet hvert 15. minut. Vi kan forhindre for mange API -opkald til serveren på denne måde. Dette projekt er lidt mere kompliceret, men stadig ret let at gøre.

Projekt 3: Et enkelt bevægeligt meddelelsessignal ved hjælp af MQTT, jeg besøgte et projekt, der blev lavet til ESP8266 D1 mini -kortet, og det er 8x8 LED Matrix - Ideen er at oprette forbindelse til en MQTT -mægler, sende en besked til et emne, enheden er lytter til - og viser den besked. Det er ret let og meget enkelt at gøre, når alt er konfigureret. Og der er et par trin til opsætning af MQTT -klientsoftwaren på en stationær computer. Efter opsætningen er MQTT en meget kraftfuld meddelelsesprotokol, der bruges af mange IoT -enheder til at sende og modtage beskeder.

Projekt 4: Vejrstationsvisning - baseret på ESP8266 D1 mini vejrstation lavet af Squix78 og ThingPulse. Vi henter vores data fra Wunderground og viser de aktuelle forhold og temperaturen i grader Fahrenheit. Vi bruger den anden kerne i ESP32, til at opdatere vores data hvert 10. minut. Det er også enkelt at opsætte.

BOUNS MINI EKSEMPLER: Biblioteket (og skitser ovenfor) bruger en 8x4 skrifttype, biblioteket indeholder også en 5x4 skrifttype, som jeg brugte til de fleste af disse BOUNS mini eksempler. Der er et par problemer, som jeg kan bemærke med den lille skrifttype, en det ser ud til at forårsage problemer, når du bruger enhedens WIFI. Dette er noget, jeg vil undersøge mere, men har haft tid. Det andet problem er, at det ikke ruller, kun den større skrifttype kan rulle. Så ingen af disse eksempler bruger WIFI - de opdaterer bare skærmen, og mere om disse kommer senere.

Lad os komme igang…..

Trin 2: Installer DFRobot FireBeetle ESP32 -kortet i Arduino IDE

Så jeg vil henvise dig til DF Robot Wiki om installation af tavlekernen til Arduino IDE.

Det er ret let at gøre med den moderne IDE (1.8.x eller bedre).

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

Jeg fandt ud af, at WiFi -biblioteket, der er indbygget i Arduino IDE, forårsager problemer (PS ethvert andet WiFi -bibliotek, der måske er installeret i bibliotekets bibliotek, kan muligvis forårsage problemer). Den eneste måde (eller i det mindste den nemmeste måde), jeg fandt for at løse problemet, er at fjerne WiFi -biblioteket fra IDE -biblioteket. Desværre er der ingen god måde at fortælle dig, hvor det måske er installeret - det afhænger af, hvordan IDE er installeret, og hvilket operativsystem du bruger.

Hvad jeg har gjort er at finde det WiFi -bibliotek, der forårsager problemer, og bare flytte biblioteket WiFi -bibliotek til dit skrivebord … og genstart IDE. På den måde kan du beholde biblioteket, hvis du har brug for det til Arduino WIFI -kortene.

90% af de problemer, jeg har set, har været relateret til ovenstående problem. Hvis du får mange kompileringsfejl i forbindelse med brug af WiFi fra Arduino IDE -biblioteket eller Arduino Library -biblioteket, er dette det problem, du har.

Mit 2. problem er undertiden, at upload af skitsen ikke kan uploades - I så fald skal jeg bare trykke på upload -knappen igen, og det virker.

Og endelig, hvis du har den serielle konsol åben og derefter lukker den - fryser FireBeetle.

Jeg ved, at DF Robot aktivt arbejder med tavlekernen, og på den korte tid, jeg har haft tavlen, har de frigivet en ny kerne. Desværre løste det ikke WiFi -problemet, hvilket er mit største problem.

* Espressif har en 'generisk' core manager, der kan installeres, kernen indeholder også FireBeetle ESP32 -kortet, men jeg havde et problem med, hvordan stifterne blev nummereret. Det interessante her er WiFi -biblioteket, der fungerer med det indbyggede WiFi -bibliotek - så jeg ved, at der er en løsning på det problem lige rundt om hjørnet.

Hvis du gerne vil prøve Espressif -kernerne, kan du finde flere oplysninger her:

github.com/espressif/arduino-esp32

Jeg kan personligt lide, hvordan DF-Robot-kernen fungerer, selv med de få problemer, jeg har.

** BEMÆRK: Jeg bruger LinuxMint 18, som er Ubuntu 16.04 -baseret, jeg tror, jeg har ikke prøvet dette på nogen anden maskine, men jeg tror, at problemet er til stede for alle operativsystemer baseret på nogle internetsøgninger, jeg lavede. **

Trin 3: Installer fælles biblioteker til projekterne

Installer fælles biblioteker til projekterne
Installer fælles biblioteker til projekterne

Alle disse projekter bruger et par fælles biblioteker, så det er lettere at gøre dette trin nu.

Afhængigt af biblioteket kan du finde det i biblioteksadministratoren - hvilket er langt den nemmeste måde at installere et bibliotek på.

En anden almindelig måde er at installere via en zip -fil, som også fungerer lige så godt. Men generelt bruger jeg den manuelle installationsmetode. Der er en god vejledning om de tre metoder på Arduino -webstedet.

www.arduino.cc/en/guide/libraries

For disse biblioteker vil jeg anbefale den manuelle metode - fordi der er et par forskellige biblioteker med samme navn, kan du ende med den forkerte ved hjælp af biblioteksadministratoren.

Alle disse projekter bruger en WiFi Manager til at gøre det let at oprette forbindelse til din wifi - jeg besluttede at gøre dette, så hvis du skal flytte dit projekt, behøver du ikke at omprogrammere tavlen. Dette er noget, jeg bruger til ESP8266 -kortene, og det fungerer godt - det er ikke perfekt. Held til brug biblioteket er blevet portet til at bruge ESP32 af en github -bruger ved navn bbx10. (Denne manager bør også arbejde med ESP8266 -kortene)

Vi skal installere tre biblioteker for at dette også fungerer.

WiFiManager -

WebServeren -

Og endelig DNSServer -

Også fælles for alle skitserne er DF Robot DFRobot_HT1632C biblioteket til LED Matrix.

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

Biblioteket findes her (Igen vil jeg anbefale den manuelle installationsmetode)

github.com/Chocho2017/FireBeetleLEDMatrix

En særlig bemærkning: i mit github -lager - jeg har et par let modificerede DFRobot_HT1632C -biblioteker

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

Ændringen er for en mindre skrifttype og bruges kun til nogle af bonuseksemplerne. Du kan bruge det ændrede bibliotek, og det bør ikke forårsage problemer. Der er også et lidt ændret bibliotek (vedhæftet nogle af skitserne som faner), der kan lave bitmapbilleder.

Hvis du vælger at bruge den lidt ændrede version, skal du omdøbe biblioteket "modificeret-bibliotek" til FireBeetleLEDMatrix og flytte den mappe til din Arduino bibliotekskatalog. Du behøver ikke at bruge denne version til disse projekter, det er nødvendigt, hvis du vil prøve nogle af de mindre skrifttyper fra bonuseksemplerne.

Det er de almindelige biblioteker - vi installerer nogle specifikke biblioteker til hvert projekt.

Lad os gå videre til LED Matrix….

Trin 4: 24x8 LED Matrix Cover

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

For Vi kommer til at følge med DF Robot Tutorial for LED Matrix

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

Introduktion: Denne 24 × 8 LED Matrix -skærm er specielt designet til FireBeetle -serien. Det understøtter lavt strømforbrug og rullende display. Med HT1632C højtydende LED driverchip har hver LED uafhængigt register, hvilket gør det let at køre separat. Det integrerer et 256KHz RC-ur, kun 5uA under laveffekttilstand, understøtter 16-skala PWM-lysstyrkejustering. Dette produkt fungerer også med den anden Arduino micrcontroller som Arduino UNO.

Specifikation:

  • Driftsspænding: 3,3 ~ 5VLED
  • Farve: enkelt farve (hvid/blå/gul/rød/grøn)
  • Drive Chip: HT1632C
  • Arbejdsstrøm: 6 ~ 100mA
  • Lavt strømforbrug: 5uARC
  • ur: 256KHz
  • Chip Select (CS): D2, D3, D4, D5 kan vælges
  • Support rullende display

Standard -pinkoder:

  1. DATAD6
  2. WRD7 (bruges generelt ikke)
  3. CSD2, D3, D4, D5 kan vælges (standard D2)
  4. RDD8
  5. VCC 5VUSB; 3.7V Lipo batteri

(Alle disse projekter bruger D2 til den valgte pin, dette kan let ændres efter behov.)

På bagsiden af LED Matrix ser du 4 små kontakter, sørg for kun at vælge en af CS -benene. Disse små kontakter er, hvordan du vælger din CS -pin, og standard er D2.

DF Robot WIKI har nogle eksempler på kode, denne kode er også i eksemplerne til biblioteket. (Jeg tror)

En anden bemærkning: brug Dx -numrene til dine pins - ellers vil pin -numrene være IO -pinnumre/-navne

Og det kan give dig nogle problemer.

Indstilling af et punkt:

X er 0 til 23 (eller hvis du tænker på det som et regneark, er dette kolonner).

Y er 0 til 7 (eller hvis du tænker på det som et regneark, er dette rækker).

Biblioteket har en setpunkt -funktion.

display.setPoint (x, y) dette sætter markøren til det sted, hvor du nu kan udskrive en meddelelse.

display.print ("Hej verden", 40); // dette får displayet til at vise "Hello World", der starter ved x, y -punktet og ruller ud af skærmen.

Der er også en setPixel (x, y) og clrPixel (x, y) - setPixel tænder en LED på x, y -stedet, og clrPixel slukker en LED på x, y -stedet.

Der er nogle andre ting, dette bibliotek kan - og de fleste er inkluderet i eksemplerne.

(Jeg vil anbefale at køre og ændre eksemplerne for at se, hvad det kan gøre).

* En ting, der synes at mangle, er at tegne bitmaps - biblioteket kan faktisk gøre dette, men af en eller anden grund er det en privat funktion af biblioteket. Se nogle af mine bonuseksempler for en lidt ændret version af biblioteket

** En anden ting det indeholder et 5x4 skrifttypesæt, som er rart at have en mindre skrifttype - det er blevet kommenteret i biblioteket. Jeg kommenterede det og fik det til at fungere, men bemærkede et par problemer med det - det største ruller det ikke. Og jeg bemærkede, at det ser ud til at forårsage problemer enten med wifi eller måske et andet bibliotek, jeg ville bruge.

Et af de modificerede biblioteker, jeg inkluderer, bruger dog 5x4 skrifttypen.

Lad os gå videre til projekterne ….

Trin 5: Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display

Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display
Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display
Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display
Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display
Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display
Projekt 1: et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM -display

Projekt 1: Er et enkelt LED Matrix NTP -ur med enten militær tidsvisning eller AMPM tidsvisning, Dette ur vil oprette forbindelse til en NTP (tidsserver), få fat i tiden og anvende et off -set, så du får lokal tid. Det viser tiden på LED Matrix. - Det er et meget simpelt ur, og et meget enkelt 1. projekt.

Inden vi går i gang med dette enkle projekt, kan det være en god idé at vide, hvad NTP er -

NTP er en internetprotokol, der bruges til at synkronisere ure på computere til en vis tidsreference. Det er en standardprotokol. NTP står for Network Time Protocol.

NTP bruger UTC som referencetid (UTC er Universal Time Coordinated) det udviklede sig fra GMT (Greenwich Mean Time), og i nogle kredse kaldes det Zulu Time (Military). UTC er baseret på en kvanteresonans af et cæsiumatom.

NTP er fejltolerant og meget skalerbar, protokollen er meget præcis ved hjælp af en opløsning på mindre end et nanosekund.

*

Et UTC -ur er ikke meget nyttigt for de fleste mennesker, så vi skal justere vores ur til lokal tid. Heldigvis kan vi gøre dette ret let. Så lad os komme i gang med dette enkle NTP -ur ….

For det første skal vi installere et bibliotek, der gør det let at tale med NTP -serverne.

github.com/arduino-libraries/NTPClient (dette bibliotek er sandsynligvis i biblioteksadministratoren)

Springte du over trin 3 - og var ikke sikker på, hvordan du installerer biblioteker (?) Bedre gå tilbage og læs trin 3:-)

Du skal gå til dette websted og placere den by, der er tættest på dig, der er i din tidszone.

www.epochconverter.com/timezones

Når du trykker på enter, vil du se "Konverteringsresultater", og i resultaterne får du din forskydning (forskel til GMT/UTC) på sekunder (for mig er det -14400)

I skitsen dfrobot_firebeetle_led_matrix_ntp_clock på linje 66 ser du:

#define TIMEOFFSET -14400 // Find din tidszone off set Her https://www.epochconverter.com/timezones OFF Indstil i sekunder#definer AMPM 1 // 1 = AM PM time, 0 = MILITARY/24 HR Time

udskift -14400 med din forskydning. Den næste linje vil du se AMPM 1 - dette får uret til at vise tiden i AM/PM - hvis du hellere vil se det om 24 timer, gør det til et nul.

Upload derefter skitsen til dit bord, opret forbindelse til adgangspunktet (wifi -manager) og indtast detaljerne for din wifi. HVIS du allerede har gjort dette, skulle du se "tilsluttet" rulle hen over skærmen, og et par sekunder senere skulle du se tiden.

Det er det til dette projekt - enkelt og let at bruge ….

(Mulige forbedringer: Vis måned, dag og år, opsæt en summer og alarmer - kontroller generelt, hvad du ser via en webside. Denne idé ville tage en stor omskrivning af den nuværende enkle skitse)

Klar til endnu et enkelt projekt - Vis, hvor ISS er - Pass forudsigelser, og hvor mange mennesker er i rummet! (PS denne skitse bruger en webside til at styre, hvad der vises) …..

Trin 6: Projekt 2: ISS Pass Prediction Display,

Projekt 2: ISS Pass Prediction Display,
Projekt 2: ISS Pass Prediction Display,
Projekt 2: ISS Pass Prediction Display,
Projekt 2: ISS Pass Prediction Display,
Projekt 2: ISS Pass Prediction Display,
Projekt 2: ISS Pass Prediction Display,

Projekt 2: ISS Pass Prediction Display, dette projekt bruger processorens 2. kerne. Det viser, hvor tæt (i miles) ISS er, hvornår man kan forvente det næste ISS -pass på din placering (i UTC -tid), og eventuelt hvor mange mennesker der er i rummet. Da mange af disse oplysninger ikke ændres ofte, bruger vi den 2. kerne til kun at søge efter opdateringer af pasforudsigelserne, eller hvor mange mennesker der er i rummet hvert 15. minut. Vi kan forhindre for mange API -opkald til serveren på denne måde. Dette projekt er lidt mere kompliceret, men stadig ret let at gøre.

Dette projekt er baseret på et af mine tidligere projekter, der kan findes her:

(Et simpelt ISS-notifikationssystem) I og med at jeg brugte en ESP8266 med en indbygget OLED-skærm (D-Duino). For det meste bruger dette projekt bare et andet displaysystem, jeg udvidede det, så du kan ændre, hvad du vil se i farten via en webside. Så lad os komme i gang….

Det meste af æren for brugervenlig går til https://open-notify.org, som har en meget enkel og brugervenlig API. Open-notify API har tre ting, der kan vises, placeringen af ISS i breddegrad og længdegrad, bestå forudsigelser baseret på en given breddegrad og længdegrad. Og endelig hvor mange mennesker (og deres navne) der er i rummet.

Vi bliver nødt til at installere et andet bibliotek - ArduinoJson -biblioteket.

github.com/bblanchon/ArduinoJson

Vi har også brug for TimeLib.h, men jeg er ikke sikker på, hvor jeg fik den fra, eller om den er inkluderet i IDE (undskyld)….

Så hvorfor forudsige, hvor ISS vil være - ISS indeholder forskellige amatørradioudstyr, og når det er "over hovedet", kan en skinkeradiooperatør komme i kontakt med ISS ved hjælp af nogle meget enkle (og billige) radioer. Jeg har endda gjort det mens jeg var mobil (kørte i bilen). Du behøver virkelig ikke meget for at få dette til at fungere. Den eneste ting du har brug for er at vide, hvor det er. Og det hjælper at pege antennen i dens generelle retning.

Linje 57, 58, 59 er nogle displayvariabler - hvis de er indstillet til 1, vil du se et display, hvis de er indstillet til 0 (nul), vil du ikke se et display. (Disse variabler kan indstilles i skitsen eller opdateres fra en webside, som firebeetle opretter - mere om det senere).

int locDis = 1; // Vis placering af ISSint pasDis = 0; // Vis Pass -forudsigelser int pplDis = 1; // Vis mennesker i rummet

så locDis viser placeringen af ISS i breddegrad og længdegrad - det viser også, hvor mange miles der er.

pasDis får adgangsprognoserne fra open-notify.org og viser dem.

og endelig viser pplDis navnene og hvor mange mennesker der er i rummet - det kan blive meget langt, det gør det ikke

ændrer sig ofte ofte. (du kan ændre disse eller forlade dem, det er helt valgfrit)

Vi skal også kende vores breddegrad og længdegrad og sætte det ind i skitsen.

Dette behøver ikke at være en præcis lat/lang, det kan være centrum i din by eller bare lidt væk. ISS 'fodaftryk er bredt, mens det er over hovedet, og hundredvis (eller tusinder) miles kan tilbagelægges, så det at være lidt væk på din lat/long vil ikke være en deal breaker (for det meste), kommunikation over 500 miles er ret almindelig.

Hvis du ikke kender din breddegrad og længdegrad, kan dette websted hjælpe dig.

www.latlong.net Tæt på linje 84 i skitsen ser du sådan noget som dette:

// Find din breddegrad og længdegrad her // https://www.latlong.net/ float mylat = 39.360095; float mylon = -84.58558;

Det burde være alt, hvad der skal ændres. Upload skitsen, og tilslut Firebeetle til internettet - og du bør se, placeringen af ISS angivet i lat/lang, og hvor mange miles væk den er (husk, at dette vil være en omtrentlig afstand. ISS bevæger sig meget hurtigt, og da displayet er færdigt, har ISS bevæget sig mange miles fra, hvor det var). Du bør også se menneskene i rummet. (HVIS du ikke ændrede variablen ovenfor).

Vi bruger den anden kerne af ESP32 til at køre et websted, ved hjælp af webstedet giver os kontrol over, hvad der vises på LED-matrixen. Det skal være ret intuitivt om, hvordan det fungerer, et afsnit viser, hvad der er tændt for visning, et andet afsnit har "ja" "nej" -knapper - klikket på "ja" betyder, at du vil se det, "nej" betyder ikke ' t vise det. Du skal også se, at den øverste sektion ændres baseret på knapperne.

Det eneste, der ikke er så skåret og tørt her, er, hvordan du finder Firebeetles IP -adresse - desværre kunne jeg ikke finde en god måde at finde det på - så jeg brugte bare IDE -seriens konsol til at vise det (9600 baud).

Åbn konsollen, og du skal se IP -adressen. (åbn den, før du får den tilsluttede besked) - mit andet valg var at vise den på LED Matrix en gang lige ved opstart - jeg besluttede imod det, fordi du måske ikke kiggede på tidspunktet, og du vil savne det. Jeg havde overvejet at sende en sms -besked, eller noget, men i sidste ende holder jeg det bare simpelt. (Jeg forsøgte også at tildele en statisk IP/gateway/etc, jeg kunne ikke få det til at fungere rigtigt med wifi -manageren - koden er stadig i skitsen, så hvis nogen finder ud af det, lad mig vide)

Skitsen går også forud for FreeRTOS indbygget i ESP32 -kernen - Vi har en opgave, der kører hvert 15. minut eller deromkring, hvad dette gør er at opdatere passforudsigelserne såvel som mennesker i rummet. Som jeg sagde tidligere ændrer mennesker i rummet ikke så meget, så det kan sandsynligvis flyttes til endnu en opgave og måske køre en gang hver 12. time (eller 6 timer) - men det virker, og det holder tingene enkle.

For dem, der ikke kender FreeRTOS, er en måde at lade en enkelt kerne mikro-controller køre flere opgaver

Normalt skal du inkludere nogle biblioteker og andre ting for at få det til at fungere - men det er indbygget i kernen for ESP32 - hvilket gør ESP32 til en meget kraftfuld enhed. for mere information om FreeRTOS

freertos.org/

FORBEDRINGER: Der er en række ting, der kan forbedres til dette projekt, og næsten hver dag tænker jeg på noget, der kunne gøres lidt anderledes, eller ændres eller tilføjes.

Og i biblioteket med flere eksempler på depotet kan du se nogle af de tidligere/forskellige ting, jeg tænkte på- nogle af disse virkede ikke, nogle blev lige ændret, og nogle var inkluderet i den aktuelle skitse.

* På et tidspunkt forsøgte jeg at tilføje en neopixel til displayet, så det ville være lidt mere som mit tidligere projekt - jeg fik det aldrig til at fungere helt rigtigt (jeg fandt det et strømproblem, som jeg ikke havde overvejet). arbejder på en måde at forbedre denne idé *

Mens jeg skrev dette trin, tænkte jeg, måske jeg kan tilføje en måde at opdatere din breddegrad og længdegrad til webstedet - på den måde ville skitsen aldrig skulle ændres - jeg vil også tænke på denne lidt mere.

En forbedret måde at få IP -adressen på er noget andet, jeg gerne vil gøre (tænker stadig på den også)

Lad os gå videre til vores næste projekt ….

Trin 7: Projekt 3: et enkelt meddelelseskilt i bevægelse ved hjælp af MQTT

Projekt 3: et enkelt bevægeligt meddelelsessignal ved hjælp af MQTT
Projekt 3: et enkelt bevægeligt meddelelsessignal ved hjælp af MQTT
Projekt 3: et enkelt bevægeligt meddelelseskilt ved hjælp af MQTT
Projekt 3: et enkelt bevægeligt meddelelseskilt ved hjælp af MQTT
Projekt 3: et enkelt bevægeligt meddelelsessignal ved hjælp af MQTT
Projekt 3: et enkelt bevægeligt meddelelsessignal ved hjælp af MQTT

"loading =" doven "" loading = "doven"

Bonus del 2 - Vis billeder
Bonus del 2 - Vis billeder
Bonus del 2 - Vis billeder
Bonus del 2 - Vis billeder
Bonus del 2 - Vis billeder
Bonus del 2 - Vis billeder

Så det viser sig, at biblioteket kan vise billeder - du af en eller anden grund synes, at funktionen er "privat" - godt, for disse næste skitser ændrede jeg biblioteket igen og lavede drawImage til en offentlig funktion.

Denne gang lagde jeg det ændrede bibliotek i skitsekataloget, så du ikke behøver at geninstallere biblioteket, skitsen ser først på sig selv, så ser det ud i biblioteksmappen, så vi har det godt!

*** Jeg planlægger at indsende denne ændring til DFRobot, da det virkelig er meget sejt og lidt pænt at kunne lave disse skitser ***

LED Matrix Images sketch, her forsøgte jeg først at finde ud af, hvad biblioteket ønskede, og hvad der ville og ikke ville fungere - med varierende succes. Jeg fandt ud af, at 8x8 billederne fungerer bedst, men du kan også få andre til at fungere. Jeg fandt også et par online led -matrixredaktører, nogle fungerer bedre end andre.

xantorohara.github.io/led-matrix-editor/-ser ud til at fungere ok, laver 8x8 billeder, og du vil have dem som byte-arrays.

www.riyas.org/2013/12/online-led-matrix-fo… denne fungerer godt og har evnen til at lave større end 8x8 skærme, skærmen ser ud til at være tændt på siden med denne skærm imidlertid. Byte -arrays ser ud til at fungere bedst her. Jeg brugte det til at lave "space invaders" set i videoen ovenfor.

Så hvordan fungerer dette, drawImage (const byte * img, uint8_t width_t, uint8_t height_t, int8_t x, int8_t y, int img_offset);

image byte array variable, billedets bredde (8), billedets højde (8), startpositionen på skærmen x (0), y (0) normalt og et offsetnummer, som jeg ikke er 100% sikker på, hvad den gør, så det meste af tiden lod jeg den stå på nul.

I skitsen LED Matrix Images - der er 8 forskellige byte -arrays - også med tre forskellige metoder.

- fyrværkeri er de første arrays, ærligt talt ved jeg ikke, hvordan dette fungerer - men det virker.

næste er der en mund - det virker ikke rigtig helt rigtigt, munden lægger den forkerte vej for en, og forsøg på at foretage ændringer gør det bare værre. (lære hvad der virker og hvad der ikke er halvdelen af det sjove)

Efterfulgt af den første marioImg - dette er for stort til displayet, og jeg tror, det er her off -sættet spiller ind - jeg brugte det her, og du kan se forsiden af mario, hvis du ændrer forskydningen til 1 dig ' vil se bagsiden af ham. (du jeg kan ikke rigtig fortælle dig hvorfor eller hvad forskydningen gør. Det ser ud til at forskyde billedet, men hvorfor 2 forskyder det, så du kan se forsiden af ham, og hvorfor 1 forskyder den anden retning, jeg kan ikke fortælle dig)

BILLEDER - byte array er et @ -tegn, jeg lavede - det ligner det, jeg lavede ved hjælp af værktøjet på

pic1 byte -array ligner også det, jeg prøvede at lave, kun det er mindre, end jeg prøvede - hvad det er, kan jeg ikke sige, men jeg kan generelt sige, at det ligner det, jeg lavede i editoren.

mario2Img - dette er min egen version af den større Mario lavet til en 8x8 skærmstørrelse - og du er der et eller to pixels ude af sted (min skyld, ikke skærmene) det ligner en lille Mario (sorta).

invader1 og invader2 - både min idé om en rum invaderer. de blev ret gode, og ved at lægge billederne oven på hinanden kan jeg skabe effekten af fødder, der bevæger sig.

Der er to fyrværkeri skitser i biblioteket, hver er lidt anderledes og værd at prøve.

Den ene har fyrværkeriet i bevægelse hen over skærmen, så lidt mere/anderledes animation … den anden har to fyrværkerier vist på samme tid

Der er også tre "invaders" -skitser, hver enkelt er lidt anderledes, en har invadereren bevæget sig hen over skærmen, og du kan se hvordan jeg gjorde det - (der er måske bedre måder at gøre det på, jeg ved det ikke)

Endnu mere: Der er nogle skitser i testmappen i depotet - de fleste af disse fungerede ikke helt som jeg ville, eller var ideer, som jeg ville gøre, men fungerede ikke som jeg ville. Jeg har forladt dem, fordi nogen fik nogle ideer *(jeg lavede et lille "skjold" med en WS2812 -pixel på det til brug med ISS -displayet, men jeg sluttede det til 3v -linjen og havde bare ikke nok strøm også med LED Matrix kørende, pixelen fungerede fint, uden LED Matrix du, så der er stadig noget, jeg kan gøre med det)*

Der er også et bibliotek kaldet "Flere eksempler" - det er variationer på nogle af projektskitserne, enten jeg noget blev tilføjet eller fjernet eller ændret på en eller anden måde. For disse fungerer de - de er bare ikke det sidste projekt. Så jeg forlod dem igen, nogen kunne få noget nyttigt ud af dem. (Måske)

Jeg håber, at du nød dette instruerbare lige så meget som jeg nød at lave disse projekter:-)

Trin 11: Ink …

Dette projekt blev sponsoreret og støttet af DF Robot. Brug venligst nedenstående links til produkterne:

Firebeetle ESP32 -

Firebeetle Cover 24x8 LED Matrix -

My Code Repository:

Hvis du synes, at dette eller nogle af mine projekter er nyttige eller underholdende, kan du støtte mig. Alt, hvad jeg får, går til at købe flere dele og lave flere/bedre projekter.

www.patreon.com/kd8bxp

NTPClient-bibliotek

ArduinoJson.h

ESP8266 vejrbibliotek

Json-Streaming-Parser Library

Anbefalede: