PM2M-2016-Meteo433/Suivi
Station météo 433 MHz
Etudiants M2PGI PM2M: Chartier Aurelien et Mengoli Jean-Luc.
Dépôt Git : github
Documents : Rapport - Transparents - Flyer - Video
Contexte
RFXcom permet de recevoir les données de nombreux capteurs envoyées en 433MHz et de les décrypter. Pour ce faire il existe une librairie rfxcom disponible pour plusieurs languages de programmation comme le "C" ou le "Python". Ce matériel coûte une centaine d'euros. (RFXcom peut également servir d'émetteur).
Il existe un récepteur rf en 433MHz pouvant se connecter à une carte BeagleBone. Bien qu'il n'existe aucune librairie, ce récepteur peut théoriquement "remplacer" RFXcom (il existe également un émetteur rf en 433MHZ). Ce composant coûte moins de 5 euros.
Objectif du projet
Le but du project est de récupérer en temps-réel les données envoyées par les capteurs de température et d'UV et de les envoyer sur le cloud où elles seront traitées. Il sera alors possible de les consulter selon le jour,la semaine ou le mois. Notre système pourra envoyer un mail d'alerte pour prévenir de conditions particulières tels que le gel ou la sécheresse.
Matériel utilisé
- Carte BeagleBone Black
- Emetteur/récepteur 433MHz RFXCom
- Emetteur rf 433MHz
- Récepteur rf 433MHz
- Capteur UV Oregon Scientific
- Capteur de température Oregon Scientific
- Machine Amazon T2.micro (Ubuntu)
Technologies utilisées
- Script python :
- Récupère les données des capteurs avec l'antenne RFXCOM (433MHZ) - Décode la tram et envoie des données sur un serveur MQTT (publish)
- Mosquitto :
- Broker : borker.hivemq.com - Port : 1883 - PATH : /Captor/M2M/{event} avec event=(Temp, Humidity, UV)
- MySQL : Base de donnée Openhab
- OpenHab (subscribe sur /Captor/M2M/# :
- Item : Temperature, Humidité, UV - Sitemap : Dashboard - Rules : Envoie d'email - Persistence : Envoie donnée vers MySQL
- AWS EC2 :
Installé sur la machine : -Openhab sous /opt/openhab -Mosquitto -MySql
Plan de développement
Le travail à été effectué en parallèle et réparti de la manière suivante :
- Aurélien Chartier :
- Réception des données provenant des capteurs sur la beagleBone. - Décryptage des données. - Envoie de ces données de la beagleBone Black au cloud.
- Jean-Luc Mengoli :
- Réception des données sur la machine du cloud. - Création base de donnée MySql - Visualisation des données sur des graphiques. - Envoie de mails d'alerte.
Mise en place de l'infrastructure
Des capteurs aux beagleBone Black : Les capteurs envoient, en 433MHz, des tableaux de bits toutes les 50 secondes pour le capteur de température et d'humitité et toutes les 70 secondes pour le capteur d'UV. Pour les recevoir la carte BeagleBone Black est connectée à l'antenne RFXcom. C'est un script Python qui est chargé de récupérer les données et de les décrypter, ce script utilise la librairie de RFXcom. Ici nous avons rencontré un problème majeur, nous ne recevions pas les tableaux de bits provenant du capteur UV. Après de nombreux essais nous sommes allé à la FabLab pour savoir pourquoi nous ne recevions pas ces données. La seul explication que avons trouvé est due à la fréquence de 433MHz qui est assez instable, le capteur UV envoie sur un fréquence légèrement plus haute ou plus basse c'est pourquoi le récepteur RFXcom qui capte précisément en 433 n'arrive pas à récupérer les données du capteur UV.
Du beagleBone Black au cloud : Pour l'envoie et la réception des données sur le cloud nous avons utilisé l'API Mosquitto. A chaque fois que le script Python reçoit des données, il les décrypte et fait un publish sur un broker MQTT public (hiveMQ). Selon leurs type(température, humidité...), ils sont envoyés dans le dossier /Captor/M2M du broker. Sur le cloud la machine est charger de faire un subscribe sur le broker pour récupérer les données.
Du cloud aux graphiques : Nous utilisons le sitemap d'OpenHab pour la visualisation des données sous forme de graphique (Tableau de bord).
Du cloud aux mails : Nous utilisons les rules d'OpenHab pour le traitement et l'envoie des alertes par email.
Accès cloud à distance : Nous avons créé un groupe de sécurité sur AWS pour rendre accessible les données uniquement sur les machines voulus. Il est donc possible uniquement pour celles-ci d'accéder au tableau de bord (visualisation données).
Dashboard
Le dashboard permet de visualiser les données reçues pour la température, les UV et l'humidité.
La couleur du nombre de degrée de la température est affiché en :
- Bleu si température < 10
- Rouge si température > 30
- Orange sinon
La photo du réservoir pour l'humité se remplit d'eau tout les 20 points (de 0: vide à 100 : rempli)
La couleur du nombre d'humité est affiché en gris de 0 à 40, et en bleu au dessus.
Pour chaque données un graphique est disponible. Ce graphique peut affiché les données sur la journée, la semaine ou le mois.
Un graphique mélant les données des températures et de l'humidité est disponible.
Envoie d'Email
Si la température dépasse 30 degrée ou descend en dessous de 0 degrée un mail de notification est envoyé, de même si l'humidité dépasse 60 %.
Expérimentations et Résultats
Emetteur/Recepteur rf 433MHz : Nous avons essayé de remplacer l'antenne RFXcom avec les composant rf 433MHz. Une des motivation fut la non réception des données du capteur UV avec l'antenne RFXcom. Si les UV n'était pas reçus avec cette antenne, peut être le serait ils avec les composants rf ? L'autre motivation concerne le prix de l'antenne à plus de 100 euros et des composants rf à moins de 5 euros. Si notre expérimentation était un succès, cela aurais pu faire économiser une centaines d'euros aux différents utilisateur souhaitant réaliser un système semblable au notre. Cependant si la réception des données était aussi simpliste avec l'antenne RFXcom c'est grâce à la librairie déjà existante de RFXcom. Malheureusement nous ne disposions pas d'assez de temps pour l'analyse et le développement du code nécessaire à la réception des données en 433MHz.