Indholdsfortegnelse:
- Trin 1: Brugte ressourcer
- Trin 2: Displayet
- Trin 3: SSD1306 -biblioteket
- Trin 4: Animation- og XBM -filerne
- Trin 5: Afslutning af XBM -filer
- Trin 6: Kildekode
- Trin 7: Udførelse af opladning af kode
- Trin 8: Filer
Video: Introduktion ESP32 Lora OLED Display: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Dette er en anden video om introduktionen til ESP32 LoRa. Denne gang taler vi specifikt om et grafisk display (på 128x64 pixels). Vi vil bruge SSD1306 -biblioteket til at vise oplysninger om denne OLED -skærm og præsentere et eksempel på animation ved hjælp af XBM -billeder.
Trin 1: Brugte ressourcer
1 Heltec WiFi LoRa 32
Protoboard
Trin 2: Displayet
Skærmen, der bruges på udviklingsbrættet, er en OLED på 0,96 tommer.
Den har 128x64 og er monokrom.
Den har I2C -kommunikation og er forbundet til ESP32 via 3 ledninger:
SDA på GPIO4 (til data)
SCL på GPIO15 (til ur)
RST på GPIO16 (til nulstilling og skærmstart)
Trin 3: SSD1306 -biblioteket
Dette kan findes sammen med det sæt biblioteker, der leveres af Heltec-Aaron-Lee.
Det har flere funktioner til at skrive strenge, tegne linjer, rektangler, cirkler og vise billeder.
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
Trin 4: Animation- og XBM -filerne
Vi vil bruge bibliotekets drawXbm -funktion til at vise en animation.
XBM -billedformatet består af en række tegn, hvor hvert element tekstmæssigt repræsenterer et sæt monokrome pixels (1 bit hver), gennem en hexadecimal værdi. Disse svarer til en byte.
Fordi flere tegn bruges til at repræsentere en enkelt byte, har disse filer en tendens til at være større end dem fra de aktuelt vedtagne formater. Fordelen er, at de kan kompileres direkte uden behov for forudgående behandling.
Ud over matrixen er der inkluderet to indstillinger, der bestemmer billedstørrelsen.
For at bygge animationen har vi brug for de billeder, der danner rammerne.
Vi kan bruge enhver billedredigeringssoftware til at komme i gang. De eneste forholdsregler, vi bør tage, er først at holde størrelsen kompatibel med skærmen og bruge monokrome filer.
For at generere filerne kan vi tegne dem eller importere billeder. Her besluttede vi at redigere et farvebillede ved hjælp af PaintBrush, og vi tegnede hver enkelt ramme
Originalbillede - 960x707 pixels --p.webp
Det næste trin er at gøre det monokromt ved at gemme det som et monokrom bitmap.
Derefter ændrer vi størrelsen til en størrelse, der er kompatibel med skærmen.
Vær særlig opmærksom på måleenhederne. I dette tilfælde justerede vi billedet, så det optog hele skærmens højde (lodret = 64 pixels).
Med billedet i den korrekte størrelse, redigerer vi det for at danne rammerne. Her sletter vi hver bue af signalniveau og gemmer dem som tilsvarende rammer.
Nu skal vi konvertere BMP -filer til XBM -format.
Der er flere softwaremuligheder, der kan udføre denne konvertering. Vi valgte også GIMP som redaktørmulighed.
I vores eksempel brugte vi PaintBrush til at generere og redigere filerne. Hver af disse processer kunne dog have været udført i Gimp (eller enhver anden editor).
For at konvertere åbner vi først filen.
Med billedet åbent kan vi vælge File => Export as …
I vinduet Eksporter billede skal vi ændre destinationsfiludvidelsen til XBM. Gimp har ansvaret for at identificere det ønskede format og præsentere flere muligheder …
Ved eksport vil Gimp præsentere andre muligheder. Vi kan forlade standardværdierne.
Efter konvertering af alle filerne har vi fire XBM -filer, en for hver ramme.
Lad os nu kopiere dem til kildekodemappen og omdøbe dem ved at ændre deres udvidelser til.h.
Trin 5: Afslutning af XBM -filer
Vi kan åbne XBM -filerne i enhver tekstredigerer, hvor vi vil se billedmatricen og billedstørrelsesoplysninger, der allerede var defineret.
Trin 6: Kildekode
Kildekode: erklæringer
Vi inkluderer de nødvendige biblioteker samt billedfilerne. Vi definerer billedets positioner og overgangsintervallet. Vi peger også på OLED -benene, der er forbundet til ESP32. Endelig opretter og justerer vi Display -objektet.
// Incluindo as bibliotecas necessárias #include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #define intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // O RST udvikle styring af software SSD1306 display (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display
Kildekode: Opsætning ()
Initialiser displayet, og vend skærmen lodret. Handling er valgfri.
ugyldig opsætning () {display.init (); // inicia o display display.flipScreenVertically (); // inverte verticalmente a tela (opcional)}
Kildekode: Loop ()
Den første ting at gøre i loop er at rydde skærmen. Vi indlæser ramme 1 i bufferen ved hjælp af posX og posY udgangspositioner. Vi oplyser billedets størrelse med frame1_width og frame1_height, og navnet på arrayet, der indeholder billedets bits. Vi viser bufferen på displayet og venter et interval, før vi viser det næste billede.
void loop () {display.clear (); // limpa tela // carrega para o buffer o frame 1 // usando as posições iniciais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informa o nome da matriz que contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // Mostra o buffer no display display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);
Vi gentager processen for alle andre rammer.
// repete o processo para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); forsinkelse (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); forsinkelse (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); forsinkelse (intervalo); }
Trin 7: Udførelse af opladning af kode
Med IDE åben, skal du åbne filen med kildekoden ved at dobbeltklikke på.ino-filen eller ved at gå til menuen Filer.
Med Heltec tilsluttet USB, vælg menuen Værktøjer => Kort: "Heltec_WIFI_LoRa_32"
Stadig i menuen Værktøjer skal du vælge den COM -port, hvor Heltec er tilsluttet.
Klik på knappen UPLOAD …
… Og vent på konklusionen.
Trin 8: Filer
Download filerne:
INO
Anbefalede:
ESP32 Med E32-433T LoRa-modul Tutorial - LoRa Arduino -grænseflade: 8 trin
ESP32 Med E32-433T LoRa-modul Tutorial | LoRa Arduino Interfacing: Hey, hvad sker der, fyre! Akarsh her fra CETech.This project of my interfaces the E32 LoRa module from eByte which is a high-power 1-watt transceiver module with an ESP32 using Arduino IDE.We forstod funktionen af E32 i vores sidste tutoria
Styr husholdningsapparater over LoRa - LoRa i hjemmeautomatisering - LoRa fjernbetjening: 8 trin
Styr husholdningsapparater over LoRa | LoRa i hjemmeautomatisering | LoRa fjernbetjening: Styr og automatiser dine elektriske apparater fra lange afstande (kilometer) uden tilstedeværelse af internettet. Dette er muligt gennem LoRa! Hey, hvad sker der, gutter? Akarsh her fra CETech.Dette printkort har også et OLED -display og 3 relæer, som en
Introduktion til LoRa ™!: 19 trin
Introduktion til LoRa ™!: LoRa ™ = Langtrækkende trådløs datatelemetri og vedrører en radikal VHF/UHF 2-vejs trådløs spredt spektrum datamoduleringsmetode, der for nylig er blevet udviklet & varemærket (™) af Semtech - et længe etableret (1960) amerikansk multinationalt valg
Introduktion til ESP32: 10 trin
Introduktion til ESP32: I denne artikel vil vi tale om ESP32, som jeg anser for at være en ældre bror til ESP8266. Jeg kan virkelig godt lide denne mikrokontroller, fordi den har WiFi. Bare så du har en idé, før ESP eksisterer, hvis du havde brug for en Arduino for at have WiFi, ville du
Introduktion LoRa & Modul RFM95 / RFM95W Hoperf: 5 trin
Introduktion LoRa & Modul RFM95 / RFM95W Hoperf: I denne lejlighed vil vi lave en kort beskrivelse af LoRa &handel; og specifikt Radio RFM95/96 fremstillet af Hoperf Electronics. Siden for et par måneder siden ankom 2 moduler, i første omgang vil jeg lave en introduktion om emnet