Candidat 1

publicité
GTCB
Gestion Technique
Centraliser d’un Bâtiment
24/04/2009
Lycée de la tourelle
Mr. Kahila Mr. Klampas Mr. Marme
GTCB
Sommaire
1. Présentation
A.Synoptique…………………………………………………………
03
B.Analyse………………………………………………………………
05
2. Candidat
A.Mr. Kahila…………………………………………………………..
07
B.Mr. Klampas……………………………………………………….
31
C.Mr. Marme………………………………………………………….
53
3. Conception
A.Intégration………………………………………………………….
61
B.Cahier de test………………………………………………………
62
4. Conclusion
A.Bilan………………………………………………...........................
63
5. Annexe
………….……………………………………………….................................. 64
Candidat 1
Candidat 2
Candidat 3
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 2
GTCB
1. Présentation
A.Synoptique
L'objectif de ce projet est le développement d'un équipement à installer au sein du local technique
d'un bâtiment.
Cet objet technique, à connecter en Ethernet sur un routeur ADSL, doit permettre depuis un
simple navigateur HTTP sur un PC connecté à Internet :







le suivi en temps réel de la consommation d'électricité;
le calcul en temps réel de la facture d'électricité;
le commande de deux sorties TORs 500 mA / 12 V;
la commande de deux fils pilotes de radiateurs électriques sur six ordres;
le relevé de la température au sein du bâtiment;
le relevé de la température à l'extérieur du bâtiment.
un scénario hebdomadaire doit pouvoir être télécharger sur le système pour gérer les sorties
et les deux fils pilotes par pas de 15 mn.
Ces scénarios sont conçus depuis une interface WEB servie par un serveur APACHE exécuté sur
un PC.
Voici le schéma général du projet à réaliser :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 3
GTCB
Chaque candidat devra réaliser plusieurs tâches visant à s’intégrer pour ne former qu’une seule
application au final :
1. Candidat 1
◦
◦
Câbler la "téléinfo" compteur sur le SC12
Coder le module logiciel permettant d'extraire les index compteur EDF et l'intensité
instantanée les plus récents
-Tester puis valider le module logiciel permettant d'extraire les index compteur EDF et l'intensité
instantanée les plus récents
◦ Coder le module logiciel permettant d'obtenir les températures intérieures et extérieures
via le bus I2C
-Tester puis valider le module logiciel permettant d'obtenir les températures intérieures et
extérieures
via le bus I2C
◦ Coder le module logiciel permettant de piloter les sorties TOR et les fils pilotes
-Tester puis valider le module logiciel permettant de piloter les sorties TOR et les fils pilotes
2. Candidat 2
◦
◦
Permettre le pilotage des sorties TOR et des fils pilotes depuis un navigateur http
Afficher les températures, l'intensité instantanée et le montant de la facture E.D.F. depuis
un navigateur HTTP
-Tester puis valider le module logiciel permettant de piloter les sorties TOR et les fils pilotes,
d'afficher
les températures, l'intensité instantanée et le montant de la facture E.D.F.
◦ Permettre la réception d'un scénario sur une socket serveur TCP
-Tester le module logiciel permettant la réception d'un scénario sur une socket serveur TCP
◦ Permettre l'exécution du scénario
-Tester puis valider le module logiciel permettant l'exécution du scénario
3. Candidat 3
◦ Permettre l'envoi d'un scénario par une socket client TCP
-Tester puis valider l'envoi d'un scénario par une socket client TCP
◦ Définir un scénario depuis un navigateur HTTP
-Tester puis valider le module logiciel permettant de définir un scénario depuis un navigateur web
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 4
GTCB
B.Analyse

Diagramme des cas d’utilisations

Diagramme de transition
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 5
GTCB

Diagramme déploiement
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 6
GTCB
2. Candidat
B.Mr. Kahila
II.Présentation
B.Mes Objectifs ...................................................................... 8
C.Architecture Matériel......................................................... 9
D.Environnement logiciel..................................................... 15
III.Analyse
B.Diagramme de séquence.................................................. 19
C.Diagramme d'état transition............................................. 19
D.Diagramme d'activité........................................................ 20
IV.Conception
B.Spécifié technique............................................................ 21
C.Cahier de teste.................................................................. 23
D.Historisation du développement..................................... 26
E.Intégration......................................................................... 29
V.Conclusion
B.Projet.................................................................................. 30
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 7
GTCB
I.- Présentation
A. - Mes Objectifs
Représentation textuel :
Dans le cadre du projet GTCB, le candidat numéro 1 doit :

piloté les sorties

mettre à la disposition du candidat numéro 2 les informations EDF et
température.
Pour obtenir ce resultat, il lui est proposé :

deux capteur de température

un compteur edf avec sortie télé-information paramétré

et un kit beck
Représentation imagé :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 8
GTCB
B. - Architecture Matériel

Kit beck
La dk41 est composé d'une sc12 et d'un dk40 dont leur descriptif vous sera donnez par la
suite.

DK41
C’est un module du constructeur Allemand, disposant d'une mémoire RAM ROM de
512Kb chacune.
Cet outil dispose des 8 E/S numérique TOR (tout ou rien), est connecté par Ethernet et
intègre un système d'exploitation RTOS (Real Time Operating System).
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 9
GTCB
1. Led programmable
2. Led trafic
3. 8 Entrées/Sorties programmable et alimentation
4. Leds d’états pour les Entrées/Sorties
5. IPC@CHIP SC 12
6. Connexion RJ 45
7. Port série EXT
8. Port série COM
Environnement matériel des micro-modules :
• Coeur 186 compatible PC
• 2 liaisons série
• E/S industrielles (CAN), Bus I2C
• Liaison Ethernet 10/100baseT
• Extension Bus

PROCESSEUR SC12





CHIP 186-CPU
20MHz
512KB RAM
512KB Flash
Ethernet

Par Mr. Kahila, Mr Klampas, Mr Marme
Page 10
GTCB
Le SC12 fonctionne avec son système d’exploitation le RTOS (Real Time operating Système)
de BIOS, c’est un système à noyau temps réel, avec une gestion de fichiers intégré ainsi que le
protocole
- TCP/IP : HTTP [CGI (Common Gateway Interface)], FTP, TELNET.

Capteur de température

DS1621
CARACTERISTIQUES
Les mesures des températures vont de -55 ° C à +125 ° C
Les données sont lues et écrites par le biais d'un câble série de 2 - interface .
DESCRIPTION DES BROCHES
1.
4.
5.
6.
7.
8.
SDA - 2 Liaison série de donnée
entrée / sortie
SCL - 2 Liaison série d'horloge
Tout - Thermostat signal de
sortie
GND - La terre
A2 - Adresse d'entrée de la puce
A1 - Adresse d'entrée de la puce
A0 - Adresse d'entrée de la puce
VDD - Tension d'alimentation

Compteur EDF
2.
3.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 11
GTCB

Avant propos :
zone de tarification :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 12
GTCB

Sortie télé-information :
Les informations sont transmises cycliquement en série sur la ligne. Chaque
donnée transmise est précédée d'une étiquette permettant de l'identifier.
L'ensemble des données transmises dépend de la programmation du compteur.
Les groupes d'information inutiles, compte tenu du mode de fonctionnement
programmé, ne sont pas émis.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 13
GTCB
2. Caractéristiques de la liaison
Le principe de la communication est une modulation d'amplitude en tout ou rien d’une
porteuse à 50 kHz. La logique est négative.
- un bit émis à "0" correspond à la présence de porteuse pendant le temps
correspondant.
- un bit émis à "1" correspond à l'absence de porteuse pendant le temps correspondant.
Après démodulation, on retrouve une liaison asynchrone classique dont les
caractéristiques sont les suivantes:
-> vitesse de transmission 1200 bits/s
- codage de toutes les informations sous forme ASCII (affichable)
-> 7 bits pour représenter un caractère ASCII
-> 1 bit de parité, parité paire

