Arduino UNO Q - OLED 128x64
Ce tutoriel vous montre comment utiliser un écran OLED SSD1306 128x64 avec Arduino UNO Q — du texte de base aux formes, images et contrôle à distance via Telegram.
- Comment connecter un OLED SSD1306 128x64 à Arduino UNO Q
- Comment afficher le texte "Hello World" en plusieurs tailles sur l'OLED
- Comment afficher du texte, des entiers, des flottants et des nombres hexadécimaux
- Comment dessiner des formes : pixels, lignes, rectangles, cercles et triangles
- Comment utiliser le défilement matériel (droite, gauche, diagonal)
- Comment afficher des images bitmap sur l'OLED
- Comment contrôler la luminosité et le contraste de l'afficheur
- Comment utiliser des polices externes personnalisées
- Comment contrôler l'OLED à distance depuis Linux via la programmation Bridge
- Comment contrôler l'OLED à distance depuis Telegram via la programmation Bridge

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
Note d'achat: Si vous souhaitez un écran OLED plus grand, utilisez le Arduino UNO Q - Écran OLED SSD1309 (2,42 pouces).
À Propos de l'Écran OLED 128x64
Le SSD1306 OLED 128x64 est un écran monochromatique compact piloté par le contrôleur SSD1306 via I2C. Il dispose de 128×64 pixels et peut afficher du texte net, des icônes, des graphiques et des images personnalisées.
Brochage de l'OLED
- GND — connecter à GND
- VCC — connecter à 3,3V ou 5V
- SCL — signal d'horloge I2C
- SDA — signal de données I2C

※ Note:
L'ordre des broches peut différer selon les fabricants. Référez-vous toujours aux étiquettes imprimées sur le module OLED lui-même. Ce tutoriel utilise un OLED basé sur SSD1306 testé avec les modules DIYables.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
| Broche OLED | Broche Arduino UNO Q |
|---|---|
| GND | GND |
| VCC | 3.3V |
| SCL | SCL |
| SDA | SDA |
Comment Programmer l'OLED
La bibliothèque Adafruit SSD1306 fournit toutes les fonctions nécessaires pour piloter l'OLED.
- Inclure les bibliothèques :
- Créer l'objet OLED (128x64) :
- Initialiser dans setup() :
- Afficher du texte :
※ Note:
Appelez toujours oled.display() après les commandes de dessin pour envoyer le tampon à l'écran. Les commandes de dessin seules ne mettent pas à jour ce qui est visible.
Code Arduino UNO Q — Hello World sur OLED SSD1306
L'Arduino UNO Q dispose de deux processeurs : le STM32 MCU (gère le contrôle matériel en temps réel) et le Qualcomm MPU (exécute Debian Linux). Dans cette section, seul le STM32 MCU est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
Le sketch ci-dessous affiche du texte en deux tailles différentes sur l'OLED.
Étapes Rapides
- Première utilisation d'Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Câblez l'OLED : Connectez GND→GND, VCC→3,3V, SCL→SCL, SDA→SDA.
- Connectez : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrez Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
- Créez une nouvelle App : Cliquez sur le bouton Create New App.

- Donnez un nom à l'App, par exemple : DIYables_OLED_128x64
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et de fichiers générés dans votre nouvelle App.

- Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Search for Adafruit SSD1306 created by Adafruit and click the Install button.
- Téléversez : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.

