Ecran permanent pour station Netatmo

Medium gmcmvgaxmebrcnfhlmp4

Difficulté:

La temparature, l’humidité, le CO2, en temps réel sans votre mobile


La station Netatmo ne dispose pas d’écran. Il faut utiliser son ordinateur, mobile ou tablette pour consulter la température, humidité, CO2, pluviometrie, etc…
J’ai envie d’avoir un écran qui montre en permanence les informations de la station Netatmo.
C’est donc l’objet de ce projet.

Matériel

Budget:

0 €

J’ai utilisé:
– Arduino Uno
– Shield Ethernet Arduino (trop de difficultés à faire fonctionner un shield pas officiel)
– shield ecran TFT de chez Adafruit

Etape 1 : Solution

Medium ox7v0ywkpqosfsjrghbw

Les données de la station sont stocké dans le nuage sur les serveurs de Netatmo.
Netatmo met à disposition une API pour accéder à ses données (https://dev.netatmo.com/dev/resources/technical/reference/weatherstation/getstationsdata).
La difficulté vient du fait que pour accéder à l’API, il faut une connexion SSL et l’Arduino n’est pas assez puissant pour faire du HTTPS.
Ainsi, l’astuce est de passer par un script PHP qui va se connecter au serveur Netatmo avec le niveau de sécurité nécessaire sur demande de l’Arduino.
Pour héberger votre script PHP, vous pouvez utiliser un PC, une box de type Synology, ou un serveur chez OVH par exemple (disponible pour quelques euros seulement).

Le script PHP est fourni en téléchargement dans cette étape. Il est fortement inspiré d’un script trouvé sur Internet pour résoudre exactement le même problème.

L’Arduino va appeler le script PHP. Le script PHP va aller chercher les données sur le serveur de Netatmo. Le script va construire une chaine de caractère avec chaque valeur séparée par un #. L’Arduino va décoder la chaine pour récupérer les valeurs.

Il faut adapter le script pour récupérer les valeurs des modules de sa station.

http://blog.ouiaremakers.com/wp-content/uploads/formidable/netatmo2016anonym.zip

Etape 2 : Interface

Medium zwbvnwlbbydkpdurkavr

Je suis parti sur une interface simple avec un minimum d’informations :
– Température externe et interne (sans décimales)
– Humidité externe et interne
– CO2
– Pression atmosphérique
J’ai donc laissé de coté la pluvio, le bruit, etc…

==> La station met les données à jour toute les 5 minutes sur Internet. Donc l’afficheur fait de même. En bas à gauche, j’affiche 9 petit carrés à heuteur de 1 carré toute les 30 secondes. Cela permet de savoir si le rafraichissement des données est proche ou non.

==> Les températures et pression disposent d’un indicateur de tendance. J’affiche donc un triangle vers le haut ou le bas pour afficher la tendance.

Etape 3 : Dégradé de couleur

Medium ufse6nb9kcwra6tyarq7

Je nuance chaque valeur par la couleur de sa case.
Pour cela, j’ai construit une échelle de couleur sur 65 niveaux (bleu – cyan – vert – jaune – rouge).
La construction des couleurs se fait sur 16 bits (5 pour le rouge, 6 pour le vert et 5 pour le bleu).
Le tableau XLS en pièce jointe m’a permis de construire une échèle sur mesure (le tableau permet de saisir des valeurs RGB et d’obtenir le codage sur 16 bits.

==> le tableau des couleurs est le suivant :
int _Colors[65] = {0x7BFF, 0x7C3F, 0x7C7F, 0x7CBF, 0x7CFF, 0x7D3F, 0x7D7F, 0x7DBF, 0x7DFF, 0x7E3F, 0x7E7F, 0x7EBF, 0x7EFF,
0x7F3F, 0x7F7F, 0x7FBF, 0x7FFF, 0x7FFE, 0x7FFD, 0x7FFC, 0x7FFB, 0x7FFA, 0x7FF9, 0x7FF8, 0x7FF7, 0x7FF6,
0x7FF5, 0x7FF4, 0x7FF3, 0x7FF2, 0x7FF1, 0x7FF0, 0x7FEF, 0x87EF, 0x8FEF, 0x97EF, 0x9FEF, 0xA7EF, 0xAFEF,
0xB7EF, 0xBFEF, 0xC7EF, 0xCFEF, 0xD7EF, 0xDFEF, 0xE7EF, 0xEFEF, 0xF7EF, 0xFFEF, 0xFFAF, 0xFF6F, 0xFF2F,
0xFEEF, 0xFEAF, 0xFE6F, 0xFE2F, 0xFDEF, 0xFDAF, 0xFD6F, 0xFD2F, 0xFCEF, 0xFCAF, 0xFC6F, 0xFC2F, 0xFBEF};

http://blog.ouiaremakers.com/wp-content/uploads/formidable/couleur-16-bits.xlsx

Etape 4 : Brochage

Medium oefmyzxgaccfomfycfoi

Un autre soucis rencontré est un conflit entre les broches de l’afficheur TFT et du shield Ethernet.
J’ai donc dérouté la broche sur une voisine.

Etape 5 : Le programme

Bwjfybcwejejcaejzlss

Le programme Arduino n’a pas de difficulté particulière.
Il est présenté en piece jointe.
Il occupe 90% de la mémoire. Ainsi, certaines fonctions de débug ou de construction sont en commentaire.
J’ai laissé une fonction qui affiche une grille permettant d’ajuster l’IHM.
Il y a aussi une fonction qui affiche le dégradé de couleur (photo étape précédente).

Le SETUP fait :
– l’initialisation du shield Ethernet

Le LOOP est très simple :
– récupération des données internet
– décodage de la chaine de caractère pour remplir les variables
– affichage des cases de couleurs
– tempo de 5 minutes avec les 9 carrés de progression

http://blog.ouiaremakers.com/wp-content/uploads/formidable/NETATMO_INTERNET_anonym.ino

Etape 6 : Améliorations

Plein d’améliorations à venir :

– une joli boite pour l’électronique
– modifier le script PHP pour identifier si la station Netatmo a bien envoyée de nouvelles données (pour éviter d’afficher des vieilles données)
– Afficher les cases en gris si les données récupérées via le script PHP sont périmées
– améliorer la gestion Ethernet pour avoir une meilleure reprise sur erreur
– faire de nouvelles fontes plus lisses

Vous aimez ce tutoriel ?


Amor

08 août 2016 à 14:10

Bonjour, pourriez vous mettre à jour le lien pour le script, svp? (http://ouiaremakers.com/wp-content/uploads/formidable/netatmo2016anonym.zip)
Merci d'avance


Gotronic

Voir l'espace DIY gotronic


S'inscrire:


  • Vues: 696
  • J'aime: 5