Comment suivre les connexions à un réseau TCP/IP avec des led, comment afficher des messages d'erreur sur les lectures RFID.
Après avoir pensé aux Leds ( moins de 10 centimes pour 5 leds), je regarde du coté des écrans OLED qui pourraient permettre une meilleure interface avec les joueurs et les "administrateurs", ainsi que la diffusion de message personnalisée par exemple.
L’utilisation de l’interface I2C permet de réduire très fortement le câblage de cet écran OLED. Cet écran n’étant pas disponible dans la librairie d’Adafruit, je l’ai remplacé par son cousin plus petit, 128 x 32 pixels. L’écran est alimenté en 3.3V, il utilise le même micro-contrôleur SSD1306.
Caractéristiques
Cet écran est séparé en deux zones verticales
- Une zone de 16 px de haut avec des pixels jaunes
- Une zone de 48 px de haut avec des pixels bleus
Les deux zones sont séparées d’une largeur d’environ
1 pixel qui apparaît donc toujours noire.
Tutoriels :
Diverses sources :
Le câblage
Which pins to use for this differs on some arduino models, but on the UNO and NANO you use pin A4 (SDA) and A5 (SCL). If you’re using another arduino, google the pinout and look for SDA and SCL pins. (For example, google “arduino mega pinout”, and check the images).
I first attempted to power my display from my arduinos 5v. This worked, but only halfway – the display fired up, and started cycling the demos in the sketch we will see later on, and then froze after a few seconds.
I then powered my display from my external 5v supply (with common ground to the arduino), which did the trick – the display is now working properly.
The connections from the display:
Arduino is connected to the computer via an USB cable. The USB powers the arduino.
Installer les librairies dans l'IDE Arduino
Vous allez devoir ajouter de nouvelles librairies à votre IDE Arduino. Après avoir récupéré le ZIP, allez dans Croquis -> Inclure une librairie -> Ajouter la bibliothèque .ZIP et choisissez le zip contenant la librairie à importer.
Vous pouvez maintenant aller dans Fichier -> Exemples pour découvrir les exemples proposés dans la librairie.
Pour utiliser une librairie dans vos projets, déclarez la en début de projet, par exemple #include
Pour faire votre premier test, vous pouvez aller à l'étape suivante, tout est possible depuis votre navigateur grâce à Codebender !
Utiliser La Librairie Adafruit_SSD1306 Et Adafruit_GFX
C'est la librairie la plus employée car elle offre de nombreuses fonctions pour réaliser des tracés facilement (lignes, rectangles, cercles, triangles...).
Pour plus de détail sur la librairie,
http://www.projetsdiy.fr/ssd1306-mini-ecran-oled-i...
REMARQUES
Si vous avez le message ci contre, il faut modifier la librairie comme suit :
Il faut éditer le fichier Adafruit_SSD1306.h de la manière suivante :
- À la ligne 69, décommenter le code `#define SSD1306_128_64`
- À la ligne 70, commenter le code `#define SSD1306_128_32`
Chargement de l'exemple :
test basic- affichage d'un texte uniquement
On voit que rien que pour quelques lignes de textes, on atteint les limites de la memoire de l'arduino UNO.
Sparkfun - micro_oled
https://github.com/sparkfun/SparkFun_Micro_OLED_Arduino_Library
Il faut modifier les exemples, en activant les lignes I2C et désactivant les ligne SPI.
On peut aussi mettre en commentaire le chargement de la bibliotheque Wire.h
La mémoire est beaucoup moins sollicitée, mais la bibliotheque n'adresse pas tout l'ecran, je dirais que c'est plutot du 64*x48
Ce qui est confirmé à la lecture du fichier cpp
"OLED_I2C_128x64_Monochrome.h"
Source : https://deloarts.wordpress.com/2015/06/17/
oled-i%C2%B2c-128x64-monochrome-library/
Exemple : Oled_draw image
Du code très simple, et peu de mémoire consommée, mème pour un bitmap
Une utilisation des 128*64
Exemple de code pour écrire du texte :
lcd.init(true);
lcd.printString("Hello!", 0, 0);
je recommande
u8g2
Source Wiki : https://github.com/olikraus/u8g2/wiki
Cette librairie remplace la librairie u8glib
La librairie est disponible a :
http://www.arduinolibraries.info/libraries/u8g2
J'ai essayé, trop complexe.
La librairie OZ
Source : https://oscarliang.com/arduino-oled-display-library/
Ne marche Pas
La librairie evilOled
https://github.com/evilnick/evilOLED
evilOLED is an Arduino library for efficient use of SSD1306 based
displays, specifically 128x64 pixel ones using the I2C 2-wire
interface. This driver does not use a framebuffer, therefore
leaving you with plenty of dynamic memory for your own code!
Written by Nick Veitch, 2014 <veryevilnick@gmail.com>
Released under MIT license
L'adresse de l'esclave est 0x78 par defaut dans le fichier.h.
Meme apres correction en 0x3C, il gère l'adressage sur 8 bits, alors que mon module fonctionne sur 7 bits.
La libraire SSD1306ascii
https://github.com/greiman/SSD1306Ascii
une li
Une video qui reprend les tests....
Image2cpp
image2cpp est un utilitaire de conversion d'image sur internet
http://javl.github.io/image2cpp/
Il vous permettra :
Un autre fonction très pratique et la possibilité de visualiser l'image qui sera produite par l'écran OLED en collant la chaine Hexa dans la zone "Paste byte array". Rechargez la page si vous aviez fait une conversion d'image avant.
Source : http://en.radzio.dxp.pl/bitmap_converter/
Pour windows
Converti des fichiers au format bitmap pour insertion dans les programmes
L'ecran oled est composé de 128*64 pixels. (8192)
chaque pixel va prendre la valeur 0 pour eteint, ou 1 pour allumer
Chaque pixel va etre regroupée par Octet
par exemple, pour un pixel sur 2 allumés, on obtient
1010 1010 qui une fois converti en Hexa donne :
A A
Ensuite les données sont regroupées sur 16 colonnes et 64 lignes
vérification : 16*64*8=8162 ... good job
Donc ca c'est l'explication theorique pour comprendre ce que l'on recupere en sortie des convertisseur et qu'on copie/colle dans les programmes.
Lancer "Paint", présent sur tous les windows
- afficher le quadrillage
-redimensionner l'image pour obtenir 128*64pxl (en bas)
-zoomer pour dessiner tranquillement
-Enregistrer le fichier au format BMP
-lancer LCD assistant
-Selectionner le fichier BMP
-Sauvegarder l'output
-L'ouvrir avec notepad++ et copier/coller
- Dans l'IDE arduino, ouvrir l'exemple "draw-bitmap" de la bibliotheque : OLED_2IC_138*64_Monochrome_library-master
-Remplacer toutes les lignes à partir de
PROGMEM const unsigned char bitmap [] = {
-Deverser le programme dans l'arduino
Le code du Logo
La nouvelle librairie :
\Documents\Arduino\libraries\OLED_I2C_128x64_Monochrome_Library-master
Le programme de test :
#include <OLED_I2C_128x64_Monochrome.h>
#include <Wire.h>
#include <avr/pgmspace.h>
void setup()
{
lcd.init(true);
lcd.printString("Hello!", 0, 0);
}
void loop()
{
// Nothing to do here
}
Conclusion :
Tant que la fonction n'est pas appelée, elle ne consomme pas de ressource lors de la compilation.
Code pour affichage de l'adresse Ip
Dans ce tutoriel, nous allons apprendre comment utiliser un écran OLED monochrome 0.96′‘ (basé sur le chip SSD1306) avec un module ESP8266 et plus particulièrement le module ESP-01. Nous allons utiliser les 2 ports GPIO disponibles sur l’ESP-01 pour relier l’écran OLED SS1306 à l’aide du bus I2C. Pour illustrer cet article, nous allons réaliser un petit projet de scanner WiFi qui se connecte à un réseau WiFi et affiche l’adresse ip attribuée à l’ESP-01 ainsi que la force du signal WiFi sur l’écran OLED.
On trouve sur des forums qu'il faut changer l'adresse indiquée à la ligne 61 de l'exemple (celui fournit avec la librairie) l'adresse I2C du module.
display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64)
par
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Brancher l’écran OLED SSD1303 et démarrer le scanner WiFi sur l’ESP-01
Maintenant que le programme est installé sur l’ESP8266, coupez l’alimentation du module.
Pour utiliser un écran OLED sur un ESP-01 nous allons utiliser les 2 GPIO disponibles sur le module pour les relier au bus I2C qui équipe le SSD1306. Le branchement est très simple.
Retirez le câble reliant le GPIO0 au GND et branchez l’écran OLED I2C ainsi :
SDA <–> GPIO0
SCK <–> GPIO2
GND <–> GND
VCC <–> 3.3V
Vous pouvez inverser le câblage. Dans ce cas, modifiez les paramètres dans le programme et réinstallez ce dernier.
Une autre fonction très intéressante, c’est la possibilité de commander ou d’afficher du texte à l’aide d’une simple requête HTTP. On pourrait par exemple récupérer la météo sur un service en ligne et l’afficher sur l’écran depuis un serveur domotique, un script Mode-Red…
La requête HTTP est de la forme suivante :
http://<ESP IP address>/control?cmd=oled,<row>,<col>,<text>
Limitations :
Autres commandes disponibles :
Source originale de l’article : http://www.esp8266.nu/index.php/OLEDDisplay
Utilisation avancée : Utiliser 2 devices I2C en meme temps