Regardez l'OLED — il affiche "Hello, World!", "DIYables" et "OLED 128x64 SSD1306" !
Code Arduino UNO Q — Afficher du Texte sur OLED SSD1306
Cet exemple illustre différentes tailles de texte et comment afficher des entiers, des flottants et des nombres hexadécimaux sur l'OLED.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED alterne entre les démonstrations de taille de texte, puis affiche un entier, un flottant et un nombre hexadécimal.
Référence des Fonctions d'Affichage Utiles
Référence rapide des fonctions SSD1306 OLED les plus utilisées :
- oled.clearDisplay() — efface le tampon de trame (tous les pixels éteints)
- oled.display() — envoie le tampon à l'écran — requis après chaque appel de dessin
- oled.drawPixel(x, y, color) — définit ou efface un seul pixel
- oled.setTextSize(n) — met à l'échelle la police par le facteur *n* (1 = 6×8 px, 2 = 12×16 px, …)
- oled.setCursor(x, y) — déplace le curseur de texte aux coordonnées en pixels *(x, y)*
- oled.setTextColor(WHITE) — premier plan de texte uniquement (fond transparent)
- oled.setTextColor(BLACK, WHITE) — texte avec fond explicite
- oled.println("message") — imprime une chaîne et passe à la ligne suivante
- oled.println(number) — imprime un entier en décimal
- oled.println(number, HEX) — imprime un entier en hexadécimal
- oled.startscrollright(start, stop) — défilement matériel vers la droite entre les pages
- oled.startscrollleft(start, stop) — défilement matériel vers la gauche
- oled.startscrolldiagright(start, stop) — défilement diagonal vers la droite
- oled.startscrolldiagleft(start, stop) — défilement diagonal vers la gauche
- oled.stopscroll() — arrête tout défilement matériel actif
- oled.setContrast(value) — ajuste la luminosité (0 à 255)
- oled.dim(true/false) — bascule rapide de l'atténuation
- oled.invertDisplay(true/false) — inversion des couleurs au niveau matériel
Code Arduino UNO Q — Dessiner des Formes sur OLED SSD1306
La bibliothèque Adafruit SSD1306 hérite d'Adafruit_GFX, vous donnant des pixels, des lignes, des rectangles, des cercles, des triangles et des rectangles arrondis. Le sketch ci-dessous les parcourt tous.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

Regardez l'OLED alterner entre toutes les formes — pixels, lignes, rectangles, cercles, rectangles arrondis et triangles !
Code Arduino UNO Q — Défilement Matériel sur OLED SSD1306
Le SSD1306 dispose d'un moteur de défilement matériel intégré qui déplace le contenu sans aucun travail du CPU. La bibliothèque offre quatre directions de défilement : droite, gauche, diagonal-droite et diagonal-gauche.
※ Note:
Appelez toujours oled.display() pour transférer votre contenu vers l'OLED avant de démarrer un défilement. Appelez stopscroll() avant de dessiner un nouveau contenu.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED fait défiler "DIYables" vers la droite, la gauche, diagonal-droite et diagonal-gauche, en se répétant indéfiniment.
Code Arduino UNO Q — Afficher une Image Bitmap sur OLED SSD1306
Pour afficher un bitmap sur l'OLED SSD1306, vous devez d'abord convertir votre image en un tableau d'octets C. Utilisez l'outil gratuit Image to Bitmap Converter :
- Téléchargez votre fichier image (PNG, JPG, BMP, etc.).
- Définissez la taille du canevas à 128×64 (ou plus petit).
- Sélectionnez Arduino code comme format de sortie.
- Copiez le tableau généré dans votre sketch.

Le sketch ci-dessous affiche une icône cœur 16×16 puis passe à l'icône Arduino complète 128×64 — toutes deux stockées sous forme de tableaux d'octets dans le code :
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED affiche l'icône cœur pendant 3 secondes, puis passe à l'icône Arduino.
※ Note:
Les dimensions du bitmap ne doivent pas dépasser la résolution de l'écran (128×64).
Code Arduino UNO Q — Contraste et Atténuation sur OLED SSD1306
Le SSD1306 supporte 256 niveaux de contraste (0 à 255). Utilisez setContrast() pour un contrôle précis et dim() pour une bascule rapide de la luminosité.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

Regardez la luminosité de l'OLED augmenter puis diminuer, suivie d'un cycle d'atténuation activée/désactivée.
Code Arduino UNO Q — Polices Externes Personnalisées sur OLED SSD1306
La bibliothèque Adafruit GFX inclut de nombreuses polices FreeFont (Serif, Sans, Mono — en plusieurs tailles). Utilisez-les en incluant l'en-tête de police et en appelant setFont().
※ Note:
Lorsqu'une police externe est active, la coordonnée Y du curseur fait référence à la ligne de base du texte, et non au coin supérieur gauche. Cela diffère de la police intégrée 5×7.
Étapes Rapides
- Copiez le code ci-dessus et collez-le dans sketch/sketch.ino.
- Cliquez sur le bouton Run dans Arduino App Lab.