un bit de start avant chaque caractère <=> "0" logique

un bit de stop après chaque caractère <=> "1" logique
Cette liaison passe par une carte transformant la trame en :
vitesse de transmission 19200 bits/s
8 bits pour représenter un caractère ASCII.

Les sorties :
en vue du cadre scolaire de ce projet les sorties commanderont aux mieux des leds.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 14
GTCB
C.- Environnement logiciel
Communication Ordinateur ( com1 ) dk41 – liaison série.
Voici un tableau des commandes RTOS les plus utiles :
• DIR nom de fichier Afficher le contenu d'un répertoire ( DIR HTTP
ou DIR *.EXE )
• DEL nom de fichier Effacer un ou plusieurs fichiers ( DEL
TEST.EXE ou DEL *.DAT )
• TYPE fichier Afficher le contenu d'un fichier dans la console ( TYPE
CHIP.INI )
• REN fichier 1 fichier 2 Renommer un fichier, on donne l'ancien nom
suivi du nouveau
• MD répertoire Créer un répertoire ( Make Directory ) ex: MD TEST
• CD répertoire Changer de répertoire ( CD TEST )
• RD répertoire Effacer un répertoire ( RD TEST )
• IP adresse Définir l'adresse IP du chip et désactive le DHCP
• IPCFG Afficher la configuration IP
• REBOOT Redémarrer le système
• MEM Afficher les informations concernant la mémoire
• HELP Afficher toutes les commandes console disponibles.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 15
GTCB
Ce procédé de communication sera remplacé par telnet en raison de l'utilisation du port com de la
dk41
La communication a été automatisé :
cmd.bat
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 16
GTCB

Borland
Création d’une première application.
On peut se servir de l'IPC@CHIP comme d'un microcontrôleur classique en exécutant des
programmes directement. Il faut alors dans ce cas exécuter le programme à la main sur le chip
(en terminal ou Telnet) ou automatiser son exécution. Les programmes comme cela sont des
exécutables écrits en langage C et compilés
pour DOS 16 bits et pour microprocesseur 80186 sur un PC connecté sur le réseau ou
directement par le port série, puis transférer le programme soit par FTP (le plus simple) soit
par le port série.
Les fonctions utilisées sont les fonctions classiques du C et nous avons utilisé les librairies
fournies pour ce qui est de l'utilisation de fonctions particulières.
Nous allons créer un petit programme utilisant la liaison série du module Beck SC12.
Pour compiler les applications en C nous avons utilisé Borland C++ 5.02 car il est un des seul
compilateur pouvant encore compiler pour des architectures de type 80186.
Lors de la création d'une nouvelle application il faut paramétrer le projet avec quelques
fonctions spéciales.
La création du projet : File/New Project avec les paramètres ci-dessous :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 17
GTCB
On fixe ensuite les options pour le projet, en ce qui concerne le type de processeur et les
répertoires :
Par la suite une fois le programme terminer Borland c++ nous ouvre une fenêtre postmake qui
n'est autre qu'un petit outil appelé par les IDE à chaque fois qu'un projet a été construit.
Postmake peut alors transférer à la dk41 via FTP et le lancer par une terminal pour contrôler
l'émission de l'exécutable.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 18
GTCB
II.- Annalyse
A–
B–
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 19
GTCB
C–
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 20
GTCB
III.3 Mise en place
A. - Spécifié technique

Le compteur EDF
Après démodulation par la carte la trame à pour caractéristiques :
baud: 19200L, pas de parité, octet sur 8 bits, aucun contrôle de flux.
La trame une fois réceptionner contiendra : ADCO, OPTARIF, ISOUSC, HCHC, HCHP,
PTEC, IINST, IMAX, PAPP, HHPHC, MOTDETAT.
Ces entêtes seront suivi de la donnée et la fin de chaque il y aura un checksum à valider.

Les DS1621
Ces deux capteurs de températures fonctionnent sur le principe de l'i2c et par le biais
d'un câblage ou les adresses suivantes :
INT = 0x90;
EXT = 0x9e;
Ensuite il faut lancer un processus de configuration afin de les initialiser en mode
continue dès les données doivent être :
CONFIGURATION 0xAC
INITIALISATION EN MODE CONTINU 0x00

La dk41
3 parties sont ici utiliser la premier propre aux pios, la seconde portant sur sda et scl
sur le ext et la dernier à la rs232 sur le port com.
- les pios :
pfe_enable_pcs( « » ); permet d'initialiser les sorties.
hal_write_pio( « » , « » ); pour initialiser une sortie à un état
rtx_sleep_time(« » ); pour être que l'état à bien été prix en compte.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 21
GTCB
- port ext :
le câble RJ12 standard avec caractéristique :
(fils) (sc12)
- bleu....................................... --> masse
- noir = rouge --> PIO7........... --> SCL
- vert = vert --> PIO8.............. --> SDA

Configuration logiciel :
Les pios 7 et 8 sont respectivement scl et sda dès lors :

- port com :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 22
GTCB


Configuration logiciel : Le port doit être initialiser en
mode rs232 :
B. - Cahier de teste
Pilotage des sorties
Pour piloté les sorties les commandes hal-write_pio seront utiliser une temporisation
d'un cours délai est souhaité afin que la modification de l'état de sortie soit prix en
compte.
Afin de valider dans un premier temps ou utilise la commande pio pour regarder l'état
avant manipulation et après manipulation.
Par la suite et en vu de cadre scolaire du projet les fils pilotes et sortie tor comme
précédemment citée seront remplacée par des leds des lors, la manipulation de sortie
devient donc visuel.

communication rs232
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 23
GTCB
Âpres l'initialisation du port com, on le met en réception :
Et on recoit les données :
Avec le port com de la dk41 branché sur le port com d'un ordinateur sous wwindows
initialiser en sortie : baud: 19200L, pas de parité, octet sur 8 bits, aucun contrôle de
flux.
Un exécutable provenant d'une compilation de programme C émet en continue le
caractère « A » ( 0x41 ). Connection et réception ok.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 24
GTCB

I2C
Dans le cadre du test i2c nous avons utiliser un pc8574A afin de vérifié que le start, stop
,émission et réception qui sont commune à tout module i2c.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 25
GTCB
C.- Historisation du développement
 Mise en place
voir annexe candidat 1 numéro 1
CODE DE DEMANDE DE TEMPERATURE :
data1 contient le poids fort et data2 le poids faible
L'ensemble une fois traité donne un float à 10 e-1 avec pas de 0,5.
CODE D'ANNALYSE DE TRAME RS232 :
Après réception de la trame un contrôle dit de parité ( checksum ) permettra de validé chaque ligne et donc la
totalité de la trame.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 26
GTCB
CODE De calcul des tarifs heure creuse heure pleine :
Ligne du buffer propre aux données edf :
Ligne du buffer propre aux température :
CODE D'enregistrement :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 27
GTCB

