Difference between revisions of "PM2M-2016-Meteo433/Suivi"

From air
Jump to navigation Jump to search
Line 64: Line 64:
 
Les capteur envoient, en 433MHz, des tableaux de bits toutes les 50 secondes pour le cateur de temperature et d'humitidé et toutes les 70 secondes pour le capteur d'UV. Pour les recevoir la carte BeagleBone Black est connectée au RFXcom. C'est un script Python qui est chargé de récupérer les données et de les décrypter, ce script uitilise 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 recepteur RFXcom qui capte précisement en 433 n'arrive pas à récupérer les données du capteur UV.
 
Les capteur envoient, en 433MHz, des tableaux de bits toutes les 50 secondes pour le cateur de temperature et d'humitidé et toutes les 70 secondes pour le capteur d'UV. Pour les recevoir la carte BeagleBone Black est connectée au RFXcom. C'est un script Python qui est chargé de récupérer les données et de les décrypter, ce script uitilise 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 recepteur RFXcom qui capte précisement en 433 n'arrive pas à récupérer les données du capteur UV.
 
 
  +
 
# Du beagleBone Black au cloud
 
# Du beagleBone Black au cloud
 
Pour l'envoie et la reception 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 fais un publish sur un broker MQTT public (hiveMQ). Selon leurs type(temperature, humidité...), ils sont envoyées dans le dossier /Captor/M2M du broker.
 
Pour l'envoie et la reception 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 fais un publish sur un broker MQTT public (hiveMQ). Selon leurs type(temperature, humidité...), ils sont envoyées dans le dossier /Captor/M2M du broker.
  +
   
 
# Du cloud aux graphiques
 
# Du cloud aux graphiques

Revision as of 10:37, 9 April 2016

Station météo 433 MHz

Etudiants M2PGI PM2M: Etudiants


Dépôt Git : github

Documents : Rapport - Transparents - Flyer - Video


Contexte

RFXcom permet de recevoir les données de nombreux capteur 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 ce 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ût moin 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 temperature et d'UV et de les envoyer sur le cloud où ils seront traitées. Il sera alors possible de les consulter celons le jour,la semaine ou le mois. Notre système pourra envoyer un mail d'alerte pour prévenir de conditions particulière telle 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 envoit des données sur un serveur MQTT (publish)
  • Mosquitto :
   - Broker : borker.hivemq.com
   - Port : 1883
   - PATH : /Captor/M2M/data avec data=(temp, humidity, UV)
  • MySQL : Base de donnée Openhab
  • OpenHab (subscribe sur /Captor/M2M/# :
   - Item : Temperature, Humidité, UV
   - Sitemap : Dashboard 
   - Rules : Envoit d'email
   - Persistence : Envoit 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.
   - Envoi de ces données de la beagleBone Black au cloud.
  • Jean-Luc Mengoli :
   - Reception des données sur la machine du cloud.
   - Visualisation des données sur des graphiques.
   - Envoie de mails d'alerte.

Mise en place de l'infrastructure

  1. Des capteurs aux beagleBone Black

Les capteur envoient, en 433MHz, des tableaux de bits toutes les 50 secondes pour le cateur de temperature et d'humitidé et toutes les 70 secondes pour le capteur d'UV. Pour les recevoir la carte BeagleBone Black est connectée au RFXcom. C'est un script Python qui est chargé de récupérer les données et de les décrypter, ce script uitilise 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 recepteur RFXcom qui capte précisement en 433 n'arrive pas à récupérer les données du capteur UV.


  1. Du beagleBone Black au cloud

Pour l'envoie et la reception 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 fais un publish sur un broker MQTT public (hiveMQ). Selon leurs type(temperature, humidité...), ils sont envoyées dans le dossier /Captor/M2M du broker.


  1. Du cloud aux graphiques
  2. Du cloud aux mails

M2M-Chartier-Mengoli Architecture.png

Expérimentations et Résultats

Photos et Vidéo