Inhaltsverzeichnis:

HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96" OLED DEMO über Arduino GUI - Gunook
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96" OLED DEMO über Arduino GUI - Gunook

Video: HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96" OLED DEMO über Arduino GUI - Gunook

Video: HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96
Video: NodeMCU V3 ESP8266 - обзор, подключение и прошивка в Arduino IDE 2024, November
Anonim
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO über Arduino GUI
HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0,96” OLED DEMO über Arduino GUI

Hallo, 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.

Schritt 1: Einstellen / Einrichten Der ARDUINO GUI

Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
Einstellen / Einrichten Der ARDUINO GUI
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

(Werkzeuge Board: 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 (z. B.: WeMos D1 R2 & mini)

Schritt 2: I2C Schnittstelle Scannen

I2C Schnittstelle Scannen
I2C Schnittstelle Scannen
I2C Schnittstelle Scannen
I2C Schnittstelle Scannen

Um zu sehen, welche PINs das OLED-Display angeschlossen wurde, scannen wir zuerst die I2C-Schnittstelle. So can wir auch sehen ob noch weitere I2C-Parts angeschlossen sind.

Den Sketch (Bild 1) auf den ESP Hochladen, den "Seriellen-Monitor" öffnen und auf die Ausgabe warten. Dort kannst du dann sehen, welches Gerät wo gefunden wurde. (Bild 2 - DigitalPIN-Scan)

Das Ergebnis merken.

In diesem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c

Schritt 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen

Das ist der Code für das OLED-Display DEMO

Im 5. Abschnitt findet Ihr sterben Stelle an der Code ggf. modifiziert werden muss.

Auch die Konfiguration für die I2C-Schnittstelle.

Aus diesem Code können Sie auch viele Infos über die Benutzung eines OLEDs ableiten.

/** * Die MIT-Lizenz (MIT) * * Copyright (c) 2016 by Daniel Eichhorn * * Hiermit wird jeder Person, die eine Kopie * dieser Software und der zugehörigen Dokumentationsdateien (die "Software"), ohne Einschränkung * mit der Software zu handeln, einschließlich und ohne Einschränkung der Rechte * zur Nutzung, zum Kopieren, Modifizieren, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und/oder Verkaufen * von Kopien der Software, und Personen zu gestatten, denen die Software wird * dazu bereitgestellt, vorbehaltlich der folgenden Bedingungen: * * Der obige Copyright-Hinweis und dieser Erlaubnishinweis müssen in alle * Kopien oder wesentlichen Teile der Software aufgenommen werden. * * DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER * STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTFÄHIGKEIT, * EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG DER GEWÄHRLEISTUNG. IN KEINEM FALL HAFTET DIE * AUTOREN ODER URHEBERRECHTSINHABER FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE * HAFTUNG, OB AUS VERTRAGLICHEM, SCHLECHTER ODER ANDERWEITIGEN, * AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREM HANDELN IN DER * SOFTWARE. * *

/ Fügen Sie die richtige Anzeigebibliothek hinzu

// Für eine Verbindung über I2C mit Wire include #include // für I2C Wire #include "SSD1306.h" // Alias für `#include "SSD1306Wire.h"`

// Benutzerdefinierte Bilder einfügen

#include "images.h"

// Initialisieren Sie das OLED-Display mit brzo_i2c

// D3 -> SDA // D5 -> SCL // SSD1306-Anzeige (0x3c, D1, D2); oder SSD1306-Anzeige (0x3c, 5, 4); oder SSD1306-Anzeige (0x3c, GPIO5, GPIO4);

**************************************************************************************************

An der following Stelle Werden Dann sterben PINs für die I2C Schnittstelle konfiguriert

// Initialisieren Sie das OLED-Display mit der Wire-Bibliothek

SSD1306-Anzeige (0x3c, D1, D2);

***************************************************************************************************

#define DEMO_DURATION 3000

typedef void (*Demo)(void);

int DemoMode = 0;

int-Zähler = 1;

Leere Einrichtung () {

Serial.begin (9600); Serial.println("OLED_DEMO"); Serial.println ("Starte die DEMO");

// Durch Initialisieren der Benutzeroberfläche wird auch die Anzeige initialisiert.

display.init();

display.flipScreenVertically();

display.setFont(ArialMT_Plain_10);

}

void drawFontFaceDemo() {

// Schriftart Demo1 Serial.println ("Schrift DEMO 1"); // weitere Schriftarten erstellen unter 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, "Roboter sind \n die Zukunft, und die Zukunft ist jetzt. Aber vergiss die Natur nicht"); }

void drawTextAlignmentDemo() {

Serial.println ("drawTextAlignmentDemo"); // Demo zur Textausrichtung display.setFont(ArialMT_Plain_10); // Schriftart und -größe einstellen

// Die Koordinaten definieren den linken Anfangspunkt des Textes

display.setTextAlignment(TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString(0, 10, "linksbündig (0, 10)");

// Die Koordinaten definieren den Mittelpunkt des Textes

display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 22, "Mittig ausgerichtet (64, 22)");

// Die Koordinaten definieren das rechte Ende des Textes

display.setTextAlignment(TEXT_ALIGN_RIGHT); display.drawString(128, 33, "Rechtsbündig (128, 33)"); }

void drawRectDemo() {

Serial.println ("drawRectDemo"); // Zeichnen Sie ein Pixel an einer bestimmten Position für (int i = 0; i < 10; i++) { display.setPixel(i, i); display.setPixel(10 - i, i); } display.drawRect(12, 12, 20, 20);

// Fülle das Rechteck aus

display.fillRect(14, 14, 17, 17);

// Ziehe eine Linie horizontal

display.drawHorizontalLine(0, 40, 20);

// Ziehe eine Linie horizontal

display.drawVerticalLine(40, 0, 20); }

void drawCircleDemo() {

Serial.println ("drawCircleDemo"); für (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 progress = (Zähler / 5) % 100; // den Fortschrittsbalken zeichnen display.drawProgressBar(0, 32, 120, 10, progress);

// Zeichne den Prozentsatz als String

display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 15, String(Fortschritt) + "%"); }

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"); // siehe https://blog.squix.org/2015/05/esp8266-nodemcu-how… // zum Erstellen von xbm-Dateien display.drawXbm(34, 0, Logo_width, Logo_height, Logo_bits); }

Demo demos = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};

int demoLength = (sizeof(Demos) / sizeof(Demo)); langes timeSinceLastModeSwitch = 0;

Leere Schleife () {

// Anzeige löschen display.clear(); // Zeichne die aktuelle Demo-Methode demos[demoMode]();

display.setTextAlignment(TEXT_ALIGN_RIGHT);

display.drawString(10, 128, String(millis())); // den Puffer in das Display schreiben display.display();

if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {

demoMode = (demoMode + 1) % demoLength; timeSinceLastModeSwitch = millis(); } Zähler++; Verzögerung(10); }

Schritt 4: Tools, Links 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

Empfohlen: