ESP8266 - Écran OLED SSD1309 128x64 | Tutoriel OLED I2C de 2,42 pouces
Ce tutoriel vous explique comment utiliser l'ESP8266 avec un écran OLED I2C SSD1309 de 2,42 pouces (2,4 pouces) avec une résolution de 128×64. Plus en détail, nous allons apprendre :
- Comment connecter un écran OLED SSD1309 de 2,42 pouces à l'ESP8266.
- Comment programmer l'ESP8266 pour afficher du texte sur l'écran OLED SSD1309.
- Comment programmer l'ESP8266 pour dessiner des formes sur l'écran OLED SSD1309.
- Comment activer le défilement matériel sur l'écran OLED SSD1309 avec l'ESP8266.
- Comment programmer l'ESP8266 pour afficher des images bitmap sur l'écran OLED SSD1309.
- Comment régler la luminosité et le contraste de l'écran OLED SSD1309.
- Comment utiliser des polices externes avec l'écran OLED SSD1309.

Préparation du matériel
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos de l'affichage OLED SSD1309
Le SSD1309 est un circuit intégré pilote d’affichage OLED monochrome. La version de 2,42 pouces offre une résolution de 128 × 64 pixels. Il communique via le protocole I2C, nécessitant seulement deux broches (SDA et SCL) ainsi que les connexions d'alimentation. Cela le rend idéal pour les projets ESP8266 avec peu de broches disponibles.
Caractéristiques clés de l'OLED SSD1309 :
- Taille d'affichage : 2,42 pouces (diagonale)
- Résolution : 128 × 64 pixels
- Communication : I2C (interface à 2 fils)
- Adresse I2C par défaut : 0x3C
- Tension d'alimentation : 3,3 V ou compatible 5 V (l'ESP8266 utilise 3,3 V)
- Support de défilement matériel intégré
- Contraste et luminosité réglables
- Faible consommation d'énergie
Brochage de l'affichage OLED SSD1309
Le module OLED I2C SSD1309 de 2,42 pouces comporte généralement 4 broches :
- GND : Broche de masse - connecter au GND de l'ESP8266
- VCC : Broche d'alimentation - connecter à l'alimentation 3,3 V de l'ESP8266
- SDA : Ligne de données I2C - connecter à D2 de l'ESP8266 (GPIO4)
- SCL : Ligne d'horloge I2C - connecter à D1 de l'ESP8266 (GPIO5)

※ Note:
- Les broches d'un module OLED peuvent différer selon les fabricants et les types de modules. Il est essentiel de toujours se référer aux étiquettes imprimées sur le module OLED. Faites attention !
- Ce tutoriel utilise l'écran OLED équipé du pilote I2C SSD1309. Nous l'avons testé avec l'affichage OLED de DIYables et il fonctionne parfaitement.
Diagramme de câblage
Connectez l'écran OLED SSD1309 de 2,42 pouces à l'ESP8266 en suivant ce câblage :

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Pour plus d'informations, consultez Brochage ESP8266. et Comment alimenter l'ESP8266..
| SSD1309 OLED | ESP8266 |
|---|---|
| VCC | 3.3V |
| GND | GND |
| SDA | D2 (GPIO4) |
| SCL | D1 (GPIO5) |
Comment utiliser l'écran OLED SSD1309 avec ESP8266
Installer la bibliothèque DIYables_OLED_SSD1309
- Cliquez sur l’icône Bibliothèques dans la barre de navigation à gauche de l’IDE Arduino.
- Tapez DIYables_OLED_SSD1309 dans la zone de recherche et recherchez la bibliothèque par DIYables.
- Cliquez sur le bouton Installer pour ajouter la bibliothèque.