L'OLED alterne entre la police intégrée, FreeSerif 9pt, FreeSansBold 12pt et FreeMono 9pt.
Programmation Bridge Linux + MCU
L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- L'OLED est connecté au MCU (STM32) — via I2C (SCL/SDA). Seul le MCU peut le piloter directement.
- Le MPU ne peut pas contrôler l'OLED directement — il appelle Bridge.call("display_text", "text") sur le MCU, qui met à jour l'afficheur et imprime le résultat dans le Monitor.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut recevoir des commandes Telegram et afficher n'importe quel message sur l'OLED à distance.
- Communication : Bridge.call() côté Linux invoque des fonctions Bridge.provide_safe() côté MCU (puisque les écritures d'affichage OLED sont des appels API matériels).
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement.
En bref : Le MPU envoie du texte via Bridge → le MCU met à jour l'OLED → le MCU imprime le résultat dans le Monitor.
Sketch MCU — OLED 128x64 avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — afficher du texte sur OLED depuis Linux :
Étapes Rapides
- Créez une nouvelle App : Ouvrez Arduino App Lab, cliquez sur Create New App, nommez-la DIYables_OLED_128x64_Bridge, et cliquez sur Create.
- Collez le sketch MCU : Copiez le code Bridge MCU ci-dessus et collez-le dans sketch/sketch.ino.
- Collez le script Python : Copiez le code Python ci-dessus et collez-le dans le fichier Python de l'App.
- Exécutez l'App : Cliquez sur le bouton Run — le côté Python alterne entre les messages sur l'OLED.
Sortie de la Console App Lab
Intégration Telegram
Affichez n'importe quel texte sur votre OLED à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour OLED 128x64 :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /display Hello World — le texte apparaît sur l'OLED.
- Envoyez /clear — l'écran OLED est effacé.
- Envoyez /status — le bot répond avec le contenu actuel de l'OLED.
Étapes Rapides
- Téléversez le sketch MCU : Utilisez le sketch Bridge MCU de la section précédente.
- Collez le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python.
- Définissez votre token : Remplacez YOUR_BOT_TOKEN par votre token de bot réel.
- Exécutez l'App : Cliquez sur Run — le bot commence à écouter les commandes Telegram.
- Testez : Envoyez /display Arduino UNO Q — le texte devrait apparaître sur l'OLED.
Sortie de la Console App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées d'Applications/Projets
- Affichage compact de capteurs : Montrez les mesures de température, d'humidité ou de distance dans un petit espace pour des projets portables ou embarqués
- Tableau de statut à distance : Poussez des messages d'alerte vers l'OLED via Telegram lorsqu'un seuil de capteur est dépassé
- Indicateur de signal Wi-Fi : Affichez la puissance du signal Wi-Fi du MPU et le nom du réseau connecté sur l'OLED
- Chronomètre / minuterie : Utilisez l'OLED pour afficher une minuterie précise à la milliseconde contrôlée via des commandes Telegram de démarrage/arrêt
- Affichage d'icône personnalisée : Dessinez une icône de batterie ou des barres de signal sur l'OLED en utilisant drawRect, fillRect et drawBitmap
Défiez-vous
- Facile : Modifiez le bot Telegram pour prendre en charge /big <texte> qui affiche le texte à la taille de police 2 (caractères plus grands)
- Moyen : Ajoutez l'alignement centré : calculez (SCREEN_WIDTH - textWidth) / 2 et utilisez-le comme position x du curseur
- Avancé : Affichez une horloge en temps réel sur l'OLED — récupérez l'heure actuelle depuis l'horloge Linux du MPU via Bridge et mettez à jour chaque seconde