Déballage du clone Wemos ESP32 LoLin avec écran OLED monochrome 0.96” SSD1306 intégré

Victime de son succès, Wemos fait l’objet de nombreux clones (ou fakes comme certains diront !). Après la Wemos 1d mini, c’est au tour de la LoLin32 d’être copiée. Aujourd’hui, nous allons découvrir un clone plutôt sympa d’un fabricant inconnu (pour le moment du moins). Ce fabricant a su copié le meilleur de Wemos en proposant plusieurs cartes d’extension (shields) qui a fait le succès de la d1 mini. Cette LoLin32 construite autour de l’ESP32 (ESP-WROOM-32) d’Espressif embarque un écran OLED monochrome 0.96” (168×64 pixels) très classique. L’écran est piloté par un contrôleur SSD1306 sur le bus I2C.

Déballage du clone de la Wemos LoLin32 avec écran OLED SSD1306

On trouve plusieurs boutiques sur AliExpress qui commercialisent des clones de la Wemos LoLin32 avec écran OLED. J’ai commandé la mienne chez Face-to-Face Electronic. La LoLin32 a été livrée en 3 semaines environ, ce qui est correct pour une livraison en direct de Chine. Elle est livrée dans une petite boite en plastique avec un sur-emballage à bulles. Rien à dire, la carte est parfaitement protégée durant le transport. La carte est livrée avec un jeu de connecteur mâle à souder.

wemos lolin32 oled ssd1306 face-to-face aliexpress

Pour intégrer l’écran OLED, le fabricant à sacrifier plusieurs broches de l’ESP32. Pour comparaison, voici le repérage de quelques cartes de développement ESP32. L’ESP32 dispose de 38 broches. Chaque fabricant expose les broches qu’il souhaite en fonction de la compacité et des fonctions qu’il souhaite mettre en avant. La fabricant de ce clone a voulu conserver l’interface permettant d’ajouter un écran tactiles (Touch 0 à 6). On dispose par la même occasion de 11 entrées analogiques ce qui nous change de la seule entrée des modules ESP8266. L’écran OLED utilise les broches 4 (SDA) et 5 (SCL) pour communiquer sur le bus I2C avec l’ESP32. On dispose enfin de 3 broches délivrant une tension de 3V3, 2 broches 5V et 2 broches GND. Au total (en comptant le bus I2C), on dispose de 19 entrées / sorties alors que l’Arduino Uno en propose 20.

Spécifications du module ESP-WROOM-32

  • Module ESP32 : ESP-WROOM-32 d’Espressif.
    • Microprocesseur dual core cadencé à 240MHz équipé de 4MB de mémoire flash SPI.
    • Support jusqu’à 16MB de mémoire flash
  • Connectivité
    • WiFi 802.11 b/g/n.
      • Sécurité WEP, WPA/WPA2 PSK/Enterprise.
      • Puce cryptographique intégrée prenant en charge les algortithmes AES/SHA2/Elliptical Curve Cryptography/RSA-4096
      • Puissance maximale pour le transfert de données : 19.5 dBm@11b, 16.5 dBm@11g, 15.5 dBm@11n
      • Sensibilité max. de réception : -97 dBm
    • Bluetooth 4.0 LE
  • 32 Entrées/Sorties
    • 26x E/S digitales (3.3V). Toutes les sorties peuvent être PWM
    • 18x entrées analogiques
    • 3x UART
    • 3x SPI
    • 2x I2S
    • 2x DAC
    • 2x I2C
  • Consommation en mode sommeil (Deep Sleep mode) : 5 μA
  • Capteurs intégrés
    • Effet Hall
    • 10x entrées pour interface tactile capacitive

Test de l’écran OLED SSD1306 en I2C avec du code Arduino

Passons maintenant au test de l’écran OLED. J’ai déjà réalisé plusieurs articles sur les écrans OLED monochrome pilotés par le SSD1306.

