INHOUDSOPGAWE:
- Stap 1: Hulpbronne gebruik
- Stap 2: Die skerm
- Stap 3: Die SSD1306 -biblioteek
- Stap 4: Die animasie- en XBM -lêers
- Stap 5: Verlaat XBM -lêers
- Stap 6: Bronkode
- Stap 7: Doen die oplaai van kode
- Stap 8: lêers
Video: Inleiding ESP32 Lora OLED -skerm: 8 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Dit is nog 'n video oor die inleiding tot die ESP32 LoRa. Hierdie keer praat ons spesifiek oor 'n grafiese skerm (van 128x64 pixels). Ons sal die SSD1306 -biblioteek gebruik om inligting oor hierdie OLED -skerm te vertoon en 'n voorbeeld van animasie met XBM -beelde aan te bied.
Stap 1: Hulpbronne gebruik
1 Heltec WiFi LoRa 32
Protobord
Stap 2: Die skerm
Die skerm wat op die ontwikkelingsbord gebruik word, is 'n OLED van 0,96 duim.
Dit het 128x64 en is monochroom.
Dit het I2C -kommunikasie en is via 3 drade aan die ESP32 gekoppel:
SDA op GPIO4 (vir data)
SCL op GPIO15 (vir klok)
RST op GPIO16 (vir herstel en vertoning begin)
Stap 3: Die SSD1306 -biblioteek
Dit kan gevind word saam met die stel biblioteke wat deur Heltec-Aaron-Lee verskaf word.
Dit het verskeie funksies vir die skryf van snare, tekenlyne, reghoeke, sirkels en die vertoon van beelde.
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
Stap 4: Die animasie- en XBM -lêers
Ons sal die drawXbm -funksie van die biblioteek gebruik om 'n animasie te vertoon.
Die XBM -beeldformaat bestaan uit 'n verskeidenheid karakters waar elke element 'n stel monochrome pixels (1 bis elk) in 'n heksadesimale waarde verteenwoordig. Dit is gelykstaande aan een greep.
Omdat verskeie karakters gebruik word om 'n enkele greep voor te stel, is hierdie lêers geneig om groter te wees as dié van die huidige formate. Die voordeel is dat hulle direk saamgestel kan word sonder dat vooraf behandeling nodig is.
Benewens die skikking, word twee instellings ingesluit wat die beeldgrootte bepaal.
Om die animasie te bou, benodig ons die beelde wat die rame sal vorm.
Ons kan enige beeldbewerkingsagteware gebruik om aan die werk te kom. Die enigste voorsorgmaatreël wat ons moet neem, is om eers die grootte versoenbaar te hou met die skerm en monochrome lêers te gebruik.
Om die lêers te genereer, kan ons dit teken of beelde invoer. Hier het ons besluit om 'n kleurbeeld met PaintBrush te wysig, en ons het elkeen van die rame geteken
Oorspronklike beeld - 960x707 pixels --p.webp
Die volgende stap is om dit monochroom te maak deur dit as 'n monochrome bitmap te stoor.
Dan verander ons die grootte daarvan tot 'n grootte wat versoenbaar is met die skerm.
Gee spesifieke aandag aan die maateenhede. In hierdie geval het ons die beeld so aangepas dat dit die hele hoogte van die skerm beslaan (vertikaal = 64 pixels).
Met die prentjie in die korrekte grootte, wysig ons dit om die rame te vorm. Hier vee ons elke boog van seinvlak uit en stoor dit as ooreenstemmende rame.
Nou moet ons BMP -lêers omskakel in XBM -formaat.
Daar is verskeie sagteware -opsies wat hierdie omskakeling kan doen. Ons het ook GIMP gekies as redakteuropsie.
In ons voorbeeld het ons PaintBrush gebruik om die lêers te genereer en te wysig. Elkeen van hierdie prosesse kon egter in Gimp (of enige ander redakteur) gedoen gewees het.
Om dit te omskep, maak ons eers die lêer oop.
Met die prentjie oop, kan ons File => Export as …
In die venster Uitvoer beeld moet ons die bestemmingslêeruitbreiding vir XBM verander. Gimp is verantwoordelik vir die identifisering van die gewenste formaat en meer opsies …
By die uitvoer sal Gimp ander opsies aanbied. Ons kan die standaardwaardes verlaat.
Nadat ons al die lêers omskep het, sal ons vier XBM -lêers hê, een vir elke raam.
Laat ons dit nou na die bronkode -gids kopieer en dit hernoem deur hul uitbreidings na.h te verander.
Stap 5: Verlaat XBM -lêers
Ons kan die XBM -lêers in enige teksredakteur oopmaak, waar ons die beeldmatriks en inligting oor die beeldgrootte wat reeds gedefinieer is, sal sien.
Stap 6: Bronkode
Bronkode: verklarings
Ons sal die nodige biblioteke sowel as die beeldlêers insluit. Ons definieer die posisies van die beeld en die oorgangsinterval. Ons wys ook die OLED -penne wat aan die ESP32 gekoppel is. Uiteindelik skep en pas ons die Display -voorwerp aan.
// Incluindo as bibliotecas needsá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 #definieer SDA 4 #definieer SCL 15 #definieer RST 16 // O RST ontwikkel kontrole deur sagteware SSD1306 -skerm (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display
Bronkode: Opstelling ()
Begin die skerm en draai die skerm vertikaal om. Aksie is opsioneel.
ongeldige opstelling () {display.init (); // inisie o display display.flipScreenVertically (); // inverte verticalmente a tela (opsioneel)}
Bronkode: Loop ()
Die eerste ding wat u moet doen, is om die skerm skoon te maak. Ons laai raam 1 in die buffer met behulp van die posX en posY beginposisies. Ons lig die grootte van die prent in met frame1_width en frame1_height, en die naam van die skikking wat die stukkies van die prent bevat. Ons wys die buffer op die skerm en wag 'n rukkie voordat die volgende raam vertoon word.
leemte -lus () {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);
Ons herhaal die proses vir alle ander rame.
// herhaal of verwerk vir ons outros rame display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); vertoon.display (); vertraging (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); vertoon.display (); vertraging (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); vertoon.display (); vertraging (intervalo); }
Stap 7: Doen die oplaai van kode
As die IDE oop is, maak u die lêer met die bronkode oop deur te dubbelklik op die.ino-lêer of deur na die menu File te gaan.
As Heltec aan USB gekoppel is, kies die spyskaart Tools => Card: "Heltec_WIFI_LoRa_32"
Kies nog steeds in die menu Gereedskap die COM -poort waar die Heltec verbind is.
Klik op die UPLOAD -knoppie …
… En wag vir die gevolgtrekking.
Stap 8: lêers
Laai die lêers af:
EK NEE
Aanbeveel:
Covid -veiligheidshelm Deel 1: 'n Inleiding tot Tinkercad -kringe !: 20 stappe (met foto's)
Covid -veiligheidshelm Deel 1: 'n inleiding tot Tinkercad -stroombane !: Hallo, vriend! In hierdie tweedelige reeks leer ons hoe u Tinkercad's Circuits kan gebruik - 'n prettige, kragtige en opvoedkundige hulpmiddel om te leer hoe stroombane werk! Een van die beste maniere om te leer, is om te doen. Dus, ons ontwerp eers ons eie projek: die
ESP32 Met E32-433T LoRa-module-tutoriaal - LoRa Arduino -koppelvlak: 8 stappe
ESP32 Met E32-433T LoRa-module-tutoriaal | LoRa Arduino Interfacing: Hey, wat gaan aan, ouens! Akarsh, hier van CETech. Hierdie projek van my sluit aan by die E32 LoRa-module van eByte, 'n 1-watt transceiver-module met 'n hoë krag met 'n ESP32 met behulp van Arduino IDE. Ons het die werking van die E32 in ons laaste tutoria verstaan
Beheer huishoudelike toestelle oor LoRa - LoRa in tuisautomatisering - LoRa -afstandsbediening: 8 stappe
Beheer huishoudelike toestelle oor LoRa | LoRa in tuisautomatisering | LoRa -afstandsbediening: beheer en outomatiseer u elektriese toestelle vanaf lang afstande (kilometer) sonder die internet. Dit is moontlik deur LoRa! Haai, wat gaan aan, ouens? Akarsh hier van CETech. Hierdie PCB het ook 'n OLED -skerm en 3 relais wat 'n
Inleiding tot ESP32: 10 stappe
Inleiding tot ESP32: In hierdie artikel gaan ons praat oor ESP32, wat ek as 'n ouer broer van ESP8266 beskou. Ek hou baie van hierdie mikrobeheerder omdat dit WiFi het. Net sodat u 'n idee het, voordat ESP bestaan, as u 'n Arduino nodig het om WiFi te hê, sou u
Inleiding LoRa & Module RFM95 / RFM95W Hoperf: 5 stappe
Inleiding LoRa & Module RFM95 / RFM95W Hoperf: In hierdie geleentheid maak ons 'n kort beskrywing van LoRa &handel; en spesifiek Radio RFM95/96 vervaardig deur Hoperf Electronics. Sedert 'n paar maande gelede het 2 modules aangebreek, aanvanklik wil ek 'n inleiding maak oor die onderwerp