Partie B : Conception de l'application météo - Projet : SolaireLGM2 Application météo - MATHERET Julien

 
CONTINUER À LIRE
Partie B : Conception de l'application météo - Projet : SolaireLGM2 Application météo - MATHERET Julien
Projet : SolaireLGM2
                   Application météo

             Partie B :
  Conception de l’application météo

MATHERET Julien                          Page 1/25
Partie B : Conception de l'application météo - Projet : SolaireLGM2 Application météo - MATHERET Julien
Projet : SolaireLGM2
                                                           Application météo

Table des Matières

1     PRESENTATION DE MA PARTIE DU PROJET .................................................................................. 3
    1.1       BUT DE L’APPLICATION......................................................................................................................... 3
    1.2       MATERIEL A MA DISPOSITION ............................................................................................................... 3
2     INSTALLATION ET CONFIGURATION DE L’ORDINATEUR DE DEVELOPPEMENT ............ 4
    2.1       INSTALLATION LINUX : MANDRIVA 2006 .............................................................................................. 4
    2.2       INSTALLATION ET DESCRIPTION DES OUTILS ......................................................................................... 4
3     POINTS IMPORTANTS DU PROTOCOLE SERIE .............................................................................. 8
    3.1       PROCEDURE DE SORTIE DE L’ETAT DE VEILLE DE LA CONSOLE.............................................................. 8
    3.2       REPONSES DE LA CONSOLE AUX DIFFERENTES COMMANDES ................................................................. 8
    3.3       DONNEES METEOROLOGIQUES DELIVREES PAR LA STATION ET EXPLOITEES POUR MON PROJET ........... 9
    3.4       EXPLOITATION DES DIFFERENTES DONNEES ......................................................................................... 9
4     DIAGRAMME UML DE CONCEPTION .............................................................................................. 11
    4.1       DIAGRAMME DE DEPLOIEMENT ........................................................................................................... 11
    4.2       DIAGRAMME DE CLASSES ................................................................................................................... 12
    4.3       DIAGRAMME DE SEQUENCE ................................................................................................................ 15
5     STRUCTURE DES TABLES DE LA BASE DE DONNEES ................................................................ 16
    5.1       REPRESENTATION DE LA BASE DE DONNEES METEO ............................................................................ 16
    5.2       DESCRIPTION DES TABLES................................................................................................................... 17
6     TESTS UNITAIRES ................................................................................................................................. 18
    6.1       METHODOLOGIE ET PROGRAMME DE TEST .......................................................................................... 18
    6.2       PRINCIPAUX TESTS MIS EN PLACE AU COURS DU DEVELOPPEMENT ..................................................... 18
7     QUELQUES NOTIONS RENCONTREES AU COURS DU DEVELOPPEMENT........................... 20
    7.1       CODAGE EN COMPLEMENT A DEUX ..................................................................................................... 20
    7.2       FORMULES DE CONVERSION DES UNITES ............................................................................................. 22
    7.3       REQUETES SQL .................................................................................................................................. 23
8     DEROULEMENT DU PROJET (CONCEPTION) ............................................................................... 24
    8.1       PLANNING DE REALISATION ................................................................................................................ 24
    8.2       REPARTITION DES ACTIVITES .............................................................................................................. 25
9     CONCLUSION .......................................................................................................................................... 25

MATHERET Julien                                                                                                                               Page 2/25
Projet : SolaireLGM2
                                   Application météo

1   PRESENTATION DE MA PARTIE DU PROJET

1.1 But de l’application

Cette application a pour but d’acquérir des données météorologiques auprès de la
console de la station météo et les ranger dans une base de données (voir
diagramme de séquence).
Ces données seront accessibles via le site Web développé par ARMANI Jonathan à
l’adresse suivante : http://solaire.lgm.ac-grenoble.fr

1.2 Matériel à ma disposition

Pour réaliser ce projet j’avais à ma disposition :

       -   Un ordinateur, pour développer l’application.
       -   Une station météorologique (Vantage Pro 2 de DAVIS) disposant de
           différents capteurs : thermomètre, baromètre, hygromètre, pluviomètre …
       -   La console de la station, qui permet d’afficher les données instantanées.