La bibliothèque DIYables_OLED_SSD1309 dépend de la bibliothèque Adafruit_GFX. Si Adafruit_GFX n'est pas déjà installée, l'IDE Arduino vous invitera automatiquement à l'installer lors de l'installation de DIYables_OLED_SSD1309.
Code ESP8266 - Afficher "Hello World" sur l'écran OLED SSD1309
Le code ci-dessous montre comment afficher du texte sur l'écran OLED SSD1309 de 2,42 pouces :
Explication
- Inclure les bibliothèques nécessaires et définir les constantes
- Créer l'objet d'affichage avec l'adresse I2C 0x3C
- Initialiser l'affichage dans setup()
- Définir la taille du texte, la couleur et la position du curseur
- Écrire le texte dans le tampon d'affichage en utilisant print() et println()
- Appeler display.display() pour pousser le contenu du tampon à l'écran
※ Note:
La macro F() stocke les chaînes dans la mémoire flash plutôt que dans la RAM. Cela permet d'économiser de la RAM précieuse sur l'ESP8266.
Code ESP8266 - Afficher du texte avec divers formats
Ce code illustre l'affichage du texte avec différentes tailles et la mise en forme des nombres :
ESP8266 Code - Dessiner des formes sur l'OLED SSD1309
Le code ci-dessous montre comment dessiner des pixels, des lignes, des rectangles, des cercles et des triangles :
Fonctions de dessin disponibles :
- drawPixel(x, y, color) - Dessiner un seul pixel
- drawLine(x0, y0, x1, y1, color) - Dessiner une ligne
- drawRect(x, y, w, h, color) - Dessiner le contour d'un rectangle
- fillRect(x, y, w, h, color) - Dessiner un rectangle rempli
- drawRoundRect(x, y, w, h, radius, color) - Dessiner un rectangle arrondi
- drawCircle(x, y, radius, color) - Dessiner le contour d'un cercle
- fillCircle(x, y, radius, color) - Dessiner un cercle rempli
- drawTriangle(x0, y0, x1, y1, x2, y2, color) - Dessiner le contour d'un triangle
- fillTriangle(x0, y0, x1, y1, x2, y2, color) - Dessiner un triangle rempli
Code ESP8266 - Défilement matériel sur OLED SSD1309
Le SSD1309 prend en charge le défilement matériel. Ce code illustre les quatre directions de défilement :
Fonctions de défilement:
- startscrollright(start, stop) - Défiler vers la droite
- startscrollleft(start, stop) - Défiler vers la gauche
- startscrolldiagright(start, stop) - Défilement diagonal vers la droite
- startscrolldiagleft(start, stop) - Défilement diagonal vers la gauche
- stopscroll() - Arrêter le défilement
Les paramètres de départ et de fin définissent la plage de pages (0x00 à 0x07 pour l'écran en plein écran).
Code ESP8266 - Afficher une image bitmap sur l'OLED SSD1309
Ce code montre comment afficher des images bitmap stockées dans la mémoire du programme :
Pour afficher des images :
- Convertissez votre image en un tableau bitmap en noir et blanc (utilisez des outils en ligne ou image2cpp)
- Stockez le tableau dans PROGMEM pour économiser la RAM
- Utilisez drawBitmap(x, y, bitmap, width, height, color) pour l'afficher
Code ESP8266 - Ajuster la luminosité/contraste
Contrôler la luminosité et le contraste de l'écran OLED SSD1309 :
Fonctions de contrôle de la luminosité:
- setContrast(value) - Définir le niveau de contraste (0-255, plus élevé = plus lumineux)
- dim(true/false) - Basculer rapidement entre une luminosité faible et normale
- invertDisplay(true/false) - Inverser tous les pixels (noir ↔ blanc)
Code ESP8266 - Utiliser des polices externes
La bibliothèque Adafruit_GFX comprend des polices FreeFont. Ce code illustre trois polices différentes :
※ Note:
Les fichiers FreeFont sont volumineux. L'ESP8266 dispose d'une mémoire flash limitée (généralement 4 Mo). N'utilisez que les polices dont vous avez besoin, ou envisagez d'utiliser des tailles de police plus petites si la mémoire est limitée.
Utilisation de la police:
- Inclure l'en-tête de police : #include <Fonts/FreeSans9pt7b.h>
- Définir la police : display.setFont(&FreeSans9pt7b)
- Réinitialiser par défaut : display.setFont(NULL)
- Lors de l'utilisation de polices externes, la coordonnée Y représente la ligne de base, et non le sommet`
Dépannage
Si l'écran OLED ne fonctionne pas, essayez ces étapes :
Vérifier l'adresse I2C
L'adresse I2C par défaut est 0x3C, mais certains modules utilisent 0x3D. Exécutez ce scanner I2C pour trouver l'adresse correcte :
Please provide the English content to translate. The code block is empty and not closed. Include the text inside a properly closed code block, e.g.:
Si votre écran utilise 0x3D, modifiez SCREEN_ADDRESS à 0x3D dans le code.
Vérifier le câblage
Vérifiez les connexions :
- VCC → 3.3V (pas de 5V pour l'ESP8266)
- GND → GND
- SDA → D2 (GPIO4)
- SCL → D1 (GPIO5)
Vérifier l'alimentation
Assurez-vous que l'ESP8266 reçoit une alimentation adéquate via le câble USB ou une alimentation externe.