gestion de temps
En vue du souci qui était apparu en début de projet à savoir la carte de démodulation
non disponible j'ai donc commencer par l'i2c puis je suis revenu sur le compteur edf et
à l'heure ou j'écris ces lignes les sorties (pios).
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 28
GTCB
D.– Intégration
Dans le cadre de mon développement l'aspect intégration c'est fait vite remarqué.
En effet le candidat à besoin d'obtenir l'ensemble des données rapidement afin de les afficher
sur la page internet.
Après consultation, il a été décidé qu'une seule page affichera les informations dites de relevé.
En dès lors l'ensemble des informations seront alors stocké dans un fichier texte ( .txt ) .
À savoir la température intérieurs et extérieurs ainsi les indices EDF intensité instantanée et
indice de la consommation ttc heure creuse heure pleine tel que :
-heure pleine: Euros
-heure creuse: Euros
Intensité instantanée :
- -Ampères.
Valeurs des températures : Intérieur 'C & Extérieur 'C
En vue du formatage des fichiers texte sur la dk41 ainsi que de notre objectif à savoir : près à
être afficher des caractères tel que :
<HR> : séparation
<br> saut de ligne sont utiliser.
De plus en vue des fonctions C disponibles et du caractère de fin de chaînes instancié dans le
fichier texte en cas d'espace ces derniers seront remplacer par un « _ » .
Par conséquence le fichier final ressemble alors à :
-heure_pleine:_ « » _Euros<br/>_-heure_creuse:_ « » _Euros<br/><br/>__Intensifie_instantanée_:<br/>_- « » Ampères. <br/><br/>Valeurs_des_températures_:_Intérieur_ « » _'C_&_Extérieur_ « » _'C_<br/>
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 29
GTCB
IV.- Conclusion
A.Projet
En terme purement scolaire ce projet aborde différent aspect évoqué en cours
sur le communication réseau et matériel ainsi qu'une couche logiciel
intéressante.
À l'heure ou j'écris mes derniers lignes, le projet n'est pas terminer et ma partie
non plus, il me reste encore a validé le pilotage des sorties.
D'un point de vue strictement personnelle, j'ai pu travaillé dans une équipe ou
contrairement à mon stage l'ambiance était bonne enfant, le rythme était saint
et le travail au rendez vous.
Sans que l'on est a ce motivé mutuellement.
Néanmoins deux d'entre nous n'ayant pas été dans leur domaine de
qualification, il y a eu beaucoup d'entraide et de dynamisme.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 30
GTCB
B.Mr. Klampas Alexis
1.
Moyens techniques………..………………………………….…………….…………….……… 33

Introduction……………………..…………………..……………………………….…………….…………….……… 33

Chiffre clé du DK41……………………..…………………….…………………….…………….…………….………35

Le BIOS (Basic Input Output System) ……………………..……………….…………….…………….………35

Interface de
communication/Gestion………..……………..………………………………….…………….…………….………36
A. Le port série……………………..…………………..……………………….…………….…………..……… 36
B. Liaison série……………………..…………………..……………………….…………….…………..………37
C. Liaison série……………………..…………………..……………………….…………….………….….……37
D. Le port Ethernet………………………………..………………………………….……………..………….. 37
E. Telnet……………………..……………………………………………….…………….…………….………….. 38

Le système d’exploitation RTOS

Le chip……………………..…………………..………………………………….…………….……………….……… 38

L’hyper terminal……………………..…………………..………………………………….…………..….……… 39
2.
Les logiciels……………………..…………………..………………………………….………..……. 43
a. L'environnement de développement BC5……………………..……………. 43
b. Mozilla firefox & Internet Explorer………..……..………………………………. 45
3.
Description du développement……………………..………………………………. 46

Le langage C ……………………………………………………………………………………………………………. 46

Le CGI ………………………………………………………………………………………………………………………. 47

Le C++………………………………………………………………………………………………………………………. 48

Les sockets………………………………………………………………………………………………………………. 49
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 31
GTCB

Les Morceaux de codes importants
A. Installer les Fonctions CGI………………………………………………………………………………………………………. 50
B. Utiliser les Fonctions CGI………………………………………………………………………………………………..………. 51
C. Stocker et afficher des pages en CGI………………………………………………………………………..……………. 51
D. Créer et redémarrer les tâches…………………………………………………………………………………….…………. 51
E. Supprimer les fonctions CGI……………………………………………………………………………………………………. 52
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 32
GTCB
1. Moyens techniques
A notre disposition, nous utiliserons les matériels suivants :

un KIT IPC@CHIP de chez Beck

Introduction
Le DK41 est un produit de la société allemande Beck. Beck est un membre du groupe Festo qui
travaille notamment dans l'automatisation. Beck est spécialisé dans la conception de PC embarqués.
Le DK41 est un kit. C'est l'assemblage d'un SC12 et d'un DK40, ainsi que l'addition de quelques
connectiques.
L' IPC@CHIP est une solution complète de PC embarqué orienté pour un usage en réseau. Il possède
de nombreuses fonctionnalités TCP/IP : serveur Web HTTP (Hyper Text Tranfert Protocol), serveur
FTP (File transfert Protocol), serveur Telnet, serveur TFTP (Trivial File Transfert Protocol), client DHCP
et serveur de configuration UDP (User Datagram Protocol) qui permet d’effectuer des mises à jour du
système.
Plus précisément, l’IPC@CHIP un système on Chip, c'est à dire un système complet incluant le
hardware ainsi que le software. Il est livré comme module Dil 32 avec système d'exploitation pré
installé prêt à l'emploie. Aussi bien dans le cas du système d'évaluation DK41 ainsi que pour chaque
circuit réalisé, l'IPC@CHIP est prêt à l'utilisation dés sa mise sous tension. Il se manifeste par la
connexion Ethernet par Telnet ou par son port série par un message de sollicitation traditionnel. Le
serveur FTP ainsi que le serveur HTTP sont prêt à recevoir leurs commandes. Après le
téléchargement de quelques pages html votre serveur Web embarqué se présente déjà avec son look
souhaité.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 33
GTCB
L'IPC@CHIP n'est pas uniquement un processeur de communication universel équipé de 2 ports
séries et un port Ethernet. Il dispose également des interfaces E/S communes aux microcontrôleurs
par lesquelles il peut être raccordé à un autre processeur s’il n'est pas lui même utilisé comme
processeur de commande. Avec ses 14 broches E/S bidirectionnelles sa fonctionnalité multiple
s'étend jusqu'au bus d'adresses data avec Chip select correspondant ainsi que naturellement les
entrées compteur et interruption. Un Maître I2C inclus dans le firmware complète ses possibilités.
Ici, le module DK40 pour montrer sa taille (5.3*6.1*2cm):
Ici, le microcontrôleur SC12 intégré au dk40 pour en faire un dk41:
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 34
GTCB

Chiffre clé du DK41
 Processeur : 80186 cadencé à 20 MHz.
 Mémoire :
-512 Ko de RAM (Random Access Memory)
-512 Ko de Flash divisée en 2:
-256 Ko sont destinés au stockage des fichiers et programmes
-256 Ko sont destinés au système d’exploitation
 Connectique :
-8 ports d'entrée/sortie
-2 ports séries (COM et EXT)
-1 prise Ethernet 10base-T
-1 LED programmable
-1 LED de trafic Ethernet
-1 transformateur 15-30V / 5V.

Le BIOS (Basic Input Output System)
Les différentes versions du bios ci dessous permettent une mise à jour du DK40 selon l’usage
souhaité.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 35
GTCB