La station et la console communiquent par une liaison radio.
La console est reliée au pc de développement par une liaison RS232.

Synoptique de l’installation :

                          Liaison radio

 Station météo                                                         RS232
                                                     Console

                                                                 PC développement

MATHERET Julien                                                              Page 3/25
Projet : SolaireLGM2
                                  Application météo

2 INSTALLATION ET CONFIGURATION DE L’ORDINATEUR
  DE DEVELOPPEMENT

2.1 Installation Linux : mandriva 2006

Options choisies lors de l’installation (sur le poste de développement) :

Partition personnalisée
        - SWAP : 1024 Mo
        - /home : 30 Go (données personnelles)
        - / : 30 Go (système)

Adresse IP (de la machine) : 172.16.125.104

2.2 Installation et description des outils

JDK (Java Development Kit) :

    o Description :

Le Java Development Kit est l'environnement dans lequel le code java est compilé
pour être transformé en bytecode afin que la machine virtuelle de Java puisse
l'interpréter.

    o Installation :

Téléchargement package (version jdk-6-linux-i586-rpm.bin)

Copier le .bin dans /usr/local/java
Mettre les droits d'exécution
Lancer l'exécution : ./jdk-6-linux-i586-rpm.bin

Création des liens symboliques : ln -s /usr/java/jdk-6-linux-i586-rpm /usr/jdk
                                 ln -s /usr/java/jdk-6-linux-i586-rpm/jre /usr/jre

Création des variables d'environnement dans : /etc/profile.d

MATHERET Julien                                                             Page 4/25
Projet : SolaireLGM2
                                    Application météo

Créer un fichier java.sh qui contient :

#définition des variables d'environnement
export JAVA_HOME=/usr/jdk
export JRE_HOME=/usr/jre
export PATH=$JAVA_HOME/bin:$PATH

#définition du classpath
export CLASSPATH=.:$JRE_HOME/lib/rt.jar

Recharger les profils (fermeture et réouverture console)
Vérification : $ set | grep JAVA et $ set | grep JRE

MySQL :

    o Description :

MySQL est un serveur de bases de données relationnelles SQL.

    o Installation :

Téléchargement sur mysql.com
Version (statically linked against glibc 2.2.5): mysql-server-5.0.27-0.i386.rpm

Installation automatique
Pour démarrer le serveur, il faut taper dans une console la commande :
/etc/init.d/mysql start

DBDesigner 4 :

    o Description :

DBDesigner est un système de conception de base de données visuel (graphique).

    o Installation :

Version : DBDesigner4-0.5.4-0.i586.rpm
Installation automatique (RPM)
Librairie nécessaire pour lors de l’installation :

       - libborqt-6.9.0-2.i386.rpm
       - kylixlibs3-unwind-3.0-mdk91.i586.rpm
       - libstdc++2.10-2.96-0.83mdk.i586.rpm

MATHERET Julien                                                               Page 5/25
Projet : SolaireLGM2
                                  Application météo

Eclipse :

    o Description :

Eclipse est un outil de développement d'application, il est portable sur beaucoup de
plateformes et permet de créer des applications graphiques mais aussi de travailler
dans une console.
Il supporte de nombreux langages comme : Java, C, C++, JSP, EJB, XML (de
nombreux plugins sont disponibles pour augmenter les performances de cet outil).

    o Installation :

Téléchargement et extraction.
Version : eclipse-SDK-3.2.1-linux-gtk.tar.gz

Librairie RXTX :

    o Description :

Cette librairie permet de mettre en œuvre la liaison série.
Cette librairie peut être installée dans un environnement Linux en utilisant l’IDE
eclipse.

    o Installation :

Téléchargement des binaires sur le site rxtx.org
Dézippage des fichiers sous un répertoire quelconque (vérifier qu’il contient les
fichiers RXTXcomm.jar et librxtxSerial.so notamment)

Organiser les fichiers :
      /usr/local/jdk 1.5.xx contient le JDK (JAVA_HOME)
      Mettre le fichier RXTXcomm.jar dans JAVA_HOME/jre/lib/ext/
      Mettre la librairie librxtxSerial.so dans JAVA_HOME/jre/lib/i386/

