mercredi 23 janvier 2019

Mini écran OLED économique sur raspberry pi pour affichage de statut

Projet

Ajouter un mini affichage pour avoir un statut sur le Raspberry Pi de la domotique intégré sur rail DIN dans le tableau électrique.

Solution

Un petit écran OLED de 3,3cm de diagonale visible (1'3) pour de moins de 10€ utilisant le circuit SH1106.

Références

https://luma-oled.readthedocs.io Le pilote pour écran OLED
https://python-pillow.org La librairie graphique générique

Péripéties

Me voila donc parti sur banggood ou je prend un écran 0.96' un peu au hasard pour 5€67
0_96-Inch-4Pin-Blue-Yellow-IIC-I2C-OLED-Display-Module
Quelques semaines passent, voila l'écran. bon, c'est du I2C: VCC GND SCL SDA
Une petite soudure pour mettre un connecteur, un câble de connections. Recherche sur internet, une page sur la librairie Adafruit et quelques instructions, installation de quelques paquets raspbian i2c, activation du i2c sur le RPI. (voir ici). Branchement, execution:

pi@rpi3:~ $ i2cdetect -y 1

Hum, nada, aucun appareil i2c détecté par Linux (que des "--").

Inspection , hum... l'écran est cassé sur le haut.justement la ou il y a la puce. .
Le premier écran, reçu cassé


Bon, l'écran n'a pas supporté le voyage... Il a du arriver à pied par la Chine...

Amazon cette fois ci : https://www.amazon.fr/gp/product/B078J78R45

Je pars pour un 1.3' , 9€ cette fois ci, mais livraison le lendemain. Réception rapide, dans du carton solide, pas de dommage apparent cette fois ci. Branchement, exécution:
pi@rpi3:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
-> eureka, adresse 0x3C !!

Affichons quelque chose. Recherche internet: pas mal de pages sur SSD1306. J'essaye la librairie python Adafruit trouvée sur google.

Ah ... affichage ... Oh, pas lisible (Voir ici). Des frissons: quand même pas deux fois !

Petite recherche , en effet c'est ce qui arrive si on affiche avec un driver SSD1306 sur SH1106. De plus sur les commentaires amazon, des utilisateurs le mentionnent. C'est vrai que sur le paquet il est écrit: SH1106. Mea culpa. Ouf.

Ah, un peu moins de ressources, mais je tombe finalement sur la librairie Luma OLED (voir références).

EXCELLENT, ÇA MARCHE !

Autopsie

J'en profite donc pour faire une autopsie du premier écran. Le dispositif se présente sous la forme d'un circuit imprimé avec quelques CMS, une fiche I2C et un écran colle sur la circuit imprime par un double face et soude sur ce circuit par le biais d'un ruban de liaison. Le circuit ne sert donc vraiment qu'a fournir les quelques composants externes nécessaires (résistances, condensateur et un transistor) au composant SH1106 qui est intégré directement sur l'écran, a sa base.