PM2M-2016-Meteo433/Suivi

From air
Revision as of 11:37, 10 April 2016 by CHARTIER.Aurelien (talk | contribs) (Mise en place de l'infrastructure)
Jump to: navigation, search

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).

M2M-Chartier-Mengoli Architecture.png


M2M-Chartier-Mengoli Envoi de Mail.png

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.

Photos et Vidéo