Spisu treści:

HowTo - Moduł Esp-12F Mini WiFi ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO przez Arduino GUI: 4 kroki
HowTo - Moduł Esp-12F Mini WiFi ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO przez Arduino GUI: 4 kroki

Wideo: HowTo - Moduł Esp-12F Mini WiFi ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO przez Arduino GUI: 4 kroki

Wideo: HowTo - Moduł Esp-12F Mini WiFi ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO przez Arduino GUI: 4 kroki
Wideo: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, Lipiec
Anonim
HowTo - Moduł Mini WiFi Esp-12F ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO za pośrednictwem Arduino GUI
HowTo - Moduł Mini WiFi Esp-12F ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO za pośrednictwem Arduino GUI

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

Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować ARDUINO GUI
Zainstalować / Zainstalować 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

Skanowanie Schnittstelle I2C
Skanowanie Schnittstelle I2C
Skanowanie Schnittstelle I2C
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: