Sisällysluettelo:
- Vaihe 1: Kirjasto
- Vaihe 2: Wemos Lolin ESP32 OLED
- Vaihe 3: Esimerkki
- Vaihe 4: Kokoonpano
- Vaihe 5: Koodi
- Vaihe 6: Jotkut muut mielenkiintoiset toiminnot
Video: ESP32 ja näyttö Oled - edistymispalkki: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
ESP32, josta aiomme puhua tänään, on jo varustettu sisäänrakennetulla Display Oledilla. Tämä toiminto helpottaa elämäämme paljon, koska voimme saada vaikutelman näkyvän muuttujan arvosta. Sinun ei tarvitse edes katsoa virheenkorjausikkunaa. Voit myös koota esityksiä ja piirtää suorituskykykaavioita muun muassa. Näiden etujen vuoksi pidän tätä mallia fantastisena tuotteena, ja aiomme ohjelmoida sen tänään Arduino IDE: n avulla.
Joten tässä videossa ohjelmoimme edistymispalkin. On tärkeää muistaa, että jos ESP32 -laitteessasi ei ole näyttöä, voit ostaa sen erikseen. Jos et ole koskaan ohjelmoinut ESP32 -ohjelmaa, suosittelen, että katsot tämän videon: ESP32 -VIDEON JOHDANTO, jossa käsitellään aihetta tarkemmin.
Vaihe 1: Kirjasto
Jotta voit käyttää OLED -näyttöä, meidän on määritettävä kirjasto Arduino IDE: ssä. Voit tehdä tämän lataamalla kirjaston linkin kautta.
Pura tiedosto ja liitä se Arduino IDE: n kirjastojen kansioon.
C:/ProgramFiles (x86)/Arduino/kirjastot
Vaihe 2: Wemos Lolin ESP32 OLED
Wemos Lolin on tämän ESP: n nimi. Kuvassa musta osa on näyttö ja laitteen vieressä koko pinout. Kuten on esitetty, on olemassa useita IO: ita, joiden avulla voimme kytkeä päälle ja pois erilaisia elementtejä. Lisäksi tässä mallissa on uusimman sukupolven WiFi ja Bluetooth.
Vaihe 3: Esimerkki
Videolla näet valmis projektimme ja kuinka olet -näytön avulla voit näyttää potentiometrin ohjaaman edistymispalkin.
Vaihe 4: Kokoonpano
Kokoonpanossani käytin 10k potentiometriä ja käynnistin kohdistimen GPIO25: n. Meillä on myös 3v3 ja GND, kuten näet alla olevasta kuvasta. Virta tulee itse USB: ltä.
Vaihe 5: Koodi
Lisäämme ensin kirjaston "SSD1306.h". Näin pääsemme OLED -näyttöön. Luomme tämän jälkeen SSD1306 -tyyppisen näyttöobjektin, joka vastaa olet -näytössä näkyvän sisällön ohjaamisesta.
#include "SSD1306.h" // alias for #include "SSD1306Wire.h" // objeto controlador do display de led /* 0x3c: e um identifador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ SSD1306 -näyttö (0x3c, 5, 4); // pino que ligamos o potentometro #define PINO_POTENCIOMETRO 25 // utilizado para fazer o contador de porcentagem int contador;
Perustaa
Setup () -toiminnossa alustamme näyttöobjektimme, jotta voimme hallita näytettävää. Tämän objektin kautta määritämme myös näytettävien tekstien kirjoituslähteen. Ja lopuksi asetimme tapin (erityisesti tapin, jossa käänsimme potentiometrin) arvoon INPUT arvon lukemiseksi.
void setup () {Serial.begin (115200); Sarja.println (); Sarja.println (); // Inicializa o objeto que controlará o que será exibido na tela screen.init (); // gira o display 180º (deixa de ponta cabeça) // display.flipScreenVertically (); // määritä "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // configura o pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, INPUT); }
Silmukka
Silmukka () -funktiossa luemme potentiometrin nykyisen arvon. Voimme huomata, että käytämme "kartta" -toimintoa pian arvon lukemisen jälkeen, koska lukuarvo on liian korkea edistymispalkkiin asettamista varten, joten kartoitamme arvon välille 0-100.
void loop () {// leitura do valor do potenciometro int valor = analogRead (PINO_POTENCIOMETRO); //Sarja.println (arvo); // mapeando o valor do potenciometro para o valor da barra de progressso // potentometro faz a leitura do valor no intervalo de 0 a 4095 // a barra de progressso espera um valor entre 0 e 100 contador = kartta (valor, 0, 4095), 0, 100); // limpa todo o display, apaga o contúdo da tela screen.clear (); // ++ laskuri; // laskuri> 100? laskuri = 0: laskuri = laskuri; // desenha edistymispalkki drawProgressBar (); // exibe na tela o que foi configurado até então. näyttöruutu(); viive (10); }
Funktiossa "drawProgress ()" käytämme potentiometristä luettua arvoa, joka on tallennettu muuttujaan "percProgress", asettaaksesi edistymispalkkiin. Sijoitamme myös tekstin edistymispalkin yläpuolelle, joka ilmaisee nykyisen prosenttiosuuden.
// função para desenhar edistymispalkki no displayvoid drawProgressBar () {Serial.print (">>"); Sarja.println (jatkoa); // desenha edistymispalkki / * * drawProgressBar (x, y, leveys, korkeus, arvo); parametrit (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: leveysmittaus barra de progresso p4: korkeus albar da barra de progressso p5: arvo valor que a barra de progressso deve assumir */ screen.drawProgressBar (10, 32, 100, 10, contador); // configura o alinhamento do texto que será escrito // nesse caso alinharemos o texto ao centro screen.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, text); parametrit (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // se o contador está em zero, escreve a string "valor mínimo" if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o contador está em 100, luo merkkijono "valor máximo" else if (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
Vaihe 6: Jotkut muut mielenkiintoiset toiminnot
Näyttö
// laittaa näytön ylösalaisin
void flipScreenVertically ();
Piirustus
// piirtää yhden pikselin näytöltä
mitätön setPixel (int16_t x, int16_t y);
// Piirrä viiva
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// piirtää suorakulmio
void drawRect (int16_t x, int16_t y, int16_t leveys, int16_t korkeus);
// piirrä ympyrä
void drawCircle (int16_t x, int16_t y, int16_t säde);
// täytä ympyrä
void fillCircle (int16_t x, int16_t y, int16_t säde);
// piirrä vaakasuora viiva
void drawHorizontalLine (int16_t x, int16_t y, int16_t pituus);
// piirrä pystysuora viiva
void drawVerticalLine (int16_t x, int16_t y, int16_t pituus);
Teksti
// asettaa tekstin kohdistuksen kirjoitettavaksi
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Suositeltava:
IP -kameran näyttö/näyttö Raspberry Pi: n avulla: 4 vaihetta
IP -kameran näyttö/näyttö Raspberry Pi: n avulla: Arvioidessani sopivia NVR -vaihtoehtoja törmäsin näyttökameran arkistoon, jonka avulla voit näyttää useita verkkokameran videosyötteitä. Se tukee myös vaihtamista useiden näyttöjen välillä ja käytämme tätä projektia tähän b
Micro: bit MU Vision Sensor - sarjaliitäntä ja OLED -näyttö: 10 vaihetta
Micro: bit MU Vision Sensor - sarjaliitäntä ja OLED -näyttö: Tämä on kolmas oppaani MU -näköanturiin. Toistaiseksi olemme yrittäneet käyttää MU: ta tunnistaaksemme numeroita ja muotoja sisältäviä kortteja, mutta tutkiaksemme MU -anturiamme monimutkaisemmassa projektissa haluaisimme saada paremman tuloksen. Emme voi saada niin paljon tietoa
TTGO (väri) -näyttö ja Micropython (TTGO T-näyttö): 6 vaihetta
TTGO (väri) -näyttö ja Micropython (TTGO T-näyttö): TTGO T-Display on ESP32-pohjainen levy, joka sisältää 1,14 tuuman värinäytön. Taulun voi ostaa alle 7 dollarin palkinnolla (sisältää postituksen, palkinto näkyy banggoodissa). Se on uskomaton palkinto näytöllä varustetulle ESP32: lle
Johdanto ESP32 Lora OLED -näyttö: 8 vaihetta
Johdanto ESP32 Lora OLED -näyttö: Tämä on toinen video, joka koskee ESP32 LoRan esittelyä. Tällä kertaa puhumme erityisesti graafisesta näytöstä (128x64 pikseliä). Käytämme SSD1306 -kirjastoa tietojen näyttämiseen tästä OLED -näytöstä ja esitämme esimerkin
ESP32- ja OLED -näyttö: Internet -kello - DHT22: 10 vaihetta (kuvilla)
ESP32 ja OLED -näyttö: Internet -kello - DHT22: Tämä Instructable kilpailee kilpailusta: "GIF -haaste 2017", jos pidät siitä, anna äänesi napsauttamalla yllä olevaa banneria. Kiitos paljon!;-) Tämä opetusohjelma on jatkoa matkalle oppia lisää tästä suuresta IoT-laitteesta