Interface de communication/Gestion
Composants du dk41:
Le DK41 possède 3 interfaces de communications dont 2 séries TTL (Transistor-Transistor Logic) :
SM14 pour le RS232 et SM35 pour le RS485. La troisième interface de communication correspond à
la connexion réseau Ethernet via le port 10Base-T avec PHY par embase RJ45. C'est à partir de cette
connexion que nous allons pouvoir dialoguer avec notre serveur embarqué via Internet et agir sur
celui-ci. La liaison série servira essentiellement à la transmission de données du compteur EDF
A. Le port série
L'interface série est une interface asynchrone, ce qui signifie que le signal de cette interface n'est pas
synchronisé avec celui d'un bus quelconque. Les bits des données sont envoyés les uns après les
autres.
Un caractère est composé d'un ensemble de bit. C'est généralement une matrice de 8x8 bits codé
par une valeur. Cette valeur est comprise entre 0 et 255 et elle est stockée sur 1 octet.
Chaque caractère est délimité par un signal de début qui est un bit à 0 et par signal de fin standard
qui peut correspondre à un ou deux bits de fin, cela permet d'indiquer que le caractère a été envoyé.
L'interface asynchrone est orienté caractère, c'est à dire que l'on doit utiliser les signaux de début et
de fin pour identifier un caractère.
L'inconvénient de ce processus c'est qu'il augmente la duré des transferts .En effet pour chaque ligne
de 8 bits il faut au minimum 2 bits.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 36
GTCB
B. Liaison série
Dans une liaison en série, les données sont envoyées bit par bit sur la voie de transmission. Toutefois,
étant donné que la plupart des processeurs traitent les informations de façon parallèle, il s'agit de
transformer des données arrivant de façon parallèle en données en série au niveau de l'émetteur, et
inversement au niveau du récepteur.
C. Le port Ethernet
Ethernet (norme IEEE 802.3) est une technologie de réseau local basé sur le principe suivant :
Toutes les machines du réseau Ethernet sont connectées à une même ligne de communication,
constituée de câbles cylindriques.
Ethernet est une technologie de réseau très utilisée car le prix de revient d'un tel réseau n'est pas
élevé.
Tous les ordinateurs d'un réseau Ethernet sont reliés à une même ligne de transmission, la
communication se fait à l'aide d'un protocole appelé CSMA/CD (Carrier Sense Multiple Access with
Collision Detect).
Il s'agit d'un protocole d'accès multiple avec surveillance de porteuse (Carrier Sense) et détection de
collision.
Avec ce protocole toute machine est autorisée à émettre sur la ligne à n'importe quel moment et
sans notion de priorité entre les machines.
D. Telnet
Telnet est un protocole standard d’émulation de terminal. Une session est établie entre un poste de
travail (client Telnet) et une machine distante (serveur Telnet). Le protocole Telnet maintient sur une
connexion TCP afin de transmettre des données au format ASCII codé sur 8 bits par le client et puis
elle sera exécutée par le serveur donc il fournit un système orienté de communication, bidirectionnel
(half-duplex).
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 37
GTCB

Le système d’exploitation RTOS
L'avantage du SC12 réside dans son noyau temps réel multitâche orchestré par son système
d’exploitation RTOS (Real Time Operating System) avec une gestion de fichiers intégrés ainsi que les
protocoles TCP/IP, PPP, HTTP, FTP, Telnet, POP3, SMTP et DHCP.
Celui-ci est propre à l'IPC@CHIP qui comporte une API (Application Programmer Interface) complète
autorisant un accès aisé à toutes ses fonctionnalités mais aussi un accès simplifié aux services
TCP/IP.
La figure ci-dessous représente l’architecture du RTOS :

Le chip
CHIP.INI se trouve dans l’arborescence du module A:/, il permet l’intégration des paramètre de
communication tel que l’adresse IP (192.168.109.63) du module, la vitesse de transfert du port série
(19200) et permet d’activer le protocole telnet, ftp, Internet, etc. Ce fichier est modifiable.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 38
GTCB
Ci-dessus, le chip.ini tel que nous l’avons configuré
Le fichier AUTOEXEC.BAT peut contenir des commandes ou des programmes à exécuter lors du
démarrage du système.

L’hyper terminal
Vous pouvez créer et enregistrer plusieurs connexions dans HyperTerminal. Chaque
connexion peut avoir sa propre configuration unique : numéro de téléphone, paramètres de
port tels que nombre d'octets par seconde (bps), vérifications de parité et adresse TCP/IP hôte
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 39
GTCB
Une fois cette configuration effectuer nous obtenons sur l’hyper terminal ceci :
Pour visualiser ce que l’on a dans le DK41 il nous suffit de faire quelques commandes qui ressemblent
aux commandes dos.
Ci-dessous, un simple dir pour lister le répertoire :
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 40
GTCB
Une action sur entrer nous donne l’invite de commande.
Ci-dessous un récapitulatif des commandes les plus utiles de RTOS le système d’exploitation
embarqué.
 DEL nom de fichier
Effacer un ou plusieurs fichiers ( DEL TEST.EXE ou DEL *.DAT )
 DIR nom de fichier
Afficher le contenu d'un répertoire ( DIR HTTP ou DIR *.EXE )
 TYPE fichier
Afficher le contenu d'un fichier dans la console ( TYPE CHIP.INI )
 COPY fichier 1 fichier 2
Copier un fichier, on donne le nom du fichier source et de destination
 REN fichier 1 fichier 2
Renommer un fichier, on donne l'ancien nom suivi du nouveau
 MD répertoire
Créer un répertoire ( Make Directory ) ex: MD TEST
 XTRANS
Recevoir / envoyer des fichiers avec le protocole XMODEM par port série (
XTRANS COM R chip.ini on reçoit chip.ini par le port COM )
 CD répertoire
Changer de répertoire ( CD TEST )
 RD répertoire
Effacer un répertoire ( RD TEST )
 IW
Lire l'état d'une entrée de 16 bits à une adresse donnée ( IW 101 )
 IB
Lire l'état d'une entrée de 8 bits à une adresse donnée ( IB 101 )
 OW
Affecter une valeur à une sortie de 16 bits à une adresse donnée ( OW 100 F )
 OB
Affecter une valeur à une sortie de 8 bits à une adresse donnée ( OB 100 F )
 PCS
Active une ligne de chip select ( Valeurs possibles: 1,2,3,4,5 ou 6 ex: PCS 1 )
 ALE 0/1
Activer la pin Adress Latch Enable ( ALE 1 )
 IP adresse
Définir l'adresse IP du chip et désactive le DHCP
 NETMASK masque
Définir le masque de sous réseau ( désactive également le DHCP )
 GATEWAY adresse
Définir l'adresse de la passerelle ( ces 3 infos sont stockées dans CHIP.INI )
 DHCP 0/1
Activer / Désactiver le client DHCP
 IPETH
Redémarrer l'interface ethernet sans avoir à redémarrer tout le système
 TCPIPMEM
Afficher la quantité de mémoire utilisée par TCPIP
 FTP 0/1
Activer / Désactiver le serveur FTP ( info stockée dans CHIP.INI )
 IPCFG
Afficher la configuration IP
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 41
GTCB
 REBOOT
Redémarrer le système
 MEM
Afficher les informations concernant la mémoire
 CGISTAT
Lister tous les CGI qui sont exécutés
 CLOSETELNET
Clore une session Telnet
 WEBSTAT
Afficher les paramètres du serveur Web
 PING
Tester la connexion avec la commande ICMP ping
 TASKS
Lister toutes les tâches qui sont actives
 HELP
Afficher toutes les commandes console disponibles
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 42
GTCB
2. Les logiciels
a. L'environnement de développement BC5
Borland Software Corporation est un éditeur de logiciels basé à Austin, Texas. L’entreprise a été
fondée en 1983 par Philippe Kahn et Spencer Ozawa. Niels Jensen, Ole Rasmussen et Mogens Glad
ont également été impliqués au premier plan dans cette création. Borland est réputée pour ses EDI
(Environnements de Développement Intégrés) et ses outils de développement logiciel.
Borland C++ 5.02 est un environnement de développement basé sur OWL (Object Windows Librairie).
Cette version intégrant toutes les spécificités permet de programmer des microcontrôleurs comme le
kit DK41 IPC@CHIP.
Les programmes doivent être compilés en 16 Bits DOS compatible avec le processeur 80186.
Important : il faut
choisir DOS
STANDARD
comme type de
plateforme.
Si No Exceptions est décoché
Target model permet de choisir la
taille mémoire de la cible cela
permet d’optimiser en taille de la
compilation. Dans mon cas, comme
j’utilise un modèle large je suis
obligé de mettre Large
Par Mr. Kahila, Mr Klampas, Mr Marme
La taille du code sera plus
importante et n’importe quels
exécutable aura au minimum
26 ko. Laisser décocher si on
veut faire du débogage.
Page 43
GTCB
Clibv200bin contient les ***.h définissant les fonctions types :
Ne pas oublier d’ajouter la clib200l.lib avec l pour LARGE (Modèle du dk41):
Il y a aussi le programme associé POSTMAKE qui envoi le code compilé par le biais de FTP, il
ouvre une fenêtre Telnet afin de vérifier le bon déroulement.
Configuration de postmake
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 44
GTCB
b. Mozilla firefox & Internet Explorer
On utilisera ces différents navigateur pour valider les partie et vérifier les modules de codes.
Mozilla Firefox est un navigateur Web gratuit, développé et distribué par la Mozilla
Foundation aidée de centaines de bénévoles grâce aux méthodes de développement
du logiciel libre/Open Source et à la liberté du code source.
Firefox est à l'origine un programme dérivé du logiciel Mozilla, mais reprenant
uniquement les fonctions de navigation de ce dernier. Ce logiciel multiplateforme est compatible
avec diverses versions de Microsoft Windows, Mac OS X et GNU/Linux. Il a été porté sur d'autres
systèmes d'exploitation, ce qui est rendu possible par la mise à disposition de son code source sous
trois licences libres différentes en même temps (MPL, GPL et LGPL).
Windows Internet Explorer, parfois abrégé IE ou plus simplement Internet Explorer, est
le navigateur web de Microsoft, installé par défaut avec Windows. Depuis qu'il a
détrôné Netscape Navigator à la fin des années 1990, c'est le navigateur Web le plus
utilisé au monde.
Aujourd'hui, son principal concurrent est Mozilla Firefox.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 45
GTCB
3. Description du développement

Le langage C
Le C est en informatique un langage de programmation impératif conçu pour la programmation
système. Inventé au début des années 1970 avec UNIX, C est devenu un des langages les plus utilisés.
De nombreux langages plus modernes comme C++, PHP et Java reprennent des aspects de C.
Le langage C peut être qualifié de bas niveau ou peu typé dans le sens où le langage est conçu pour
permettre la manipulation directe des mots machine. Il propose un éventail de types entiers et
flottants qui correspondent directement aux types supportés par le processeur.
Il fait en outre un usage intensif des adresses mémoires avec la notion de pointeur. Il a une notion
de type composé, mais ne propose aucune opération qui traite directement des objets de plus haut
niveau (fichier informatique, chaîne de caractères, liste…).
Ces types plus évolués doivent être traités en manipulant des pointeurs et des types composés. De
même, le langage ne propose pas en standard la gestion de la programmation orientée objet, ni de
mécanisme d'exception, ou de traitement multitâche.
Il existe des fonctions standards pour gérer les entrées-sorties et les chaînes de caractères, mais
contrairement à d'autres langages, aucun opérateur spécifique pour améliorer l'ergonomie. Ceci
rend aisé le remplacement des fonctions standards par des fonctions spécifiquement conçues pour
un programme donné.
Ces caractéristiques en font un langage privilégié quand on cherche à maîtriser les ressources
utilisées, le code assembleur généré par les compilateurs étant relativement prévisible et parfois
même optimal sur les machines d'architecture RISC à grand nombre de registres.
Ce langage est donc extrêmement utilisé dans des domaines comme la programmation embarquée
sur microcontrôleurs, les calculs intensifs, l'écriture de systèmes d'exploitation et tous les modules
où la rapidité de traitement est importante.
En contrepartie, la mise au point de programmes en C, surtout s'ils utilisent des structures de
données complexes, est plus difficile qu'avec des langages de plus haut niveau. En effet, dans un
souci de performance le langage C impose à l'utilisateur de programmer certains traitements
(libération de la mémoire, vérification de la validité des index sur les tableaux…) qui sont pris en
charge automatiquement dans les langages de haut niveau.
Remarque : Afin de réaliser ce projet il est impératif de connaître le langage C
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 46
GTCB

Le CGI
La Common Gateway Interface (littéralement « Interface passerelle commune »), généralement
abrégée CGI, est une interface normalisée utilisée par les serveurs HTTP. Ce dernier, au lieu
d'envoyer le contenu d'un fichier (page HTML, image...), exécute un programme puis retourne le
contenu généré, comme s'il s'agissait d'un contenu de fichier.
CGI est le standard industriel qui indique comment transmettre la requête du serveur HTTP au
programme et comment récupérer la réponse générée. CGI permet de passer des paramètres au
programme, de telle manière qu'il puisse en tenir compte pour générer les données. Un exemple
classique de paramètre est la chaîne de caractères contenant les termes recherchés auprès d'un
moteur de recherche.
Une des caractéristiques de l'interface CGI est d'être indépendante de tout langage. Même si le
langage Perl a historiquement été souvent utilisé pour en écrire, il est possible d'écrire un
programme CGI en C, Python, Gambas, PHP, en script shell, en VB ou en tout autre langage de
programmation.
Comme cette technologie requiert qu'une nouvelle copie du programme soit lancée à chaque
requête, elle surcharge rapidement les serveurs. Ceci a eu pour effet la création d'autres
technologies plus flexibles et efficaces.
Une solution est d'intégrer les langages directement dans le serveur HTTP sous forme de modules,
ceci nécessitant une adaptation bien plus lourde des interpréteurs et qui est propre au serveur HTTP.
C'est le cas avec Apache pour des langages couramment employés pour les applications Web,
comme PHP (configuré en module).
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 47
GTCB
Exemple de code CGi en C :
static char HtmlPageHead[] = "<HTML><HEAD><TITLE> BeckDK40 </TITLE></HEAD>"
"<BODY BGCOLOR=\"#006600\">"
"<IMG SRC=\"beck.gif\" ALIGN=\"CENTER\" ALT=\"BECK\">"
"<BR>"
"<CENTER>"
"<H1>Bienvenue sur Le centre de gestion de la DK40</H1>"
"<HR size=0>"
"</CENTER>" ;

Le C++
Bjarne Stroustrup a développé C++ au cours des années 1980, alors qu'il travaillait dans le laboratoire
de recherche Bell d'AT&T. Il s'agissait en l'occurrence d'améliorer le langage C. Il l'avait d'ailleurs
nommé C with classes (C avec des classes). Les premières améliorations se concrétisèrent donc par la
prise en charge des classes, ainsi que par de nombreuses autres fonctionnalités comme les fonctions
virtuelles, la surcharge des opérateurs, l'héritage (simple ou multiple), les « templates », la gestion
des exceptions, etc.
Le C++ est un langage de programmation permettant la programmation sous de multiples
paradigmes comme la programmation procédurale, la programmation orientée objet et la
programmation générique. C++ est actuellement le 3e langage le plus utilisé au monde. Le langage
C++ n'appartient à personne et par conséquent n'importe qui peut l'utiliser sans besoin d'une
autorisation ou obligation de payer pour avoir le droit d'utilisation.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 48
GTCB

Les sockets
La notion de sockets a été introduite dans les distributions de Berkeley (un système de type UNIX,
dont beaucoup de distributions actuelles utilisent des morceaux de code).
Il s'agit d'un modèle permettant la communication inter processus (IPC - Inter Process
Communication) afin de permettre à divers processus de communiquer aussi bien sur une même
machine qu'à travers un réseau TCP/IP.
On distingue ainsi deux modes de communication :


