Sadržaj:
- Korak 1: Korišteni resursi
- Korak 2: Zaslon
- Korak 3: Biblioteka SSD1306
- Korak 4: Animacijske i XBM datoteke
- Korak 5: Izlazak iz XBM datoteka
- Korak 6: Izvorni kod
- Korak 7: Izvođenje učitavanja koda
- Korak 8: Datoteke
Video: Uvod ESP32 Lora OLED ekran: 8 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Ovo je još jedan video zapis o Uvodu u ESP32 LoRa. Ovaj put ćemo posebno govoriti o grafičkom prikazu (128x64 piksela). Za prikaz informacija na ovom OLED ekranu koristit ćemo biblioteku SSD1306 i predstaviti primjer animacije pomoću XBM slika.
Korak 1: Korišteni resursi
1 Heltec WiFi LoRa 32
Protoboard
Korak 2: Zaslon
Ekran koji se koristi na razvojnoj ploči je OLED od 0,96 inča.
Ima dimenzije 128x64 i monohromatski je.
Ima I2C komunikaciju i spojen je na ESP32 putem 3 žice:
SDA na GPIO4 (za podatke)
SCL na GPIO15 (za sat)
RST na GPIO16 (za resetiranje i početak prikaza)
Korak 3: Biblioteka SSD1306
Ovo se može pronaći zajedno sa skupom biblioteka koje pruža Heltec-Aaron-Lee.
Ima nekoliko funkcija za pisanje nizova, crtanje linija, pravokutnika, krugova i prikaz slika.
github.com/Heltec-Aaron-Lee/WiFi_Kit_series
Korak 4: Animacijske i XBM datoteke
Za prikaz animacije koristit ćemo funkciju drawXbm biblioteke.
Format slike XBM sastoji se od niza znakova u kojima svaki element tekstualno predstavlja skup crno -bijelih piksela (svaki po 1 bit), kroz heksadecimalnu vrijednost. Oni su ekvivalentni jednom bajtu.
Budući da se više znakova koristi za predstavljanje jednog bajta, te su datoteke obično veće od onih iz trenutno usvojenih formata. Prednost je što se mogu sastaviti izravno bez potrebe za prethodnim tretmanom.
Osim niza, uključene su i dvije postavke koje određuju veličinu slike.
Za izradu animacije potrebne su nam slike koje će činiti okvire.
Za rad možemo koristiti bilo koji softver za uređivanje slika. Jedine mjere opreza koje trebamo poduzeti su prvo držati veličinu kompatibilnom s zaslonom i koristiti jednobojne datoteke.
Da bismo generirali datoteke, možemo ih nacrtati ili uvesti slike. Ovdje smo odlučili urediti sliku u boji pomoću PaintBrush -a i nacrtali smo svaki od okvira
Originalna slika - 960x707 piksela --p.webp
Sljedeći korak je učiniti ga jednobojnim spremanjem kao monohromatsku bitmapu.
Zatim smo mu promijenili veličinu na veličinu kompatibilnu s zaslonom.
Obratite posebnu pažnju na mjerne jedinice. U ovom slučaju sliku smo prilagodili tako da zauzima cijelu visinu zaslona (okomito = 64 piksela).
Sa slikom u ispravnoj veličini, mi ćemo je urediti kako bismo formirali okvire. Ovdje brišemo svaki luk nivoa signala i spremamo ih kao odgovarajuće okvire.
Sada moramo pretvoriti BMP datoteke u XBM format.
Postoji nekoliko softverskih opcija koje mogu izvršiti ovu konverziju. Također smo odabrali GIMP kao opciju uređivača.
U našem primjeru koristili smo PaintBrush za generiranje i uređivanje datoteka. Međutim, svaki od ovih procesa mogao se obaviti u Gimpu (ili bilo kojem drugom uređivaču).
Za pretvaranje prvo otvorimo datoteku.
Kad je slika otvorena, možemo odabrati Datoteka => Izvezi kao …
U prozoru Izvoz slike moramo promijeniti odredišnu datotečnu ekstenziju za XBM. Gimp će biti zadužen za identifikaciju željenog formata i predstavljanje više opcija …
Prilikom izvoza, Gimp će predstaviti druge opcije. Možemo ostaviti zadane vrijednosti.
Nakon pretvaranja svih datoteka imat ćemo četiri XBM datoteke, po jednu za svaki okvir.
Sada ih kopirajmo u mapu izvornog koda i preimenujmo ih promjenom ekstenzija u.h.
Korak 5: Izlazak iz XBM datoteka
Možemo otvoriti XBM datoteke u bilo kojem uređivaču teksta, gdje ćemo vidjeti matricu slike i informacije o veličini slike koje su već definirane.
Korak 6: Izvorni kod
Izvorni kod: Izjave
Uključit ćemo potrebne biblioteke, kao i datoteke slika. Definiramo položaje slike i prijelazni interval. Takođe ukazujemo na OLED pinove povezane sa ESP32. Konačno, kreiramo i prilagođavamo Display objekt.
// Uključi kao potrebne biblioteke #include #include "SSD1306.h" // Uključuje osnove slike #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definira postavljanje slike i intervalo prijelaza #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 podešavanje servera za softver SSD1306 prikaz (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display
Izvorni kod: Setup ()
Pokrenite ekran i okrenite ekran vertikalno. Radnja nije obavezna.
void setup () {display.init (); // početni prikaz ekrana display.flipScreenVertical (); // inverte verticalmente a tela (opcionalno)}
Izvorni kod: Loop ()
Prva stvar koju treba učiniti u petlji je da očistite ekran. Učitavamo okvir 1 u međuspremnik koristeći posX i posY početne pozicije. Veličinu slike informiramo pomoću frame1_width i frame1_height, te imenom niza koji sadrži bitove slike. Prikazujemo bafer na ekranu i čekamo interval prije nego što prikažemo sljedeći okvir.
void loop () {display.clear (); // limpa tela // carrega parametar o međuspremniku o okviru 1 // upotreba kao početni iniciais posX e posY // informacije o tamanho da imagem com frame1_width e frame1_height // informacije o imenu da matriz que contem os bitova za imagem, bez caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o međuspremniku nema prikaza display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);
Ponavljamo postupak za sve ostale okvire.
// ponavljanje procesa za izlaženje izvan okvira display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); kašnjenje (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); kašnjenje (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); kašnjenje (intervalo); }
Korak 7: Izvođenje učitavanja koda
Kada je IDE otvoren, otvorite datoteku sa izvornim kodom dvostrukim klikom na.ino datoteku ili odlaskom u meni Datoteka.
Kad je Heltec spojen na USB, odaberite izbornik Alati => Kartica: "Heltec_WIFI_LoRa_32"
Još uvijek u izborniku Alati odaberite COM port na koji je Heltec povezan.
Pritisnite dugme UPLOAD…
… I čekajte zaključak.
Korak 8: Datoteke
Preuzmite datoteke:
JA NE
Preporučuje se:
Rotirajte Raspberry Pi ekran i ekran osetljiv na dodir: 4 koraka
Rotiranje Raspberry Pi ekrana i ekrana osjetljivog na dodir: Ovo je osnovno uputstvo koje vam pokazuje kako rotirati unos ekrana i ekrana osjetljivog na dodir za bilo koji Raspberry Pi koji radi na Buster Raspbian operativnom sistemu, ali ovu metodu koristim od Jessie. Slike korištene u ovome su s Raspberry Pi
TTGO (kolor) ekran sa mikropythonom (TTGO T-ekran): 6 koraka
TTGO (kolor) ekran sa Micropythonom (TTGO T-displej): TTGO T-ekran je ploča zasnovana na ESP32 koja uključuje ekran u boji od 1,14 inča. Ploča se može kupiti za nagradu manju od 7 USD (uključujući dostavu, nagrada viđena na banggood -u). To je nevjerovatna nagrada za ESP32, uključujući i ekran
Upravljajte kućanskim aparatima preko LoRa - LoRa u kućnoj automatizaciji - LoRa daljinski upravljač: 8 koraka
Upravljajte kućanskim aparatima preko LoRa | LoRa u kućnoj automatizaciji | LoRa daljinski upravljač: Upravljajte i automatizujte svoje električne uređaje na velike udaljenosti (kilometre) bez prisustva interneta. To je moguće putem LoRa! Hej, šta ima momci? Akarsh ovdje iz CETech -a. Ova PCB također ima OLED ekran i 3 releja koji
ESP32 i OLED ekran: Internet sat - DHT22: 10 koraka (sa slikama)
ESP32 i OLED ekran: Internet sat - DHT22: Ovaj Instructable takmiči se na takmičenju: " GIFs Challenge 2017 ", ako vam se sviđa, dajte svoj glas klikom na gornji natpis. Hvala vam puno! ;-) Ovaj vodič je nastavak putovanja kako biste saznali više o ovom velikom IoT uređaju
TOD: Dioda Matrix ROM Uvod (7-segmentni ekran): 7 koraka
TOD: Dioda Matrix ROM Uvod (7-segmentni ekran): Tone dioda Nova serija instrukcija koje će koristiti tone i tone dioda. Nema IC -ova na glas, jedini poluvodiči su diode i tranzistori. Jedine pasivne komponente naglas su kondenzatori, otpornici, prekidači, prigušnice i