Configuration :
      Sous Eclipse, ajouter dans le projet le fichier externe RXTXcomm.jar
      Cliquer sur + devant RXTXcomm.jar pour indiquer l’emplacement de la librairie
      -> choisir Native Library et indiquer le répertoire ou se trouve librxtxSerial.so

Gestion de droits spécifiques :
      Se rajouter comme utilisateur au groupe uucp
      Le groupe uucp est ajouté comme propriétaire du fichier /var/lock

MATHERET Julien                                                                Page 6/25
Projet : SolaireLGM2
                                    Application météo

Driver JDBC :

   o Description :

Ce driver permet de mettre en œuvre les bases de données avec le langage JAVA.
Il va permettre d'exécuter des requêtes SQL au sein de notre programme Java.

   o Installation :

- Extraction des fichiers
- Insérer le fichier .jar dans le répertoire ext du jre

MATHERET Julien                                                        Page 7/25
Projet : SolaireLGM2
                                   Application météo

3 POINTS IMPORTANTS DU PROTOCOLE SERIE
  (Extrait de la documentation Davis)

3.1 Procédure de sortie de l’état de veille de la console

Afin de préserver l’énergie de la batterie, la console est la plupart du temps en veille,
elle sort de l’état de veille quand elle reçoit un caractère sur la liaison série.
La console ne peut pas sortir de l’état de veille assez rapidement pour lire le premier
caractère correctement.
Pour cette raison, il faut mettre en œuvre la procédure décrite ci-dessous.

1. Envoyer un caractère de retour à la ligne : `\ n' (décimale 10, hexadécimal 0x0A).
2. La console doit envoyer une réponse : `\ n \ r'.
3. S'il n'y a aucune réponse dans un intervalle raisonnable (1.2 seconde), il faut ré
   effectuer les étapes 1 et 2. Ces répétitions ne doivent pas dépasser les 3
   tentatives.
4. Si la console ne s'est pas réveillée après les 3 tentatives, cela signifie qu’il y a un
   problème au niveau de la connexion.

Une fois que la console est réveillée, elle restera éveillée pendant 2 minutes.

3.2 Réponses de la console aux différentes commandes

Ces réponses viennent avant les données et sont valables pour toutes les
commandes.

          Réponses                                Descriptions
             ACK             La commande est reconnue, la console renvoie 0x06
                             (ACK en ASCII)
             NAK             Les paramètres de la commande ne sont pas valides,
                             la console renvoie 0x21
           CANCEL            Les données n’ont pas passé la vérification CRC : la
                             réponse de la console est : 0x18
              OK             La commande est reconnue, la console répond :
                             \n\rOK\n\r
            DONE             Plusieurs commandes prennent du temps à effectuer
                             leur tâche, la console va répondre tout d’abord
                             \n\rOK\n\r pour dire qu’elle a bien reçue la
                             commande, et ensuite lorsque la tâche sera terminé,
                             la console renverra : DONE\n\r

MATHERET Julien                                                                  Page 8/25
Projet : SolaireLGM2
                                  Application météo

3.3 Données météorologiques délivrées par la station et exploitées
    pour mon projet

  Outside Temperature                      The value is sent as 10th of a degree in F. For
                                           example, 795 is returned for 79.5°F.
  Wind Speed                               It is a byte unsigned value in mph. If the wind
                                           speed is dashed because it lost synchronization
                                           with the radio or due to some other reason, the
                                           wind speed is forced to be 0.
  Wind Direction                           It is a two byte unsigned value from 0 to 360
                                           degrees. (0° is North, 90° is East, 180° is South
                                           and 270° is West.)
  Outside Humidity                         This is the relative humitiy in %

  Day Rain                                 This value is sent as the 100th of an inch.

  UV                                       The unit is in UV index.

  Solar Radiation                          The unit is in watt/meter2.

La commande utilisée pour obtenir ces informations est : LOOP 1

Cette commande renvoi énormément de données, il a donc fallu extraire les données
intéressantes pour ensuite les convertir dans des unités convenables.

3.4 Exploitation des différentes données

Outside Temperature (température extérieure) :
Elle a du être convertie de degré fahrenheit en degré Celsius et multipliée par 10.

Wind Speed (vitesse du vent) :
La vitesse du vent a été convertie de miles per hour à kilomètres par heure.

