Cov txheej txheem:

HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "OLED DEMO Ntawm Arduino GUI: 4 Kauj Ruam
HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "OLED DEMO Ntawm Arduino GUI: 4 Kauj Ruam

Video: HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "OLED DEMO Ntawm Arduino GUI: 4 Kauj Ruam

Video: HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96
Video: 5 Minute project: WiFi deauther with ESP8266 OLED module 2024, Hlis ntuj nqeg
Anonim
HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96
HowTo - Esp -12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96

Hlo, hier möchte ich Euch zeigen wie Ihr das mit auf der Hauptplatine verbaute OLED Zaub benutzen/ansteuern könnt. Um es möglichst einfach zu halten, benutze ich tuag ARDUINO GUI zum schreiben des CODEs thiab zum hochladen der Firmware.

Kauj Ruam 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 hauv 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:"

ib (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 los ntawm ESP8266 Zej Zog" auswählen und die aktuellste Version installieren (Bild 4)
  • Tuag ARDUINO GUI neu pib
  • Danach das passende Board auswählen (z. B.: WeMos D1 R2 & mini)

Kauj Ruam 2: I2C Schnittstelle Scannen

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

Um zu sehen an welche PINs das OLED-Display angeschlossen wurde, scannen wir zuerst tuag I2C-Schnittstelle. Yog li können 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 könnt Ihr dann sehen, welches Device wo gefunden wurde. (Duab 2 - DigitalPIN Scan)

Das Ergebnis sib koom.

Hauv lub caij nplooj zeeg: SDA = D1: SCL = D2 bei Adresse 0x3c

Kauj Ruam 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen

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

Kuv 5. Abschnitt findet Ihr die Stelle an der der Code ggf. modifiziert werden muss.

Kuj tuag Konfiguration rau tuag I2C-Schnittstelle.

Aus diesem Code könnt Ihr euch auch viele Infos dieber die Benutzung eines OLEDs peev xwm.

/** * Daim Ntawv Tso Cai MIT (MIT) * * Copyright (c) 2016 los ntawm Daniel Eichhorn * * Kev tso cai los ntawm no tau tso cai, tsis pub dawb, rau txhua tus neeg uas tau txais daim ntawv theej * ntawm cov software no thiab cov ntaub ntawv cuam tshuam nrog ("Software"), txhawm rau * hauv Software yam tsis muaj kev txwv, suav nrog yam tsis txwv txoj cai * siv, theej, hloov kho, sib koom ua ke, tshaj tawm, faib tawm, sublicense, thiab/lossis muag * luam ntawm Software, thiab tso cai rau cov neeg uas Software yog * npaj kom ua tau, raws li cov xwm txheej hauv qab no: * * Daim ntawv ceeb toom hais txog kev tso cai saum toj no thiab daim ntawv tso cai tso cai no yuav suav nrog txhua daim * theej lossis feem ntau ntawm Software. * * SOFTWARE tau muab "raws li yog", tsis muaj kev lees paub ntawm ib tus menyuam, nthuav tawm lossis * tsis suav nrog, suav nrog tab sis tsis txwv rau qhov kev lees paub ntawm kev ua haujlwm, * haum rau ib feem uas muaj feem thiab tsis muaj. Tsis muaj ib yam dab tsi yuav txwv * tus tswv lossis tus tuav lub luag haujlwm yuav tsum muaj lub luag haujlwm rau kev foob, ua phem lossis lwm yam * kev lav phib xaub, tsis hais hauv kev ua haujlwm, kev hais lus lossis lwm yam, tshwm sim los ntawm, los ntawm kev sib txuas lossis lwm yam siv lossis lwm yam DEALINGS IN THE * SOFTWARE. * *

/ Suav nrog lub tsev qiv ntawv tso saib kom raug

// Rau kev txuas ntawm I2C siv Hlau suav nrog #include // rau I2C Hlau #include "SSD1306.h" // alias rau `#include" SSD1306Wire.h"

// Xws li cov duab tshwj xeeb

#suav nrog "images.h"

// Pib lub OLED zaub siv brzo_i2c

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

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

Tus lej folgenden Stelle werden dann tuag PINs rau tuag I2C Schnittstelle konfiguriert

// Pib ua OLED zaub siv Wire library

SSD1306 zaub (0x3c, D1, D2);

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

#define DEMO_DURATION 3000

typedef void (*Demo) (tsis muaj dab tsi);

int demoMode = 0;

int txee = 1;

void teeb tsa () {

Serial.begin (9600); Serial.println ("OLED_DEMO"); Serial.println ("Pib DEMO");

// Pib ua UI yuav pib ua kom pom ib yam nkaus.

display.init ();

display.flipScreenVertically ();

display.setFont (ArialMT_Plain_10);

}

void drawFontFaceDemo () {

// Font Demo1 Serial.println ("Font DEMO 1"); // tsim ntau fonts ntawm 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, "Neeg hlau yog / n Yav Tom Ntej, thiab Yav Tom Ntej, tam sim no. Tab sis tsis txhob hnov qab qhov xwm txheej"); }

void drawTextAlignmentDemo () {

Serial.println ("drawTextAlignmentDemo"); // Text alignment demo display.setFont (ArialMT_Plain_10); // Schriftart und -größe einstellen

// Cov kev txiav txim siab txhais sab laug pib ntawm kab ntawv

display.setTextAlignment (TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString (0, 10, "Sab laug ua ke (0, 10)");

// Qhov kev txiav txim siab txhais qhov chaw nruab nrab ntawm cov ntawv

display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 22, "Qhov chaw sib koom (64, 22)");

// Cov kev txiav txim siab txiav txim siab qhov kawg ntawm cov ntawv

display.setTextAlignment (TEXT_ALIGN_RIGHT); display.drawString (128, 33, "Txoj cai ua raws (128, 33)"); }

void drawRectDemo () {

Serial.println ("drawRectDemo"); // Kos ib lub pixel ntawm txoj haujlwm muab rau (int i = 0; i <10; i ++) {display.setPixel (i, i); display.setPixel (10 - i, kuv); } display.drawRect (12, 12, 20, 20);

// Sau lub duab plaub

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

// Kos kab kab rov tav

display.drawHorizontalLine (0, 40, 20);

// Kos kab kab rov tav

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

void drawCircleDemo () {

Serial.println ("drawCircleDemo"); rau (int i = 1; i <8; i ++) {display.setColor (WHITE); display.drawCircle (32, 32, i*3); yog (i % 2 == 0) {display.setColor (BLACK); } display.fillCircle (96, 32, 32 - i* 3); }}

void drawProgressBarDemo () {

Serial.println ("drawProgressBarDemo"); int kev vam meej = (txee / 5) % 100; // kos qhov kev nthuav qhia bar display.drawProgressBar (0, 32, 120, 10, kev nce qib);

// kos qhov feem pua raws li Txoj hlua

display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 15, Txoj hlua (kev nce qib) + "%"); }

Der folgende Link im Kommentar kann helfen ein Bild oder Logo li umzuwandeln, das es auf dem Display angezeigt werden kann …

void drawImageDemo () {

Serial.println ("drawImageDemo"); // saib https://blog.squix.org/2015/05/esp8266-nodemcu-how… // ntawm yuav tsim cov ntaub ntawv xbm 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)); ntev timeSinceLastModeSwitch = 0;

void voj () {

// tshem tawm cov zaub display.clear (); // kos cov qauv tam sim no demos [demoMode] ();

display.setTextAlignment (TEXT_ALIGN_RIGHT);

display.drawString (10, 128, Txoj hlua (millis ())); // sau qhov tsis mus rau cov zaub display.display ();

yog (millis () - timeSinceLastModeSwitch> DEMO_DURATION) {

demoMode = (demoMode + 1) % demoLength; timeSinceLastModeSwitch = millis (); } txee ++; ncua (10); }

Kauj Ruam 4: Cov Cuab Yeej, Txuas Txuas Und Herkunft/Literaturhinweis

Ich möchte mich bei allen bedanken die an dem ein oder anderen Code mit gewirkt haben.

Tuag Grundlagen rau lub hnub tuag Anleitung muaj ib qho ich gefunden unter:

www.instructables.com/id/ESP8266-I2C-PORT-…

github.com/ThingPulse/esp8266-oled-ssd1306…

Viele Grüße

McUtty

Pom zoo: