Table des matières:
- Étape 1: Einstellen / Einrichten Der ARDUINO GUI
- Étape 2: I2C Schnittstelle Scannen
- Étape 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen
- Étape 4: Outils, liens et Herkunft/Literaturhinweis
Vidéo: HowTo - Esp-12F Mini WiFi Modul ESP8266 18650 Nodemcu Batterie 0.96 "DEMO OLED Via Arduino GUI: 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Bonjour, 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.
Étape 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-URL:"
ein (Bild 2). Damit bekommen wir den benötigten Zugang zu dem passenden Boardtreiber.
Jetzt können wir den Passenden Boardtreiber installieren
(Conseil 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 (z. B.: WeMos D1 R2 & mini)
Étape 2: I2C Schnittstelle Scannen
Um zu sehen an welche PINs das OLED-Display angeschlossen wurde, scannen wir zuerst die I2C-Schnittstelle. Donc 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. (Bild 2 - Numérisation du code PIN numérique)
Das Ergebnis merken.
En diesem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c
Étape 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 der Code ggf. modifiziert werden muss.
Die Konfiguration für die I2C-Schnittstelle.
Aus diesem Code könnt Ihr euch auch viele Infos über die Benutzung eines OLEDs ableiten.
/** * La licence MIT (MIT) * * Copyright (c) 2016 par Daniel Eichhorn * * L'autorisation est par la présente accordée, à titre gratuit, à toute personne obtenant une copie * de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter * dans le logiciel sans restriction, y compris, sans limitation, les droits * d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre * des copies du logiciel, et d'autoriser les personnes à qui le logiciel est * fourni pour ce faire, sous réserve des conditions suivantes: * * L'avis de droit d'auteur ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les * copies ou parties substantielles du logiciel. * * LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU * IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, * D'ADAPTATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES * AUTEURS OU TITULAIRES DE DROITS D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGES OU AUTRE * RESPONSABILITÉ, QUE CE SOIT DANS UNE ACTION DE CONTRAT, DÉLIT OU AUTRE, DÉCOULANT DE, * DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU AUTRE AFFAIRES DANS LE * LOGICIEL. * *
/ Inclure la bibliothèque d'affichage correcte
// Pour une connexion via I2C en utilisant Wire, incluez #include // pour I2C Wire #include "SSD1306.h" // alias pour `#include "SSD1306Wire.h"`
// Inclure des images personnalisées
#include "images.h"
// Initialiser l'affichage OLED en utilisant brzo_i2c
// D3 -> SDA // D5 -> SCL // Affichage SSD1306 (0x3c, D1, D2); ou affichage SSD1306 (0x3c, 5, 4); ou affichage SSD1306 (0x3c, GPIO5, GPIO4);
**************************************************************************************************
An der folgenden Stelle werden dann die PINs für die I2C Schnittstelle konfiguriert
// Initialiser l'affichage OLED à l'aide de la bibliothèque Wire
Affichage SSD1306 (0x3c, D1, D2);
***************************************************************************************************
#define DEMO_DURATION 3000
typedef void (*Demo)(void);
int demoMode = 0;
compteur int = 1;
void setup() {
Serial.begin(9600); Serial.println("OLED_DEMO"); Serial.println("Démarrer la DEMO");
// L'initialisation de l'interface utilisateur initialise également l'affichage.
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_10);
}
void drawFontFaceDemo() {
// Font Demo1 Serial.println("Font DEMO 1"); // créer plus de polices sur 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, "Les robots sont \n le futur, et le futur, c'est maintenant. Mais n'oubliez pas la nature"); }
void drawTextAlignmentDemo() {
Serial.println("drawTextAlignmentDemo"); // Démo d'alignement de texte display.setFont(ArialMT_Plain_10); // Schriftart und -größe einstellen
// Les coordonnées définissent le point de départ gauche du texte
display.setTextAlignment(TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString(0, 10, "Aligné à gauche (0, 10)");
// Les coordonnées définissent le centre du texte
display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 22, "Centre aligné (64, 22)");
// Les coordonnées définissent l'extrémité droite du texte
display.setTextAlignment(TEXT_ALIGN_RIGHT); display.drawString(128, 33, "Aligné à droite (128, 33)"); }
void drawRectDemo() {
Serial.println("drawRectDemo"); // Dessine un pixel à une position donnée pour (int i = 0; i < 10; i++) { display.setPixel(i, i); display.setPixel(10 - i, i); } display.drawRect(12, 12, 20, 20);
// Remplir le rectangle
display.fillRect(14, 14, 17, 17);
// Trace une ligne horizontalement
display.drawHorizontalLine (0, 40, 20);
// Trace une ligne horizontalement
display.drawVerticalLine (40, 0, 20); }
void drawCircleDemo() {
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 progression = (compteur / 5) % 100; // dessine la barre de progression display.drawProgressBar(0, 32, 120, 10, progress);
// dessine le pourcentage sous forme de chaîne
display.setTextAlignment(TEXT_ALIGN_CENTER); display.drawString(64, 15, String(progress) + "%"); }
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"); // voir https://blog.squix.org/2015/05/esp8266-nodemcu-how… // sur la façon de créer des fichiers 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)); long timeSinceLastModeSwitch = 0;
boucle vide() {
// efface l'affichage display.clear(); // dessine la méthode de démonstration actuelle demos[demoMode]();
display.setTextAlignment(TEXT_ALIGN_RIGHT);
display.drawString(10, 128, String(millis())); // écrit le tampon sur l'affichage display.display();
if (millis() - timeSinceLastModeSwitch > DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength; timeSinceLastModeSwitch = millis(); } compteur++; retard(10); }
Étape 4: Outils, liens et 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
Conseillé:
Économiseur de batterie, interrupteur de protection contre les décharges avec ATtiny85 pour voiture au plomb ou batterie Lipo : 6 étapes
Économiseur de batterie, interrupteur de protection de décharge avec ATtiny85 pour voiture au plomb ou batterie Lipo : Comme j'ai besoin de plusieurs protecteurs de batterie pour mes voitures et mes systèmes solaires, j'avais trouvé les produits commerciaux à 49 $ trop chers. Ils consomment également trop d'énergie avec 6 mA. Je n'ai pas trouvé d'instructions sur le sujet. J'ai donc fait le mien qui tire 2mA.Comment ça
Fabriquez votre propre soudeuse par points à batterie brute avec une batterie de voiture ! : 5 étapes
Fabriquez votre propre soudeuse par points à batterie brute avec une batterie de voiture ! : Dans ce projet, je vais vous montrer comment créer une soudeuse par points à batterie brute mais fonctionnelle. Sa source d'alimentation principale est une batterie de voiture et tous ses composants combinés coûtent environ 90 €, ce qui rend cette configuration assez peu coûteuse. Alors asseyez-vous et apprenez
Modifiez facilement la batterie de l'onglet Android avec la batterie LiPo 18650 : 5 étapes
Modifiez facilement la batterie de l'onglet Android avec la batterie LiPo 18650 : dans cette instructable, nous verrons comment modifier un ancien onglet Android dont la batterie était morte avec la batterie LiPo 18650. Avis de non-responsabilité : Les batteries LiPo (Lithium Polymer) sont réputées pour brûler/exploser si les soins appropriés ne sont pas pris. Travailler avec le lithium
Contrôle WIFI BANDE LED RVB ESP8266 - NODEMCU en tant que télécommande IR pour bande LED contrôlée via Wifi - Contrôle de Smartphone RVB LED STRIP : 4 étapes
Contrôle WIFI BANDE LED RVB ESP8266 | NODEMCU en tant que télécommande IR pour bande LED contrôlée via Wifi | Contrôle par smartphone RVB LED STRIP : Salut les gars, dans ce tutoriel, nous allons apprendre à utiliser nodemcu ou esp8266 comme télécommande IR pour contrôler une bande LED RVB et Nodemcu sera contrôlé par smartphone via wifi. Donc, en gros, vous pouvez contrôler la BANDE LED RVB avec votre smartphone
HC-06 (module esclave) Changer " NAME " sans utiliser " Monitor Serial Arduino " qui " fonctionne facilement " : Manière sans défaut ! : 3 étapes
HC-06 (module esclave) Modification de " NAME " sans utilisation " Monitor Serial Arduino "… qui " Fonctionne facilement " : Manière sans défaut ! : Après " Longtemps " essayer de changer de nom sur HC - 06 (module esclave), en utilisant " moniteur série de l'Arduino, sans " Succès ", j'ai trouvé un autre moyen facile et je partage maintenant ! Amusez-vous bien les copains