Le mode connecté (comparable à une communication téléphonique), utilisant le protocole
TCP. Dans ce mode de communication, une connexion durable est établie entre les deux
processus, de telle façon que l'adresse de destination n'est pas nécessaire à chaque envoi de
données.
Le mode non connecté (analogue à une communication par courrier), utilisant le protocole
UDP. Ce mode nécessite l'adresse de destination à chaque envoi, et aucun accusé de
réception n'est donné.
On s’intéressera au mode connecté donc TCP :
On devra utiliser les sockets pour envoyer, réceptionner le
scénario qui nous permettra de piloter les sorties TOR et
fils pilotes du Dk41.
La socket client sera sur le serveur Linux.
La socket serveur sera exécutée sur la dk41.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 49
GTCB

Les morceaux de codes importants
A. Installer les Fonctions CGI
/* initialise CGI_entry process */
processexample.PathPtr
= ProcessName; /*noms de la page */
processexample.method
= CgiHttpPost;
/*methode */
processexample.CgiFuncPtr = Process_Func; /*nom de la fonction */
cgiptr = &processexample; /* pointeur à l’adresse de la structure */
inregs.h.ah = CGI_INSTALL;
inregs.x.dx = FP_SEG(cgiptr);
inregs.x.si = FP_OFF(cgiptr);
int86(CGIVECT,&inregs,&outregs);
if(outregs.x.dx == (unsigned int)CGI_ERROR) /*
Test si il y a erreur à l’installation
*/
{
printf("\r\nInstalling CGI function %s failed --> exit program\r\n",processexample.PathPtr);
return 0;
}
B. Utiliser les Fonctions CGI
void huge _pascal scenario_Func(rpCgiPtr CgiRequest) /* Page 1 */
void huge _pascal Submit_Func(rpCgiPtr CgiRequest)
/* Page 2 */
void huge _pascal Process_Func(rpCgiPtr CgiRequest) /* Page 3 */
 C’est dans ces fonction qu’on construit les pages Html, récupère les arguments du
navigateur, stocke les informations…
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 50
GTCB
C. Stocker et afficher des pages en CGI
static char HtmlPageTail[ ] =
"<P><A HREF=\"submitexample\">Retour à la page Submitexample</A></P>"
"<HR size=0>"
"<p align=center><SMALL><EM>&copy BECK IPC GmbH, 2009</EM>"
"</BODY>"
"</HTML>";
memset(ProcessPageBuffer, 0, 2048);
strcpy(ProcessPageBuffer, HtmlPageTail);
//On récupère les arguments
CgiRequest->fHttpResponse
CgiRequest->fDataType
= CgiHttpOk;
/* HTTP 200 OK */
= CGIDataTypeHtml; /* text/html */
CgiRequest->fResponseBufferPtr = ProcessPageBuffer; /*Adresse de la page */
CgiRequest->fResponseBufferLength = strlen(ProcessPageBuffer); /* Taille */
 Ici, on «vide» la page ProcessPageBuffer puis on met les informations de la page
HtmlPageTail afin d’afficher la page
Remarque : pour compléter la page à la suite avec d’autre tableau de char, on utilise strcat
D. Créer et redémarrer les tâches
Afin de gérer les fils pilotes, nous avons choisis de créer des tâches parallèles au programme
principal.
RTX_Create_Task (&task1ID , &task1defblock); /* créer et démarrer une tâche */
RTX_Restart_Task (&task1ID , &task1defblock); /* Démarrer une nouvelle tâche ou redémarrer
une tâche tuée. */
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 51
GTCB
E. Supprimer les fonctions CGI
inregs.h.ah = CGI_REMOVE; /* Supprime submitexample (Fonction CGI) */
inregs.x.dx = FP_SEG(submitexample.PathPtr);
inregs.x.si = FP_OFF(submitexample.PathPtr);
int86(CGIVECT,&inregs,&outregs);
if(outregs.x.dx == (unsigned int)CGI_ERROR) /* Teste si erreur à la suppression
*/
{
printf("\r\nRemoving %s failed\r\n",submitexample.PathPtr);
return 0;
}
printf("\r\n%s removed\r\n",submitexample.PathPtr); /* Affiche un message : la fonction a
été supprimée
Par Mr. Kahila, Mr Klampas, Mr Marme
*/
Page 52
GTCB
Pésentation Candidat numéro 3 :
Marme Alexis
DEVELOPPEMENT : PARTIE PERSONNELLE………………………………………………….……54
* Présentation de la partie………………………….…………………………………………….54
* Contraintes de développement………………..…………………………………………….54
* Développement………………………………………………………………………………………55
* Fonctionnalité…………………………………………..…………………………………………….56
* Validation ………………………………………………….…………………………………………..57
*Intégration avec le groupe………………………….……………………………………………58
* Planification ……………………………………………………………………………………………59
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 53
GTCB
DEVELOPPEMENT : PARTIE PERSONNELLE
-Présentation de la partie
La partie du projet qui m’a été confié est la mise en place d’un serveur Web qui logerait un site
internet permettant de configurer graphiquement et simplement la semaine puis de l’enregistrer
pour que les scenarios s’exécutent.
L’utilisateur, pour effectuer les enregistrements des scénarios qu’il désire, n’aura qu’à
Le site internet doit avoir une fonction d’authentification afin de pouvoir réserver l’accès au site
seulement aux utilisateurs autorisés. L’utilisation du site devra être de la plus grande simplicité.
L’ergonomie sera travaillée de manière à offrir à l’utilisateur une utilisation du site encore plus
confortable.
Les erreurs doivent être gérées :
-un message s’affichera à l’écran, pendant une durée de deux secondes, décrivant l’interdiction à
respecter.
-l’utilisateur sera directement redirigé à la page précédente pour qu’il puisse réessayer son
enregistrement.
-Contraintes de développement
Contraintes matériels :
 PC sous Linux Mandrake 2007
 Connexion à internet via le routeur de notre section informatique
Contraintes logiciels :
 Notepad++
Editeur de texte. C’est avec ce logiciel que j’ai effectué les développements html, PHP,
JavaScript et Css.
 Lampserver
Serveur Web sous Linux Mandrake 2007. C’est l’ensemble des éléments permettant de
créer le site internet accessible à partir de n’importe quel ordinateur connecté à internet.
Les éléments comprendront :
-le serveur web : Apache
-Le serveur de base de données : MySQL
-Le serveur d’exécution PHP : PHP-5
-Une interface graphique évoluée afin de gérer facilement la base de données :
PhpMyAdmin
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 54
GTCB
 Mozilla Firefox v3.0.7
Navigateur Web Alternatif. Il me permettra de voir directement le résultat de mes tests
lors de la conception du site. J’ai choisis ce navigateur car c’est un des plus réputés pour
ses performances, sa rapidité et sa compatibilité.
Contraintes d’utilisation :
 Les scenarios devront être enregistrés dans l’ordre chronologique
 Les erreurs d’enregistrements de scénarios doivent être gérés
-Développement
La configuration des scénarios doit être de la plus grande simplicité, de manière à ce qu’un
utilisateur inexpérimenté puisse comprendre le fonctionnement de l’enregistrement des scénarios.
Afin de pouvoir offrir un site permettant de multiples fonctions permettant, soit de faciliter
l’utilisation du site, soit permettre à l’utilisateur de configurer certaines préférence, plusieurs
fonctions ont été ajoutés au site.
Nous ferons alors la description de chacune de ces fonctions :
-Fonctionnalités









Contrôle d'identité.
Enregistrement des erreurs de login
Affichage en résumé de la semaine dans un tableau
Recopie d’un jour
Remise à zéro du tableau
Remise à zéro d’une journée
Changement du mot de passe
Création et envoi d’un fichier texte
Déconnection
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 55
GTCB
Présentation des fonctionnalités
 Contrôle d'identité
