Résumé du projet :
- Récupérer certaines infos sur Internet
- Récupérer des infos locales
- Créer une image avec ses infos
- Afficher l’image
Vous vous souvenez du thermostat pour mon radiateur électrique ? Bien. Ce Raspberry Pi avait donc 2 rôles : faire des acquisitions de températures pour les envoyer à un serveur qui log ces données pour la postérité et, en fonction d’un fichier de consigne, piloter un radiateur pour choisir quelle commande de chauffage il doit utiliser, en fonction de la température ambiante et de l’heure (chauffer pendant la journée en semaine, c’est pas cool avec Dame Nature).
Bref, c’est un Raspberry Pi qui se tourne un peu les pouces. Et c’est là qu’intervient le recyclage d’un écran Adafruit (2.8′, tactile, avec des boutons en dessous, non utilisé dans mon cas … pour le moment) qui dormait dans une boite parce que je n’avais pas pu l’utiliser sur mon robot comme prévu.
Un boitier adapté (Adafruit également) et un peu de code plus tard, voilà tout plein d’info pertinente afficher sur l’écran !
On y voit donc :
- La date
- L’heure
- La température interne
- L’état de la commande de chauffage
- La température extérieure, le taux d’humidité relative, la vitesse du vent, et la date d’acquisition de ses trois infos.
Cette dernière ligne est en fait issue d’un site qui recense plein de donnée météo, le National Oceanic and Atmospheric Administration. Il existe sous Debian l’outil weather-util permettant de récupérer ces infos en utilisant le nom de la station météo, son code d’immatriculation, ou bien des coordonnées dans votre petit terminal. Vous trouverez des détails sur son utilisation ici. Cela dit, je me suis rendu compte qu’en tapant http://weather.noaa.gov/pub/data/observations/metar/decoded/XXXX.TXT dans votre navigateur internet on peut récupérer les mêmes infos, il suffit de remplacer XXXX par le code de la station, trouvable via le site weather.nooa.gov. Avec un simple wget on récupère un TXT, il ne reste plus qu’à le traiter.
Concernant le traitement des données, j’ai fait un bout de code en C qui récupère le .TXT, le décode pour récupérer les données (température/humidité/vent/horodatage), récupère les infos de la sonde locale (réutilisation du code du thermostat), et on passe tous ces paramètres dans la commande « convert » venant du package debian « imagemagick » qui va afficher tout plein de texte sur un fond noir (Détails ici).
Pour utiliser l’écran, il faut avoir installé les petits package prévu par Adafruit (le tuto ici) et lancer la commande permettant d’envoyer l’image. Avec un cron toutes les minutes, ça permet d’afficher un résumé météo rapide.
Et voilà le travail ! Il faudrait encore modifié la plaquette d’essai histoire de rendre ça encore plus joli. Voir même afficher sur l’image de fond un graph de la température, changer l’afficher avec les boutons, ou que sais-je encore !