Comment programmer le WiFi Kit 32 avec l’Arduino IDE ?

Installation de la bibliothèque lcdgfx pour l’écran OLED

Afin de nous faciliter la gestion de l’écran OLED, nous allons installer la bibliothèque Arduino lcdgfx.

Pour cela, dans le menu “Outils”, choisir “Gérer les bibliothèques”.

Menu de l'Arduino pour gérer les bibliothèques

La fenêtre des bibliothèques s’ouvre alors. En saisissant “lcdgfx” dans la zone de recherche, vous ne verrez plus que la bibliothèque “lcdgfx by Alexey Dynda” d’affichée.

Vous pouvez alors réaliser sa mise en place en cliquant sur le bouton “Installer” correspondant.

Recherche et installation de la bibliothèque Arduino "lcdgfx by Alexey Dynda"

Le message “INSTALLED” confirme que l’opération d’installation s’est bien déroulée.

La bibliothèque Arduino "lcdgfx by Alexey Dynda" est installée

Vous pouvez fermer la fenêtre, nous allons passer à la programmation proprement dite.

Code logiciel pour le message de bienvenue sur l’écran OLED du WiFi kit 32

Comme dans le programme Arduino précédent, partons de l’ossature de code suivante:

/* Fonction de démarrage, s'exécute une seule fois: */
void setup()
{
}

// Fonction principale du programme, s'exécute en boucle:
void loop()
{
}

Nous commençons par indiquer au compilateur Arduino que nous utilisons la bibliothèque lcdgfx.

/* Déclaration des librairies utilisées */
#include "lcdgfx.h"

Cette librairie utilise la programmation objet, aussi nous déclarons un objet globale de type “DisplaySSD1306_128x64_I2C” nommé “Afficheur_G” permettant de gérer l’afficheur en utilisant le protocole I2C.

La carte WiFi kit 32 n’est pas dans la liste des cartes reconnues automatiquement par la librairie lcdgfx.

Aussi, l’appel simplifié DisplaySSD1306_128x64_I2C Afficheur_G(-1); ne fonctionne pas.

Il est nécessaire d’utiliser l’appel détaillé de la fonction DisplaySSD1306_128x64_I2C Afficheur_G(A,{B, C, D, E, F}) avec les paramètres suivants :
A → Numéro de broche SCL,
B → Identifiant du bus,
C → Adresse I2C,
D → Numéro de broche SCL,
E → Numéro de broche SDA,
F → Fréquence de transmission en hertz.

Pour rappel l’interface ICD de l’écran OLED, utilises les broches 4, 15 et 16.

Identification des broches I2C de l'écran OLED la carte WiFi kit 32

En utilisant les valeurs par défaut pour les autres paramètres de la la fonction, nous obtenons :

DisplaySSD1306_128x64_I2C Afficheur_G(16,{-1, 0, 15, 4, 0});

Pour la suite du programme, je ne vais pas rentrer dans le détail. Le pilotage d’un écran OLED avec la librairie “lcdgfx” en général et l’utilisation d’une image en particulier est détaillé dans l’article Température et humidité avec Arduino, aussi je vous invite à vous y reporter.

Le code complet permettant de réaliser l’affichage présenté en début d’article est le suivant:

/* Déclaration des librairies utilisées */
#include "lcdgfx.h"

/* Définition de l'image du coeur en mémoire flash */
const PROGMEM uint8_t ImageCoeur[8] =
{
  0B00001110,
  0B00011111,
  0B00111111,
  0B01111110,
  0B01111110,
  0B00111101,
  0B00011001,
  0B00001110
};

/* Définition de l'image de la main en mémoire flash */
const uint8_t ImageMain [] PROGMEM =
{
  0x00, 0x00, 0xC0, 0xE0, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x60, 0xC0,
  0xC0, 0xC0, 0xE0, 0x60, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x0F, 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFE, 0x06, 0x06, 0x06, 0xFF, 0xFF, 0x00, 0x00, 0x00,
  0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x03, 0x81, 0xE1, 0x70, 0x38, 0x1C, 0x0F, 0x03, 0x00,
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
  0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

/* Déclarations globales: */
DisplaySSD1306_128x64_I2C Afficheur_G(16,{-1, 0, 15, 4, 0});

/* Fonction de démarrage, s'exécute une seule fois: */
void setup()
{
  /* Initialisation de l'écran */
  Afficheur_G.begin();
  /* Effacement de l'écran */
  Afficheur_G.clear();
  /* Sélection de la fonte de 6x8 */
  Afficheur_G.setFixedFont( ssd1306xled_font6x8 );
  /* Affichage du titre */
  Afficheur_G.printFixed ((128-(6*strlen("Tropratik.fr")))/2, 10, "Tropratik.fr", STYLE_BOLD); // Affichage du text centré à l'écran
  /* Affichage du coeur en haut à gauche */
  Afficheur_G.drawBitmap1( 10, 8, 8, 8, ImageCoeur );
  /* Affichage du coeur en haut à droite */
  Afficheur_G.drawBitmap1( 110, 8, 8, 8, ImageCoeur );
  /* Affichage du message centré */
  Afficheur_G.printFixed ((128-(6*strlen("Coucou !")))/2, 45, "Coucou !"); // Affichage du text centré à l'écran
  /* Affichage de la main en bas à gauche */
  Afficheur_G.drawBitmap1(0, 30 , 32, 32, ImageMain);
  /* Affichage de la main en bas à droite */
  Afficheur_G.drawBitmap1(95, 30, 32, 32, ImageMain);
}
// Fonction principale du programme, s'exécute en boucle:
void loop()
{

}

Une fois le code logiciel compilé puis transféré dans l’Arduino, voici ce que nous obtenons:

Programmer le WiFi Kit 32 avec Arduino

Pour les étapes de téléversement du programme dans la carte WiFi kit 32, voici la vidéo détaillée :

Voilà cet article est fini ! S’il vous a plu, n’hésitez pas à laisser un commentaire.

Je vous ai présenté ce produit car je le trouve parfait pour afficher le cours des cryptomonnaies en temps réel. J’espère bientôt pouvoir vous présenter ce projet.

Je vous souhaite bon geek et bientôt :-).

Laisser un commentaire