Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM...

31
Projet Bee-Honey’t Revue Finale Enzo Rossi BTS SN-IR La Salle Avignon 1

Transcript of Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM...

Page 1: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Projet Bee-Honey’tRevue Finale

Enzo RossiBTS SN-IR

La Salle Avignon

1

Page 2: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Sommaire

❏ Expression du besoin❏ Présentation du projet❏ Cahier des charges❏ Ressources logicielles❏ Répartition des itérations❏ Planification du projet❏ Convention de nommage❏ Partie personnelle : Diagramme de cas d’utilisation (Apiculteur)❏ IHM❏ Spécifications techniques❏ Envoie des données❏ Récupération des données❏ Extraire les données❏ Diagramme de classes❏ Recevoir et afficher les données de température et d’humidité intérieures de la ruche❏ Réception et enregistrement des mesures intérieures❏ Enregistrement des mesures intérieures toutes les heures❏ Création et suppression d’une ruche❏ Tests de validation❏ Transmission sans fil❏ Conclusion

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 2

Page 3: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Expression du besoin

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 3

Page 4: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Présentation du projet

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 4

Page 5: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Cahier des charges

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 5

Étudiant 3 IR

Enzo ROSSI

- Gérer les ruches : Paramétrer une nouvelle ruche

- Consulter les données d'une ruche (température, humidité, pression atmosphérique, et ensoleillement)

- Recevoir les données des ruches

- Enregistrer les données dans la base de données

Page 6: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Ressources logicielles du projet

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 6

Désignation Caractéristiques

Système d'exploitation du PC GNU/Linux Ubuntu 16.04 LTS

Base de données MySQL

Logiciel de gestion de versions subversion (RiouxSVN)

Générateurs de documentation Doxygen version 1.8

Environnement de développement Qt Creator et Qt Designer

API GUI Qt 5.5.1

Page 7: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Répartition des itérations

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 7

Tâche Priorité Itération

Recevoir les données des ruches

haute 1

Consulter les données d'une ruche (température, humidité, pression atmosphérique, et ensoleillement)

moyenne 1

Gérer les ruches : Paramétrer une nouvelle ruche

haute 2

Enregistrer les données dans la base de données

moyenne 3

Page 8: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Planification du projet

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 8

Page 9: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Planification du projet

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 9

Page 10: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Convention de nommage

Nom des classes : NomDesClassesNom des variables (attributs) : nomDesVariables (un nom et un qualificatif si besoin)Nom des fonctions (méthodes) : nomDesFonctions (un verbe à l’infinitif ou à l’indicatif)Nom des fichiers : nomDesFichiers

Exemple :

void Ruche::extraireDonnees(PortsTTn port, QByteArray messageTTN)

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 10

Page 11: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 11

Partie personnelle Diagramme de cas d’utilisation Apiculteur

Page 12: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

IHM version Finale

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 12

Page 13: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

IHM version Finale

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 13

Page 14: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

IHM version Finale

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 14

Page 15: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

IHM version Finale

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15

Page 16: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Spécifications techniquestableau Fports

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 16

Fport Nom Mesures IR

1 portMesureEnergie tension,courant,charge MELLAH F.

2 portMesurePoids poids MELLAH F.

3 portMesureRuche température,humidité (intérieur) Enzo ROSSI

4 portMesureEnvironement température, humidité,pression atmosphérique(extérieur)

Enzo ROSSI

5 portMesureEnsoleillement ensoleillement Enzo ROSSI

Page 17: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Envoie des données

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 17

Application clienteServeur TTN

Données au format JSON

{ "app_id":"mes_ruches", "dev_id":"ruche_1", "port":3, ... "metadata":{"..."}}

Page 18: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Récupération des donnéesSolution n°1 : non retenue

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 18

"port":3

Température intérieureHumidité intérieurecodées sur 16 bits

Données encodées en Base64{ ... "payload_raw":"CAwSwA==" ...}

Chaque application cliente :

1. extrait le champ “payload_raw”2. décode la valeur Base643. extrait la température et

l’humidité

Page 19: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Récupération des donnéesSolution n°2 : retenue

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 19

Chaque application cliente :

1. extrait l’objet “payload_fields”

2. extrait les champs température et l’humidité