Un contrôle de l’identité est effectué à la connexion au site.
Un nom d’utilisateur et un mot de passe vont permettre de sécuriser totalement l’accès au site.
Considérant que l’accès au site étant destiné à une seule personne, nous n’aurons qu’un seul nom
d’utilisateur et un mot de passe.
Le nom d’utilisateur sera stocké dans une table de la base de données lui étant uniquement
destiné. Le nom d’utilisateur ne sera pas encrypté.
Le mot de passe sera stocké lui aussi dans la même table de la base de données.
Par contre, pour des raisons de sécurités, le mot de passe sera encrypté en utilisant la fonction
d’encryptage PHP « MD5 ».
 Enregistrement des erreurs d’authentifications
Pour des raisons de sécurité optimales, une fonction a été rajoutée.
Cette fonction permet de relever un certain nombre d’informations lors de l’échec d’une
authentification sur le site.
Effectivement, à chaque fois qu’un utilisateur non autorisé à pénétrer sur le site saisira un nom
d’utilisateur ou un mot de passe erroné, nous enregistrerons directement dans notre base de
données 4 informations sur l’erreur d’authentification :
-l’heure de connexion
-la date de connexion
-le nom d’utilisateur saisi lors de la tentative de connexion
-l’adresse IP dynamique de l’ordinateur ayant tenté de se connecté
Ces informations seront indispensables à la détection et surtout la prévention d’un accès non
autorisé sur le site.
 Affichage en résumé de la semaine dans un tableau
Le principe de l’enregistrement des scénarios est basé sur un tableau contenant 7 colonnes
représentatif des jours de la semaine. Chaque scénarios enregistrés ne pourra appartenir qu’à un
unique jour entre 00h du matin jusqu’à minuit le soir.
Pour cela, l’enregistrement de scénarios se fera de manière chronologique, ce qui permettra une
organisation sans erreur de la part de l’utilisateur.
L’affichage des scénarios se succèderont dans l’ordre chronologique le long de la colonne du jour
concerné. Pour chaque scénario nous préciserons les informations saisies :
-numéro du scénario
-mode du radiateur saisi
-heure d’intervalle
-le ou les radiateurs concernés
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 56
GTCB
 Recopie d’un jour
En vue d’un utilisateur ayant un emploi du temps assez répétitif dans la semaine, une fonction
permettant de recopier directement une journée a été ajoutée au site.
Cette fonction permet une utilisation plus confortable du site.
L’utilisateur sélectionnera la journée « source » qui sera la journée à copier puis il sélectionnera la
journée « destination » qui sera la journée destinée a être copiée. L’utilisateur cliquera pour lancer
la copie sur la base de données puis il pourra vérifier directement le résultat sur le tableau de la
semaine.
 Remise à zéro du tableau
Cette fonction permet simplement d’effacer tous les enregistrements contenus actuellement dans
le tableau. Cette fonction est destinée en cas d’une grosse erreur dans l’enregistrement des
scénarios de l’utilisateur.
 Remise à zéro d’une journée
Cette fonction permet d’effacer tous les enregistrements contenus actuellement dans une journée.
Cette fonction est destinée en cas d’une erreur dans l’enregistrement des scénarios d’une journée
que l’utilisateur n’aura qu’à sélectionner.
 Changement du mot de passe
Le mot de passe doit pouvoir être modifiable selon les préférences de l’utilisateur.
Une fonction de modification de mot de passe a donc été ajoutée au site.
Après s’être correctement authentifié sur le site, il suffira à l’utilisateur de saisir deux fois son
nouveau mot de passe et de cliquer pour appliquer les modifications sur la base de données.
Le mot de passe sera alors automatiquement ré-encrypté dans la base de données pour pouvoir
toujours assurer la sécurité de l’utilisateur.
 Création et envoi d’un fichier texte
Après avoir entièrement configuré la semaine désirée, les scénarios enregistrés sur la base de
données vont pouvoir être envoyé à la gestion centralisée du bâtiment (DK40). L’utilisateur
cliquera donc sur le bouton d’enregistrement pour lancer la création d’un fichier texte contenant
les scénarios enregistrés dans la base de données. Ce fichier texte sera stocké sur le Serveur Web.
Il sera construit selon une configuration et une organisation établit au préalable avec la personne
chargé de réceptionner le fichier pour ainsi le« décoder » et effectuer correctement son exécution.
Le fichier texte sera envoyé du Serveur Web à la DK40 par une connexion par socket TCP/IP.
Le Serveur Web et la DK40 seront reliés par un câble Ethernet et sont donc connectés par un
réseau local.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 57
GTCB
 Déconnection
