Spisu treści:
- Krok 1: Einstellen / Einrichten Der ARDUINO GUI
- Krok 2: Skanowanie Schnittstelle I2C
- Krok 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen
- Krok 4: Narzędzia, linki Und Herkunft/Literaturhinweis
Wideo: HowTo - Moduł Esp-12F Mini WiFi ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO przez Arduino GUI: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Cześć, hier möchte ich Euch zeigen wie Ihr das mit auf der Hauptplatine verbaute OLED Display benutzen/ansteuern könnt. Um es möglichst einfach zu halten, benutze ich die ARDUINO GUI zum schreiben des CODEs und zum hochladen der Firmware.
Krok 1: Einstellen / Einrichten Der ARDUINO GUI
Als erstes muss das ESP8266 Board in der ARDUINO GUI verfügbar gemacht werden.
Dazu gehen wir in die Einstellungen (Datei Einstellungen / Bild 1) der GUI und tragen unter
„Zusätzliche Boardverwalter-URLs:”
ein (Bild 2). Damit bekommen wir den benötigten Zugang zu dem passenden Boardtreiber.
Jetzt können wir den Passenden Boardtreiber installieren
(Zarząd Werkzeuge: Boardverwaltung / Bild 3)
- Dort im Suchfeld „esp8266” eintragen
- Dann "esp8266 by ESP8266 Community" auswählen und die aktuellste Version installieren (Bild 4)
- Die ARDUINO GUI neu starten
- Danach das passende Board auswählen (np. WeMos D1 R2 i mini)
Krok 2: Skanowanie Schnittstelle I2C
Um zu sehen an welche PINs das OLED-Display angeschlossen wurde, scannen wir zuerst die I2C-Schnittstelle. So können wir auch sehen ob noch weitere I2C-Parts angeschlossen sind.
Szkic (Bild 1) z ESP Hochladen, den „Seriellen-Monitor” i poczekaj na Ausgabe. Dort könnt Ihr dann sehen, welches Device wo gefunden wurde. (Rysunek 2 - skanowanie z cyfrowym kodem PIN)
Das Ergebnis merken.
In diesem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c
Krok 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen
Das ist der Code für das OLED-Display DEMO
Im 5. Abschnitt findet Ihr die Stelle an der Code ggf. modifiziert werden muss.
Również die Konfiguration für die I2C-Schnittstelle.
Aus diesem Code könnt Ihr euch auch viele Infos über die Benutzung eines OLEDsableiten.
/** * Licencja MIT (MIT) * * Copyright (c) 2016 by Daniel Eichhorn * * Niniejszym udziela się nieodpłatnego zezwolenia każdej osobie, która otrzyma kopię * tego oprogramowania i powiązanych plików dokumentacji („Oprogramowanie”), do zajmowania się * Oprogramowaniem bez ograniczeń, w tym między innymi prawa * do używania, kopiowania, modyfikowania, łączenia, publikowania, rozpowszechniania, udzielania sublicencji i/lub sprzedawania * kopii Oprogramowania oraz do zezwalania osobom, którym Oprogramowanie * jest do tego upoważniony, z zastrzeżeniem następujących warunków: * * Powyższa informacja o prawach autorskich i niniejsza informacja o zezwoleniu będą dołączone do wszystkich * kopii lub istotnych części Oprogramowania. * * OPROGRAMOWANIE JEST DOSTARCZANE „TAK JAK JEST”, BEZ JAKICHKOLWIEK GWARANCJI, WYRAŹNYCH LUB * DOROZUMIANYCH, W TYM MIĘDZY INNYMI GWARANCJI WARTOŚCI HANDLOWEJ, * PRZYDATNOŚCI DO OKREŚLONEGO CELU I NIENARUSZANIA PRAW. W ŻADNYM WYPADKU * AUTORZY LUB POSIADACZE PRAW AUTORSKICH NIE PONOSZĄ ODPOWIEDZIALNOŚCI ZA JAKIEKOLWIEK ROSZCZENIA, SZKODY LUB INNĄ * ODPOWIEDZIALNOŚĆ, CZY NA TEMAT UMOWY, CZYNNEGO LUB INNEGO, WYNIKAJĄCEJ Z * LUB W ZWIĄZKU Z OPROGRAMOWANIEM LUB UŻYTKOWANIEM LUB INNYM OFERTY W * OPROGRAMOWANIU. * *
/ Dołącz poprawną bibliotekę wyświetlania
// W przypadku połączenia przez I2C przy użyciu przewodu include #include // dla przewodu I2C #include "SSD1306.h" // alias dla `#include "SSD1306Wire.h"`
// Dołącz niestandardowe obrazy
#include "images.h"
// Zainicjuj wyświetlacz OLED za pomocą brzo_i2c
// D3 -> SDA // D5 -> SCL // Wyświetlacz SSD1306 (0x3c, D1, D2); lub wyświetlacz SSD1306 (0x3c, 5, 4); lub wyświetlacz SSD1306 (0x3c, GPIO5, GPIO4);
**************************************************************************************************
An der folgenden Stelle werden dann die PINs für die I2C Schnittstelle konfiguriert
// Zainicjuj wyświetlacz OLED za pomocą biblioteki Wire
Wyświetlacz SSD1306 (0x3c, D1, D2);
***************************************************************************************************
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int demoMode = 0;
int licznik = 1;
pusta konfiguracja () {
Serial.początek(9600); Serial.println("OLED_DEMO"); Serial.println("Uruchom demo");
// Inicjalizacja interfejsu użytkownika spowoduje również inicjację ekranu.
display.init();
display.flipScreenPionowo();
display.setFont(ArialMT_Plain_10);
}
void DrawFontFaceDemo() {
// Czcionka Demo1 Serial.println("Czcionka DEMO 1"); // utwórz więcej czcionek na https://oleddisplay.squix.ch/ display.setTextAlignment(TEXT_ALIGN_LEFT); display.setFont(ArialMT_Plain_10); display.drawString(0, 0, "ProMoScout"); display.setFont(ArialMT_Plain_16); display.drawString(0, 10, "ProMoScout"); display.setFont(ArialMT_Plain_24); display.drawString(0, 26, "ProMoScout"); }
void drawTextFlowDemo() {
Serial.println("drawTextFlowDemo"); display.setFont(ArialMT_Plain_10); display.setTextAlignment(TEXT_ALIGN_LEFT); display.drawStringMaxWidth(0, 0, 128, "Roboty to \n Przyszłość, a Przyszłość jest teraz. Ale nie zapominaj o Naturze"); }
void drawTextAlignmentDemo() {
Serial.println("drawTextAlignmentDemo"); // Demo wyrównania tekstu display.setFont(ArialMT_Plain_10); // Schriftart und -größe einstellen
// Współrzędne definiują lewy punkt początkowy tekstu
display.setTextAlignment(TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString(0, 10, "Wyrównany do lewej (0, 10)");
// Współrzędne definiują środek tekstu
display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 22, "Wyśrodkowany (64, 22)");
// Współrzędne definiują prawy koniec tekstu
display.setTextAlignment(TEXT_ALIGN_RIGHT); display.drawString(128, 33, "Wyrównanie do prawej (128, 33)"); }
void drawRectDemo() {
Serial.println("drawRectDemo"); // Narysuj piksel w danej pozycji for (int i = 0; i < 10; i++) { display.setPixel(i, i); display.setPixel(10 - i, i); } display.drawRect(12, 12, 20, 20);
// Wypełnij prostokąt
display.fillRect(14, 14, 17, 17);
// Narysuj linię poziomo
display.drawHorizontalLine(0, 40, 20);
// Narysuj linię poziomo
display.drawVerticalLine(40, 0, 20); }
void DrawOkrągDemo() {
Serial.println("drawCircleDemo"); for (int i=1; i < 8; i++) { display.setColor(WHITE); display.drawCircle(32, 32, i*3); if (i % 2 == 0) { display.setColor(BLACK); } display.fillCircle(96, 32, 32 - i* 3); } }
void drawProgressBarDemo() {
Serial.println("drawProgressBarDemo"); int postęp = (licznik / 5) % 100; // narysuj pasek postępu display.drawProgressBar(0, 32, 120, 10, postęp);
// narysuj procent jako String
display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 15, String(postęp) + "%"); }
Der folgende Link im Kommentar kann helfen ein Bild oder Logo so umzuwandeln, das es auf dem Display angezeigt werden kann …
void drawImageDemo() {
Serial.println("drawImageDemo"); // zobacz https://blog.squix.org/2015/05/esp8266-nodemcu-how… // jak tworzyć pliki xbm display.drawXbm(34, 0, Logo_width, Logo_height, Logo_bits); }
Demo demo = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof(demos) / sizeof(Demo)); długi czasSinceLastModeSwitch = 0;
pusta pętla () {
// wyczyść wyświetlacz display.clear(); // narysuj aktualną metodę demonstracyjną demos[demoMode]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis())); // zapisz bufor na wyświetlaczu display.display();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength; timeSinceLastModeSwitch = millis(); } licznik++; opóźnienie(10); }
Krok 4: Narzędzia, linki Und Herkunft/Literaturhinweis
Ich möchte mich bei allen bedanken die an dem ein oder anderen Code mit gewirkt haben.
Die Grundlagen für diese Anleitung habe ich gefunden unter:
www.instructables.com/id/ESP8266-I2C-PORT-…
github.com/ThingPulse/esp8266-oled-ssd1306…
Viele Grüße
McUtty
Zalecana:
Kontrolowanie Led przez aplikację Blynk za pomocą Nodemcu przez Internet: 5 kroków
Sterowanie Led przez aplikację Blynk za pomocą Nodemcu przez Internet: Witam wszystkich Dzisiaj pokażemy Ci, jak sterować diodą LED za pomocą smartfona przez Internet
Arduino Uno + ESP8266 ESP-01 Włącz lampę przez Internet (nie LAN WIFI): 3 kroki
Arduino Uno + ESP8266 ESP-01 Włącz lampę przez Internet (nie LAN WIFI): Włącz lampę przez stronę internetową na dowolnym urządzeniu korzystającym z przeglądarki internetowej w tym urządzeniu, nawet jeśli jesteś daleko od lampy. Możesz uzyskać dostęp do strony internetowej za pomocą laptopa, smartfona lub czegoś innego z przeglądarką internetową zainstalowaną na tym urządzeniu
ESP8266 TAŚMA LED RGB Sterowanie WIFI - NODEMCU jako pilot na podczerwień do taśmy Led kontrolowanej przez Wifi - TAŚMA LED RGB Sterowanie smartfonem: 4 kroki
ESP8266 TAŚMA LED RGB Sterowanie WIFI | NODEMCU jako pilot na podczerwień do taśmy Led kontrolowanej przez Wifi | Sterowanie smartfonem z taśmą LED RGB: Cześć, w tym samouczku dowiemy się, jak używać nodemcu lub esp8266 jako pilota na podczerwień do sterowania taśmą RGB LED, a Nodemcu będzie kontrolowane przez smartfon przez Wi-Fi. Więc w zasadzie możesz sterować TAŚMĄ LED RGB za pomocą smartfona
Kamera ESP 32 przesyła strumieniowo wideo przez WiFi - Pierwsze kroki z płytą CAM ESP 32: 8 kroków
Kamera ESP 32 przesyła strumieniowo wideo przez Wi-Fi |Pierwsze kroki z płytką CAM ESP32: ESP32-CAM to bardzo mały moduł kamery z układem ESP32-S, który kosztuje około 10 USD. Oprócz kamery OV2640 i kilku GPIO do podłączenia urządzeń peryferyjnych, posiada również gniazdo kart microSD, które może być przydatne do przechowywania zdjęć zrobionych za pomocą t
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE - Instalowanie płytek Esp w Arduino Ide i programowanie Esp: 4 kroki
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE | Instalowanie płyt Esp w Arduino Ide i programowanie Esp: W tej instrukcji dowiemy się, jak zainstalować płyty esp8266 w Arduino IDE oraz jak zaprogramować esp-01 i przesłać w nim kod. Ponieważ płyty esp są tak popularne, pomyślałem o naprawieniu instrukcji dla to i większość ludzi boryka się z problemem