Il y a 3 ans, j’avais branché ma station météo d’abord sur une Fonera, puis ensuite sur un routeur Netgear WL500 afin d’envoyer les données météo sur un serveur. Ce montage très simple a été remis en cause par une panne « définitive » du routeur et par l’utilisation de la Fonera sur un autre projet. De plus il y avait quelques inconvénients: la consommation électrique du routeur et la présence d’un transformateur, le câble série…
Souhaitant à nouveau brancher ma station sur internet, j’ai décidé de changer de stratégie. Etant donné que je dispose d’un mini PC sous XBMC qui me sert de magnétoscope numérique, j’ai préféré envoyer les données météo sur ce PC. Il me fallait donc une liaison sans fil entre le PC et la station météo qui soit bi directionnelle et qui supporte la distance entre les 2 équipements.
J’ai à ma disposition 2 modules Xbee Pro 802.15.4 permettant le transport d’une liaison série TTL sur la bande des 2.4GHz.
Comme détaillé dans le précédent article sur la liaison avec la Fonera, il faut localiser à l’aide d’un oscilloscope les signaux TTL de la liaison série de la station. La sortie sur le côté étant à la norme RS232, elle ne convient pas, il faut trouver les signaux en amont du convertisseur RS232 formé ici par des transistors.
On localise sur la carte mère de la station météo 4 points: une masse (GND), une source de courant d’environ 3v (Vcc), le signal Tx et le signal Rx.
Les fils sont ensuite reliés à la carte supportant le module Xbee:
- Xbee Vcc <-> WS2305 3v
- Xbee GND <-> WS2305 GND
- Xbee Tx <-> WS2305 Rx
- Xbee Rx <-> WS2305 Tx
Le module Xbee normalement alimenté en 3.3v sera ici alimenté en 3.02 V, seule tension disponible sur la carte en dehors des 6v du bloc d’alim.
La carte mère de la station peut maintenant être réinstallée dans son boitier. Le module Xbee est relié par des fils d’une dizaine de centimètres, ce qui permettra de lui trouver une place dans la station.
Le seul emplacement disponible et accessible facilement pour y placer le module c’est le compartiment des piles. Celui-ci n’étant pas utilisé lorsque la station est alimentée par le secteur, le logement est un candidat parfait. La carte d’accueil du module Xbee est collée avec de la colle à chaud au fond du compartiment.
Le module Xbee nécessite juste de plier délicatement l’antenne pour pourvoir refermer le compartiment des piles.
Voilà pour la station météo. Côté PC, nous utilisons un autre module Xbee sur une carte fille (Xbee Explorer chez Sparkfun ) disposant d’un port USB.
Le module est alors vu comme un convertisseur USB / Série FTDI.
usb 4-5: FTDI USB Serial Device converter now attached to ttyUSB0
Afin de permettre aux deux modules de communiquer, il faut configurer quelques paramètres:
- Les adresses des modules.
- La puissance du signal.
- La vitesse du port série.
La configuration se fait sous windows ( 🙁 ) à l’aide de l’utilitaire X-CTU.
Il faut d’abord régler les adresses des modules.
On paramétrera « Destination Address Low » à 1 pour le module de la station et « 16 bits source Address » à 2. Sur le module de réception du PC, il faut faire l’inverse c’est à dire « Destination Address Low » à 2 et « 16 bits source Address » à 1.
Les deux modules peuvent alors communiquer entre eux. On peut aussi utiliser une adresse de broadcast mais je n’en voie pas l’intérêt ici.
Ensuite il faut définir la puissance « Power Level » au maximum ( 4 ) ou non suivant vos besoins, ainsi que la vitesse du port série, identique à celle de la station météo (2400 Bps)
Nous avons terminé pour la partie électronique.
Côté logiciel, on va utiliser Open2300, un ensemble d’outils pour récupérer les données en provenance de la station. Il suffira de compiler les sources avec un simple « Make ». Si vous souhaitez stocker vos données dans Mysql, il faudra aussi faire un « Make mysql2300 » pour générer l’utilitaire mysql2300.
Si comme moi vous n’utilisez pas l’anémomètre, il vaut mieux patcher les sources à l’aide du fichier suivant: delay.patch afin de réduire le temps de récupération des données.
gzip -d delay.patch
cat delay.patch | patch -p1
Pensez aussi à paramétrer le fichier open2300.conf comme il se doit.
Lancé dans la crontab par exemple, cet utilitaire permettra de transmettre les données de la station sur un serveur Mysql. Un petit script perl pourra ensuite grapher les données à l’aide de RRDTools: graph.pl
Quelques lignes d’ HTML et l’on peut facilement mettre ces données en ligne