Créer une station météo avec Raspberry Pi

Lorsque j’ai acheté mon premier Raspberry Pi il y a de ça 10 mois maintenant, je ne voulais m’en servir que pour faire du logiciel. A force de lecture sur différents sites et forum, l’électronique a commencé à me donner envie. Aujourd’hui, nous allons donc parcourir ensemble mon premier projet : une station météo avec sondes sans fil.

Alors pourquoi une station météo. C’est certainement le projet le plus courant et le moins original que l’on puisse trouver ! Chacun y va de son système de capture, de ses sondes, de son stockage. Mais le principe reste le même : savoir combien il fait dans votre maison/appartement et/ou à l’extérieur.

J’ai donc défini mon besoin :

  • Mesurer la température extérieure et intérieure
  • Les sondes doivent communiquer sans fil. Pas question pour Madame de voir passer des fils dans tous les sens juste pour avoir des °C affichés.

Ma recherche m’a amené sur ce post, très bien fait et qui est utilisé à 90% pour ma station météo avec le Raspberry Pi. Les composants sont simples à utiliser, certes un peu cher mais pour un ultra novice comme moi, ça aide à se rassurer dans ces premiers pas. Voici donc ce que j’ai commandé chez Ciseco :

  • 3 x XRF wireless RF radio UART RS232 serial data module XBee shape (29.70£ les trois)
  • 2 x Sensor – Temperature XRF development sensor – THERMISTOR (14.16£ les deux)
  • 1 x Slice of pi – add on for Raspberry PI (3.25£ l’unité)

On arrive donc à une somme de 47.11£, plus 10£ de frais de port et la mauvaise surprise la TVA à ajouter qui s’élève à 11.42£. Un total de 68.53£ soit 80€. Ouch. Je trouve ça un peu cher pour seulement deux sondes mais j’étais quasi certain d’arriver au bout !

Voici ce à quoi je voulais arriver :

 

Une fois le matériel reçu, il a fallu

  • assembler la carte principale Slice Of Pi : toutes les infos ici
  • configurer chaque émetteur XRF : toutes les infos ici
  • assembler les sondes et les configurer pour communiquer : toutes les infos ici

Les premiers essais ont affiché les températures. Un grand succés en soi !

L’étape suivante a été l’automatisation de la récupération. Pour ça un script Python (une première aussi) tourne en boucle pour scanner l’arrivée des températures. Le script est disponible ici. Il charge toutes les infos (y compris le niveau de la batterie) dans une base de données SQLite (toujours une première pour moi habitué à Oracle ou jBase).

Le stockage des données étant en cours, il reste la représentation de ces informations dans quelque chose de pas trop neuneu. Pas mal de choix possibles mais je suis parti sur une simple interface web avec les framework bootstrap et highcharts pour rendre cette station météo Raspberry Pi un peu plus sexy.

Le serveur Web est un grand classique avec NGinx avec un support PHP (tutoriel pour l’installer sur cette page). La configuration du site qui est sur le port 80 chez moi est la suivante :

server {
  listen 80;
  root /var/www;
  index index.php;
  server_name localhost;
  location / {
    try_files $uri $uri/ /index.php;
  }
  location ~ \.php$ {
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
 }
}

Le site web en lui même ne contient qu’une seule page. Les graphiques en haut, l’éphéméride et les mesures en bas. J’ai essayé de le rendre générique donc l’ajout d’une nouvelle sonde, dès qu’elle est insérée dans la table Emetteurs de votre base, elle doit apparaitre sous les graphiques.

Enfin l’éphéméride. Pour ça je vais chercher la page d’accueil de Météo France pour récupérer la fête du jour, les horaires de lever et coucher du soleil et de la lune. Le tout via un script Python exécuté tous les jours à 2h du matin via crontab (télécharger le script)

Une évolution possible serait d’ajouter une zone pour les prévisions mais c’était pas le but initial.

[EDIT] C’était pas le but initial mais je suis quand même en train d’ajouter les informations de Open Weather sur un nouveau graphique

[EDIT2] Le script de mise à jour de l’éphéméride a été refait grâce à Jimmy. Le nouveau layout de Météo France est maintenant géré. Merci à lui !

1 réflexion au sujet de « Créer une station météo avec Raspberry Pi »

  1. Bonjour,
    Merci pour cet article fort intéressant. Je crois qu’il manque le lien pour le script python à lancer via cron.
    Bonne journée,
    S.

    Répondre

Laisser un commentaire