Rapport complet

publicité
RAPPORT DE PROJET
Projet Domotique, Commande, et gestion
!
Préparé pour : Projet M1 2013/2014 - ISEN
Préparé par : Samuel Bar, Steven Bargain
Durée du projet : 120 jours environ
Numéro de la proposition : Rapport final
!
!1
PROJET DOMOTIQUE, RAPPORT FINAL
SOMMAIRE DE GESTION
•
•
•
•
INTRODUCTION……………………………………………………….page 4
CAHIER DES CHARGES…………………………………….……page 5-18
GESTION DE PROJET………………………………………..….page 19-21
DÉVELOPPEMENT TECHNIQUE………………………………page 22-39
‣
‣
Fiche technique…………………………………………………………..page 22-23
Mise en place du site web……………………………………………..page 24-26
•
La programmation en PHP, HTML, CSS………………………………………………page 25
•
Les iFrames…………………………………………………………………….………..page 25
•
Le lien entre PHP et commandes Linux……………………………………….………page 26
‣
Linux………………………………………………………………………..page 27-29
•
Quel kernel choisir ?…………..………………………………………….….…………page 27
•
Le « rootage » des commandes PHP………………………………………….……..page 28
•
Avantages et points faibles d’Angström 3.2…………………………………….……page 29
‣
‣
La sécurité………………………………………………………………….…page 30
Application………………………………………………………………….…page 31
•
Prise en main du BeagleBone………………………………………….………………page 31
•
Comprendre l’organisation des ports……………………………………………….…page 32
•
Mise en place des composants………………………………………….………….…page 34
•
La maquette finale………………………………………………………………………page 37
‣
Phase de test……………………………………..………………………..…page 38
•
•
•
CONCLUSION………….………………………………..……….…..page 41
BIBLIOGRAPHIE……………………………………………………..page 42
ANNEXES……………………………………………………..…..page 43-45
!2
PROJET DOMOTIQUE, RAPPORT FINALE
SOMMAIRE DES FIGURES
!
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Figure 1 - Bête à cornes…………………………………………………….page 6
Figure 2 - Pieuvre…………………………………………………………….page 7
Figure 3 - Exemple de panneau d’IHM…………………………….……page 11
Figure 4 - Asservissement d’une lampe……………………………..….page 13
Figure 5 - Asservissement en température………………………….…page 16
Figure 6 - Détection d’ouverture…………………………………………page18
Figure 7 - Webcam sur IP……………………………………………….…page 18
Figure 8 - Organigramme d’avancement…………………………….…page 19
Figure 9 - Organigramme de répartition des tâches…………………page 21
Figure 10 - Interface web finale……………………………………….…page 24
Figure 11 - Terminal linux Angstrom…………………………………….page 31
Figure 12 - Répartition des ports du BeagleBone…………………….page 32
Figure 13 - Carte électronique du BeagleBone………………………..page 34
Figure 14 - Carte du capteur de température………………………….page 35
Figure 15 - Carte du capteur d’ouverture………………………………page 36
!3
PROJET DOMOTIQUE, INTRODUCTION
INTRODUCTION
!
!
!
!
Avec la démultiplication des appareils électroniques dans les foyers, la possibilité de
diriger ceux-ci à distance devient de plus en plus intéressante. Pouvoir régler son chauffage
avant d’arriver chez soi, ou déclencher la mise en route automatique de sa cafetière le matin
deviennent accessibles au plus grand nombre. Les principaux acteurs actuels du marché tel
que Somfy proposent des gammes performantes, mais à des prix excessivement élevés.
Aujourd’hui, avec l’avènement des mini-ordinateurs embarqués (Arduino, RaspBerry
PI, BeagleBone…), la domotique bon marché s’ouvre à un large public, mais nécessite tout
de même une certaine base de connaissance en électronique, informatique, etc.
C’est ici qu’intervient le projet domotique proposé par l’ISEN Brest et son référent M.
Alain Reboux. L’objectif ici, est de synthétiser à travers une interface simple et accessible
depuis n’importe où, les principales fonctions domestiques que l’on cherche à contrôler
(éclairage, chauffage, ouvertures…). Celles-ci, exploitées depuis un mini-ordinateur ARM
avec Linux embarqué.
Ce rapport, décrit étape par étape, les méthodes employées permettant
l’aboutissement d’un tel projet, du cahier des charges, aux phases finales de test.
!
!
!
!
!
!
!
!
!4
PROJET DOMOTIQUE, CAHIER DES CHARGES
CAHIER DES CHARGES
!
La constitution du cahier des charges est l’étape numéro 1 du projet. Il rassemble les
principales fonctions de notre système, les composants utilisables, les solutions, ainsi que
les méthodes d’application de ces fonctions.
!
I - La demande client
!
Objectif
Le système doit permettre de commander et visualiser à distance les appareils
électrodomestiques.
!
!
!
Demande client
Le système doit permettre de commander et visualiser l'état d'appareils et d'autres
informations à distance. Plus précisément, il s'agirait de pouvoir commander à partir d'un
PC ou d'un smartphone des appareils situés dans une habitation éloignée tels que des
lampes en tout ou rien, des lampes en gradation, le chauffage, et visualiser des informations
telles que l'état ouvert ou fermé des portes et fenêtres, de la température d'une pièce.
Si le temps le permet, le système devrait aussi permettre de faire une programmation
horaire des appareils connectés.
Sur le PC, il ne devrait pas y avoir de logiciel à installer, sauf indications contraires.
Dans l'habitation, les liaisons filaires seront limitées autant que possible. La visualisation sur
le PC doit être automatique et dépendre de l'installation de l’habitation : si un nouvel
appareil commandable est ajouté dans l'habitation, il doit apparaître sur la visu (et
inversement si un appareil est retiré).
!5
PROJET DOMOTIQUE, CAHIER DES CHARGES
II - Définition du besoin
Figure : 1 - Bête à cornes
L’objectif du diagramme « bête à cornes » est de formuler l’analyse fonctionnelle du besoin.
Il permet de formuler ce besoin sous forme de fonctions simples que devra remplir le
produit.
!
Les appareils électrodomestiques sont les systèmes électroniques de la maison (lampes,
volets électriques, chauffage, alarmes…).
!
!6
PROJET DOMOTIQUE, CAHIER DES CHARGES
III - Fonctions principales et fonctions de contraintes dans la
situation de vie opérationnelle
Figure : 2 -Pieuvre
!
L’objectif du diagramme « pieuvre » est d’identifier les relations entre les milieux et le produit.
!
Fonctions principales
Critère
FP1
Le système permet de commander les appareils électrodomestiques
FP2
Le système informe l’utilisateur de l’état des appareils électrodomestiques.
FP3
Le système permet à l’utilisateur de programmer l’usage des appareils.
Fonctions contraintes Critère
FC1
Le produit doit être économe en énergie
FC2
Le produit doit supporter une perturbations électrique (panne de courant)
FC3
Le produit doit être sécurisé (protection contre les attaques informatiques)
FC4
L’interface doit être simple, optimisée et agréable
FC5
Les liaisons filaires doivent être limitées autant que possible
FC6
Le produit doit être accessible depuis n’importe quel navigateur web
FC7
Le produit doit détecter la présence ou non d’un appareil
!7
PROJET DOMOTIQUE, CAHIER DES CHARGES
IV - Définition des fonctions de services et de leurs usages
!
L’objectif ici, est de valoriser les fonctions du diagramme pieuvre, en termes :
-
D’USAGE : caractéristiques de performances quantifiée (mètre, Dbm, kg…).
-
D’ESTIME : caractéristique générant le désir du client : (couleur, forme…).
-
D’ECHANGE : coût d’une fonction ou d’une caractéristique (prix du km de
portée…). Ce que le client est prêt à payer.
!
Il s’agit donc d’identifier les mots clés dans chaque fonction.
!
!
!
Fonctions de service Critères d’appréciation
Usage
Programmer
- Marche manuelle
Puissances intermédiaires
Précision température :
0,5° C
- Marche automatique 2
positions (ouvert ou fermé)
Précision éclairage
50 lm
!
!
!
- Horaires
Informer
- Schéma interactif
!
!!
!!
- Notifications
-Visualisation des appareils
connectés au systèmes
Échange
prix ?
!
!
Précision 15 mn
- Page web (HTML, CSS,
PHP)
!
!
!!
- Pop-up
- Site version Mobile/
tablette
!
!8
PROJET DOMOTIQUE, CAHIER DES CHARGES
Fonctions de service Critères d’appréciation
Appareils électrodomestiques
!!
!!
!
!!
!!
!
Lampes
Chauffage
- Délais de fonctionnement
!
!!
!
- Température ambiante
Commander les lampes :
Toute lampe utilisable sur
secteur et alimentation
conventionnelle ( 220 V)
en gradateur et TOR
!!
!
- Remplacement thermostat
Usage
Échange
!!
!!
!!
!
!
!
!
!!
!
- Immédiat
- Immédiat
Précision : 50 lm
- Immédiat
- Immédiat
- Alimentation 220 V
Économe
- Mode activité / veille
- Sonde de consommation
électrique
Fiable
- MTBF (temps moyen de bon
fonctionnement)
15 ans
Sécurisé
- Attaques informatiques
!
!
- type HTTPS
- Web Design
- Esthétique
- CSS 3.0
- Login
- Mot de passe
Interface
Minimum
!!
!
!9
PROJET DOMOTIQUE, CAHIER DES CHARGES
!
Fonctions de service Critères d’appréciation
Niveau
Échange
Liaisons
- Liaisons filaires limités
2m
Maximum
- Communications sans fil
30 m
Minimum
!
!
!
!
!
!
V - Caractéristiques générales
!
Dans le but de synthétiser les informations obtenues à l’aide des diagrammes et
tableaux précédents, voici la liste exhaustive des fonctions que le système devra réaliser à
son aboutissement.
!
Le système devra :
✓ Permettre de commander en tout ou rien les lampes
✓ Commander les lampes par gradateur
✓ Commander le chauffage avec précision
✓ Programmer les horaires de fonctionnement (plages horaires)
✓ Informer de l’ouverture / fermeture des portes-fenêtres
✓ Visualiser l’état des appareils (annulé par le client en cours de projet)
✓ Informer l’utilisateur de la température des pièces de la maison
!
!10
PROJET DOMOTIQUE, CAHIER DES CHARGES
VI - Interface du site de contrôle
!
Voici un exemple d’interface possible de contrôle du système une fois la
programmation web accomplie. Elle sert d’inspiration sur la façon d’intégrer les différentes
fonctions au système.
Figure : 3 - Exemple de panneau d’IHM
*réalisé par Steven Bargain avec photoshop
!
VII - Matériel et composants
!
Ci-après se situe la liste des différents composants que nous avons choisis (certains
ont été imposés par le client), pour réaliser les différentes fonctions que devra assurer le
système.
!11
PROJET DOMOTIQUE, CAHIER DES CHARGES
Ordinateur BeagleBone (imposé par le client)
Caractéristiques :
!
Le BeagleBone, véritable petit ordinateur tournant
sous linux, assure toutes les fonctions à petite
échelle d’un PC standard, avec des ports de type
GPIO commandables directement depuis le
kernel.
Connecté à internet, il recevra des requêtes de
commande Linux envoyées depuis un site Web.
C’est le noyau dur du système.
!
Module de transmission sans fil
Comme il a été démontré dans l’analyse fonctionnelle, l’une des contraintes est de
limiter autant que possible les liaisons filaires. C’est pourquoi, dans le but de communiquer
avec les différents capteurs, il est important d’établir une liste de modules de
communication sans fil utilisables pour remplir cette fonction. Bien entendu, ils doivent être
compatibles avec l’utilisation du BeagleBone.
Produit
Module Xbee à
antenne planaire
Illustration
Description
Module de transmission sans
fil.
coût
22 €
!
Portée : 100m.
Alimentation : 3V3
Débit : 115 kBps
émetteur /récepteur
!
http://fr.farnell.com/digiinternational/xb24z7wit-004/module-xbeezb-1mw-w-wirouge-ant/dp/
1690810
!12
PROJET DOMOTIQUE, CAHIER DES CHARGES
Produit
Illustration
Description
RF Link transmitter
Module d’émission sans fil.
!
coût
3 €
Fréquence : 434 MHz
Débit : 4800 Bps
Alimentation : 5V
Portée : 500 pieds = 152 m.
!
https://www.sparkfun.com/
products/10534
RF Link receiver
Module de réception sans fil.
!
!
5 €
Fonction récepteur/émetteur
5 €
Idem module précédent
https://www.sparkfun.com/
products/10532
Kit émetteur /
récepteur
!
!
!
Fréquence : 433 MHz
Alimentation : 3V-12V
http://www.gotronic.fr/artkit-emetteurrecepteur-433mhz-18881.ht
m
Commande des lampes standards
Afin de commander des lampes installées dans une maison ou un appartement,
plusieurs solutions s’offrent à nous.
Première solution : installer un interrupteur électronique sur l’alimentation de la
lampe qui est commandé par la puce de transmission, de manière à allumer ou à éteindre la
lampe. Fonctionne comme suit :
!!
!!
!!
!!
!!
Figure : 4 - Asservissement d’une lampe
!!
!13
PROJET DOMOTIQUE, CAHIER DES CHARGES
L’élément clé ici, est le relais. Celui-ci sert d’interrupteur et doit pouvoir commuter du
220 V et 10 A en toute sécurité ! Le produit doit être ultra fiable afin de protéger le module
sans fil et éviter tout incident regrettable.
!
!
Ce type de circuit peut en réalité commander n’importe quelle prises
électriques ! On peut imaginer la commande d’un ventilateur, ou encore l’allumage de la
télévision.
!
Voici quelques types de relais utilisables pour la réalisation de cette solution.
!!
!!
Produit
Module relais 5V
Illustration
Description
Commutateur
220 V - 10 A
Coût
3 €
!
!
!
!
Fermeture circuit à 5V
Ouverture circuit à 0V
3 Pin en entrée : GND /
VCC / IN
Aucun lien entre le circuit
basse et haute tension.
http://jr-international.fr/
module-relaisarduino-5v-12v-1canal_REL5V_itm_french.
html
Variateur à
commande de
tension continue.
Régler la tension d’entrée
de la lampe.
17 €
!
Commande entrée de 0 à
12 V proportionnelle à
une sortie 0-230V
(0-98%).
!
!!
!
http://www.selectronic.fr/
k8064-kit-variateur-acommande-de-tensioncontinue.html
!14
PROJET DOMOTIQUE, CAHIER DES CHARGES
Deuxième solution : lampes pré-commandables
Une autre approche consiste à utiliser les lampes commandables par signal radio et
d’utiliser leur protocole de connexions pour les commander depuis le BeagleBone. Cette
solution est beaucoup plus simple d’utilisation pour un potentiel client, moins dangereuse.
Elle ne risque pas d’endommager les murs de la maison ou de l’appartement.
!
Produit
Lampes HUE by
Philips
Illustration
Description
Lampes commandables
en wifi.
Fourni en kit avec
- l’application
- site web (compte)
- Plateforme de
commande
- Programmation
Coût
53 € / u
!
Le tout en format
propriétaire difficilement
exploitable.
Douille ON/OFF
pilotable
Douille commutateur ON/
OFF intégré pilotable par
radio-fréquence.
25 € / u
!
!
!!
Type DI-O
Non compatible lampes
basse consommation.
Douille 100 W
radiocommandée
Douille commutateur pour
lampe 100 W pilotable
depuis centrale MyFox.
23 € / u
!
!
Type DI-O
Non compatible lampes
basse consommation.
Les lampes utilisant des protocoles de communication type DI-O sont facilement
commandables depuis un BeagleBone ou un Raspberry Pi.
!15
PROJET DOMOTIQUE, CAHIER DES CHARGES
Température et chauffage
!
Détecter la température des pièces de la maison est l’une des fonctions phare du projet.
Produit
Illustration
Temperature sensor
DS18B20
Description
Sonde de température
!
!
!
Coût
4,5 €
marge : -55° - 125° C
3 - 5V input.
3 broches en entrées :
VCC, DOUT, GND
Tension de sortie
proportionnelle à la
température
!
https://
www.sparkfun.com/
products/11050
La sortie Dout de la sonde sera connectée directement sur le BeagleBone. L’alimentation
peut se faire à l’aide de l’un des ports 3V3 de celui-ci.
!!
Concernant le chauffage, la mise en place d’un module externe semble compliqué, en
raison de la multitude de thermostats et de chauffe-eaux disponibles actuellement sur le
marché. Pour l’instant.
Cependant, une alternative est envisageable, elle reprend le principe de
fonctionnement de la figure 4 page 13.
!
!
!
!
!
!
Figure : 5 - Asservissement en température
!16
PROJET DOMOTIQUE, CAHIER DES CHARGES
Détection d’ouverture des portes et fenêtres
!!
La détection se fera à l’aide d’un capteur à effet de hall. Ce type de capteur mesure
les champs électromagnétiques, ils servent donc à la détection d’objets sans contact.
!!
Produit
DIY switch Hall
sensor
Illustration
Description
Signal de sortie basse
tension.
coût
4,5 €
!
!
!
Précision du capteur
ajustable.
5V input
3 pins en sortie : VCC/
GND/OUT
Magnetic Hall
detection module
Signal de sortie basse
tension.
3 €
!
!!
!!
!
3V3 input
TOR
3 pins en sortie : VCC/
GND/OUT
!!
!!
http://dx.com/p/miniarduino-magneticdetection-sensor-moduleblack-135504
Ici, le capteur sera relié directement à l’un des modules d’émission, alimenté par une
pile 9V suivi d’un régulateur de tension 3V3. Le « bloc » « détection d’ouverture » sera donc
autonome. Une étude plus approfondie nous permettra d’évaluer l’autonomie d’un tel
système.
!!
!!
!17
PROJET DOMOTIQUE, CAHIER DES CHARGES
!
Voici un exemple de fonctionnement d’un capteur à effet de Hall.
Figure : 6 — Détection d’ouverture
!!
!
Caméra de contrôle
Le client a émis le souhait d’avoir la possibilité d’installer une caméra dans la maison. L’idée
serait d’utiliser une « webcam-sur-IP ».
Il existe une multitude de webcams compatibles avec Linux.
!
!
!
!
!
!
!
Figure : 7 - Webcam sur IP
!18
PROJET DOMOTIQUE, GESTION DE PROJET
GESTION DE PROJET
I - Diagramme prévisionnel de répartition du travail dans le temps
Ci-dessous, les principales étapes mises en oeuvre tout au long du projet, par ordre
chronologique :
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Analyse de la
demande client
Analyse
fonctionnelle
Synthèse des
objectifs
Recherche des
composants
Réalisation des
schémas électriques
Prise de
renseignements le BB
Prise en main du
BeagleBone
Apprentissage du
PHP
Commande des
composants
Démarrage du codage
du site web
Prise en main
des composants
Finalisation site
web
Fabrication des
cartes
Mise en place de
la maquette
Phase de test
Finalisation
Figure : 8 - Organigramme d’avancement
!
!19
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
!
I - Mode de travail
La mise en place d’un dossier partagé type Dropbox permet une gestion efficace
des informations et du temps de travail. Toutes les données sont immédiatement entre tous
les collaborateurs du projet.
On retrouve en annexe le diagramme de « Gantt », réalisé en début d’année. Il s’agit
du planning initial du projet.
!
III - Modifications au cours du projet
Certains objectifs ont été modifiés voire abandonnés au cours du projet. Tel que la
visualisation des états connectés ou déconnectés des appareils au système. Ceci en raison
des difficultés engendrés par la mise en place d’un tel système, du temps et de son utilité
limité.
De même, lors de la rédaction initiale du cahier des charges, il était prévu de créer un
module s’adaptant directement aux thermostat existants. Mais au vu du nombre de modèle
important de thermostat, ainsi que de leur difficulté d’exploitation, il a été préférable
d’intervenir directement sur l’alimentation générale du chauffage de la maison.
Les autres points ont été suivis et appliqués.
!
IV - Logiciels utilisés
CAO
Rédaction Présentation Configuration Codage
Xbee
Protel
DXP
Pages
Keynote
XCTU
Editra
NetBean
VIM
Serveur
web
Graphisme
Planning
Lighttpd
Photoshop
GraphicConve
rter
ImageWell
GanttProject
!20
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
V - Répartition des tâches
!
Ci-dessous, l’organigramme de répartition des tâches entre les 2 collaborateurs de
l’équipe :
!
Mise en place
des
composants
!
!
!
!
Réalisation
cahier des
charges
Création des
cartes
électroniques
!
!
!
!
Rédaction
rapport
Correction
rapport
!
!
Programmation
site web
version PC
!
!
!
Programmation
site web
version mobile
Prise en main
des
composants
!
!
!
Réalisation et
installation
maquette
Réalisation
diaporama de
soutenance
!
Figure : 9 - Organigramme de répartition des tâches
!21
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
DEVELOPPEMENT TECHNIQUE
!
!
Fiche technique
Voici la liste exhaustive des composants choisis pour la réalisation du projet.
Produit
Détecteur
d’ouverture ultraplat double aimant
Illustration
Description
Signal de sortie basse
tension.
coût
6,27 €
!
!
!
TOR
3V3 input
Sortie sur 2 fils :
- DOUT
- VCC
Temperature sensor
DS18B20
Signal de sortie basse
tension.
3,5 €
!
!
3V3 input
Tension Dout
proportionnelle à la
température détectée.
0 - 3V3
!
3 pins en sortie : VCC/
GND/DOUT
Douille TOR Chacon
Douille de type Chacon
!
!
19,90 €
Module de transmission
sans fil 2,4 GHz
23,90 €
Protocole de type DI-O
Montage facile
Module de
transmission Xbee
série 1 XB24
!
!
!
Antenne intégrée
Portée max : 100 m
3V3 input
!22
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Produit
Illustration
RF Link transmitter
Description
Module d’émission sans
fil.
coût
3,40 €
!
Fréquence : 434 MHz
Débit : 4800 Bps
5V
Portée : 500 pieds = 152
m.
BeagleBone Rev A6
Mini ordinateur.
Processeur ARM720 MHz
256 Mb de RAM DDR2
Ethernet
USB 2.0
Mirco SD
Linux Angstrom 3.2.14
fourni par le client
(70 €)
Tous les composants ont été commandés par l’Isen Brest, avec l’aval du professeur
référant (Xbee USB Explorer fortement recommandé, voir rubrique : « Application - mise en
place des composants »).
Le coût total du projet, s’il avait fallu acheter le BeagleBone également, reviendrait à
un total de :
•
BeagleBone white revA6 : 70 €
•
2 douilles Chacon : 60 €
•
Capteurs (porte, température) : 10 €
•
3 modules Xbee (1 en transmetteur, 2 en récepteurs) : 75 €
•
RF link transmitter : 3.5 €
✓ Soit un total d’environ 220 €, plus 20 € environ pour les frais de port.
!
Pour chaque module rajouté, il faudra compter au moins 25 € (Xbee et alimentation)
plus le prix du module à ajouter, et 20 € pour une nouvelle lampe ou une prise
commandable. Ce qui reste beaucoup moins cher que les installations proposées par des
entreprises comme Somfy. Il est également possible de réduire les coûts en utilisant
d’autres modules que les Xbee.
!23
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Mise en place du site web
Le site web est la fonction centrale du système. La demande client, est de centraliser
la commande des appareils électrodomestiques de la maison et de la rendre accessible
depuis le web, sans avoir besoin d’installer de logiciel d’aucune sorte. C’est pourquoi,
la réalisation d’un site web est apparue comme l’une des solutions. Il a été codé en HTML5
et CSS3 et exécute des scripts PHP. Il est adaptable aux navigateurs de mobiles et
tablettes.
Voici le site internet final dans sa version PC, entièrement réalisé et conçu graphiquement
« à la main » (pas d’utilisation de « templates »).
Figure : 10 - Interface web finale
On peut remarquer les différentes fonctions du système, appliquées ici à la maquette, sous
forme de blocs :
-
Le contrôle des lampes et leur état courant
L’état courant de l’ouverture de la porte d’entrée
Le réglage du chauffage à l’aide d’un curseur
L’affichage de la température actuelle de la pièce
La programmation des horaires d’éclairage
L’affichage de la webcam sur IP (ici celle de l’Isen Brest)
!24
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
I - La programmation PHP, HTML, CSS
Pour la programmation web, le PHP5, le HTML5 ainsi que le CSS3 ont étés utilisés.
Le site web PC et mobile ont été réalisés indépendamment l’un de l’autre. Le site propose
une redirection automatique vers l’un ou l’autre site en fonction de la résolution de
l’utilisateur.
!
La structure du site PC
Plutôt que de réécrire chaque page pour chaque pièce (menu + entête + pied de
page) qui donnerait un code extrêmement lourd et fastidieux à modifier, la technique PHP
qui consiste à inclure des morceaux de page dans d’autres, a été adoptée.
Ce qui fait, que dans chaque page est associée à chaque pièce de la maison
(salon.php, cuisine.php…).
!
II - Les iFrames
Pour comprendre l’utilité et le fonctionnement des iFrames, il faut revenir aux raisons
de leurs utilisation. La problématique était la suivante :
« Comment actualiser l’état des valeurs courantes (état des lampes ou des portes)
de manière efficace et sans gêner l’utilisateur ? »
Il existe une fonction en HTML, qui permet de rafraîchir automatiquement une page
entière et pas seulement une partie comme nous le souhaitons. Il s’agit de la méthode :
« refresh ».
Vous comprendrez facilement la gêne que peu occasionner un tel rafraîchissement
sur toute la page : clignotement, inconfort visuel. De plus, l’utilisateur perdrait les données
qu’il est en train d’entrer.
Pour palier à ces problèmes, les iFrames sont une solution. Une iFrame consiste à
inclure dans une page une autre page. Au lieu de rafraîchir toute la page, on ne
rafraîchira donc que les mots : « ouverte » ou « fermée ». Avec un temps de
rafraîchissement convenable (10 s à 15 s), l’utilisateur ne sera donc pas gêné.
!25
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
III - Le lien entre PHP et commandes Linux
!
Si l’on souhaite commander les ports d’un ordinateur tournant sous Linux à travers
une interface web, il faut d’abord s’assurer de l’existence de telles fonctions de
communication. Fort heureusement, elles existent et sont mêmes très répandues ! Il s’agit
des fonctions « exec » ou « shell_exec ». Exemple de commande php :
!
IV - Les scripts « intelligents » de gestion
!
Cette rubrique concerne le réglage automatique du chauffage et la programmation
des horaires.
Pour remplir ces fonctions, les scripts en PHP ont été choisis. À l’aide d’une page
« process.php » qui permet ensuite d’être appelée par n’importe quelle autre page. Nous
aurions pu écrire ces scripts en ligne de commande linux, dans des fichiers .sh (shell). Ces
fichiers auraient pu être appelés par les pages PHP et seraient stockés dans la mémoire du
BeagleBone. Aucune des deux solutions ne supplante réellement l’autre, tant au niveau de
la sécurité (voir rubrique : « la sécurité »), qu’au niveau de la facilité de mise en place.
Le thermostat PHP :
Le client a demandé de pouvoir au moins programmer les horaires de chauffage. Un
véritable thermostat en langage PHP a donc été réalisé. Pour comprendre le
fonctionnement de la commande du chauffage, voir figure 5 page 15. Le code se situe en
annexe.
La programmation des horaires d’éclairage :
La programmation des horaires d’éclairages était un souhait du client. Celle-ci fût
donc réalisée, avec la possibilité de régler trois horaires différents. Voir le code en annexe.
!26
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Linux
LINUX
Notre système reposant sur un BeagleBone tournant sous Linux, il est donc naturel de s’y
intéresser de près.
!
I - Quel kernel choisir ?
!
Les nombreux OS Linux compatibles avec le BeagleBone ne remplissent pas toutes
les fonctions attendues pour la mise en place du projet.
Linux Angstrom
Cet OS a été conçu spécialement pour le BeagleBone, ce qui en fait, en principe, le
meilleur choix. On peut commander facilement les ports du BeagleBone depuis une page
PHP. Cependant, les dernières versions de cet OS ont subi de nombreux changements et
ceux-ci sont véritablement désagréables ! Au moment du projet, la dernière version en
vigueur est la 3.8.
Pour comprendre ces dits changements qui font de l’utilisation des dernières
versions un véritable casse-tête, il faut savoir que les ports du BeagleBone ont des
fonctions et des utilisations différentes. Voir plus en détail la rubrique « Application - Prise en
main du BeagleBone ». Ainsi, sur les versions 3.8.x, l’utilisation des ports UART (Universal
Asynchronous Receiver Transmitter) utilisé pour les Xbee et AIN (Analogique Input) utilisé
pour le capteur de température, est extrêmement difficile. Ceux-ci en font donc des OS
non-adaptés.
Cependant, les anciennes versions d’Angström étaient très simples d’utilisation, en
particulier l’OS 3.2. Il y a malgré tout quelques problèmes. Cette version étant ancienne, les
liens de mise à jour sont morts. Il était de fait impossible d’installer les paquets nécessaires,
comme le serveur web.
!27
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
En résumé, avec la version 3.2 , il est possible d’utiliser les ports UART et AIN mais
l’installation du serveur web n’est plus possible. Avec la version 3.8, l’installation
du serveur web est possible, mais il n’y a plus d’accès aux ports UART et AIN.
Linux Ubuntu
Cette version de Linux n’a pas les problèmes des dernières versions d’Angström,
mais elle en génère cependant de nouveaux. Ici, les ports UART et AIN sont utilisables dans
le terminal, il est possible d’installer le serveur web, mais il n’est plus possible de
commander les ports du BeagleBone via le serveur web à cause des droits d’écriture sur
les ports ! Un véritable casse-tête ! La tentative de modification des droits d’écriture fut un
échec (voir page suivante).
Solution finale adoptée
Après avoir changer trois fois de kernel, d’Angstrom 3.8 à Ubuntu à Angstrom 3.2, il
a été possible de rassembler toutes les fonctions souhaitées à l’aide d’une astuce. Nous
avons finalement adopté Angstrom 3.2, et pour résoudre les problèmes de liens de mise
à jour morts empêchant l’installation du serveur web, nous avons récupéré manuellement
les liens de mise à jour d’Angström 3.8, puis nous les avons entrés dans Linux 3.2.
!
II - Le « rootage » des commandes PHP
Pour que le kernel Linux accepte d’appliquer les commandes du script PHP, il est
nécessaire que le serveur installé sur le BeagleBone dispose des droits nécessaires pour
accéder à la commande des ports. Ceux-ci ne sont habituellement accessibles qu’au super
utilisateur (root). Angström installe nativement le serveur web avec tous les droits, ce qui
pose par la même occasion un gros problème de sécurité, puisque l’ensemble des dossiers
(y compris ceux qui servent au fonctionnement du kernel lui-même) du BeagleBone est
accessibles depuis le web. Il sera donc nécessaire de bien protéger les communications
entre le serveur et le BeagleBone, afin que celles-ci ne soient pas interceptées par un
utilisateur mal intentionné (plus de détails dans la rubrique « sécurité »).
Nous avons tenté, par l’intermédiaire d’Ubuntu qui lui interdit les droits d’écritures
des ports au serveur web, de débloquer cette situation en autorisant le serveur à n’accéder
qu’uniquement aux ports. Cependant, après y avoir passé presque deux semaines et
!28
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
demandé l’aide de tous les professeurs experts en Linux de l’école, nous avons finalement
abandonné cette option, qui aurait été plus sécurisée.
!
III - Avantages et points faibles d’Angström 3.2
!
AVANTAGES
INCONVÉNIENTS
•
Kernel facile d’utilisation et optimisé pour •
le BeagleBone
Le serveur web dispose de tous les
droits du super utilisateur root
•
Commandes des ports nativement
accessibles depuis le serveur web
•
Sécurité compromise
•
Forum actif
•
Communauté peu étendue
!
En conclusion, Linux Angstrom 3.2 présentent de nombreux avantages, de part sa
simplicité d’utilisation et de son efficacité.
!
!
!
!
!
!
!
!29
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
La sécurité
La sécurité est un point critique de notre système. Car, contrôler les appareils de sa
maison à distance expose nécessairement au risque qu’ils puissent être détournés par des
personnages mal intentionnés.
Partant de ce constat, nous avons plusieurs solutions. Certaines que nous avons
appliquées, et d’autres à appliquer en cas de commercialisation du produit :
N°
Solution
Description
1 Changer le mot de passe du
super utilisateur root
Assez basique, mais cela empêche un utilisateur situé sur le
même réseau que le BeagleBone d’y avoir totalement accès.
2 Attribuer au serveur web,
l’unique accès au fichier et au
dossier de commande des
ports
Il s’agit de rendre modifiable uniquement les dossiers de type
GPIO (etc) par le serveur web. Ce qui empêche ainsi l’accès au
fichier de configuration et de fonctionnement du système.
3 Générer un nom de domaine
unique et privé, très compliqué
par chaque BeagleBone.
En cas de commercialisation, chaque BeagleBone générerait son
propre nom de domaine (ex : alcvzkwg56nhh79.com). Cela
évitera des attaques massives de serveurs publiques et
dédouanera la société vendeuse du produit.
4 Interdire l’indexation du site
web généré par le BeagleBone
Dans la continuité de la solution 3, un simple script php à rajouter
dans le code permet d’interdire l’accès aux robots de type
Google ou Bing, d’indexer le site généré par le BeagleBone.
5 Règle de filtrage par HTAccess
Fichier de type .htaccess qui sécurise et protège le site généré
par le BB des principales attaques informatiques courantes
(hotlinking…).
6 Possibilité de supprimer le site Option de reset complet du serveur et des fichiers php. Remettre
internet, d’effacer toutes les
le système en mode : « sortie d’usine ». Nécessite la mise en
traces d’attaques et de pouvoir place d’une sauvegarde locale des fichiers.
le réinitialiser en 30 mn
7 Filtrer le programme PHP
Protection des variables, autoriser uniquement certains
caractères alpha-numériques.
N’ayant pas le temps de nous consacrer à chaque option durant notre projet, nous
avons pris l’initiative de mettre en place les solutions numéro 1, 4 et 7. Ce sont les plus
importantes dans un cadre local (et non commercial).
!
!
!
!30
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Application
I - Prise en main du BeagleBone
Après avoir pris possession du BeagleBone, la première chose à faire est d’installer
l’OS sur une carte micro SD (au moins 4 Go). Le tutoriel est fourni sur le site officiel
« BeagleBone.org ». Ceci fait, il suffit de connecter le BeagleBone à l’ordinateur. Le courant
fourni par la prise USB suffit à faire fonctionner le BeagleBone tout seul, mais dès que l’on
commence à exploiter ses ports, il devient indispensable d’avoir une alimentation externe.
Le BeagleBone démarre tout seul et l’accès à son terminal peut se faire de deux manières
différentes, en USB ou en SSH.
!
On accède ainsi à la console.
!
!
Figure : 11 - Terminal linux angstrom
!
!
!31
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Dans notre cas, nous avons utilisé au final une vieille version d’Angström (3.2.14) et avons
dû mettre à jour manuellement les liens de mise à jour du système . (Voir rubrique « Linux Solution finale adoptée »).
Ceci fait, il ne restait plus qu’à installer le serveur web. Nous avons choisi « Lighttpd » pour
son efficacité, sa simplicité d’utilisation et sa légèreté.
!
II - Comprendre l’organisation des ports du BeagleBone
!
Les différents ports du BeagleBone ont tous une utilisation précise et la plupart ne
sont pas utilisables car réservés. Partant de ce constat, il faut savoir différencier les ports et
comprendre comment les utiliser.
Le schéma suivant représente la répartition des ports :
!
!
Figure : 12 - Répartition des ports du BeagleBone
!32
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Type
Utilisation
Caractéristiques
GPIO
Ports d’écriture ou de lecture numérique
(TOR)
0V ou 3V3
EHRPWM
Port d’écriture analogique à l’aide d’un
signal de type PWM.
0V à 3V3
AIN
Port de lecture analogique avec CAN
intégré de 4096 bits.
0V à 5 V
UART
RX et TX (Receiver et Transmitter). Utilisé
pour la connexion de module ayant
besoin de communiquer avec le
BeagleBone de manière Asynchrone.
Tels que les Xbee
0V à 3V3
!
Les ports ont un type d’utilisation propre à chacun. Les commandes sont donc différentes
pour chaque type de port utilisé.
Les ports GPIO : (écriture et lecture numériques)
Relativement simples d’utilisation, la configuration des ports GPIO se passe dans le dossier
« /sys/class/gpio ». Cependant il y a quelques manipulations à faire avant de pouvoir les
utiliser.
Il faut tout d’abord les « exporter », c’est à dire créer leur dossier de configuration. La
logique de programmation du BeagleBone fait que le nom virtuel des ports n’est pas les
même que leur nom physique. Par exemple, le port physique « GPIO1_6 » aura le numéro
virtuel 38 (1 x 32 + 6).
Les ports AIN : (lecture analogique)
Encore plus simple d’utilisation, la configuration des ports AIN se passe dans le dossier « /
sys/devices/platform/omap/tsc». On ne peut que les lire, on utilisera donc la fonction
« cat ».
Les ports EHRPWM : (écriture analogique)
Le BeagleBone n’est en réalité pas capable de sortir une tension analogique fixe. Pour cela,
il utilise une méthode très connue dans le domaine des CNA, un signal PWM ou Pulse With
Modulation. Cela signifie que le port en question va émettre un signal rectangulaire, dont on
!33
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
pourra régler le rapport cyclique et l’amplitude. La moyenne de ce signal sera donc une
tension analogique qui variera en fonction de ces paramètres. Leur configuration se passe
dans le dossier « /sys/class/pwm ».
Les ports UART : (Universal Asynchronous Receiver Transmitter)
Tout comme les microcontrollers standards, le BeagleBone dispose de ports UART. Ceux-ci
lui permettent de communiquer avec des modules requérant ce type de fonctionnement,
tels que les Xbee. La communication est ensuite accessible depuis le mini logiciel Linux
Minicom déjà implanté dans le BeagleBone.
Leur configuration se passe dans le dossier « /sys/kernel/debug/omap_mux».
Puis, pour lancer Minicom : « minicom -b 9600 -D /dev/ttyO2 » dans le terminal du
BeagleBone (9600 correspond à la vitesse en baud, à régler en fonction du périphérique).
!
III - Mise en place des composants
!
La carte principale, installée sur le BeagleBone :
Pour une mise en place du système plus simple et plus efficace, nous avons décider
de réaliser des circuits imprimés pour y loger tous les composants.
Figure : 13 - Carte électronique du BeagleBone
!34
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Elle regroupe, les socles d’installation du module Xbee (U+) de réception et du
module RF (RF1), une fiche de connexion pour câble USB-série (U3), et enfin un
condensateur de découplage sur l’alimentation du Xbee. Il y a également des pins, pour des
utilisations temporaires.
!
Les cartes secondaires, capteur de température :
Figure : 14 - Carte du capteur de température
Le capteur envoi une tension proportionnelle à la température détectée. Cette tension sera
ensuite convertie à l’aide du CAN 4096 bits intégré au BB. Il faut ensuite effectuer une série
de calcul pour obtenir la valeur en degrés Celcius.
!
Étape
Description
Exemple
1 Lire la valeur numérique
# cat /sys/devices/platform/omap/tsc/ain1
1670
2 Convertir la valeur numérique en
(1670 / 4096) * 1800 = 733.8867 mV
millivolts.
(value / 4096) * 1800mV
3 Convertir les millivolts en
(733.8867 mV - 500) / 10 = 23.38867 °C
température Celcius.
(millivolt - 500mV) / 10
!35
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Les cartes secondaires, capteur d’ouverture :
Figure : 15 - Carte du capteur d’ouverture
Le capteur de température agit comme un interrupteur simple. Il envoi 0 ou 1 au Xbee qui
transmettra les données. Il est cependant nécessaire d’installer un « pull-down » (résistance
R1) pour ramener la valeur à 0 lorsque l’interrupteur est ouvert.
!
!
La commande des douilles Chacon :
!
Comme cité dans le cahier des charges, les douilles chacon utilisent le protocole
ouvert DI-0. En utilisant un transmetteur RF de même fréquence (433,94 MHz) et
l’application d’un code en C, il est possible de contrôler les douilles. Voir la rubrique
« conclusion - exploitation des résultats ».
!
IV - La maquette finale
Après la mise en fonctionnement des différentes cartes, elles ont été mises en place
sur une maquette représentative d’une maison. Ci-après le rendu final :
!36
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Xbee
!
!
!
!
!
!
Capteur d’ouverture
Douille commandable
Ventilateur de
refroidissement du
capteur
!
!
!
!
!
!
Capteur de
température +
Xbee
BeagleBone
LED représentative du
chauffage
!37
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Phase de test
Afin de vérifier le bon fonctionnement des cartes et éviter les destructions de
composants, il est recommandé de suivre un processus rigoureux de test (tensions, pistes,
connexions…). Ci-dessous, vous trouverez les phases organisés par étapes et dans l’ordre
chronologique de réalisation.
!
Phase 1 :
HORS TENSION
Phase 2 :
SOUS TENSION
Fonction testée
Méthode et matériel
Résultat attendu Résultat obtenue
Vérification de
l’état des pistes.
A l’oeuil nue.
Toutes les pistes
doivent êtres en
bon état.
OK
Vérification de
l'état des
soudures.
A l’oeuil nue.
La plaque en
epoxy ne doit pas
être fondue, les
soudures doivent
êtres en forme de
cône arrondi et ne
doivent pas
dépasser de
surface cuivrée.
OK
Test des pistes.
Test à l’ohmmètre
entre les débuts et fin
de piste.
Signal sonore de
l’ohmmètre
indiquant le bon
fonctionnement.
OK
Fonction testée
Méthode et matériel
Résultat attendu Résultat obtenue
Test
d’alimentation
3V3.
Test au voltmètre de la
GND et des pistes
d’alimentations.
3V3
OK
Vérification des
tensions des
Xbee.
Test au voltmètre de la
GND et des pistes
VCC lié au Xbee.
3V3
OK
Vérification de la
tension du
module RF.
Test au voltmètre de la
GND et des pistes
VCC lié au module RF.
3V3
OK
!38
PROJET DOMOTIQUE, DÉVELOPPEMENT TECHNIQUE
Phase 3 :
SOUS TENSION
avec Xbee
Phase 4 :
Carte connectée
au BeagleBone
Fonction testée
Méthode et matériel
Résultat attendu Résultat obtenue
Test de
communication
des Xbee.
LED connectée sur la
broche de sortie des
Xbee récepteurs.
Bouton poussoir sur la
broche d’entrée du
Xbee émetteur.
Allumage des LED OK
lors de l’appui sur
bouton poussoir.
Test du capteur
d’ouverture.
LED connectée sur le
fil de sortie du capteur,
et alimentation de
celui-ci.
Approcher l’aimant.
La Led doit
s’allumer lorsque
l’aimant est en
contact avec le
capteur.
OK
Test du capteur
de température.
Alimenté en 3V3 et
GND par le BB, et
sortie connecté sur un
port AIN du BB.
Lire et convertir la
valeur.
Faire varier la
température autour du
capteur.
Comparer avec un
thermomètre à
mercure.
Température
détectée par le
capteur environ
égale à celle du
thermomètre à
mercure.
OK
Fonction testée
Méthode et matériel
Résultat attendu Résultat obtenue
Test de
communication
des Xbee.
Envoi d’un signal
depuis un port du BB
sur un Xbee émetteur
et lecture sur un autre
port via le Xbee
récepteur.
Vérifier que la
valeur reçue est
bien égale à celle
envoyée.
OK
Test de
communication
du module RF et
des douilles.
Broche d’entrée du
module connectée à
un port GPIO du BB.
Exécution du script C.
Les lampes
s’allument et
s’éteignent sur
commande.
OK
Test de bon
fonctionnement
des capteurs en
situation de
communication
sans fil.
Lecture des ports de
réceptions du Xbee
récepteur.
Température
transmise.
OK
!
Etat de la porte.
!39
PROJET DOMOTIQUE, CONCLUSION
Phase 5 :
Serveur web actif
Fonction testée
Méthode et matériel
Résultat attendu Résultat obtenue
Réception des
différentes
données sur la
page web.
Affichage de l’état des
portes, lampes,
température actuelle.
Valeurs affichées,
et égales à celles
envoyés par les
modules.
Commandes des
modules depuis
la page web.
Allumage et extinction
des lampes et du
chauffage.
Les lampes et le
chauffage
s’allument et
s’éteignent. Leurs
états courant
chauffage.
Fonction de
programmation
de l’éclairage sur
la page web.
Paramétrage des
horaires de
fonctionnements des
lampes.
Les lampes
s’allument toutes
seul lors de
l’entrée dans un
horaire et
s’éteignent à la
fin. Leurs états
courant change.
Fonctionnement
du thermostat.
Faire varier la
température autour du
capteur.
Le chauffage se
déclenche ou
s’éteint.
!
Une fois toutes ces phases réalisées avec succès, on peut dire que le système est
fiable d’un point de vue matériel et logiciel.
!40
PROJET DOMOTIQUE, BIBLIOGRAPHIE
CONCLUSION
!
La finalisation de ce projet signe la réussite de celui-ci. D’une part, tous les objectifs
fixés par le clients on été atteints (bien que certains aient été modifiés en cours de
réalisation), et d’autre part, les possibilités d’améliorations sont quasi infinies.
En effet, on peut imaginer rajouter de nouveaux modules avec de nouvelles
fonctions. L’architecture en étoile du réseau mis en place sur les Xbee permet d’en ajouter
un nombre considérable. Ainsi, il serait assez facile d’ajouter des modules de contrôle des
prises électriques (toujours en utilisant du matériel chacon DI-O), commander des volets
électriques, programmer l’horaire de mise en marche de sa cafetière le matin etc. L’unique
limitation concernerait le nombres de ports utilisables du BeagleBone. Cela étant dit, il serait
aisé d’installer au moins une trentaine de module avant d’être saturé.
Ce projet offre ainsi de grandes possibilités en permettant une personnalisation
complète de la domotique à installer chez soi, ainsi que de son interface. Dans une optique
de commercialisation, chaque client pourrai acheter ou réaliser lui-même les modules qui
l’intéresse, grâce à un code ouvert, la communauté autour d’un tel produit grandirait de
manière exponentielle.
En bref, ce projet reste ouvert à de nombreuses améliorations prometteuses, il pose
les bases d’une domotique à bas coût tournant sous linux.
Remerciements à l’ISEN BREST et particulièrement aux enseignants Alain Reboux,
Thibault Napoléon, Didier Le Foll, Joel Corbel, Didier Munck et Jean-Yves Mulot pour l’aide
apportée tout au long du projet.
Exploitation des résultats : vous pouvez trouver l’intégralité du code utilisé et des
documents en contactant notre référant de projet, M. Alain Reboux, enseignant en
électronique à l’ISEN Brest. Vous pouvez également visiter le site web : www.samuelbar.com , rubrique « Projet & activités » : la domotique. Vous y trouverez un lien de
téléchargement de ce rapport ainsi que la possibilité de contacter directement un
collaborateur du projet.
!41
PROJET DOMOTIQUE, ANNEXES
BIBLIOGRAPHIE
!
Ici se trouve l’ensemble des liens donnants des informations sur la mises en place des
composants, la prise en main du BeagleBone, des tutoriels vidéo etc…
!
Xbee et reseau sans fil : •
h$p://jeromeabel.net/ressources/xbee‐arduino •
h$ps://www.youtube.com/watch?v=ZVatcrToSNY •
h$p://www.youtube.com/watch?v=6BjV6WNwc40 •
h$p://www.digi.com/support/productdetail?pid=3352&osvid=57&type=uPliPes !
DIO et Raspberry : h$p://www.homautomaPon.org/2013/10/09/how‐to‐control‐di‐o‐devices‐
with‐a‐raspberry/ Site mobile : h$p://demos.jquerymobile.com/1.4.2/ Langage web : h$p://www.alsacreaPons.com/apprendre/ BeagleBone : h$p://beagleboard.org/bone Config BeagleBone : h$p://emmanuel.pouly.free.fr/ Domo=que et Raspberry : h$p://blog.idleman.fr/category/raspberry‐pi/ Appren=ssage du PHP : h$p://fr.openclassrooms.com/informaPque/cours/concevez‐votre‐site‐web‐
avec‐php‐et‐mysql Capteur de température : h$p://www.laboelectronique.be/captemp.html !
!
!42
PROJET DOMOTIQUE, ANNEXES
ANNEXES
!
!
Diagramme de Gan$ réalisé en tout début de projet, il permet de réparPr les tâches préalablement définies sur toute la durée du projet : !
Code PHP : Allumer une lampe via le BeagleBone : !
Lire la valeur du capteur de température et la conver=r en degrés celcius : !43
PROJET DOMOTIQUE, ANNEXES
!
Récupérer la température désirée par l’u=lisateur et la rendre exploitable !
Le thermostat PHP : !
Exemple d’iFrame, la webcam Isen (iframe_webcam.php) : !44
!
Et son inclusion dans le code html : !45
Téléchargement