Bonjour,
Nouvelle direction prise par mon projet
Après avoir compris que je ne pourrais pas utiliser les deux écrans 3,5' que j'avais acheté sur mon arduino, j'ai décidé de n'en utiliser qu'un seul... puis je me suis dis que ce serait trop petit... donc qu'il me faudrait un plus grand écran, comme par exemple un écran 7p comme j'ai pu le voir sur un autre projet (en lien ci-dessous).
Je veux donc faire un mix entre ces deux projets :
Ecran permanent pour station Netatmo
Station méteo sur TFT 7 "
J'ai donc commandé un écran 7p avec son shield.
J'ai donc maintenant tout le matériel adéquat :
Pour contrôler l'écran il faut utiliser la bibliothèque UTFT.
Pour les scripts PHP, j'utilise mon NAS Synology en tant que serveur web.
Avancement du projet :
-
Scripts PHP de récupération des données Netatmo/Openweathermap : **OK **
-
Connexion au wifi via l'ESP826 : **OK **
-
Récupération des données depuis l'arduino : **OK **
-
Test de l'écran 7p : En cours...
La librairie UTFT disponible dans les fichiers fourni sur le site (buydisplay) où j'ai commandé l'écran fonctionne correctement et semble être une vieille version de celle de rinkydinkelectronics.
Problème, lorsque j'utilise la dernière version de rinkydinkelectronics, certaines couleurs sont inversées. J'ai l'impression que les sous-pixels rouge et bleu sont inversés.
La couleur VGA_RED donne un écran bleu avec la commande myGLCD.fillScr ( VGA_RED );
La couleur VGA_BLUE donne un écran rouge avec la commande myGLCD.fillScr ( VGA_BLUE );
La couleur VGA_LIME donne un écran vert avec la commande myGLCD.fillScr ( VGA_LIME );
Voilà le code qui permet d'avoir ce qui est visible sur les vidéos, la seule chose qui change c'est la librairie UTFT :
// Fichier pour tester les fonctions d'affichage
#include <UTFT.h>
#include <UTFT_Geometry.h>
// Déclaration de l'écran LCD
UTFT myGLCD ( SSD1963_800, 38, 39, 40, 41 ); // (byte model, int RS, int WR, int CS, int RST, int SER)
UTFT_Geometry geo ( &myGLCD );
extern unsigned int DC[];
extern unsigned int DQ[];
extern unsigned int GC[];
extern unsigned int GD[];
extern unsigned int NL[];
extern unsigned int PC[];
extern unsigned int PL[];
extern unsigned int PQ[];
void setup() {
// === INITIALISATOIN ===
Serial.begin ( 115200 );
Serial3.begin ( 115200 ); // baudrate par défaut de l'ESP8266
Serial.println ( F ( "===== DÉBUT DU SETUP =====" ) );
// On s'occupe de l'écran TFT
Serial.println ( F ( "Allumage de l'écran LCD..." ) );
myGLCD.InitLCD();
pinMode ( 8, OUTPUT ); //backlight
digitalWrite ( 8, HIGH ); //on
Serial.println ( F ( "Initialisation de l'écran LCD..." ) );
// -- Fin Affichage Heure
Serial.println ( F ( "===== FIN DU SETUP =====" ) );
}
void loop() {
// pour le moment rien dedans
myGLCD.clrScr();
myGLCD.fillScr ( 0, 255, 255 );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setBackColor ( VGA_TRANSPARENT );
myGLCD.setColor ( 0, 0, 0 );
myGLCD.print ( "RGB = 0,255,255 ---- CYAN", CENTER, 40 );
delay ( 2000 );
myGLCD.fillScr ( VGA_FUCHSIA );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setColor ( 0, 0, 0 );
myGLCD.print ( "VGA FUCHSIA", CENTER, 40 );
delay ( 2000 );
myGLCD.fillScr ( VGA_AQUA );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setColor ( 0, 0, 0 );
myGLCD.print ( "VGA AQUA", CENTER, 40 );
delay ( 2000 );
myGLCD.fillScr ( VGA_YELLOW );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setColor ( 0, 0, 0 );
myGLCD.print ( "VGA YELLOW", CENTER, 40 );
delay ( 2000 );
myGLCD.fillScr ( VGA_WHITE );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setColor ( 0, 0, 0 );
myGLCD.print ( "VGA WHITE", CENTER, 40 );
delay ( 2000 );
myGLCD.fillScr ( VGA_BLACK );
myGLCD.setFont ( Grotesk24x48 );
myGLCD.setColor ( 255, 255, 255 );
myGLCD.print ( "VGA BLACK", CENTER, 40 );
delay ( 2000 );
}
Vidéo faite avec la vieille version de la librairie UTFT (celle du site d'achat de l'écran) : UTFT vieille version = pas de soucis - YouTube
Vidéo faite avec la dernière version de la librairie UTFT (celle du site rinkydinkelectronics) : UTFT dernière version = inversion sous-pixels rouge et bleu - YouTube
Du coup je vais devoir utiliser la version le UTFT qui fonctionne, mais comme vous l'avez-vu dans les vidéos, l'affichage est moins rapide qu'avec la dernière version. Ce ne sera vraisemblablement pas un problème, mais bon...
Si quelqu'un de super calé pouvait me dire pourquoi il y a ces inversions avec la dernière version... je lui en serais reconnaissant...
Du coup, au-delà de ce petit soucis de couleurs, je suis en train de voir comment découper en zone l'écran, et ce que je vais vouloir afficher comme valeurs... et peut-être faire un petit graphique d'évolution de la température, ou pour les prévisions dans les prochains jours...
Voilà voilà.
++ Miles