Afin de finaliser la sécurité du site, une fonction de déconnection a été ajoutée au site.
L’utilisateur pourra choisir, après avoir configuré et enregistré le déroulement de la semaine, de se
déconnecté afin que personne ne puisse accéder au site juste après son passage et donc sans avoir
à s’authentifier.
-Validation
La validation du projet a été effectuée en effectuant directement de multiples enregistrements sur
le site. Une fois l’enregistrement de la semaine terminée, on vérifie que tous les résultats sont bien
apparents sur le tableau et que tout coïncident. Une fois ce contrôle effectué, nous pouvons alors
décider de transmettre la configuration de notre semaine à la gestion centralisée du bâtiment
technique. L’enregistrement et l’envoi par socket du fichier texte ont été effectués avec succès.
Après une attentive lecture du fichier texte et en comparant les résultats aux enregistrements
effectués auparavant sur le site, nous avons pu confirmer que tous les résultats étaient identiques.
L’envoi du fichier texte a donc correctement été effectué et le fichier n’a pas été modifié.
L’exécution de la configuration des scénarios enregistrés est gérée par la gestion centralisée du
bâtiment. L’exécution du fichier texte est destiné a l’étudiant 1, c’est donc l’étudiant 1 qui fera les
tests d’exécutions des scénarios par rapport à la contenance du fichier.
L’ensemble de ces test ont permis de faire la validation générale de la partie qui m’était réservée.
-Intégration avec le groupe
Le principe de l’intégration avec le reste du groupe a été de se mettre en accord sur le fichier texte.
En effet, après la validation de l’envoi du fichier texte à la gestion centralisé du bâtiment, nous
allons pouvoir commencer à exécuter les scénarios par rapport à la contenance du fichier.
Nous avons du mettre en place une organisation très stricte du fichier texte afin de permettre à la
gestion centralisé de pouvoir « lire » correctement le fichier pour ensuite l’exécuter.
Nous avons alors écrit une procédure d’écriture du fichier texte. Cela a généré des modifications au
niveau de mon code afin de pouvoir écrire le fichier texte selon la procédure que nous avons
écrite.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 58
GTCB
-Planification
Semaine *Modélisation du système.
1
*Commencement des diagrammes des cas d’utilisation
Semaine *Modélisation du système.
2
*Suite des diagrammes des cas d’utilisation
Semaine *Suite des diagrammes des cas d’utilisation puis diagrammes de déploiement
3
*Installation et configuration du poste de travail :
-Mise en place d’un serveur web sur un poste sous Linux
Semaine *Suite des diagrammes de déploiement
4
*Installation et configuration du poste de travail :
-Mise en place du serveur PHP, MYSQL et installation de la base de données
Semaine *Suite des diagrammes des cas d’utilisation puis diagrammes de déploiement
5
*Développement du code permettant l’envoi d’un fichier texte par socket client TCP
Semaine *Développement du code permettant l’envoi d’un fichier texte par socket client TCP
6
Semaine *Développement du code permettant l’envoi d’un fichier texte par socket client TCP
7
Semaine *Développement du code permettant la configuration d’un scénario depuis un
8
navigateur HTTP :
-Développement d’un tableau permettant de visualiser l’ensemble des scénarios
actuellement enregistrés dans la base de données
Semaine *Développement du code permettant la configuration d’un scénario depuis un
9
navigateur http
-Développement du formulaire d’enregistrement d’un scénario puis validation
Semaine *Développement du code permettant la configuration d’un scénario depuis un
10
navigateur http
-Développement de la sécurité du site : mise en place d’un mot de passe, protection
de l’accès de chaque page du site, enregistrement des erreurs d’authentification et
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 59
GTCB
fonction de déconnection
Semaine *Développement du code permettant la configuration d’un scénario depuis un
11
navigateur http
-Développement du code permettant une remise à zéro d’une journée ou remise à
zéro total de la semaine
-Développement du code permettant de changer le mot de passe d’authentification
Semaine *Développement de l’ergonomie du site :
12
Mise en place de langage JavaScript et Css. Ces deux langages communément utilisés
vont permettre d’insérer une barre de menu dynamique qui sera présente sur chaque
page du site. Cela permettra à l’utilisateur une navigation plus confortable.
Utilisation de langage JavaScript qui nous permettra aussi d’empêcher à l’utilisateur de
pouvoir enregistrer des scénarios dépassant minuit (on fera disparaitre le choix des
minutes si « 24h » est sélectionné)
Semaine *Test de validation qui nous a permit de valider individuellement chaque fonction.
13
Semaine *Intégration avec le reste du groupe :
14
-Rassemblement des fichiers sur le même serveur web de test.
-Validation de l’envoi du fichier texte par une socket client TCP
-Développement du code permettant l’assemblage des deux sites sur une même page.
Cela permet une utilisation plus confortable du site.
Semaine *Intégration avec le reste du groupe :
15
-Développement du code permettant l’assemblage des deux sites sur une même page.
Cela permet une utilisation plus confortable du site.
-Validation générale du fonctionnement du site en faisant une utilisation complète de
toutes les fonctions, vérification des erreurs, validation de la réception du fichier et
comparaison des données contenues par rapport aux scénarios enregistrés au départ
Semaine *Optimisation générale du code générant l’IHM et ajout du CRC16.
16
Semaine *Optimisation générale du code générant l’IHM et ajout du CRC16.
17
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 60
GTCB
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 61
GTCB
3. Conception
A.Intégration
Afin de rendre les 3 axes du projet à savoir, relevé des informations, génération de scénario, et
pilotage par scénario ou coups par coups, commun.
Nous avons mit en place des notions d’intégrations entre les parties, en effet dans le contexte en
raison de librairies différents à savoir :
-
clibs ( SMALL )
-
clibl ( LARGE )
Lors de la création des applications le programme web ne contiendra pas directement les données
relevé de température et edf d'ou la création de deux applications différentes.
Et la mise en place d’un fichier texte « relevé » formaté avec des caractères html.
Ce fichier, le candidat deux peut lire et manipuler à volonté.
Néanmoins les candidats un et deux ont pu intégrer les codes de manipulation de sortie dans le
serveur cgi.
Parallèlement le candidat deux communique avec le serveur d'ou un programme de socket
réceptionnant un scénario et un fichier horaire.
Horaire permet d’initialiser une heure commune entre l’ordinateur sous linux et la dk41.
Scénario lui contient l'intégralité de la semaine. Le candidat trois utilise des caractères séparant les
jours et les informations de manières à permettre au candidat deux de manipulé et extraire les
informations souhaité.
En outre un frame est disposé sur le site web du candidat trois afin de contenir le site web du
candidat deux permettant ainsi d'évité l'utilisation de multiple lien sur les exploreurs.
De plus un fichier « autoexec.bat » lance le programme
-
Socket qui reste en tache de fond
-
Le programme de réception des données edf et température (afin d'avoir un fichier txt à jour
)
-
Le serveur web cgi est à son tour lancer.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 62
GTCB
B.Cahier de test
Test
statut
Ok
Ok si
Démarrage de la dk41
Lancement du programme de releve
I2c
Rs232
Réception des informations
Fichier texte généré
Serveur cgi
Affichage des pages
Manipulation des sorties
Lancement serveur linux
Apache
généré scénario
horaire
Envoyée
Réception d'horaire
Init
Réception d'un scénario
Interruption si :
Revenir au mode scénario
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
Ok
socket init et envoi ok
Ok
Ok
Arrêt du mode coups par
coups
Ok
Lancement scénario Ok
Nouveau scénario
Ok
mode coups par coups ok
Ok
C.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 63
GTCB
D.
4. Conclusion
A.Bilan
Le but de la conception de ce projet était la conception d’une gestion centralisé d’un bâtiment.
Ce projet devait permettre de pouvoir contrôler :
 Un suivi en temps réel de la consommation d'électricité;
 le calcul en temps réel de la facture d'électricité;
 les relevés de température intérieure et extérieure du bâtiment.
 le contrôle indépendant de deux radiateurs sur 6 ordres possibles;
 l’enregistrement de scénarios permettant le contrôle automatisé des radiateurs sur
une semaine
La réalisation du projet nous a permis de nous initier à tout ce qui concerne la gestion d’un projet :
-Organisation et méthodologie similaire aux entreprises
-répartition des taches
-définition des points d’intégration à respecter
-mise en place d’une planification à respecter
Ce projet nous a aussi permis d’appliquer les connaissances qui nous ont été inculquées au cours
de ces deux années de BTS au lycée La Tourelle.
La Finalisation du projet n’a pas pu être effectuée à temps. Les fonctions principales des parties de
chaque étudiant ont été finalisé mais l’intégration a causé énormément de problème. La mise en
place de la notion de temps dans le fichier texte a été un sujet de réflexion qui a lourdement pesé
sur notre projet.
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 64
GTCB
ANNEXES
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 65
GTCB
Procédure d’installation du Serveur Web sur
Linux Mandrake 2007
Configuration requise pour l’installation du composant :
-Connexion internet LAN
-Ordinateur sur Linux Mandrake 2007
Procédure à suivre:

Ouvrir une console Shell, se logger en « root », et ainsi taper à la suite les
commandes suivantes :
- #Urpmi Apache
**crée et installe un serveur web effectif**
- #Urpmi mysql
effectif**
**Crée et installe un serveur de base de donnée
- #Urpmi Urpmi apache-mo-php-5
permettant d’effectuer mes test**
**Installe un serveur PHP
- #Urpmi PHPmyAdmin
**Installe une interface graphique
permettant de gérer plus aisément la base de donnée**

Vérification du serveur PHP :
Dans «/var/www/html », créer un fichier « test.php », et écrivez :
<?php phpinfo() ; ?>
(n’oubliez pas
d’enregistrer !)
Ouvrez votre navigateur web préféré et tapez l’adresse :
http://localhost/test.php
Vous devez voir apparaitre ceci à l’écran
Installation du serveur PHP valide.

Vérification du Serveur de base de données
Dans l’invite de commande, tapez la commande :
- #mysql-secure-installation
**On vous demandera alors si vous voulez créer un mot de passe pour la
connexion à votre base de données. Saisissez votre mot de passe et retenez le
bien**
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 66
GTCB
- #mysql –u root -p
**On vous demandera de rentrer le mot de passe que vous venez de créer**
Tapez la commande :
mysql> show databases ;
(N’oubliez pas le point virgule)
Vous devriez avoir ceci à l’écran
Installation du Serveur de base de données valide.

Vérification de PHPmyAdmin:
Ouvrez votre navigateur web préféré et tapez l’adresse :
http://localhost/phpmyadmin
Par Mr. Kahila, Mr Klampas, Mr Marme
Page 67
Téléchargement