Station météo Raspberry Pi 2
Notre hackerspace (Bloominglabs) a récemment reçu une station météo ADS-WS1 d'un généreux bienfaiteur. De plus, nous avons été sélectionnés par Instructables pour le hackathon Raspberry Pi 2, nous avons donc pu pirater des RPi2. Pour mon projet, j'ai décidé d'utiliser un RPi2 pour mettre notre station météo en ligne.
Notre station peut mesurer la direction du vent, la vitesse du vent, la pluie, la température et l'humidité. L'unité peut émettre des données de plusieurs manières, y compris en série. J'avais besoin d'un moyen de lire les données et de les faire descendre du poteau et sur notre réseau. Le Raspberry Pi 2 le fera très bien avec une connexion PoE à un boîtier étanche sur le mât.
Étape 1 : liste des pièces
1) Station météo ADS-WS1 (toute station météo prenant en charge la sortie de données série fonctionnera cependant)
2) Raspberry Pi (n'importe quelle version fonctionnera, nous avons utilisé la version 2)
3) Adaptateur série vers USB
4) Câble série avec au moins une coque DB9 femelle
5) Ethernet - assez pour atteindre votre station météo extérieure
6) Alimentation 5V, 1-2A
7) Enclos extérieur
Facultatif mais recommandé :
8) Parasurtenseur Ethernet
9) Adaptateurs d'injection Power-Over-Ethernet
La première chose à acquérir est une station météo. J'ai utilisé une station ADS-WS1 d'Argent Data mais ce n'est pas obligatoire. Cependant cet appareil est très bien documenté et dispose également d'un TNC intégré pour la diffusion des données météo via APRS (si vous le raccordez à un radio amateur). Cependant, ce n'est pas nécessaire pour ce que je fais, tout ce dont j'ai besoin est une sortie de port série pour lire les données. La consommation d'énergie n'est que de 50 mA, elle peut donc être alimentée par le RPi ou en séparant l'alimentation du RPi.
http://wiki.argentdata.com/index.php?title=ADS-WS1…
Étape 2 :Configurer un système d'exploitation sur le Rasperry Pi 2
Vous pouvez utiliser n'importe quel système d'exploitation, mais j'ai utilisé Raspbian 7.1 sur une carte SD de 8 Go. Suivez les instructions pour le système d'exploitation à partir duquel vous travaillez :
https://www.raspberrypi.org/documentation/installa…
Une fois que vous avez préparé votre carte SD, installez-la dans le RPi2 et allumez-la. Il est utile d'avoir une console locale (écran prenant en charge HDMI et un clavier USB). Raspbian devrait utiliser DHCP par défaut et accéder à votre réseau si vous avez un routeur. Cependant, j'ai trouvé que c'était aléatoire.
Le reste de ce document suppose que vous avez une certaine connaissance de base de Linux, les documents Raspberry Pi sont très bons si vous rencontrez des problèmes pour obtenir votre configuration RPi2 à partir d'ici :
https://www.raspberrypi.org/documentation/
Une dernière chose pour cette étape est de brancher votre adaptateur USB-série. En supposant qu'il s'agisse d'un FTDI standard ou d'un autre périphérique série vers USB courant, Raspbian le configurera automatiquement. Après l'avoir branché, vous devriez voir un nouveau périphérique /dev/ttyUSBx apparaître.
[email protected] ~ $ ls /dev/ttyUSB*/dev/ttyUSB0
En supposant que ce soit le seul périphérique USB vers série branché, ce sera /dev/ttyUSB0. La commande « lsusb » affichera tous vos périphériques USB, ce qui peut vous aider à identifier le périphérique s'il ne s'affiche pas correctement :
[email protected] ~ $ lsusb
Bus 001 Device 002 :ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001 :ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 003 :ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 005 :ID 0403 : 6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Je préfère configurer une adresse IP statique car c'est une chose de moins à craindre de mal tourner lorsque le RPi2 est sur un poteau dans le ciel. Modifiez /etc/network/interfaces et modifiez cette ligne :
iface eth0 inet dhcp
À cette ligne :
iface eth0 inet statique
Et ajoutez ces lignes. Remplacez par l'adresse IP et la passerelle par les valeurs appropriées pour votre réseau :
adresse 192.168.x.xnetmask 255.255.255.0 passerelle 192.168.x.x
Installez maintenant le logiciel dont nous avons besoin, Apache2 pour un serveur Web et quelques autres utilitaires. Minicom est un bon outil pour vérifier que les communications série fonctionnent correctement, et wget permet de télécharger le script weather.sh dans la section suivante.
apt-get install apache2apt-get install wgetapt-get install minicom
Pour de futurs tests, je recommande de télécharger ce script :
wget -O weather.sh "http://server1.nuge.com/~weather/software/weather-...
Si, pour une raison quelconque, le lien ci-dessus échoue, vous pouvez trouver la dernière version du script weather.sh ici :
http://server1.nuge.com/~weather/
Enfin, vous devrez peut-être modifier votre fichier /etc/group et ajouter le compte « pi » ou le compte avec lequel vous testerez au groupe « dialout ». Cela donnera les autorisations appropriées au compte pour lire et écrire sur le périphérique série (/dev/ttyUSBx).
Étape 3 :Installez et configurez weewx, configurez les services pour démarrer au démarrage
Weewx est un programme qui lit les données en série de plusieurs marques de stations météo et présente une interface Web pour représenter graphiquement les données.
apt-get install weewx
Maintenant, vous voudrez le configurer. Modifiez /etc/weewx/weewx.conf et ajustez les variables qui ont du sens. Le fichier de configuration est auto-documenté, il est donc facile à personnaliser.
# $Id:weewx.conf 2901 05-02-2015 21:15:03Z tkeffer $## FICHIER DE CONFIGURATION WEEWX## Copyright (c) 2009-2014 Tom Keffer # Voir le fichier LICENSE.txt pour tous vos droits .################################################## ############################### Cette section est destinée aux informations générales sur la configuration# Défini sur 1 pour des informations de débogage supplémentaires, sinon commentez-le ou mis à zero.debug =0# Répertoire racine de la hiérarchie des fichiers de données weewx pour cette station.WEEWX_ROOT =/# Combien de temps attendre avant d'expirer une connexion socket (FTP, HTTP) :socket_timeout =20# Ne pas modifier ceci - il est utilisé par setup.py lors de l'installation et de la mise à jour.version =3.1.0################################## ##############################################[Station] # Cette La section est pour des informations sur votre station # Description de l'emplacement de la station. location ="Bloominglabs - Bloomington, Indiana" # Latitude et longitude en degrés décimaux...
Enfin, configurez apache2 et weewx pour démarrer au démarrage :
update-rc.d apache2 par défaut 99 2update-rc.d weewx par défaut 99 2
Désormais, ces services apparaîtront automatiquement à chaque mise sous tension du RPi2. Cela devrait concerner tout ce dont vous avez besoin pour votre RPi2.
Étape 4 :Préparez le câble série et les câbles d'alimentation
Vous n'avez besoin que de 3 fils plus 2 fils d'alimentation pour câbler le contrôleur. Sur ma photo, il y a des fils dans les 5 bornes à visser supérieures, ceux-ci servent à envoyer des données TNC/APRS à un radioamateur et ne sont pas nécessaires pour ce tutoriel.
Donc, vous devez d'abord connecter un câble série au contrôleur météo. Connectez votre câble à votre adaptateur série vers USB. Maintenant, coupez l'extrémité restante du câble série, assurez-vous de vous donner suffisamment de mou pour acheminer le câble au besoin et dénudez la gaine extérieure sur les fils d'au moins 2 pouces. Les fils individuels n'ont besoin d'être dénudés que d'environ 1/4″. Vous devrez utiliser un multimètre pour cartographier les broches du câble et trouver les fils qui correspondent aux broches 2, 3 et 5 des broches à l'intérieur de la coque DB9. Habituellement, si vous regardez attentivement, les numéros de broches sont répertoriés à côté des broches.
Le fil pour la broche 2 va à TXD1 sur le contrôleur.
Le fil pour la broche 3 va à RXD1 sur le contrôleur.
Le fil pour la broche 5 va à la masse sur le contrôleur.
Une fois que tout est câblé, vous avez besoin d'un peu d'énergie pour le contrôleur. Une batterie 9V fonctionnera très bien pour les tests, ou une alimentation 5V ou 12V. Câblez le positif jusqu'au « DC in » et le fil de terre à l'entrée GND inférieure du contrôleur.
J'ai utilisé une paire d'adaptateurs Power-over-Ethernet (PoE) pour cette installation. J'ai alimenté à la fois mon RPi2 et le contrôleur météo sur 5V, j'ai fabriqué un adaptateur pour l'extrémité distante afin de répartir l'alimentation entre eux. Étant donné que ce sera dans les éléments, j'ai utilisé une gaine thermorétractable pour rendre la connexion bien rangée et plus résistante aux intempéries. Même si tout cela sera dans une boîte étanche aux intempéries, cela ne fait pas de mal d'ajouter des couches de protection supplémentaires en cas de fuite.
Enfin, l'alimentation 5V du RPi2 est parfaite pour alimenter les deux appareils. En fait, vous pouvez couper le connecteur microUSB et l'utiliser à l'extrémité distante de l'adaptateur PoE.
Étape 5 :Vérifiez que vous pouvez lire les données de la station météo
Vous devriez maintenant pouvoir mettre le RPi2 et le contrôleur sous tension. Une fois qu'ils sont tous les deux sous tension, utilisez minicom pour vérifier que la communication fonctionne. Nous avons dû reflasher le firmware de notre contrôleur ADS-WS1 avant qu'il ne fonctionne correctement. Il existe une interface série interactive sur le contrôleur qui peut nécessiter une configuration. Argent maintient un wiki pour le contrôleur qui inclut les commandes que vous pouvez envoyer à l'unité :
http://wiki.argentdata.com/index.php?title=ADS-WS1…
Une fois que le contrôleur envoie des données régulières, essayez d'utiliser le script weather.sh. Cela devrait confirmer que vous obtenez des données intelligentes.
Étape 6 :Préparez l'équipement pour une utilisation en extérieur
Maintenant, vous devez tout mettre dans un type de conteneur pour conteneur extérieur. Techniquement, vous devriez construire un écran Stephenson pour assurer des lectures correctes de la température extérieure. Les capteurs de température et d'humidité se trouvent à l'intérieur du boîtier du contrôleur météo (avec une ouverture pour les lectures).
http://en.wikipedia.org/wiki/Stevenson_screen
J'ai utilisé un boîtier étanche en PVC NEMA 4 "pour le moment. L'inconvénient est que nous n'obtiendrons pas de lectures d'humidité et que les lectures de température diurnes peuvent être augmentées de 10 à 15 degrés F. À une date future, nous prévoyons de construire un écran Stephenson pour obtenir des lectures précises.
Pour plus de détails :Station météo Raspberry Pi 2
Processus de fabrication
- Station météo basée sur Raspberry Pi
- Station météo Raspberry Pi
- Surveillance à distance de la météo à l'aide de Raspberry Pi
- DHT Tiny Breakout pour Raspberry Pi
- Rejoignez l'IOT avec votre station météo – CWOP
- Télécommande universelle Raspberry Pi
- Une tranche de framboise Pi
- Cycle Chaser
- Détecteur de voleur Raspberry Pi