Station météo DIY Raspberry Pi complète avec logiciel
À la fin de février, j'ai vu ce message sur le site Raspberry Pi.
//www.raspberrypi.org/school-weather-station -...
Ils avaient créé des stations météorologiques Raspberry Pi pour les écoles. J'en voulais absolument un! Mais à ce moment-là (et je crois encore au moment d'écrire ceci), ils ne sont pas accessibles au public (vous devez faire partie d'un groupe restreint de testeurs). Eh bien, je voulais continuer et je n'avais pas envie de débourser des centaines de dollars pour un système tiers existant.
Donc, comme un bon utilisateur Instructable, j'ai décidé de faire le mien !!!
J'ai fait quelques recherches et trouvé de bons systèmes commerciaux sur lesquels je pouvais baser les miens. J'ai trouvé de bons instructables pour aider avec certains des concepts de capteur ou de framboise PI. J'ai même trouvé ce site, qui était payant, ils avaient démoli un système Maplin existant:
//www.philpot.me/weatherinsider.html
Avance rapide d'environ un mois et j'ai un système de travail de base. Il s'agit d'un système météorologique Raspberry Pi complet avec uniquement le matériel de base du Raspberry Pi, un appareil photo et divers capteurs analogiques et numériques pour effectuer nos mesures. Aucun achat d'anémomètres préfabriqués ou de pluviomètres, nous fabriquons les nôtres! Voici ses fonctionnalités:
- Enregistre les informations sur RRD et CSV, donc peut être manipulé ou exporté / importé vers d'autres formats.
- Utilise l'API Weather Underground pour obtenir des informations intéressantes telles que les hauts et les bas historiques, les phases de la lune et le lever / coucher du soleil.
- Utilise la caméra Raspberry Pi pour prendre une photo une fois par minute (vous pouvez ensuite les utiliser pour faire des accélérations).
- A des pages Web qui affichent les données des conditions actuelles et certains historiques (dernière heure, jour, 7 jours, mois, année). Le thème du site Web change avec l'heure de la journée (4 options: lever, coucher du soleil, jour et nuit).
Tous les logiciels pour enregistrer et afficher les informations sont dans un Github, j'ai même fait un suivi des bogues, des demandes de fonctionnalités également:
//github.com/kmkingsbury/raspberrypi-weather ...
Ce projet a été une excellente expérience d'apprentissage pour moi, j'ai vraiment pu plonger dans les capacités du Raspberry Pi, en particulier avec le GPIO, et j'ai également rencontré des problèmes d'apprentissage. J'espère que vous, le lecteur, pourrez apprendre de certaines de mes épreuves et tribulations.
Étape 1: Matériaux




Électronique:
- 9 interrupteurs à lames (8 pour la direction du vent, 1 pour le pluviomètre, éventuellement 1 pour la vitesse du vent au lieu d'un capteur à effet Hall), je les ai utilisés: //amzn.to/2RExNkT
- 1 capteur à effet Hall (pour la vitesse du vent, appelé anémomètre) - //amzn.to/38tIQTK
- Température (//amzn.to/2RIHf6H)
- Humidité (beaucoup de capteurs d'humidité sont livrés avec un capteur de température), j'ai utilisé le DHT11: //amzn.to/2PapjQU
- Pression (le BMP est également livré avec un capteur de température), j'ai utilisé le BMP180, //www.adafruit.com/product/1603, ce produit est maintenant arrêté mais il y a un équivalent avec le BMP280 (// amzn. à / 2E8nmhi)
- Photorésistance (//amzn.to/2seQFwd)
- Puce GPS ou GPS USB (//amzn.to/36tZZv3).
- 4 aimants puissants (2 pour l'anémomètre, 1 pour la direction, 1 pour le pluviomètre), j'ai utilisé les aimants aux terres rares, fortement recommandés) (//amzn.to/2LHBoKZ).
- Une poignée de résistances assorties, j'ai ce pack qui s'est avéré extrêmement pratique au fil du temps: //www.sparkfun.com/products/10969
MCP3008 - pour convertir des entrées analogiques en numériques pour le Raspberry Pi - //amzn.to/38rtLCa
Matériel
- Raspberry Pi - J'utilisais à l'origine le 2 avec un adaptateur sans fil, maintenant je reçois également le kit 3 B + avec adaptateur secteur. (//amzn.to/2P76Mop)
- Pi Camera //amzn.to/2LGDFGz
- Un solide adaptateur secteur 5V (cela s'est avéré douloureusement ennuyeux, j'ai finalement obtenu celui d'Adafruit, sinon la caméra tire trop de jus et peut / va accrocher le Pi, c'est ici: //www.adafruit.com/products/501 )
Matériaux:
- 2 roulements de poussée (ou les roulements de planche à roulettes ou de patins à roulettes fonctionneront également), je les ai sur Amazon: //amzn.to/2siMwra
- 2 boîtiers étanches (j'ai utilisé un boîtier électrique du magasin à grande surface local), peu importe, il suffit de trouver un boîtier de bonne taille qui aura suffisamment d'espace et protégera tout).
- Certains tuyaux et embouts en PVC (différentes tailles).
- Supports de montage en PVC
- Quelques feuilles de plexiglas mince (rien de trop chic).
- entretoises en plastique
- mini vis (j'ai utilisé des boulons et des écrous n ° 4).
- 2 Ornement d'arbre de Noël en plastique - utilisé pour l'anémomètre, j'ai obtenu le mien au Hobby Lobby local.
- Petite cheville
- Petit morceau de contreplaqué.
Outils:
- Dremel
- Pistolet à colle
- Fer à souder
- Multimètre
- Percer
Étape 2: Boîtier principal - Pi, GPS, appareil photo, lumière













L'enceinte principale abrite le PI, la caméra, le GPS et le capteur de lumière. Il est conçu pour être étanche car il abrite tous les composants critiques, les mesures sont prises à partir de l'enceinte à distance et que l'un est conçu pour être exposé / ouvert aux éléments.
Pas:
Choisissez un boîtier, j'ai utilisé une boîte de jonction électrique, diverses boîtes de projet et des boîtiers étanches fonctionneront tout aussi bien. Le point clé est qu'il a suffisamment d'espace pour tout contenir.
Mon boîtier contient:
- Le Raspberry Pi (sur les entretoises) - A besoin d'une puce WIFI, ne veux pas exécuter Cat5e dans la cour!
- La caméra (également en attente)
- La puce GPS, connectée via USB (à l'aide d'un câble FTDI sparkfun: //www.sparkfun.com/products/9718) - Le GPS fournit la latitude et la longitude, ce qui est bien, mais plus important encore, je peux obtenir l'heure exacte du GPS !
- deux prises Ethernet / cat 5 pour connecter le boîtier principal à l'autre boîtier qui abrite les autres capteurs. C'était juste un moyen pratique d'avoir des câbles entre les deux boîtiers, j'ai environ 12 fils et les deux cat5 fournissent 16 connexions possibles, j'ai donc de la place pour étendre / changer les choses.
Il y a une fenêtre à l'avant de mon boîtier pour que la caméra puisse voir dehors. Le boîtier avec cette fenêtre protège l'appareil photo, mais j'ai eu des problèmes où le voyant rouge sur l'appareil photo (lorsqu'il prend une photo) se reflète sur le plexiglas et apparaît sur la photo. J'ai utilisé du ruban noir pour atténuer cela et essayer de le bloquer (et d'autres LED du Pi et du GPS), mais ce n'est pas encore à 100%.
Étape 3: «boîtier à distance» pour la température, l'humidité et la pression






C'est là que j'ai stocké les capteurs de température, d'humidité et de pression ainsi que les «raccords» pour le pluviomètre, la direction du vent et les capteurs de vitesse du vent.
Tout est très simple, les broches se connectent ici via les câbles Ethernet aux broches requises sur le Raspberry Pi.
J'ai essayé d'utiliser des capteurs numériques où je pouvais et puis n'importe quel analogique est ajouté au MCP 3008, il faut jusqu'à 8 analogiques, ce qui était plus que suffisant pour mes besoins, mais donne de la place pour s'améliorer / s'étendre.
Cette enceinte est ouverte à l'air (elle doit l'être pour une température, une humidité et une pression précises). Les trous inférieurs sont sortis, j'ai donc donné à certains des circuits une pulvérisation d'un spray de revêtement conforme au silicone (vous pouvez l'obtenir en ligne ou dans un endroit comme Fry's Electronics). J'espère que cela devrait protéger le métal de toute humidité, mais vous devez être prudent et ne pas l'utiliser sur certains capteurs.
Le haut de l'enceinte est également l'emplacement du capteur de vitesse du vent. C'était un coup sec, j'aurais pu mettre la vitesse ou la direction du vent au dessus, je ne voyais aucun avantage majeur l'un par rapport à l'autre. Dans l'ensemble, vous voulez que les deux capteurs (direction du vent et vitesse) soient suffisamment élevés pour que les bâtiments, les clôtures et les obstacles n'interfèrent pas avec les mesures.
Étape 4: Pluviomètre








J'ai surtout suivi cette instruction pour rendre la jauge réelle:
//www.instructables.com/id/Arduino-Weather-St ...
J'ai fait ça en plexiglas pour voir ce qui se passait et j'ai pensé que ce serait cool. Dans l'ensemble, le plexiglas a bien fonctionné, mais combiné avec le pistolet à colle, le scellant en caoutchouc et la coupe et le perçage globaux, il ne reste pas aussi intact, même avec le film protecteur.
Points clés:
- Le capteur est un simple interrupteur à lames et un aimant traité comme une pression sur un bouton dans le code RaspberryPi, je compte les seaux au fil du temps, puis je fais la conversion plus tard en "pouces de pluie".
- Faites-le assez grand pour contenir suffisamment d'eau pour basculer, mais pas tellement qu'il en faut beaucoup pour basculer. Lors de mon premier passage, j'ai fait que chaque plateau n'était pas assez grand pour qu'il se remplisse et commence à s'écouler sur le bord avant de basculer.
- J'ai également constaté que l'eau résiduelle pouvait ajouter une erreur à la mesure. Ce qui signifie, complètement sec, il a fallu X gouttes pour remplir un côté et l'incliner, une fois mouillé, il a fallu Y gouttes (ce qui est inférieur à X) pour remplir et incliner. Pas une énorme quantité, mais est entré en vigueur lorsque vous essayez de calibrer et d'obtenir une bonne mesure "1 charge égale à combien".
- Équilibrez-le, vous pouvez tricher en ajoutant de la colle au pistolet sous les extrémités si un côté est beaucoup plus lourd que l'autre, mais vous en avez besoin aussi près que possible de l'équilibre.
- Vous pouvez voir sur la photo que j'ai installé un petit banc d'essai à l'aide d'éponges et d'un support en bois pour tester et obtenir un équilibre correct avant l'installation.
Étape 5: Direction du vent











C'était une simple girouette. J'ai basé l'électronique sur le système Maplin:
//www.philpot.me/weatherinsider.html
Points clés:
- Il s'agit d'un capteur analogique. Les huit commutateurs reed combinés à diverses résistances divisent la sortie en morceaux afin que je puisse identifier la coordonnée du capteur par la valeur. (Le concept est expliqué dans cet instructable: //www.instructables.com/id/Accessing-5-button ...
- Après avoir vissé la partie girouette, vous devez la calibrer de sorte que "cette direction indique ce qui pointe vers le nord".
- J'ai fait un banc d'essai avec du bois pour pouvoir facilement activer et désactiver des résistances qui couvraient toute la gamme de valeurs pour moi, c'était super utile!
- J'ai utilisé un palier de butée, il a bien fonctionné, je suis sûr qu'un roulement de planche à roulettes ou de patin à roulettes normal aurait été tout aussi bien.
Étape 6: Vitesse du vent






Celui-ci, je me suis à nouveau tourné vers la communauté Instructable et j'ai trouvé et suivi cet instructable:
//www.instructables.com/id/Data-Logging-Anemo ...
Points clés:
- Vous pouvez également utiliser le capteur à effet Hall ou passer à un capteur Reed. Le capteur à effet Hall est plus un capteur analogique, donc si vous l'utilisez de manière numérique, comme une pression sur un bouton, vous devez vous assurer que la lecture / la tension est suffisamment élevée pour agir comme une véritable pression sur un bouton, plutôt que pas assez. .
- La taille de la tasse est cruciale, tout comme la longueur du bâton! À l'origine, j'utilisais des balles de ping-pong et elles étaient bien trop petites. Je les ai également mis sur de longs bâtons qui ne fonctionnaient pas non plus. J'ai été très frustré, puis j'ai trouvé cet enseignement, Ptorelli a fait un excellent travail et cela m'a aidé lorsque ma conception originale ne fonctionnait pas aussi bien.
Étape 7: Logiciel


Le logiciel est écrit en Python pour enregistrer les données des capteurs. J'ai utilisé d'autres bibliothèques Git tierces d'Adafruit et d'autres pour obtenir les informations des capteurs et du GPS. Il existe également des tâches cron qui extraient également certaines informations de l'API. La plupart est expliqué / décrit dans la documentation de Git sur docs / install_notes.txt
Le logiciel Web est en PHP pour l'afficher sur la page Web tout en utilisant YAML pour les fichiers de configuration et bien sûr l'outil RRD pour stocker et représenter graphiquement les données.
Il utilise l'API Weather Underground pour obtenir certaines des données intéressantes que les capteurs ne peuvent pas extraire: Record Hi's and Lows, Phase of the Moon, Sunset and Sunrise times, il y a aussi des marées disponibles sur leur API, que je pensais vraiment bien, mais j'habite à Austin TX qui est très loin de l'eau.
Tout cela est disponible sur Github et est activement maintenu et actuellement utilisé pendant que je perfectionne et calibre mon propre système, afin que vous puissiez également soumettre des demandes de fonctionnalités et des rapports de bogues.
Le logiciel passe par un changement de thème en fonction de l'heure de la journée, il y a 4 étapes. Si l'heure actuelle est + ou - 2 heures du lever ou du coucher du soleil, vous obtiendrez respectivement les thèmes du lever et du coucher du soleil (pour l'instant, juste un arrière-plan différent, je ferai probablement différentes couleurs de police / bordure à l'avenir). De même en dehors de ces plages donne le thème jour ou nuit.
Merci d'avoir lu, Si vous souhaitez voir plus de photos et de vidéos de mes projets que de consulter ma chaîne Instagram et YouTube.