Température et Humidité codées sur 16 bits function Decoder(bytes, port) {

var decoded = {};

switch (port) {

case 3: // DHT22

decoded.temperature = ((bytes[0]<<8) + bytes[1])/100;

decoded.humidite = ((bytes[2]<<8) + bytes[3])/100;

break;

}

return decoded;

}

{ ... "payload_fields":

{

"humidite":48,

"temperature":20.6

}

...}

Page 20: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Extraire les données

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 20

QJsonDocument documentJSON = QJsonDocument::fromJson(message);

QJsonObject objetJSON = documentJSON.object();

objetJSON.value("payload_fields").toObject().value("temperature").toDouble();

{ ... "payload_fields":

{

"humidite":48,

"temperature":20.6

}

...}

Page 21: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Diagramme de classes

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 21

Page 22: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Recevoir et afficher les données de température et d’humidité intérieures de la ruche

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 22

Page 23: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Réception et enregistrement des mesures intérieures

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 23

Page 24: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Requête Sql

INSERT INTO MesuresRuche (idRuche, Temperature, Humidite, Horodatage)

VALUES (...)

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 24

Page 25: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Enregistrement des mesures intérieures toutes les heures

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 25

Page 26: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Requêtes Sql

Enregistrement :

INSERT INTO MesuresJournalieresRuche (MesuresJournalieresRuche.idRuche,

MesuresJournalieresRuche.Temperature, MesuresJournalieresRuche.TemperatureMin,

MesuresJournalieresRuche.TemperatureMax, MesuresJournalieresRuche.Humidite,

MesuresJournalieresRuche.HumiditeMin, MesuresJournalieresRuche.HumiditeMax,

MesuresJournalieresRuche.DateMesure, MesuresJournalieresRuche.HeureMesure) VALUES (...)

Affichage:

SELECT Temperature, Humidite, HeureMesure FROM MesuresJournalieresRuche WHERE DateMesure = '" +

dateCourante.toString("yyyy-MM-dd") + "' AND idRuche = '" + mesRuches[positionDeLaRuche].at(0)

+ "' ORDER BY HeureMesure ASC";

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 26

Page 27: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Création et suppression d’une ruche

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 27

INSERT INTO Ruche INSERT (idTTN, Nom, Description, DateMiseEnService, Adresse,

Longitude, Latitude, DeviceID) VALUES (...)

INSERT INTO Seuils (idRuche, TemperatureIntMin, TemperatureIntMax, HumiditeIntMin,

HumiditeIntMax, TemperatureExtMin, TemperatureExtMax, HumiditeExtMin, HumiditeExtMax,

PressionMin, PressionMax, PoidsMin, PoidsMax, EnsoleillementMin, EnsoleillementMax,

Charge) VALUES (...)

SELECT Ruche.idRuche, Ruche.Nom, Ruche.DeviceID, TTN.idTTN, TTN.Hostname, TTN.Port,

TTN.Username, TTN.Password, TTN.ApplicationID, Ruche.Adresse, Ruche.DateMiseEnService,

Ruche.Longitude, Ruche.Latitude FROM Ruche INNER JOIN TTN ON Ruche.idTTN = TTN.idTTN;

DELETE FROM Ruche WHERE Ruche.DeviceId = "id de la ruche sélectionnée"

Page 28: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Tests de validation

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 28

Désignation Résultat attendu Oui / Non

Recevoir les données des ruches Recevoir les données des ruches

Oui

Consulter les données d'une ruche(température, humidité, pressionatmosphérique, et ensoleillement)

Visualiser les mesures avec leur unité sur l’IHM

Oui

Gérer les ruches : Paramétrer une nouvelle ruche

Créer ou supprimer une ruche

Oui

Enregistrer les données de (température, humidité, pressionatmosphérique, et ensoleillement)

Enregistrer les données dans la base de données

Oui

Page 29: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Transmission sans fil

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 29

Page 30: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Conclusion

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 30

Tâches : prochaine itération 1.1

Intégrer les seuils des alertes aux différentes courbes

Page 31: Projet Bee-Honey’t Revue Finaletvaira.free.fr/projets/cdc-2019/presentation-rossi-2019.pdf · IHM version Finale Projet Bee-Honey’t - Revue finale - Enzo ROSSI 15. Spécifications

Je vous remercie de votre écoute

Projet Bee-Honey’t - Revue finale - Enzo ROSSI 31