J’ai profité de l’occasion pour faire le point sur les nouvelles librairies disponibles depuis le gestionnaire de l’IDE Arduino. Depuis 2016, les choses ont pas mal évoluées. Adafruit et Sparkfun ont beaucoup contribué à l’élaboration des librairies graphiques mais les choses ont beaucoup évoluées depuis avril 2016 et le premier article sur le pilotage d’un écran OLED sur un ESP-01.

Si vous faites une recherche depuis le gestionnaire de librairies de l’IDE Aduino avec le mot clé SSD1306, vous allez trouvez trois nouvelles librairies très intéressantes :

  • Ai_Ardulib_SSD1306 est développée par le fabriquant Canadien Acrobatic (https://acrobotic.com/). Elle est limitée aux écrans SSD1306. Elle supporte les cartes Arduino, Arduino 101, AVR et ESP8266. C’est une librairie très légère surtout orientée vers l’affiche de texte simple.

  • La librairie SSD1306 d’Alexey Dynda est livrée avec le code d’un jeu en bonus. Elle est supportée par les Attiny85, Attiny45, Atmega328p, Atmega168, Atmega2560, Digispark, ESP8266 et les nouveaux ESP32. Elle prend en charge les écrans i2c (128×64, 128×32), spi (128×64) et Nokia 5110 SPI PCD8544 84×48.
  • La librairie ESP8266 Oled SSD1306 développée par Daniel Eichhorn et Fabrice Weinbern du blog Squix. C’est une librairie très complète. Elle est toutefois limitée aux écrans SSD1306 sur bus I2C sur ESP8266 et ESP32. Elle est très simple à mettre en oeuvre mais très puissante.

  • Enfin la librairie U8g2 (et la version légère pour afficher uniquement du texte U8glib) développée par Oliver Kraus. Actuellement, c’est la librairie la plus complète. Elle supporte un nombre impressionnant de contrôleurs d’écran (SSD1325, ST7565, ST7920, UC1608, UC1610, UC1701, PCD8544, PCF8812, KS0108, LC7981, SBN1661, SSD1306, SH1106, T6963, LD7032).

Installer le SDK ESP32 sur l’IDE Arduino

Avant de pouvoir utiliser la LoLin32 OLED, vous devez installer le SDK ESP32 d’Espressif sur l’IDE Arduino. Pour cela, suivez ce tutoriel pour Windows, macOS ou Linux

Installer la librairie ESP8266 Oled SSD1306 et tester l’affichage

Depuis le gestionnaire de librairie, installez la librairie ESP8266 Oled SSD1306. Allez ensuite dans le menu Outils -> Sélectionnez la carte Wemos LoLin32 dans la section ESP32.

wemos lolin32 ide arduino board

Maintenant, depuis le menu Fichier -> Exemples, ouvrez un exemple livré avec la librairie. Il y en a 4 :

  • Clock, une pendule
  • Drawing, pour montrer les différentes primitives disponibles
  • OTADemo, un exemple montrant comment afficher la progression de la mise en jour en WiFi
  • SimpleDemo
  • UiDemo, un exemple avec plusieurs pages d’affichage

esp8266 oled librairie lolin32 wemos

Quelque soit l’exemple, vous devez modifier les broches du bus I2C. Les exemples sont livrés prêt à l’emploi pour un ESP8266. Trouvez la ligne SSD1306 display(0x3c, D3, D5) et remplacez D3 pour 5 et D5 par 4

SSD1306  display(0x3c, 5, 4);

L’écran se trouve à l’adresse 0x3c comme c’est souvent le cas pour les écrans OLED 0,96”. Il ne vous reste plus qu’à téléversez le code.

wemos lolin32 oled ssd1306 face-to-face aliexpress

Test avec du code MicroPython

J’en voulu également tester la carte et l’écran avec du code MicroPython. L’installation du firmware MicroPython ne pose aucun problème. Il suffit de bien indiquer que c’est une carte de type ESP32. Vous pouvez utiliser uPiCraft sous Windows par exemple comme nous l’avons vu dans le tutoriel précédent. J’ai ensuite testé le code du tutoriel précédent en branchant un BME280 sur le bus I2C. Malheureusement, soit le scan du bus se bloque, soit aucun matériel I2C n’est détecté. J’ai testé l’astuce décrite par Alberto sur Instructable sans succès. En attendant que je trouve une solution, n’hésitez pas à partager votre solution dans les commentaires.

 

Pour conclure, ce clone de la Wemos LoLin32 est une carte de bonne qualité. Seul regret, elle n’est pas aussi étroite que la LoLin32 Lite. On ne dispose que d’une seule rangée de broches lorsqu’elle est installée sur une breadboard. Elle fonctionne à merveille depuis l’IDE Arduino. Elle est livrée avec un exemple de la librairie SSD1306 écrite par nos amis suisses du blog Squix pré-installé. Nous la découvrirons plus en détail dans un prochain tutoriel.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

9
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de

Hello aux possesseurs de cette carte avec oled intégré.
J’ai du mal a trouver les entrées analogiques, d’ailleurs au vu de mes recherches, il n’y aurait que la pin SVP (gpio36) mais je récupère des valeurs abérentes …
Pour infos, je passe par l’ide Arduino.
Savez vous si il y a d’autres pins analogiques ou pouvez-vous me confirmer que c’est la seule pin dispo ?

Merci à tous pour votre aide !

Masque du Furet

d’après mes recherches, l’ADC de ESP32 est …. compliqué. J’ai regardé le livre de Kolban, qui est un des développeurs du SDK et qui est très compétent.http://forum.arduino.cc/index.php?topic=544964.0 Page 295 -sur >1090-, j’ai trouvé qu’un des deux ADC (chacun a plein de canaux, comme sur un Arduino uno) ne peut en aucun cas être utilisé en même temps que le wifi -ce qui divise la complexité du problème par deux (en fait, on n’a plus que 8 canaux sur 18)- La complexité est encore diminuée si deux canaux de l’ADC restant sont dédiés à un capteur à effet hall -ceci est… Lire la suite »

Pascal Dupont

Ceci est en fait une simple traduction d’un site en Anglais y compris les erreurs : 4 (SDA) et 5 (SCL) est en fait 5 (SDA) et 4 (SCL). Si vous voulez utiliser efficacement le i2C sur cette carte, voici un exemple avec la BMP280 : #include #include #include #include “SSD1306.h” // Initialize the OLED display using Wire library SSD1306 display(0x3c, 5, 4); // Initialize the BMP280 Adafruit_BME280 bme; void setup() { Serial.begin(115200); Serial.println(“Démarrage programme”); // Init Display display.init(); display.setContrast(255); display.flipScreenVertically(); display.setFont(ArialMT_Plain_16); display.clear(); // Clear le buffer // Init BMP280 Wire.begin(5,4); // Set I2C : 5=SDA 4=SCL while (!bme.begin(0x76)) {… Lire la suite »

frou

J’ai ce modèle je cherche désespérément où sont les pins pour connecter une carte SD
SCLK ?
MISO ?
MOSI ?
Je me débrouillerais pour CS 😉

Bonjour Frou. Elles sont ici https://projetsdiy.fr/esp8266-guide-de-choix-achat-projets-diy/ au paragraphe “Correspondance des broches entre Arduino et ESP8266 (NodeMCU)”
– CLK -> D5
– MISO -> D6
– MOSI -> D7
– CS -> D8

Francis Roussel

Tu confonds… C’est pour une lolin32 oled que je cherche pas un ESP8266

Gilles99

4 et 5 sur la copie wemos lolin avec ecran oled
mais attention comme le oled et un autre device i2c seront sur le meme bus.
il faut peut etre gerer l’adressage ..?

qcvictor

Est ce que un firmware type esp easy fonctionne la dessus ?

Bonjour Victor. Non pas pour le moment ESP Easy ne fonctionne que sur la LoLin32 Lite https://projetsdiy.fr/firmware-esp-easy-mega-esp32-test-wemos-lolin32-lite-nouveautes/. J’ai testé sur un autre clone sans succès. Il faut encore attendre quelques semaines (ou quelques mois). Dès que ça fonctionne, je publierai un article. Bon week end

Domotique et objets connectés à faire soi-même