Wind Direction (direction du vent) :
Cette donnée est exprimée en degré, 0 degré indique le Nord, 90 degrés l’Est, 180°
le Sud et 270 degrés l’Ouest

MATHERET Julien                                                                   Page 9/25
Projet : SolaireLGM2
                                  Application météo

Outside Humidity (hygrométrie) :
Cette donnée représente le taux d’humidité dans l’air, elle est exprimée en
pourcentage.

Day Rain (pluviométrie journalière) :
Cette donnée représente la hauteur de chute de pluie journalière. Elle a du être
convertie de inch en mm. Elle est remise automatiquement à zéro par la console de
la station météo tous les jours.

UV :
Les UV sont exprimés en index. L’unité index est une échelle de mesure de
l'intensité du rayonnement UV du soleil. Cette échelle va de 0 à 11, plus l'indice est
élevé plus le rayonnement UV est important.

Solar Radiation (rayonnement solaire) :
Le rayonnement solaire est exprimé en Watt/mètre².

MATHERET Julien                                                               Page 10/25
Projet : SolaireLGM2
                        Application météo

4 DIAGRAMME UML DE CONCEPTION

4.1 Diagramme de déploiement

                                          Application développée
                                           dans le cadre de mon
                                                   projet

MATHERET Julien                                                    Page 11/25
Projet : SolaireLGM2
                            Application météo

4.2 Diagramme de classes

MATHERET Julien                                   Page 12/25
Projet : SolaireLGM2
                                    Application météo

   ™ Classe CSMeteo :
Cette classe sert à écrire et à lire sur la liaison série.

Description de ses méthodes :

ouvrirPort       permet :
               - de définir quel port sera utilisé
               - d’ouvrir le port (la liaison série)
               - d’initialiser la liaison série : 19200 bauds, 8 bits de données, 1 bit de
               stop, pas de parité.
               - de récupérer les flux : d’entré et de sortie, pour nous permettre par la
               suite de pouvoir lire et écrire sur la liaison série.

lectureSerie      permet :
                - de lire la réponse de la console
                - d’envoyer les données lues à la classe Ctraitement

interrogerSerie permet d’envoyer la requête LOOP 1 à la console.

Close             permet :
                - de fermer les flux d’entré et sortie
                - de fermer le port

   ™ Classe Ctraitement :
Cette classe sert à extraire et convertir toutes les données intéressantes pour le
projet.

Description de ses méthodes :

extractConversDonnees est la méthode la plus importante de cette classe :
           - elle appelle toutes les autres méthodes de conversions
           - elle permet de transmettre les données converties à la classe
         CbaseDeDonnes

Toutes les autres méthodes permettent d’extraire et convertir les données.

MATHERET Julien                                                                  Page 13/25
Projet : SolaireLGM2
                                   Application météo

   ™ Classe CbaseDeDonnees :
Cette classe est chargée d’établir une connexion avec la base de données puis
ensuite de ranger les données dans celle-ci.

Description de ses méthodes :

insererDonnees est la méthode principale de cette classe, elle permet :
          - de ranger les valeurs brutes
          - de gérer l’insertion des données tout les quarts d’heure, tous les jours,
         tous les mois et toutes les années. Pour réaliser cela, elle va faire appel à
         toutes les autres méthodes de la classe décrites ci-dessous.

supprDonnees permet de vider la table des valeurs brutes toutes les 15 minutes.

valeurs_15 permet d’exécuter toutes les requêtes nécessaires pour remplir la table
des quarts d’heure avec des données : maximums, minimums et moyennes.

valeurs_quotidiennes permet d’exécuter toutes les requêtes nécessaires pour
remplir la table quotidienne avec des données : maximums, minimums et moyennes.

valeurs_mensuelles permet d’exécuter toutes les requêtes nécessaires pour
remplir la table mensuelle avec des données : maximums, minimums et moyennes.

valeurs_annuelles permet permet d’exécuter toutes les requêtes nécessaires pour
remplir la table annuelle avec des données : maximums, minimums et moyennes.

valeurs_max permet de ranger toutes les valeurs maximales relevées sur une
journée.

valeurs_min permet de ranger toutes les valeurs minimales relevées sur une
journée.

