RICM4 2016 2017 - Ruche Connectee

= Présentation du projet = Ruche connectée LoRa : Mise en place et accès à plusieurs capteurs sur une ruche placée sur un toit d'immeuble pour pouvoir récupérer des données à distance grâce à la technologies LoRa. Le but étant de ne pas avoir à se rendre physiquement à coté de la ruche (Avantages : Pas ouvrir la ruche en hiver, pas se rendre sur place, facilité d'analyse, pas "déranger" les abeilles...).

Capteurs placés dans la ruche :
 * Poids
 * Température

Cela permet à l'apiculteur de savoir quand se rendre sur place pour collecter le miel, et gérer la santé de l'essaim.

Matériel (ajouter photos) :
 * (Avant changement) Carte LoRa Feather32u4
 * (Après changement) Carte LoRa SX1272 + Antenne
 * (Après changement) Carte Nucleo F411RE
 * Carte LoRa SX1276 + Antennes
 * Carte Nucleo F446RE
 * (Avant changement) Thermomètre
 * (Avant changement) Balance hackée

La carte SX1276 est branchée sur la Nucleo F446RE, la SX1272 sur la carte Nucleo F411RE et sont utilisées pour gérer l'envoi et la réception des données. Une d'entre elles se trouve dans la ruche et est reliée aux différents capteurs.

CHANGEMENT :
 * La récupération dans la ruche des données des capteurs est faite par un groupe d'étudiants en IESE, nous nous occupons que de la partie envoi-réception radio.
 * La Feather32u4 est remplacée par la SX1272.

= Équipe =

LESAGE Lucas et MOREAU Gwenaël

Superviseurs : Mrs PALIX Nicolas et RICHARD Olivier

= Progression et statut =

Semaine 1 (9 Janvier - 15 Janvier)

 * Choix et découverte du projet.
 * Briefing sur les tâches à accomplir et les objectifs à atteindre.
 * Distribution du matériel.

Semaine 2 (16 Janvier - 22 Janvier)

 * Présentation de LoRa par Mr DONSEZ Didier.
 * Définition des exigences du projet.

Semaine 3 (23 Janvier - 29 Janvier)

 * Découverte et tests de la carte SX1276.
 * Mise en place du diagramme UML.
 * Demande de récupération d'un balance hackée pour pouvoir nous en servir

Semaine 4 (30 Janvier - 5 Février)

 * Recherche et documentation sur la carte Feather 32u4.
 * Rédaction du SRS.

Semaine 5 (6 Février - 12 Février)

 * Redéfinition du projet
 * Devient une collaboration avec un groupe de 3ème année en IESE
 * La communication des données (depuis la Feather 32u4 vers la SX1276) devient notre projet, la récupération des données depuis les capteurs sera faite par les IESE. Une liaison entre les deux groupes est faite pour amener une clarté dans la démarche et pour se mettre d'accord sur la forme des données et la façon de les récupérer, envoyer, recevoir.
 * Ainsi, nous allons d'abord nous concentrer sur la communication entre les deux cartes.
 * Rencontre avec un ancien étudiant en Matériaux appartenant à un BioLab, intéressé par notre projet et le projet des serres connectées. Ceux-ci s'inscrivant dans une démarche innovante de biodiversité et de développement durable au sein de la Métro.
 * Pour commencer, le coté "Ruche" sera simulé par un de nos ordinateurs, connecté à la Feather 32u4 en USB série.

Semaine 6 (13 Février - 19 Février)

 * Tentative de faire marcher les cartes entre elles.
 * Sans succès, les codes récepteur et émetteurs sont les plus basiques possibles, avec seulement l'envoi toutes les x secondes, et la réception qui print un message si il détecte quelque chose.

Semaine 7 (20 Février - 26 Février)

 * Tentative de faire marcher les cartes entre elles^2.
 * Il semblerait que en plus de la fréquence, il faut qu'un paramètre nommé RFM soit identiques. Ce paramètre semblerait être l'encodage et dépend de la version de la carte, mais cela ne devrait pas poser de problème car la Feather possède un module SX1276 pour la communication radio, et donc devrait pouvoir communiquer avec la carte SX1276.

Semaine 8 (27 Février - 5 Mars)

 * Tentative de faire marcher les cartes entre elles^3.
 * On a gagné un capteur ! Il servira éventuellement à mesurer la température et la pression.
 * Après avoir tenté de faire communiquer la Feather32u4 et la SX1276, nous avons découvert que d'autres critères que la fréquence doivent être pris en compte pour que cela marche. Nous avions gérés et testés tous les différents cas possibles pour que les deux premières cartes fonctionnent, c'est-à-dire il faut que la fréquence, la polarisation, le RFM et la bande de fréquence soient identiques. Mais même en mettant ces paramètres, elles ne fonctionnaient pas. Nous avons au final récupérés une SX1272 inutilisée dans un autre groupe, qui est facilement paramétrable et est compatible avec la SX1276, et effectivement nous avons pu très facilement faire communiquer les deux cartes
 * Utilisation d'un code fourni sur le site embed pour tester les cartes, c'est un code effectuant un simple ping pong.
 * A partir de ce code, nous avons étudiés les librairies associées aux radios, ainsi que des évènements utilisés (exemple : OnRXTimeout = Quand la réception dépasse le temps paramétré, la fonction est appelée).

Semaine 9 (6 Mars - 12 Mars)

 * Mini-Soutenance
 * Travail sur le code Émetteur et Récepteur.

Semaine 10 (13 Mars - 19 Mars)

 * Les codes sur les cartes SX sont complets.
 * Début de travail sur un moyen de récupérer depuis le port série de la machine réceptrice.

Semaine 11 (20 Mars - 26 Mars)

 * Travail sur la partie traitement des données dans une page php.
 * Les données sont contenues dans des fichiers texte avec un format sur le nom et dans le contenu pour pouvoir plus facilement les traiter.
 * Un programme Java tournant en arrière-plan va faire le lien entre la carte et la machine réceptrice, via le port série.
 * Il créera au passage les fichiers texte qui seront traités sur la même machine.

Semaine 12 (27 Mars - 5 Avril)

 * Changement dans la manière dont les données sont stockées, il est beaucoup plus propre et facile d'accès d'avoir une Base de Données plutôt que plusieurs fichiers.
 * Le code Java va donc insérer les valeurs dans la BDD à la réception, et le code php va faire des requêtes sur la BDD.
 * La page php affiche la dernière mesure, et propose de rentrer une date pour vérifier si il y a des mesures à ce jour.

= Liens utiles trop cools =


 * https://learn.adafruit.com/adafruit-feather-32u4-radio-with-lora-radio-module/overview
 * https://learn.adafruit.com/adafruit-bmp183-spi-barometric-pressure-and-altitude-sensor