Toutes les commandes SQL utilisées dans ces méthodes sont décrites dans le
chapitre 7.3

   ™ Classe Clog :

Cette classe permet de traiter les exceptions qui peuvent être générées lors d’une
erreur dans le programme.
Lorsqu’une exception sera générée, celle-ci sera insérée avec la date dans un fichier
texte, cela permettra à l’utilisateur de voir d’où vient l’erreur.

Voici un exemple tiré du fichier de log :

MATHERET Julien                                                             Page 14/25
Projet : SolaireLGM2
                                  Application météo

   ™ Classe Cdate :

Cette classe permet de gérer les dates, les dates seront très utilisées dans la classe
CbaseDeDonnees lors des insertions d’enregistrements.

4.3 Diagramme de séquence

MATHERET Julien                                                             Page 15/25
Projet : SolaireLGM2
                          Application météo

5 STRUCTURE DES TABLES DE LA BASE DE DONNEES

5.1 Représentation de la base de données météo

MATHERET Julien                                  Page 16/25
Projet : SolaireLGM2
                                 Application météo

5.2 Description des tables

Les données contenues dans toutes ces tables sont détaillées dans le chapitre 3.4

meteo_valeurs_brutes :
Cette table permet de ranger les données toutes les 10 secondes pendant 15
minutes. Au bout de ces 15 minutes, la table sera vidée.

meteo_valeurs_15 :
Cette table contient les valeurs moyennes de tous les quarts d’heure ainsi que
certaines valeurs maximales.

meteo_valeurs_quotidiennes :
Cette table contient les valeurs moyennes de la journée ainsi que les valeurs
minimales, et les valeurs maximales de la table meteo_valeurs_15.
La donnée temp_moy_production est la température moyenne entre 7H et 21H.
Cette donnée va permettre de mettre en corrélation la température et la production
d’énergie de la centrale solaire.

meteo_valeurs_mensuelles :
Cette table contient les valeurs moyennes, les valeurs minimales, et les valeurs
maximales produites sur un mois.

meteo_valeurs_annuelles :
Cette table contient les valeurs moyennes, les valeurs minimales, et les valeurs
maximales produites sur une année.

Toutes ces tables disposent d’une clé primaire qui est un identificateur avec auto
incrément, tous les enregistrements auront donc une clé unique.

On remarque que l’organisation des tables est très simple.

A noter que les tables : meteo_valeurs_quotidiennes, meteo_valeurs_mensuelles et
meteo_valeurs_annuelles sont des tables qui vont permettre d’optimiser l’application
pour éviter d’effectuer trop de calculs lourds sur une seule table.
Cela permettra de faire des recherches moins lourdes sur la base de données, et
permettra donc au site Web d’être plus performant.

MATHERET Julien                                                             Page 17/25
Projet : SolaireLGM2
                                  Application météo

6 TESTS UNITAIRES

6.1 Méthodologie et programme de test

Pour progresser dans le développement de l’application, j’ai construit un programme
de test pour vérifier chaque étape. Ce programme de test enrichi au fur et à mesure
m’a permis d’arriver au programme final.

Au cours des tests, j’ai notamment repris mon diagramme de classes ce qui m’a
permis d’alléger certaines classes.

Le programme final effectue les étapes suivantes :

      - interrogation de la console de la station météo
      - récupération des données envoyées par la console à l’ordinateur (sous la
      forme d’une trame)
      - conversion des données (changement d’unité, traitement)
      - rangement des données dans la base de données
      - création d’un fichier de log pour permettre la meilleure gestion des erreurs

6.2 Principaux tests mis en place au cours du développement

En règle générale, lorsque je rencontrais des problèmes, j’utilisais principalement
l’affichage Java pour mieux cibler ces problèmes

A titre d’exemple, voici quelques tests que j’ai effectué durant le développement de
l’application :

          •   Test de la communication avec la console de la station météo :

Pour réaliser ce test, j’ai configuré minicom pour qu’il puisse lire et écrire sur la
liaison série.
J’ai alors testé quelques commandes issues du protocole Davis pour vérifier que la
console de la station météo répondait à celles-ci.

MATHERET Julien                                                              Page 18/25
Projet : SolaireLGM2
                                   Application météo

          •   Test de l’écriture sur la liaison série (à l’aide d’un câble
              RS232/USB) :

Pour tester l’envoi de commandes sur la liaison série, j’ai configuré minicom pour
qu’il soit à l’écoute du port USB0.
Ensuite j’ai configuré et démarré mon application pour qu’elle envoie des
commandes sur le port série.
Après plusieurs essais, on pouvait voir les commandes arriver sur le terminal
minicom. Mon application pouvait alors envoyer des commandes à la console de la
station météo.

          •   Test des requêtes SQL :

Pour gagner du temps, au lieu de tester mes requêtes SQL dans mon application, je
les ai toutes tapées en ligne de commande pour éviter les erreurs de syntaxe, et
pour vérifier la validité du résultat obtenu.

          •   Test des fichiers de log :

Pour tester les fichiers de log, j’ai du créer des erreurs manuellement pour voir si
elles étaient bien insérées dans le fichier, et pour améliorer la présentation du fichier
texte.

MATHERET Julien                                                                Page 19/25
Projet : SolaireLGM2
                                   Application météo

7 QUELQUES NOTIONS RENCONTREES AU COURS DU
  DEVELOPPEMENT

7.1 Codage en complément à deux

Cette technique de codage est utilisée lorsque l’on veut utiliser des entiers relatifs
(entiers pouvant être négatifs).

Le principe de ce codage est le suivant :
             a. il faut tout d’abord convertir notre entier en binaire (base 2)
             b. il faut complémenter chaque bit (on inverse, c'est-à-dire que l'on
                 remplace les zéros par des 1 et vice-versa)
             c. il faut rajouter 1 au résultat précédent

Si le bit de poids fort est égal à 1, le nombre obtenu est un nombre négatif.

Extrait de code :

Prenons par exemple le traitement de la température :

      public void temperatureExterieur(){

             float inter;
             tempExt =(lectBuff[14]&0xff);
             tempExt=tempExt
Projet : SolaireLGM2
                                  Application météo

Explication :

Certaines valeurs étaient codées sur plusieurs octets, il a donc fallu concaténer ces
octets pour pouvoir obtenir la valeur correcte convertie.

Les 2 octets qui concernent la valeur de la température se situent à l’emplacement
13 et 14 de la trame.
Nous allons prendre comme valeur de température 23 °C, pour cette valeur nous
avons :
       lectBuff[13] = -21
       lectBuff[14] = 2

Le – devant le chiffre 21 veut dire que 21 correspond aux bits de poids faibles de la
valeur codée sur 2 octets.
Le chiffre 2 correspond aux bits de poids forts.

Voici l’application du codage en complément à 2 (vu ci-dessus) :

Conversion de 21 en binaire : 0001 0101
Conversion de 2 en binaire : 10

Complément à 1 de 21 : 1110 1010
Complément à 1 de 2 : 01

Complément à 2 de 21 : 1110 1011
Complément à 2 de 2 : 10

Concaténation des 2 octets : 0000 0010 1110 1011

Commentaire du code :

On range la valeur de la 14ème case du tableau d’octet dans un entier tempExt. On
prend en compte tous les bits de l’octet avec l’opération &ff.

Voici la représentation de l’entier après l’opération : tempExt =(lectBuff[14]&0xff);

tempExt
  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0

Maintenant il faut décaler les huit derniers bits de tempExt de huit places vers la
gauche avec l’opération suivante : tempExt=tempExt
Projet : SolaireLGM2
                                   Application météo

On range la valeur de la 13ème case du tableau d’octet dans tempExt. On prend en
compte tous les bits de l’octet avec l’opération &ff.

Voici la représentation de l’entier après l’opération : tempExt =(lectBuff[13]&0xff);

tempExt
  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1

Maintenant pour voir si l’opération a fonctionné, il faut retraduire le binaire en
décimal.
1011101011 (binaire) = 747 (décimal)

On doit diviser ce nombre par 10 pour obtenir des degrés Fahrenheit.
Pour convertir des degrés Fahrenheit en degrés Celsius il faut utiliser une formule
bien précise (voir 7.2).

74.7 °F = 23°C

On retrouve bien la valeur qui est affichée sur la console de la station météo.

7.2 Formules de conversion des unités

Température :

Conversion de degrés Fahrenheit en degrés Celsius => Température en °C =
(Température en °F − 32) / 1,8

Pluviométrie :

Conversion Inches en millimètres => hauteur en mm= hauteur en Inches * 25.4

Vitesse :

Conversion miles per hour en kilomètre par heure => vitesse en km/h= vitesse en
miles per hour*1.6

MATHERET Julien                                                                 Page 22/25
Projet : SolaireLGM2
                                  Application météo

7.3 Requêtes SQL

Description des requêtes importantes utilisées lors du projet :

Affichage des bases de données : SHOW databases ;

Affichage des table d’une base de données : SHOW tables ;

Description des tables : DESCRIBE « nom_de_la_table » ;

Création d’une nouvelle table : CREATE TABLE " nom_de_la_table "
("colonne 1" "type de données pour la colonne 1",
"colonne 2" "type de données pour la colonne 2",...);

Suppression d’un table : DROP TABLE « nom_de_la_table » ;

Suppression d’un enregistrement de la table : DELETE FROM « nom_de_la_table »
WHERE {condition}

Sélection de tous les éléments de la table : SELECT * FROM « nom_de_la_table »

Insertion d’un enregistrement dans une table : INSERT INTO « nom_de_la_table »
(« colonne 1 », « colonne 2 », ...) VALUES (« valeur 1 », « valeur 2 », ...) ;

Suppression de tous les enregistrements d’une table : TRUNCATE TABLE
« nom_de_la_table »;

MATHERET Julien                                                        Page 23/25
Projet : SolaireLGM2
                                  Application météo

8 DEROULEMENT DU PROJET (CONCEPTION)

8.1 Planning de réalisation

    26/01 : Installation du système d’exploitation : Mandriva 2006

    01/02 : Installation de tous les outils, de la librairie RXTX et de minicom.

    8/02 et 9/02 : Réalisation de différents travaux pour prendre en main les bases
    de données avec JDBC
    Idem avec la librairie RXTX pour prendre en main la gestion de la liaison série.

    1/03 et 2/03 : Prise en main de la console et la station météo, lecture de la
    documentation plus approfondie.

    8/03 et 9/03 : Affichage de la trame envoyée par la console. Problème rencontré
    au niveau de la concaténation de données (voir codage en complément à
    deux).

    16/03 et 17/03 : Finalisation du traitement des données, création des classes
    Ctraitement et CbaseDeDonnees.

    29/03 et 30/03 : Création d’une classe pour les fichiers de log, réinitialisation de
    la table meteo_valeurs_brutes toutes les 15 min.

    19/04 et 20/04 : Intégration de l’application avec le serveur, gestion des valeurs
    par quart d’heure. Réflexion sur la base de données.

    26/04 et 27/04 : Gestion des exceptions de plus bas niveau, création de la
    méthode valeurs_quotidiennes.

    3/05 et 4/05 : Au lieu de se baser sur les id lors des insertions, il est décidé de
    se baser sur la date. Mise à jour de toutes les méthodes pour que les
    enregistrements se fassent à une date fixe. Création des méthodes
    valeurs_mensuelles et valeurs_annuelles.

    10/05 et 11/05 : Création des méthodes qui gèrent les valeurs remarquables.

MATHERET Julien                                                               Page 24/25
Projet : SolaireLGM2
                                   Application météo

8.2 Répartition des activités

    100

     80

     60

%
     40

     20

       0

      Analyse                                   Installation de la machine
      Etude des librairies RXTX et JDBC         Prise en main station météo
      Conception programme                      Intégration avec le serveur

9 CONCLUSION

La conduite de ce projet m’a beaucoup apporté dans le domaine technique en me
permettant d’enrichir mes connaissances en : Java, MySQL, Linux, liaison série.

Il m’a permis aussi de mieux appréhender le travail en équipe avec la rigueur
nécessaire pour atteindre le résultat demandé.

Je suis satisfait de voir que notre projet va aboutir, que l’application va fonctionner et
qu’elle sera accessible sur Internet.

Enfin par le biais de ce projet nous allons contribuer à informer les gens sur les
énergies propres.

MATHERET Julien                                                                 Page 25/25
Vous pouvez aussi lire