AbbaAhmed PDF
AbbaAhmed PDF
AbbaAhmed PDF
Thème :
Mr M.LAGHROUCHE
Mr H.HAMICHE
Mr K.Bennamane
Mr R.ZIRMI
III.1. Introduction……………………………………………………………………………..38
III.2. Conception générale du système………………………………………………………..38
III.3. Description détaillée du système……………………………………………………….38
III.4. Carte de contrôle et sécurité du domicile………………………………………………40
III.4.1. Carte de commande Arduino…………………………………………………40
III.4.1.1. Description générale de la carte arduino Méga……………………..40
III.4.1.2. Le microcontrôleur ATMega2560…………………………….……41
III.4.1.3. Communication avec l'extérieur de la carte Arduino…………......43
III.4.2. Composants utilisé avec la carte Arduino……………………………….......44
III.4.2.1. Clavier matriciel…………………..………………………………..44
III.4.2.2. Afficheurs alphanumériques à cristaux liquides…………………….44
III.4.2.3. Capteur de distance à Ultrasons HC-SR…………………...…….….46
III.4.2.4. La fonction du capteur ultrason dans notre système…………….…47
III.4.2.5. Le bipper……………….…………………………………………...48
III.4.2.6. Le servomoteur………….…..……………………………………...48
III.4.2.7 La LED…………………………………....…………………………50
III.4.2.8 La liaison Bluetooth……………………………………………......51
III.5. Carte de commande d'acquisition vidéo………………………………………………...52
III.5.1. La carte Raspberry Pi…………………………………………………………52
III.5.2. Connectiques et ports disponibles sur la Raspberry Pi 2……………………..53
III.5.3. Préparation de la carte SD…………………………………………………….54
III.5.4. Les ports GPIO………………………………………………………………..54
III.5.5. Dimensions de la Raspberry PI 2…………………………………………….55
III.5.6. La liaison avec la camera…………………………………………………….56
III.5.7. La Raspberry Pi 2 sur le réseau………………………………………………57
III.5.8. Communication série Raspberry Pi………………………………………….57
III.6. Arduino et la réalisation pratique ……………………………………………………...57
III.7. Conclusion……………………………………………………………………………..58
IV.1. Introduction…………………………………………………………………………….59
IV.2. Le logiciel Arduino…...………………………………………………………………...59
IV.2.1. Introduction…………………………………………………………………..59
IV.2.2. Composition du logiciel Arduino…………………………………………….59
IV.2.3. Description des menus………………………………………………………..61
IV.2.3 .1. Le menu File……………………………………………………….61
IV.2.3.2. Le menu Edit (Editer)………………………………………………62
IV.2.3.3. Le menu Sketch…………………………………………………….63
IV.2.3.4. Le menu Tools……………………………………………………...63
IV.2.3.5. Le menu Help………………………………………………………64
IV.2.4. Présentation des boutons……………………………………………………..64
IV.2.5. Les librairies………………………………………………………………….65
IV.2.6. Le terminal série……………………………………………………………...65
IV.2.7. Ouvrir un programme et le téléverser………………………………………..67
IV.3. Le langage Python……………………………………………………………………...71
IV.3.1. Syntaxe du Python…………………………………………………………...71
IV.4. Le Raspbian……………………………………………………………………………73
IV.4.1. L'utilité de Raspbian avec la Raspberry Pi2…………………………………73
IV.4.2. Debian Wheezy………………………………………………………………73
IV.4.3. Le terminal de la Raspberry pi 2……………………………………………..74
IV.4.4. Les commandes de la Raspberry……………………………………………..74
IV.4.5. Capture d'image avec fswebcam de la Raspberry PI 2……………………...75
IV.4.6. Serveur HTTP ou Serveur WEB……………………………………………..77
IV.4.7. La Raspberry Pi 2 comme serveur web………………………………………77
IV.4.8. Serveur Apache……………………………………………………………….78
IV.4.8.1.Définition……………………………………………………………78
IV.4.8.2.Installation du serveur Apache avec Raspbian……………………...78
IV.4.8.2.1.Installation d’Apache……………………………………..78
IV.4.6.2.2.Vérification du fonctionnement d'Apache………………..79
IV.4.9. Serveur PHP…………………………………………………………………..79
IV.4.6.1.Introduction…………………………………………………………79
IV.4.6.2. Installer PHP………………………………………………………..79
IV.4.6.3. Vérifier que PHP fonctionne…………………………………….....79
IV.4.6.4. Sécurisation de notre page web avec le PHP………………………80
IV.5. Application Android…………………………………………………………………....82
IV.5.1.définition………………………………………………………………………82
IV.5.2.Les différents autres systèmes d’exploitation mobiles sur le marché…………82
IV.5.2.1.Symbian OS………………………………………………………….82
IV.5.2.2.IOS…………………………………………………………………..83
IV.5.2.3.BlackBerry OS………………………………………………………83
IV.5.2.4.Windows Phone……………………………………………………..84
IV.5.3.Les avantages d’une application mobile………………………………………84
IV.5.4. App Inventor………………………………………………………………….85
IV.5.5. Commande vocal Google…………………………………………………….85
IV.6. Conclusion……………………………………………………………………………..86
Conclusion générale………………………………………………………………………....87
enregistreur numérique……………………………………………………………………….13
Figure 1.9: Schéma d'un système vidéosurveillance sur IP avec serveur vidéo……………..14
Figure 1.10: Schéma d'un système vidéosurveillance sur IP avec camera IP………………..15
Figure 2.6: Comparaison du rapport fréquence d'image et bande passante pour les normes
M-JPEG et MPEG-4…………………………………………………………………………23
Figure 2.7 :Connexion FTP entre un serveur et un client…………………………………..30
Figure 2.8 :Communication entre un navigateur et un serveur……………………………..31
Figure 2.9 :Répartition des données sur plusieurs disques selon la méthode RAID………...35
Figure 2.10 :Figure explicative sur la technique de réplication de données………………...35
Figure 2.11:Schéma explicative sur mise en cluster des serveurs…………………………..36
Figure 3.12: Illustration d'un servomoteur ainsi que sa connexion avec l'Arduino
Méga…………………………………………………………………………50
Figure 3.13: Illustration de différente LED ainsi que leur schéma électrique……………….51
Figure 3.15: Le module Bluetooth ainsi que sa connexion avec l'Arduino Méga……52
Figure 3.17: Schéma explicant les diffrentes fonctions des ports GPIO ainsi que leurs
schéma électrique………………………………………………………………55
Tableau 2.1: Variantes des technologies Ethernet suivant le type et le diamètre des
câbles………………………………………………...………………………25
Tableau 2.2: Les couches basses du modèle OSI pour la norme 802.11……………………26
Tableau 2.3: Protocole TCP/IP et port utilisés dans la vidéo sur IP……………...…………29
Page 1
Le mémoire est structuré en quatre chapitres. Dans le premier seront abordé les
généralités et les définitions de la domotique et de la vidéosurveillance.
Dans le deuxième chapitre seront étudiés l'acquisition et le transfert ainsi que le
stockage d’images.
Dans le troisième chapitre sera décortiqué la conception, étude et réalisation du
système ainsi que la définition de chaque composant utilisé pour son élaboration.
Pour finir dans le quatrième et dernier chapitre, sera présenté la description des outils
logiciels utilisés pour la conception du système.
Enfin, on termine par une conclusion générale et quelques perspectives.
Page 2
Chapitre I
Généralités sur la domotique
et la vidéosurveillance
Chapitre I :Généralités sur la domotique et la vidéosurveillance
I.1.Introduction:
La technologie ne cesse de se développer à chaque jour qui passe, elle nous procure
quotidiennement du confort et de la sécurité . Dans ce chapitre sera abordé d'une part, la
définition globale de la domotique ainsi que les techniques utilisées et ses offres dans la vie.
D'autre part , la vidéosurveillance ainsi que les différents domaines de la vidéosurveillance et
pour finir les différents systèmes disponibles .
I.2.1.Définition:
I.2.2.Pourquoi la domotique?
La domotique a pour but d’accroître l’économie d’énergie, le confort, la flexibilité, la
communication et la sécurité dans l’habitation. La domotique peut libérer les gens de
nombreuses activités routinières et faire en sorte que les conditions de vie soient optimales.
Page 3
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Figure 1.2: Illustration sur le rôle de l'unité centrale dans une smart home
L' écran de contrôle : il est fixe dans le domicile, où il peut être émulé à distance via
le réseau ADSL de la maison puis l'internet), permettant le pilotage de la maison à
distance pour tout ou partie des fonctions domotiques. L'interface distante peut être
par exemple un ordinateur de poche, un téléphone portable ou Smartphone,
une tablette tactile, une télécommande (universelle ou non), une interface sur
télévision connectée, un écran + souris, etc. ( Voir figure 1.3)
Page 4
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Page 5
Chapitre I :Généralités sur la domotique et la vidéosurveillance
a - Types de capteurs
Capteurs actifs
On parle de capteur actif lorsque le phénomène physique qui est utilisé pour la
détermination de la mesure effectue directement la transformation en grandeur électrique.
C'est la loi physique elle-même qui relie la mesure et grandeur électrique de sortie.
Un capteur actif fonctionne assez souvent en électromoteur et dans ce cas, la grandeur de
sortie est une différence de potentiel.
Le nombre des lois physiques permettant une telle transformation est évidemment limité, on
peut donc recenser facilement les capteurs actifs (dont le nombre est fini). Toutefois, les
domaines d'application sont eux très étendus.
Capteurs passifs
Il s'agit généralement d'impédances (résistance, inductance, capacité) dont l'un des paramètres
déterminants est sensible à la grandeur mesurée.
La variation d'impédance résulte :
• D'une variation de dimension du capteur (capteurs de position, potentiomètre, inductance à
noyaux mobile, condensateur à armature mobile) .
• D'une déformation résultant d’une force ou d’une grandeur s'y ramenant (pression
accélération). Exemples : armature de condensateur soumise à une différence de pression,
jauge d'extensomètre liée à une structure déformable .
Page 6
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Capteurs TOR
Capteurs Analogiques
La sortie est une grandeur électrique dont la valeur est une fonction de la grandeur
physique mesurée par le capteur. La sortie peut prendre une infinité de valeurs continues. Le
signal des capteurs analogiques peut être du type :
sortie tension
sortie courant
règle graduée, cadran, jauge (avec une aiguille ou un fluide) ;
etc.
Capteurs Numériques
La sortie est une séquence d'états logiques qui, en se suivant, forment un nombre. La
sortie peut prendre une infinité de valeurs discrètes. Le signal des capteurs numériques peut
être du type :
train d'impulsions, avec un nombre précis d'impulsions ou avec une fréquence précise
code numérique binaire
Page 7
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Actionneurs Capteurs
Relais Interrupteurs et boutons poussoirs
I.2.5.1.Alarme intrusion
À partir d'un téléphone, il est possible d'écouter et de s'adresser directement aux intrus grâce
au hautparleur de la centrale.
Page 8
Chapitre I :Généralités sur la domotique et la vidéosurveillance
I.2.5.2.Gestion d'énergie
La programmation des seuils de température est l'une des principales sources
d'économie. La programmation peut être journalière ou hebdomadaire. Des sondes de
température renseignent la centrale sur les valeurs de température dans chaque pièce.
Elle tient compte de la présence d'un occupant et s'adapte automatiquement à son emploi du
temps :
• extinction des éclairages inutiles
• réglage de l'intensité lumineuse en fonction de l'activité, ...
I.2.5.3.Scénarisation
Au moment de quitter un habitat ou un commerce, la mise en fonction de l'alarme
déclenche une série de contrôles et d'actions, (centralisation des commandes) :
I.2.5.4.Sécurité
Le système domotique raccordé aux détecteurs permet de détecté les fuites de gaz ou
les incendie. Dans ce cas la centrale intervient instantanément pour couper les alimentations,
ouvrir les stores, éteindre les flammes , appeler les numéros d'urgence ou faire retentir la
sirène si l'occupant est présent.
I.2.5.5.Confort
Page 9
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Le principe de base du réseau CPL (Courant Porteur en Ligne) est d'utiliser les circuits de
distribution électrique du domicile pour véhiculer des données et des commandes.
Courant porteur domestique : cette technologie est conçue pour piloter l’éclairage,
le chauffage, les automatismes, les prises de courant et la sécurité .
Ces trois types de CPL utilisant des fréquences différentes, il est possible de les faire
cohabiter.
La technologie CPL est particulièrement intéressante dans le cas des logements anciens,
toutefois les désavantages en sont :
• risque de manque de fiabilité en raison de la faible immunité aux parasites sur les lignes
• bus dédié davantage à la commande (manque de retour d'information)
• bus essentiellement propriétaires (peu d'interopérabilité)
Page 10
Chapitre I :Généralités sur la domotique et la vidéosurveillance
I.3.1.Introduction :
La vidéosurveillance consiste à placer des caméras de surveillance dans un lieu public
ou privé pour visualiser et/ou enregistrer en un endroit centralisé tous les flux de personnes au
sein d'un lieu ouvert au public pour surveiller les allées et venues, prévenir les vols,
agressions, fraudes et gérer les incidents et mouvements de foule.
Au début des années 2000, les caméras font leur apparition en nombre important dans
de nombreuses villes européennes. Londres est réputée comme étant la ville où la
vidéosurveillance est la plus importante. L'utilisation de la vidéosurveillance fait débat en
matière de sécurité et de la vie privée.
Page 11
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Appelé aussi CCTV (Closed-Circuit television), cette technique utilise des cameras
analogique avec des sorties coaxiales reliées a un ou plusieurs écrans . mais l'inconveniant de
cette technique c'est que quelqu'un doit être constamment devant l'écran afin de surveiller et
d'analyser ce qui se passe. Ceci est le tout premier système vidéosurveillance utilisé.
Dans ce cas on utilise toujours des caméras analogiques à sorties coaxiales reliées à
un enregistreur numérique DVR (Digital Video Recorder) permettant l'enregistrement
numérique des séquences vidéos sur disque dur .Avec cette petite révolution ,on a plus besoin
de changer la cassette a chaque fois vue que les disques durs ont une mémoire assez
importante . Le passage de l'analogique au numérique permet d'avoir une qualité constante de
l'image et de meilleur qualité. (Ceci est illustrées par la figure 1.)
Page 12
Chapitre I :Généralités sur la domotique et la vidéosurveillance
Figure 1.7: Schéma d'un système vidéosurveillance analogique avec enregistreur numérique
Figure 1.8: Schémas d'un système vidéosurveillance analogique avec enregistreur numérique
réseau
Page 13
Chapitre I :Généralités sur la domotique et la vidéosurveillance
connecté sur le réseau qui transporte la vidéo vers un PC ou serveur via commutateur réseau.
Ce système présente plusieurs avantages :
recours a un réseau standard et à un serveur informatique standard pour
l'enregistrement et le traitement vidéo.
possibilité d'enregistrement hors ligne.
Système évolutif pouvant être élargie par ajout de nouvelles cameras réseau. (Ceci est
illustrées par la figure ci-dessous )
Figure 1.9: Schéma d'un système vidéosurveillance sur IP avec serveur vidéo
Serveur vidéo
La particularité des serveurs vidéo c'est qu'ils s'intègrent facilement avec tout les
systèmes vidéosurveillance existant déjà et cité auparavant , et cela en numérisant les signaux
anal alogique et en distribuant les images numériques directement sur réseau IP.
Par conséquent , les utilisateurs peuvent visualiser les images en temps réel sur un
navigateur web sur un ordinateur du réseau ,ou a n'importe lequel endroit.
Page 15
Chapitre I :Généralités sur la domotique et la vidéosurveillance
I.4. Conclusion :
Dans ce chapitre, en premier lieu on a eu un aperçu sur la domotique ainsi que les
différents avantages offerts par celle-ci, on remarque qu'elle propose énormément de solution
et d'avantage dans notre vie quotidienne sur tout les plans et cela grâce au différentes
technologie de pointe employé dans ces systèmes là .
En deuxième lieu, on a pu voir les notions liées au différents systèmes de
vidéosurveillances ayant vu le jour ainsi, on conclue que la vidéosurveillance sur IP reste
incontestablement la meilleur technique et moyen efficace pour la sécurisation des domiciles
et la protection des biens .
Page 16
Chapitre II
Acquisition, transfert et
stockage d'images
Chapitre II : Acquisition, transfert et stockage d'images
II.1. Introduction
La vidéo sur IP est devenue importante et omniprésente dans notre vie ainsi que dans
de nombreux secteurs, et cela grâce à ses fonctions avancées dont la surveillance et la
protection des personnes et des biens . Dans ce chapitre sera abordé : l'acquisition de l'image
,les techniques de compression d'image et vidéo ,les différents protocoles de transport de
données ainsi que la sécurité et le stockage de données.
Page 17
Chapitre II : Acquisition, transfert et stockage d'images
La compression des images et des données vidéo peut suivre deux approches
différentes : Sans perte ou avec perte. Dans le cas d’une compression sans perte, chaque pixel
est maintenu intact. L’image obtenue après compression est donc identique à l’original.
Cependant la réduction des données est très limité. Le format de compression “sans perte”
bien connu est le format GIF. Du fait de son faible taux de compression, ce format ne
convient guère aux solutions de vidéo sur IP nécessitant l’archivage et la transmission de
quantités importantes d’images. C'est pour ça qu'on utilise la compression avec perte dont le
principe fondamental est de réduire les éléments invisibles à l’œil humain et d’accroître ainsi
considérablement le taux de compression.
Les deux images ci-dessous illustrent le rapport entre taux de compression et qualité d’image
pour une scène donnée, selon deux degrés de compression différents:
Page 18
Chapitre II : Acquisition, transfert et stockage d'images
Page 19
Chapitre II : Acquisition, transfert et stockage d'images
La technique de compression H.263 est conçue pour une transmission vidéo à débit
fixe. L’inconvénient du débit fixe est que l’image perd de sa qualité lorsque les objets sont en
mouvement. La norme H.263 était initialement destinée aux applications de vidéoconférence
et non à la surveillance où les détails ont plus d’importance que la régularité du débit.
II.3.2.3. MPEG
La norme MPEG (fondée par le Motion Picture Experts Group à la fin des années
1980) est la plus connue des techniques de transmission directe audio et vidéo. Cette section,
se limitera à la partie vidéo de la norme MPEG.
Le principe de base du MPEG consiste à comparer entre elles deux images
compressées destinées à être transmises sur le réseau. La première des deux images servira de
trame de référence. Sur les images suivantes, seuls seront envoyées les zones qui diffèrent de
la référence. L’encodeur réseau reconstruit alors toutes les images en fonction de l’image de
référence et de la “plage de différence”. Bien que plus complexe que la technique Motion
JPEG, la compression vidéo MPEG produit de plus petits volumes de données à transmettre
via le réseau. ( La figure 2.5 illustre le principe du codage MPEG)
Page 20
Chapitre II : Acquisition, transfert et stockage d'images
MPEG-1, lancée en 1993 et destinée à l’archivage des données vidéos numériques sur
CD. La plupart des encodeurs et des décodeurs MPEG-1 sont conçus pour un débit
d’environ 1,5 Mbit/s en résolution CIF. MPEG-1 met surtout l’accent sur le maintien
d’un débit relativement constant, au détriment de la qualité d’image, laquelle est
variable et comparable à la qualité vidéo VHS. En MPEG-1, la fréquence d’image est
plafonnée à 25 (PAL)/30 (NTSC) images par seconde.
MPEG-4 représente une évolution substantielle par rapport au format MPEG-2. Les
outils permettant de réduire le débit d’images de manière à atteindre une certaine
qualité pour une application ou une scène déterminée sont beaucoup plus nombreux en
MPEG-4. En outre, la fréquence n’est plus limitée à 25 ou 30 images par seconde. Il
est a Souligné cependant que la plupart des outils actuels permettant de réduire le débit
ne concernent que les applications en temps réel. Ceci est dû au fait que ces outils
requièrent des capacités telles que les durées d’encodage et de décodage (temps de
latence) les rendent quasiment impossibles à utiliser à d’autres fins que pour
l’encodage de films en studio, de films d’animation, etc. En réalité, la majorité des
outils MPEG-4 destinés aux applications en temps réel sont les mêmes que ceux qui
existent pour les formats MPEG-1 et MPEG-2.
Page 21
Chapitre II : Acquisition, transfert et stockage d'images
Les deux comités à l‘origine des normes H.263 et MPEG-4 se sont récemment regroupés pour
élaborer une nouvelle génération de normes de compression : la norme AVC (Advanced
Vidéo Coding) ou H.264 ou MPEG-4 Part 10, dont le but est d‘atteindre des taux de
compression très élevés. Cette norme entend offrir une bonne qualité d‘image vidéo, mais
selon des débits considérablement moins élevés que par les normes précédentes, et sans pour
autant accroître la complexité au point de rendre le concept impraticable ou trop onéreux à
mettre en œuvre.
M-JPEG (Motion JPEG) est utilisée dans de nombreux systèmes et représente souvent
un choix judicieux vu sa simplicité. Le délai entre la capture de l’image par la caméra,
l’encodage, le transfert sur le réseau, le décodage et l’affichage final à l’écran sont limités.
En conclusion M-JPEG produit un temps de latence plus faible du fait de sa simplicité
(compression des images et images individuelles entières).Il convient donc aux applications
de traitement d’image et, notamment, à la détection des mouvements et la localisation des
objets. Toutes les résolutions d’images disponibles en pratique, depuis les images adaptées
aux téléphones portables (QVGA) jusqu’aux images vidéo en taille réelle (4CIF) ou
supérieure (méga pixels), sont possibles en M-JPEG. Quels que soient le mouvement et la
complexité de l’image, le système garantit la qualité tout en permettant de choisir entre une
qualité supérieure (faible compression) et inférieure (compression élevée).
Quant aux fichiers images, leurs petites tailles ne réclament qu’un faible débit et
n’utilise qu’une faible bande passante. La fréquence d’image peut facilement être réglée afin
de limiter la bande passante utilisée sans pour autant nuire à la qualité de l’image.
Cependant, le format Motion JPEG génère des volumes de données images assez
importants à destination du réseau. Sur ce plan, MPEG présente l’avantage d’envoyer sur le
réseau un volume moins important de données par unité de temps (débit) que M-JPEG, sauf à
des fréquences peu élevées, comme décrit ci-dessous. Lorsque la bande passante disponible
est limitée ou si la vidéo doit être enregistrée à fréquence élevée alors que l’espace de
stockage est limité, MPEG s’avère plus indiqué. MPEG offre une qualité d’image
relativement élevée pour un débit plus faible. Néanmoins, cette consommation moins
importante de la bande passante se fait au prix d’encodages et de décodages plus complexes,
qui affectent à leur tour les temps de latence par rapport à M-JPEG.
Le graphe ci-dessous compare les bandes passantes respectives des normes M-JPEG et
MPEG-4 pour une même scène en mouvement. Pour de faibles fréquences MPEG-4
consomme juste un petit peu plus que M-JPEG en bande passante. Par contre à des fréquences
plus élevées les images MPEG-4 requièrent une bande passante plus faible que les images au
format M-JPEG. Ceci est illustré par le graphe suivant :
Page 22
Chapitre II : Acquisition, transfert et stockage d'images
Figure 2.6: Comparaison du rapport fréquence d'image et bande passante pour les normes M-
JPEG et MPEG-4
II.4. Résolution
Une image est formée d'un ensemble de points appelés PIXELS (Picture Element).
L'ensemble de ces pixels est contenu dans un tableau à deux dimensions constituant l'image.
On appelle définition le nombre de pixels (de points) constituant l'image, c'est-à-dire le
nombre de colonnes de l'image que multiplie son nombre de ligne .
Page 23
Chapitre II : Acquisition, transfert et stockage d'images
II.5.1. Ethernet
Page 24
Chapitre II : Acquisition, transfert et stockage d'images
Chaque machine vérifie qu'il n'y a aucune communication sur la ligne avant
d'émettre
Si deux machines émettent simultanément, alors il y a collision (c'est-à-dire que
plusieurs trames de données se trouvent sur la ligne au même moment)
Les deux machines interrompent leur communication et attendent un délai aléatoire,
puis la première ayant passé ce délai peut alors réémettre.
Tableau 2.1: Variantes des technologies Ethernet suivant le type et le diamètre des câbles
Les réseaux sans fil sont basés sur une liaison utilisant des ondes radioélectriques
(radio et infrarouges) en lieu et place des câbles habituels. Il existe plusieurs technologies se
distinguant d'une part par la fréquence d'émission utilisée ainsi que le débit et la portée des
transmissions. Grâce aux réseaux sans fil, un utilisateur a la possibilité de rester connecté tout
en se déplaçant dans un périmètre géographique plus ou moins étendu.
Page 25
Chapitre II : Acquisition, transfert et stockage d'images
II.5.2.1.WI-FI
Le Wifi, connu sous la norme IEEE 802.11 qui permet de créer des réseaux locaux
sans fils à haut débit pour peu que l'ordinateur à connecter ne soit pas trop distant par rapport
au point d'accès. Dans la pratique, le Wifi permet de relier des ordinateurs portables,
des ordinateurs de bureau, des assistants personnels (PDA) ou tout type de périphérique à une
liaison haut débit (11 Mbps ou supérieur) sur un rayon de plusieurs dizaines de mètres en
intérieur (généralement entre une vingtaine et une cinquantaine de mètres) à plusieurs
centaines de mètres en environnement ouvert.
Tableau 2.2: Les couches basses du modèle OSI pour la norme 802.11
Page 26
Chapitre II : Acquisition, transfert et stockage d'images
802.11b
Cette norme offre une capacité réelle allant jusqu’à 5 Mbps et jusqu’à 100 m en
situation d’extérieur. Elle opère sur la fréquence des 2,4 GHz. Le débit théorique est de 11
Mbps.
802.11g
Norme la plus utilisée, elle représente une amélioration par rapport à la norme
802.11b. Capacité réelle atteint 24 Mbps et jusqu’à 100 m en situation d’extérieur. Elle opère
sur la fréquence des 2,4 GHz avec un débit théorique de 54 Mbps.
802.11n
C'est la nouvelle génération de la norme LAN 802.11 sans fil. Le débit effectif dépasse
les 100 Mbps.
La communication sans fil implique que toute personne munie d’un appareil sans-fil et
présente dans la zone couverte par le réseau est désormais à même d’intervenir sur le réseau et
d’utiliser les services partagés. D’où la nécessité de sécuriser le système.
II.6.1.Les adresses IP
II.6.1.1. IPv4
Une adresse IP (adresse de protocole Internet) est un numéro unique permettant aux
équipements de s‘identifier et de communiquer entre eux sur les réseaux utilisant la norme
liée au protocole Internet. Une adresse IP se compose de quatre nombres séparés par un point.
Elle se subdivise encore en une partie réseau et une partie hôte . La séparation entre ces deux
parties est déterminée par la longueur du masque réseau ou du préfixe.
Page 27
Chapitre II : Acquisition, transfert et stockage d'images
II.6.1.2. IPv6
IPv6, ou protocole Internet version 6, est conçu comme une mise à jour
révolutionnaire du protocole Internet. À ce titre, il devrait continuer à coexister pendant un
certain temps encore avec l‘ancien IPv4. IPv6 a pour but d‘assurer la croissance constante
d‘Internet, tant au niveau du nombre d‘hôtes connectés que du volume total d‘échanges de
données.
La différence entre IPv4 et à IPv6 tient à l'allongement des adresses IP, qui passe de
32 à 128 bits. Cette extension anticipe l‘énorme croissance future d‘Internet, qui devra
permettre un nombre illimité de réseaux et de systèmes. IPv6 devrait ainsi permettre
d‘attribuer une adresse spécifique à chaque téléphone ou autre appareil mobile.
Il existe trois différents modes de transmission des données sur un réseau informatique :
II.6.2.2.Multidiffusion (Multicast)
C'est une communication entre un seul émetteur et plusieurs récepteurs sur un réseau.
Les technologies de multidiffusion permettent de réduire le trafic sur le réseau lorsque
plusieurs récepteurs souhaitent visualiser une même source en même temps. Un seul flux
d’information peut ainsi être envoyé à des centaines de récepteurs.
La différence majeure par rapport à la diffusion individuelle est que le flux vidéo n'est
envoyé qu’une seule fois. La multidiffusion est fréquemment utilisée en conjonction avec les
transmissions RTP.
II.6.2.3.Radiodiffusion (Broadcast)
Page 28
Chapitre II : Acquisition, transfert et stockage d'images
Page 29
Chapitre II : Acquisition, transfert et stockage d'images
Le streaming est la diffusion d'une vidéo d'un serveur vers un client a travers le réseau
internet. En effet ,en émission ,le serveur segmente la vidéo en paquets susceptibles d'être
diffusés sur le réseau. Ces paquets seront ensuite assemblés par le client dans le but de
reconstituer la vidéo. A la différence d'un simple transfert de fichier ,la vidéo est jouée au fur
est a mesure que les paquets arrivent.
FTP obéit à un modèle client-serveur, c'est-à-dire qu'une des deux parties, le client,
envoie des requêtes auxquelles réagit l'autre, appelé serveur. En pratique, le serveur est un
ordinateur sur lequel fonctionne un logiciel lui-même appelé serveur FTP, qui rend publique
une arborescence de fichiers similaire à un système de fichiers Unix. Pour accéder à un
serveur FTP, on utilise un logiciel client FTP (possédant une interface graphique ou en ligne
de commande).
Le protocole, qui appartient à la couche session du modèle OSI et à la couche application du
modèle ARPA, utilise une connexion TCP.
Page 30
Chapitre II : Acquisition, transfert et stockage d'images
Ainsi, le client comme le serveur possèdent deux processus permettant de gérer ces deux
types d'information :
Le DTP (Data Transfer Process) est le processus chargé d'établir la connexion et de
gérer le canal de données. Le DTP côté serveur est appelé SERVER-DTP, le DTP
côté client est appelé USER-DTP.
Le PI (Protocol Interpreter) est l'interpréteur de protocole permettant de commander
le DTP à l'aide des commandes reçues sur le canal de contrôle. Il est différent sur le
client et sur le serveur :
Le SERVER-PI est chargé d'écouter les commandes provenant d'un
USER-PI sur le canal de contrôle sur un port donné, d'établir la connexion
pour le canal de contrôle, de recevoir sur celui-ci les commandes FTP de
l'USER-PI, d'y répondre et de piloter le SERVER-DTP.
Le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus utilisé sur
Internet depuis 1990. La version 0.9 était uniquement destinée à transférer des données sur
Internet (en particulier des pages Web écrites en HTML). La version 1.0 du protocole (la plus
utilisée) permet désormais de transférer des messages avec des en-têtes décrivant le contenu
du message en utilisant un codage de type MIME.
Le but du protocole HTTP est de permettre un transfert de fichiers (essentiellement au
format HTML) localisés grâce à une chaîne de caractères appelée URL entre un navigateur (le
client) et un serveur Web (appelé d'ailleurs http sur les machines UNIX).
Page 31
Chapitre II : Acquisition, transfert et stockage d'images
Remarque :
HTTPS (avec S pour secured, soit « sécurisé ») est la variante du HTTP sécurisée par l'usage
des protocoles SSL ou TLS.
Il existe de nombreuses manières de tirer pleinement parti d'un système vidéo sur IP et de
gérer au mieux la consommation de la bande passante. Voici les techniques employées :
Page 32
Chapitre II : Acquisition, transfert et stockage d'images
Page 33
Chapitre II : Acquisition, transfert et stockage d'images
Calcul :
Taille de l’image x nombre d’images par seconde x 3600s = Ko par heure / 1000 = Mo par
heure .
Mo par heure x nombre d’heures de fonctionnement par jour / 1000 = Go par jour
Go par jour x durée de conservation = besoin de stockage
II.8.1.2. MPEG-4
En MPEG-4, les images parviennent suivant un flux continu et non pas sous forme de
fichiers individuels. Les besoins de stockage dépendent du débit, c’est-à-dire de la quantité de
données vidéo transmises. Le débit est quant à lui le résultat d’une fréquence déterminée,
selon une résolution et un taux de compression donnés et en fonction du degré de mouvement
de la scène.
Calcul :
Taille de l’image x nombre d’images par seconde x 3600s = Ko par heure / 1000 = Mo par
heure
Mo par heure x nombre d’heures de fonctionnement par jour / 1000 = Go par jour
Go par jour x durée de conservation = besoin de stockage
Page 34
Chapitre II : Acquisition, transfert et stockage d'images
Figure 2.9 :Répartition des données sur plusieurs disques selon la méthode RAID
Page 35
Chapitre II : Acquisition, transfert et stockage d'images
serveurs utilisant un même dispositif de stockage. Le système appelé système RAID peut
palier en cas de problèmes sur l’un des deux serveurs, l’autre (configuré de façon identique)
reprend en charge l’application. Souvent, les deux serveurs partagent la même adresse IP,
rendant ainsi la procédure de basculement automatique totalement transparente pour
l’utilisateur. .( Voir figure ci-dessous )
C'est Une méthode courante qui vise à garantir la récupération des données en cas de
problèmes . L’archivage externe de la vidéo réseau consiste à envoyer la vidéo simultanément
vers deux serveurs différents, situés en des lieux différents. Ces serveurs peuvent bien sûr
disposer des techniques RAID, fonctionner en clusters ou répliquer leurs données sur d’autres
serveurs éventuellement encore plus éloignés.
II.10.Sécurité de données
Page 36
Chapitre II : Acquisition, transfert et stockage d'images
II.12.Conclusion
Dans ce chapitre on a donnée quelque notions sur les différents bloc qui constituent un
système de télésurveillance ainsi que certaines contraintes engendrées lors d'émission de
vidéo sur internet.
Cependant la télésurveillance sur IP reste la technique la plus utilisée d'une part ,
parce qu'elle est accessible à tout le monde avec un cout abordable. D'autre part , elle propose
les meilleurs solutions, car elle dispose de technologies avancées et d'un niveau de sécurité
assez élevée .
Page 37
Chapitre III
Conception, étude et
réalisation expérimentale du
système
Chapitre III : Conception, étude et réalisation expérimentale du système
III.1. Introduction
Dans ce chapitre sera présenté le système conçu, passant par l’explication de son
fonctionnement de manière détaillée, le schéma synoptique du système, et la représentation
des deux éléments de base le constituant dont la carte Arduino Méga et la carte Raspberry Pi
2 ainsi que les différents composants et modules embarquée sur ces deux cartes. Pour finir le
module Bluetooth qui assure la communication sans fils entre ces deux cartes.
Carte de contrôle et sécurité du domicile : Elle est structurée autour d’une carte
Arduino Méga qui s’occupe de la domotique. Cette dernière s'occupe de la sécurité du
domicile avec un accès via digicode ainsi que de l'allumage automatique des lumières
avec commande vocale via une application Android sur notre Smartphone. Le module
Bluetooth Il se charge de la liaison entre l'application de notre Smartphone et la carte
Arduino, afin de contrôler l'ensemble du domicile via un téléphone portable. (Voir
figure schéma synoptique bloc 1)
Page 38
Chapitre III : Conception, étude et réalisation expérimentale du système
Page 39
Chapitre III : Conception, étude et réalisation expérimentale du système
La carte Arduino méga de la société Arduino est une carte électronique dotée d'un
microcontrôleur ATMEL de référence ATMega2560. Elle dispose d'une interface hôte USB
pour se connecter aux téléphones fonctionnant sous Android.
Le microcontrôleur ATMega2560 est un microcontrôleur 8bits de famille AVR dont
la programmation peut être réalisée en langage C. Cette carte dispose de 54 entrées/sorties
numérique dont 15 peuvent être utilisées en PWM (Pulse Width Modulation), 16 entrées
analogique/numérique de 10 bits de résolution, 4 ports de communication série,1 résonateur
céramique (Quartz) de 16 Mhz, un connecteur ICSP(In-Circuit Serial Programmions) qui
permet la programmation du microcontrôleur sur le circuit sans avoir à l'enlever, 1
connecteur jack pour une alimentation extérieur, un bouton reset pour mettre le processeur a
zéro.
L'avantage de cette carte est qu’elle n'a pas besoin de pilote pour faire la conversion
FTDI USB/Série, elle a juste un petit microcontrôleur ATméga 16U2 programmé comme
convertisseur USB/série.
Arduino permet un environnement de développement utilisant des outils open source.
Les programmes sont chargés dans le microcontrôleur grâce au port USB En plus de cela, il y
a plusieurs bibliothèques de fonctions utilisables. Ces fonctions sont proposées pour
l'exploitation d'entrées-sorties : exploitation des bus I2C, génération de signaux PWM,
utilisation des port de communication séries….etc. (Voir figure ci-dessous)
Page 40
Chapitre III : Conception, étude et réalisation expérimentale du système
Figure 3.3 : Illustration du CPU ATMega2560 ainsi que son schéma électrique
Page 41
Chapitre III : Conception, étude et réalisation expérimentale du système
- Gestion d'interruptions:
Interruptions liées aux entrées numeriques.
Interruptions liées aux Timers 0, 1 et 2 (plusieurs causes configurables).
Interruption liée au comparateur analogique.
Interruption de fin de conversion ADC.
Interruptions du port série USART.
Interruption du bus I2C.
Les détails de la carte Arduino Méga sont résumés en Annexe A.
Voir la figure suivante qui détermine des différentes composantes de la carte Arduino Méga
Page 42
Chapitre III : Conception, étude et réalisation expérimentale du système
Page 43
Chapitre III : Conception, étude et réalisation expérimentale du système
l'ide Arduino inclut la librairie Wire qui simplifie l'utilisation du bus I2C.
Pour utiliser la communication SPI (Interface Série Périphérique), la librairie pour
communication SPI est disponible.
III.4.2.1.Clavier matriciel
Le clavier numérique est plus aisé et plus pratique à utiliser et présente la
communication Homme-Machine.
Le code étant numérique, il suffit de choisir un clavier 16 touches, est équipé de
touche numérique 0 à 9, * et # et des lettres alphabétiques A,B,C,D.
Le clavier matriciel est implémenté sur 8 broches de la carte Arduino. Cette
application pourra servir pour le codage des serrures ainsi que l'activation et la désactivation
du système d'alarme dont le but de protéger le domicile.
Dans notre système la touche '*' sert a effacer et la touche '#' sert à confirmer le code inséré,
les autres touches restantes font partie du code 4 caractères a introduire. ( La figure suivante
illustre parfaitement un clavier matriciel ainsi que son schéma électrique )
Page 44
Chapitre III : Conception, étude et réalisation expérimentale du système
de cristal liquide normalement réfléchissant (pour les modèles réflectifs). L'application entre
les deux faces d'une tension alternative basse fréquence de quelques volts (3 à 5 V) le rend
absorbant. Les caractères apparaissent sombres sur fond clair. N'émettant pas de lumière, un
afficheur à cristaux liquides réflectif ne peut être utilisé qu'avec un bon éclairage ambiant. Sa
lisibilité augmente avec l'éclairage. Les modèles transmissifs fonctionnent différemment.
Normalement opaque au repos, le cristal liquide devient transparent lorsqu'il est excité. Pour
rendre un tel afficheur lisible, il est nécessaire de l'éclairer par l'arrière, comme c'est le cas
pour les modèles rétro éclairés.
L’afficheur utilisé dispose de :
- 4 lignes de 20 caractères.
- Une RAM (DDRAM : DATA RAM) de 80 caractères correspondants.
- Une RAM (CGRAM : CARACTER GRAPHIC RAM) permettant de créer de nouveaux
caractères.
-Le registre d’instruction I R: (Instruction Register) :C’est le registre de contrôle, suivant la
valeur introduit, l’afficheur exécute des opérations de configurations. Il permet aussi de
positionner le curseur parmi les 32 adresses de l’afficheur.
-Le registre de données D R: (Data Register) : Suivant la valeur mise dans l’afficheur , ce
dernier peut monter un caractère (Code ASCII ou spécifiques) ou créer une ligne d’une
matrice d’un nouveau caractère.
Cet afficheur nécessite une alimentation de 5V pour pouvoir alimenter son pilote
interne et ainsi permettre l’affichage des caractères sur l’écran. La résistance variable permet
de modifier le contraste à tout moment. Ce LCD possède huit bits de données, mais seules
quatre sont utilisées. Le composant propose en effet un mode de transmission sur 4 bits en
passant ces caractères en deux temps et économise ainsi quatre lignes de données sur le
microcontrôleur.
En effet, l'afficheur LCD permet de manière très rapide de révéler n’importe quelle
information qui pourrait être utile, et permet créer une petite interface utilisateur efficace.
(Voir figure ci-dessous)
Page 45
Chapitre III : Conception, étude et réalisation expérimentale du système
C'est un capteur muni d'une paire d' « yeux » : un émetteur qui émet un son à une
fréquence de 40 kHz (domaine des ultrasons) et un récepteur qui collecte le son répercuté par
l'obstacle. (La figure suivante illustre le fonctionnement du module ultrason)
La distance à l'obstacle peut alors être calculée par le temps mis par le son pour faire
l'aller-retour. La vitesse du son est à peu près stable. Pendant l'intervalle de temps t, le son
parcourt deux fois la distance d.
vitesse du son = 340 m/s dans l'air.
Page 46
Chapitre III : Conception, étude et réalisation expérimentale du système
Pour l'utilisation du capteur ultra-son il faut lui envoyer une demande de mesure, que
l'on appelle Trigger. C'est une impulsion de 5 volts dont la durée est de 10 µs (microsecondes)
minimum. Par précaution, il est conseillé d'envoyer un signal Trigger dont la durée est entre
12 et 15 µs.
Dès qu'il reçoit ce signal, le trigger envoie un train d'ultrasons de 40 kHz (huit signaux
de courtes périodes). Dès l'envoi du dernier ultrason, le SRF-05 envoie un signal sur la
broche Echo qu'il maintient à 5 volts jusqu'à ce qu'il reçoive un retour des ultrasons. À ce
moment-là, il redescend le signal Echo à la masse (0 volt).
Nous avons donc un signal Echo dont la durée est proportionnelle à la distance entre le
capteur et l'objet .Ce dernier Echo redescend à la masse au bout de 30 ms si aucun obstacle
n'est détecté (time-out).
Afin d'éviter des résultats faussés par des mesures lancées quasi simultanément, il est
recommandé d'attendre 50 ms entre deux demandes de mesure, ce qui permet de déclencher
jusqu'à 20 mesures par seconde d'utilisation au maximum.
Page 47
Chapitre III : Conception, étude et réalisation expérimentale du système
Par conséquent le système d'alarme est enclenché. ( La figure suivante illustre le module
ultrason ainsi que sa connexion avec l'Arduino méga )
III.4.2.5. Le bipper
Un bipper ou buzzer (voir figure 3.11) est un élément électromécanique ou
piézoélectrique qui produit un son caractéristique quand on lui applique une tension : le bip.
Certains nécessitent une tension continue, d'autres nécessitent une tension alternative.
Dans notre cas c'est un buzzer a courant continu de 6v a fréquence variable. Ce bipper
là est activé par un signal d'horloge externe : la fréquence du signal sonore est alors relative
au signal appliqué. Cette fréquence est généralement comprise entre 2 kHz et 4 kHz. Ce type
de bippers peut générer des bips graves, aigus, plus graves ou plus aigus.
Les servomoteurs répandus dans la robotique mobile dits de modélisme par leur taille,
en effet leur petite taille les destine à une utilisation dans des modèles réduits nécessitant un
Page 48
Chapitre III : Conception, étude et réalisation expérimentale du système
encombrement réduit, ils sont composés de trois parties : d’un moteur électrique, d’un
ensemble d’engrenage, et d’une carte électronique pour la commande et l’asservissement du
moteur. ( La figure suivante défini la composition interne d'un servomoteur)
Page 49
Chapitre III : Conception, étude et réalisation expérimentale du système
Figure 3.12: Illustration d'un servomoteur ainsi que le schéma de connexion avec
l'Arduino méga
Remarque : Dans notre système, le servomoteur sert à balayer la caméra afin de suivre les
zones ou il ya des intrusions.
III.4.2.7. La LED :
Une diode électroluminescente (light emitting diode, LED), est un dispositif
optoélectronique capable d’émettre de la lumière lorsqu’il est parcouru par un courant
électrique.
Une diode électroluminescente ne laisse passer le courant électrique que dans un seul
sens (le sens passant, comme une diode classique, l'inverse étant le sens bloquant) et produit
un rayonnement monochromatique ou polychromatique non cohérent à partir de la conversion
d’énergie électrique, lorsqu'un courant la traverse. Ceci est illustré par la figure ci-dessous.
Figure 3.13: Illustration de différente LED ainsi que leur schéma électrique
Page 50
Chapitre III : Conception, étude et réalisation expérimentale du système
b. Le module Bluetooth
Le module Bluetooth HC-06 ajoute une fonction de communication par Bluetooth à la
carte Arduino. Il peut ainsi communiquer sans fil à moyenne distance avec n'importe quel
autre dispositif Bluetooth (ordinateur, téléphone mobile, second module Bluetooth sur une
autre carte Arduino ou Raspberry ...).
Caractéristiques:
Page 51
Chapitre III : Conception, étude et réalisation expérimentale du système
Alimentation de 3.3 à 5V DC
LED indicatrice : statut de connexion.
Fonctionnement Bluetooth sur la bande 2.4 GHz, modulation GFSK.
Le module est apparié avec un mot de passe (1234) modifiable.
VCC –> +5V
GND –>GND
TXD –> Pin 0 (RX) vert
RXD –> Pin 1 (TX) noir
Remarque :
Il faut croiser Rx et Tx entre le module HC-06 et l'Arduino.
L'utilisation de Pin0 et Pin1 sur la carte Arduino ne permet pas d'utiliser le serial monitor du
PC en même temps, ni de téléverser (donc penser à débrancher ces 2 fils pour téléverser le
code par le câble USB).
La figure suivante illustre le module Bluetooth et sa connexion avec l'Arduino :
Page 52
Chapitre III : Conception, étude et réalisation expérimentale du système
Page 53
Chapitre III : Conception, étude et réalisation expérimentale du système
Page 54
Chapitre III : Conception, étude et réalisation expérimentale du système
Figure 3.17: Schéma explicant les diffrentes fonctions des ports GPIO ainsi que schéma
électrique
Page 55
Chapitre III : Conception, étude et réalisation expérimentale du système
La raspicam prend en charge 1080 p @ 30 fps, 720 p à 60 images par seconde et 640 x
480 p enregistrement vidéo 60/90 aussi est pris en charge par la dernière version de Raspbian,
système d'exploitation recommandé pour la Raspberry Pi. ( Voir figure suivante )
Page 56
Chapitre III : Conception, étude et réalisation expérimentale du système
Page 57
Chapitre III : Conception, étude et réalisation expérimentale du système
III.7. Conclusion
Dans ce chapitre sont décrites les deux cartes de programmation qui sont la carte
Arduino Méga et la Raspberry PI 2. Les composants utilisés dans chaque carte de
programmation sont décortiqués et définis ainsi que le principe de fonctionnement et la liaison
Bluetooth.
Page 58
Chapitre IV
Description des outils
logiciels du système
Chapitre IV: Description des outils logiciels du système
IV.1. Introduction :
Après avoir conçu le système, la réalisation pratique fera l’objet de ce chapitre. Il se
présente sous forme logicielle, commençant par la le langage de programmation Arduino,
ensuite la présentation du langage de programmation orienté objet, Python, l’environnement
de développement Raspbian Wheezy, le serveur apache, le PHP et pour finir Android .
Le système Arduino permet de réaliser un grand nombre de réalisations, qui ont une
application dans tous les domaines. L'étendue de l'utilisation de l'Arduino est gigantesque.
Voici quelques exemples:
contrôler les appareils domestiques
fabriquer un robot
faire un jeu de lumières
communiquer un ordinateur
télécommander un appareil mobile (modélisme)
(La figure ci-dessous illustre le logo Arduino )
Une BARRE DE MENUS : comme pour tout logiciel une interface graphique
(GUI) .
Page 59
Chapitre IV: Description des outils logiciels du système
Une BARRE DE BOUTONS : qui donne un accès direct aux fonctions essentielles
du logiciel et fait toute sa simplicité d’utilisation.
Un EDITEUR (à coloration syntaxique) pour écrire le code de vos programmes,
avec onglets de navigation.
Une ZONE DE MESSAGES qui affiche et indique l'état des actions en cours.
Une CONSOLE TEXTE qui affiche les messages concernant le résultat de la
compilation du programme.
La figure suivante illustre la composition d' une fenêtre du logiciel Arduino
Le code écrit avec le logiciel Arduino est appelé un programme (ou une séquence - sketch
en anglais) :
Ces programmes sont écrits dans l'éditeur de texte. Celui-ci a les fonctionnalités
usuelles de copier/coller et de rechercher/remplacer le texte.
la zone de messages donne l'état de l'opération en cours lors des sauvegardes, des
exportations et affiche également les erreurs.
La console texte affiche les messages produits par le logiciel Arduino, incluant des
messages d'erreur détaillés et d'autres informations utiles.
la barre de boutons permet de vérifier la syntaxe et de transférer les programmes,
créer, ouvrir et sauver le code, et ouvrir le moniteur série.
la barre des menus permet d’accéder à toutes les fonctionnalités du logiciel Arduino.
Page 60
Chapitre IV: Description des outils logiciels du système
File (Fichier)
Edit (Editer)
Sketch (Programme ou Séquence)
Tools (Outils)
Help (Aide)
C’est principalement ce menu qui va être utilisé le plus. Il dispose d’un certain
nombre de fonctions qui vont être très utiles. Voici quelques options :
Carnet de croquis : ce menu regroupe les fichiers qu'on aurait pu faire jusqu’à
maintenant (et s’ils sont enregistré dans le dossier par défaut du logiciel)
Exemples (exemples) : ceci est important, toute une liste se déroule pour afficher les
noms d’exemples de programmes existants ; avec çà, on peut aider/inspirer pour créer
des programmes ou tester de nouveaux composants.
Page 61
Chapitre IV: Description des outils logiciels du système
Copy for forum (copier pour le forum) : Copie le code du programme dans le presse-
papier dans un format approprié pour poster sur le forum, avec coloration syntaxique
complète.
Copy as HTML (copier en tant qu'HTML) : Copie le code de votre programme dans le
presse-papier en tant qu'HTML, au format adapté pour être intégré dans des pages web .
(Voir figure ci-dessous)
Page 62
Chapitre IV: Description des outils logiciels du système
Auto Format (Mise en forme Automatique) : Cette fonction formate le code, c'est à
dire ajuste le code de façon à ce que les accolades soient alignées et que les
instructions entre les accolades soient décalées.
Board (Carte) : sélectionne la carte Arduino utilisée.
Serial Port (Port Série) : Ce menu contient tous les ports séries (réels ou virtuels)
présents sur l'ordinateur. Il est automatiquement mis à jour à chaque fois que le niveau
supérieur du menu outils.
Burn Bootloader (Graver le bootloader) : Cette fonctionnalité permet de graver le
bootloader dans le microcontrôleur sur une carte Arduino. Ceci n'est pas nécessaire
pour une utilisation normale de la carte Arduino (le bootloader est déjà gravé dans la
carte à l'achat) mais peut être utile à l'achat d'un nouvel ATmega (qui est livré
normalement sans bootloader). ( Voir la figure suivante )
Page 63
Chapitre IV: Description des outils logiciels du système
Propose tout ce qui peut être utile pour l'aidé lors de l'écriture des programmes,
notamment un lien vers la référence du langage en anglais.
Page 64
Chapitre IV: Description des outils logiciels du système
Les librairies fournissent des fonctions nouvelles qui peuvent être utiliseés dans les
programmes, par exemple un matériel précis (un afficheur LCD...) ou manipuler des
données. Pour utiliser une librairie, il faut la sélectionner depuis le menu Sketch > Import
Library (Programme > Importer Librairie). Cela insèrera une ou plusieurs
instructions #include au début du programme et compilera la librairie avec le programme.
Puisque les librairies sont transférées dans la carte avec le programme, elles
augmentent la quantité de mémoire utilisée. Si un programme ne nécessite plus d'une
librairie, il faut effacer simplement l'instruction #include correspondante au début du
code.
Il y a toute une liste de librairies dans la référence du langage Arduino. Certaines
librairies sont incluses dans le logiciel Arduino (la librairie Serial pour les
communications série notamment). D'autres librairies peuvent être téléchargées depuis
différentes sources (voir notamment
: http://www.arduino.cc/playground/Main/InterfacingWithHardware)
Le TERMINAL SERIE (figure 4.9) permet d'afficher des messages textes reçus de
la carte Arduino et d'envoyer des caractères vers la carte Arduino. Cette fonctionnalité
permet une mise au point facilitée des programmes, permettant d'afficher sur l'ordinateur
l'état de variables, de résultats de calculs ou de conversions analogique-numérique. C'est
un élément essentiel pour améliorer, tester et corriger les programmes.
Page 65
Chapitre IV: Description des outils logiciels du système
Pour ouvrir le terminal série: Il faut cliquer sur le serial monitor (figure ci-dessous )
Pour régler le débit de communication sur la même valeur que celle utilisée par le programme
avec lequel programmer la carte Arduino :
Page 66
Chapitre IV: Description des outils logiciels du système
Nous allons choisir un exemple simple qui consiste à faire clignoter une LED, son nom est
Blink et il est dans la catégorie Basics :
Après avoir cliqué sur Blink , une nouvelle fenêtre va apparaître. Elle va contenir le
programme Blink . L'ancienne fenêtre peut être fermée puisqu'elle n'est plus utile.
Page 67
Chapitre IV: Description des outils logiciels du système
Avant d'envoyer le programme Blink vers la carte, il faut donner au logiciel le nom
de la carte et sur quel port elle est branchée. Et cela en allant sur " Tools" puis dans
"Board " (" carte" en français). On vérifie que c'est bien le nom " Arduino Méga ADK" qui
est coché..
Page 68
Chapitre IV: Description des outils logiciels du système
Il faut partir dans le menu Tools, puis Serial port, ou on choisis le port COMX, X étant le
numéro du port qui est affiché. Dans notre cas , il s 'agit de COM5 :
Page 69
Chapitre IV: Description des outils logiciels du système
En bas dans l'image, le texte : " Uploading to I/O Board... " est affiché, cela signifie que le
logiciel es t en train d'envoyer le programme dans la carte. A la fin, il affiche un autre
message :
Page 70
Chapitre IV: Description des outils logiciels du système
Python a été conçu pour être un langage lisible. Il vise à être visuellement épuré. Il
possède moins de constructions syntaxiques que de nombreux langages structurés tels que C,
Perl, ou Pascal. Les commentaires sont indiqués par le caractère croisillon (#).
Page 71
Chapitre IV: Description des outils logiciels du système
Les blocs sont identifiés par l'indentation, au lieu d'accolades comme en C ou C++ ; ou
de begin ... end comme en Pascal ou en Ruby. Une augmentation de l'indentation marque le
début d'un bloc, et une réduction de l'indentation marque la fin du bloc courant
NB : l'indentation pourrait être modifiée ou supprimée dans la version en C sans modifier son
comportement, mais une indentation correcte permet de détecter plus aisément des erreurs en
cas d'imbrication de plusieurs blocs et facilite donc l'élimination de ces erreurs. C'est pourquoi
il est préférable d'indenter convenablement les programmes en C.
À partir de Python 3.0, print et exec ne sont plus des mots-clés du langage, mais des
fonctions du module builtins . Sont ajoutés aux mots-clés : True , False , None et nonlocal .
Les trois premiers étaient déjà présents dans les versions précédentes, mais ils ne sont plus
modifiables (auparavant, l'affectation True = 1 était possible). Nonlocal a été introduit par le
PEP 3104, et permet, dans une fonction définie à l'intérieur d'une autre fonction, de modifier
une variable d'un niveau supérieur de portée. Avant cela, seules les variables locales à la
fonction, et globales (niveau module) étaient modifiables.
Page 72
Chapitre IV: Description des outils logiciels du système
IV.4. Le Raspbian
Le Raspbian est un système d’exploitation libre basé sur la distribution GNU/Linux
Debian, et optimisé pour le plus petit ordinateur du monde, la Raspberry Pi.
Page 73
Chapitre IV: Description des outils logiciels du système
Page 74
Chapitre IV: Description des outils logiciels du système
ping <ip ou nom de domaine> : permet de vérifier si la machine cible est bien accessible
par le réseau.
ifconfig : permet d’afficher des informations concernant les interfaces réseaux. On l’utilise
fréquemment pour trouver son IP.
.
IV.4.5. Capture d'image avec fswebcam de la Raspberry PI 2
La commande fswebcam est un moyen simple et rapide de capturer avec une webcam
des images uniques. Les paramètres de fswebcam sont très complets, ils permettent entre autre
de régler la capture à un intervalle de temps spécifié, de mettre un ou des bandeaux contenant
du texte, la surimpression d'image, etc...
La liste de configuration de fswebcam est longue, Il est possible de simplifier le processus en
faisant appelle à un script bash à chaque fois qu'il est nécessaire. L'installation est simple :
La commande contient des détails pour personnaliser les paramètres de capture avec une
webcam, par exemple :
-r : résolution de hauteur/largeur
-S : nombre d'image à écarter pour que la webcam puisse capturer une image stable et
bien éclairée
--flip : retournement d'image, par défaut horizontal
--jpeg : qualité de la compression jpeg
--shadow : ajoute une ombre portée au texte de bas de page
--title, --subtitle, --info : différentes zones du pied de page
--save : chemin et nom du fichier où seront sauvegardées les images
-q : laisse le processus en cours d'exécution en arrière-plan
-l : prend un instantané à chaque interval de temps (en secondes)
La commande étant assez longue on peut utiliser un script de configuration listant tous
les paramètres à appliquer lors de l'exécution du programme. Pour cela, il faut créer un fichier
de configuration dans le répertoire du user "pi" :
nano .fswebcam.conf
resolution 320x240
jpeg 95
delay 1
font sans:15
title "WEB domotique"
subtitle "… "
info " "
timestamp "%d-%m-%Y %H:%M:%S (%Z)"
save /home/pi/test.jpg
exec /home/pi/fswebcam.sh
loop 1
fswebcam -c .fswebcam.conf
pkill fswebcam
Page 76
Chapitre IV: Description des outils logiciels du système
Les images prises sont émises directement vers une page web. Cette dernière est actualisée
automatiquement lors de la capture des images par notre webcam, pour la visualisation des
images en streaming :
index.html
<!doctype html>
<html lang="fr">
<head>
<meta http-equiv="Refresh" content="1; url=index.html">
<title>Web domotique !</title>
<style>h1, p{ text-align: center}</style>
<meta charset="UTF-8">
</head>
<body>
<h1>Hello world !</h1>
<p>Cette page est actualisé toutes les <b>1</b> secondes.</p>
</body>
</html>
Page 77
Chapitre IV: Description des outils logiciels du système
Voici les droits au dossier d’apache qui vous permettent d’administrer facilement les
sites. Les commandes sont les suivantes :
Page 78
Chapitre IV: Description des outils logiciels du système
sudo rm /var/www/html/index.html
Puis on crée un fichier « index.php » dans ce répertoire, avec cette ligne de commande
À partir de là, le fonctionnement est le même que pour la vérification d’Apache. On tente
d’accéder à notre page, et on va avoir le résultat de cette image .
Page 79
Chapitre IV: Description des outils logiciels du système
Page 80
Chapitre IV: Description des outils logiciels du système
<?php
if(!isset($_GET['login']) && !isset($_GET['motdepasse']))
{
header('Location: index.php');
}
else
{
// On va vérifier les variables
if(!preg_match('/^[[:alnum:]]+$/', $_GET['login']) or
!preg_match('/^[[:alnum:]]+$/', $_GET['motdepasse']))
{
echo 'Vous devez entrer uniquement des lettres ou des
chiffres <br/>';
echo '<a href="index.php"
temp_href="index.php">Réessayer</a>';
exit();
}
else
{
// require('config.php'); // On réclame le fichier
$login = $_GET['login'];
$motdepasse = $_GET['motdepasse'];
$NU = "XXXXXXXX";
$PW = "YYYYYYYY";
if(($login == $NU) && ($motdepasse == $PW))
{
require('webCAM.php');
exit();
}
else{
require('index.php');
exit();
}
}
}
?>
Page 81
Chapitre IV: Description des outils logiciels du système
IV.5.2.1.Symbian OS :
Le Symbian OS est développé par la société éponyme qui est une propriété exclusive de
Nokia. Bien que cette plateforme soit créée par la participation de plusieurs fabricants tels que
Samsung ou Sony Ericsson, ce système est fortement connoté Nokia, ce qui est un frein à son
adoption par d’autres constructeurs. Il est récemment passé en open source. C’est un système
libre, open source se base sur un noyau Symbian (Voir figure suivante logo symbian ).
Page 82
Chapitre IV: Description des outils logiciels du système
IV.5.2.2.IOS
IOS (Internetwork Operating System), qui était nommé iPhone OS, se trouve non
seulement sur les différentes générations de iPhone mais également sur d’autres produits de
Apple iPad et iPod touch. Il est dérivé de Mac OS X dont il partage les fondations : kernel, les
services Unix et Cocoa. Pour Apple, le succès est considérable : début 2009, il n’y avait pas
moins de 5 millions de téléchargements par jour. Donc, il s’agit du concurrent numéro un
pour Android. ( Voir figure suivante logo IOS )
IV.5.2.3.BlackBerry OS
Le système d'exploitation BlackBerry(logo figure 4.23) est la plate-forme exclusive
mobile développée par RIM (Research In Motion ) exclusivement pour ses Smartphones
BlackBerry et les appareils mobiles. RIM utilise ce système d'exploitation pour soutenir des
fonctions spécialisées, notamment le trackball de la marque, molette, le trackpad et l'écran
tactile.
Page 83
Chapitre IV: Description des outils logiciels du système
IV.5.2.4.Windows Phone
Windows Mobile, est l’OS (système d'exploitation) mobile de Microsoft. C’est une
évolution de Windows Pocket PC, ancêtre de Windows CE. Cet OS a réussi au fil des années
à s’octroyer une part de marché honorable. Son succès est dû à son affiliation à la famille
d’OS Windows, ultra-dominante sur le bureau. L'autre avantage est la facilité de
développement apportée grâce à l’environnement cliquodrome de Visual Studio qui a su faire
venir au développement mobile les développeurs VB (Visual Basic).
Page 84
Chapitre IV: Description des outils logiciels du système
Page 85
Chapitre IV: Description des outils logiciels du système
IV.6. Conclusion
Dans ce chapitre, on a pu faire connaissance avec les différents langages de
programmation et logiciel, à commencer par le logiciel et le langage Arduino avec qui la
partie domotique du domicile a pu être mise en œuvre. Ensuite, on a pu se familiariser avec la
Raspberry PI 2 et son système d'exploitation qui est le Raspbian et ses commandes principales
ainsi que le langage python qui est le langage de programmation de la Raspberry PI 2.
De plus, on a installé les différents serveurs pour la mise en place du système. Pour finir une
application Android a été créée pour le contrôle entier du domicile via un Smartphone.
Page 86
Conclusion
générale
Conclusion Générale
A travers le travail présenté, on a pu mettre en œuvre les acquis relatifs aux systèmes
temps réels, la programmation orientée objet et la gestion des réseaux qui constituent les
principaux axes d’études de notre formation.
Passant par une conception électronique illustrée, par des modules, éléments,
composants électroniques très utilisés dans des projets technologiques destinés aux différents
domaines de l’industrie et du développement durable, ont été intégrés au système. De
nouvelles versions des langages orientés objets, comme le Python, l’environnement de
développement du système qui est le Raspbian wheezy, conçu pour le produit Raspberry PI,
les différents serveurs Web et la programmation Arduino ont permis la programmation et le
contrôle du projet développé .
Cette réalisation répond aux exigences d'une maison moderne et intelligente, elle se
caractérise par sa facilité d'utilisation et son aspect sécuritaire.
Cette conception est basée sur deux cartes de développement numériques destinées à
la programmation et aux tests, qui peuvent être remplacés par des éléments matériels plus
adaptés au monde extérieur. Comme perspective, une alimentation du domicile par panneaux
solaires est envisageable ainsi qu’un contrôle plus global et plus approfondie de la maison.
Enfin, espérant que ce travail servira comme documentation de référence pour les
promotions à venir.
Page 87
Annexe A : Détail sur la carte Arduino Méga
3V3 : une alimentation de 3.3V est disponible. Cette tension est fournie par un
régulateur de 3.3V intégré a la carte Arduino. Ceci est très intéressant pour les
circuits externes utilisant cette tension au lieu de 5V, avec une intensité
maximale allant jusqu'a 50mA.
Page 88
Annexe A : Détail sur la carte Arduino Méga
sont appliqués au port USB, le fusible de la carte coupe automatiquement la connexion et le
court-circuit ou la surcharge est stoppé immédiatement.
Généralement la plupart des ordinateurs ont leur propre protection interne. Cependant ,
le fusible de la carte sert comme second niveau de protection pour le port.
III. Gestion des mémoires dans la carte Arduino
L’ATMega 2560 a 256ko de mémoire FLASH pour stocker le programme dont 8ko
sont utilisé par le bootloader. Ce microcontrôleur la possède d'une part de 8ko de mémoire
SRAM appelé mémoire volatile, et d'autre part de 4ko de mémoire d’EEPROM connu sous le
nom de mémoire non volatile .Cette dernière est accessible en lecture grâce a la librairie
EEPROM.
Remarque: Le bootloader est un programme préprogrammé une fois pour toute dans
l'ATméga et qui permet la communication entre l'ATmega et le logiciel Arduino via le port
USB, notamment lors de chaque programmation de la carte.
III.4.6. Les entrées / sorties numériques
les 54 broches numériques de la carte Arduino Méga, fonctionnant en 5V, peuvent
être utilisées soit comme entrées, ou comme sorties numériques, en utilisant les instructions
pinMode(), digitalWrite(), et digitalRead() du langage Arduino. Ces broches fonctionnent en
5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d’intensité et dispose
d’une résistance interne « résistance de rappel » (pull-up) (déconnectée par défaut) de 20-50
kOhms. Cette résistance interne s’active sur une broche en entrée à l’aide de l’instruction
digitalWrite(broche, HIGH).
Il y a entre ces broches celles qui ont des fonctionnalités en plus :
Communication Série:
il y a 4 port séries pour la carte Arduino Méga qui est l'un de ces principaux avantages
* Port Série numéro 0: broche 0 (RX) et 1 (TX).
* Port Série numéro 1: broche 19 (RX) et 18 (TX).
* Port Série numéro 2: broche 17 (RX) and 16 (TX).
* Port Série numéro 3: broche 15 (RX) and 14 (TX).
La communication série utilise pour recevoir la broche RX et pour la broche TX
pour transmettre les données séries de niveau TTL. Les broches (RX) et (TX) sont
connectées aux broches correspondantes du circuit intégré ATmega8U2 programmé en
convertisseur USB/série de la carte, composant qui assure l'interface entre les niveaux TTL et
le port USB de l'ordinateur.
La communication série est appelée grâce a l'instruction Serial.print() du langage
Arduino.
Interruptions Externes: les Broches 2 (interrupt 0), 3 (interrupt 1), 18
(interrupt 5), 19 (interrupt 4), 20 (interrupt 3), et 21 (interrupt 2). Ces broches
Page 89
Annexe A : Détail sur la carte Arduino Méga
peuvent être configurées pour déclencher une interruption sur une valeur basse,
sur un front montant ou descendant, ou sur un changement de valeur. Voir
l'instruction attachInterrupt() pour plus de détails.
Impulsion PWM (largeur d'impulsion modulée): les Broches allant de 0 à
13 fournissent une impulsion PWM de 8-bits à l'aide de
l'instruction analogWrite().
SPI (Interface Série Périphérique): Broches 50 (MISO), 51 (MOSI), 52
(SCK), 53 (SS). Ces broches supportent la communication SPI (Interface Série
Périphérique) disponible avec la librairie pour communication SPI. Les
broches SPI sont également connectées sur le connecteur ICSP qui est
mécaniquement compatible avec les cartes Uno, Duemilanove et Diecimila.
Le port I2C: les Broches 20 (SDA) et 21 (SCL). Supportent les
communications de protocole I2C (Two Wire Interface - Interface "2 fils"),
disponible en utilisant la librairie Wire/I2C .
LED: Une LED est incluse dans la carte connectée à la broche 13. Lorsque la
broche est au niveau HAUT, la LED est allumée, lorsqu’elle est au niveau
BAS, elle est éteinte.
Remarque : il est a notées que les broches analogiques peuvent être utilisées en tant que
broches numériques.
AREF : Tension de référence pour les entrées analogiques (si différent du 5V),
utilisée avec l’instruction analogReference(). Elle est utilisée pour comparer la valeur
d’une tension d’entrée par rapport à la valeur d’une tension de référence choisie.
Page 90
Annexe A : Détail sur la carte Arduino Méga
VI. Dimension de la carte Arduino méga
Page 91
Annexe B : Programme Arduino
#include <LiquidCrystal.h>
// RS E D4 ==== D7
LiquidCrystal lcd(45,44, 43, 42, 41, 40);
//###########################################################
//###########################################################
#include <Servo.h>
Servo myservo;
#include <Keypad.h>
const byte ROWS = 4; //nombre de lignes
const byte COLS = 4; //nombre de colonnes
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {22, 23, 24, 25}; //entrées numériques où sont branchées les lignes
byte colPins[COLS] = {26, 27, 28, 29}; //entrées numériques où sont branchées les colonnes
Page 92
Annexe B : Programme Arduino
int Bipper=10;
int TrigG=8,EchoG=9,TrigD=2,EchoD=3;
int ALARM_ON=0;
int ValeurG=0,ValeurD=0;
//###########################################################
String chaine;
int LED_SALON = 34, LED_CHAMBRE = 35;
//###########################################################
//###########################################################
//###########################################################
void setup() {
lcd.begin(20, 4);
Serial.begin(9600);
pinMode(LED_SYS_A_ON,OUTPUT);pinMode(LED_SYS_A_OFF,OUTPUT);pinMode(L
ED_SYS_G,OUTPUT);pinMode(LED_SYS_D,OUTPUT);
pinMode(9,OUTPUT);
pinMode(TrigD, OUTPUT);
pinMode(EchoD, INPUT);
pinMode(TrigG, OUTPUT);
pinMode(EchoG, INPUT);
pinMode(LED_SALON,OUTPUT);
pinMode(LED_CHAMBRE,OUTPUT);
myservo.attach(5);
}
//###########################################################
Page 93
Annexe B : Programme Arduino
//###########################################################
void loop() {
if(ACTIVE_ALARME==0){
moteur(90);
digitalWrite(LED_SYS_A_ON,LOW);digitalWrite(LED_SYS_A_OFF,HIGH);
digitalWrite(LED_SYS_G,LOW);digitalWrite(LED_SYS_D,LOW);
alarmeOFF();
}
if(ACTIVE_ALARME==1){
moteur(90);
digitalWrite(LED_SYS_A_ON,HIGH);digitalWrite(LED_SYS_A_OFF,LOW);
alarmeON();
}
}
//###########################################################
//###########################################################
void alarmeOFF(){
debut:
ALARM_ON=0;
lcd.clear();
lcd.setCursor(0,0);lcd.print("####################");
if(ACTIVE_ALARME==1){
lcd.setCursor(0,1);lcd.print("# ALARME ON #");
}else{
lcd.setCursor(0,1);lcd.print("# ALARME OFF #");
}
lcd.setCursor(0,2);lcd.print("# Mot de passe: #");
lcd.setCursor(0,3);lcd.print("####################");
do{
Page 94
Annexe B : Programme Arduino
if (key == '*'){
cmpMP=0;
lcd.setCursor(0,2);lcd.print("# Mot de passe: #");
}
Page 95
Annexe B : Programme Arduino
cmpMP=0;
}else{
lcd.clear();
lcd.setCursor(0,0);lcd.print("####################");
lcd.setCursor(0,1);lcd.print("# MOT DE PASSE #");
lcd.setCursor(0,2);lcd.print("# INCORRECTE #");
lcd.setCursor(0,3);lcd.print("####################");
delay (1000);
bip(Bipper,1000,200);bip(Bipper,1000,200);bip(Bipper,1000,200);
cmpMP=0;
}
}
//
//PARTIE
DOMOTIQUE//##############################################################
##############################
DOMOTIQUE();
//
}while (ACTIVE_ALARME==0);
}
//###########################################################
//###########################################################
void alarmeON(){
debut:
lcd.clear();
lcd.setCursor(0,0);lcd.print("####################");
if(ACTIVE_ALARME==1){
Page 96
Annexe B : Programme Arduino
if (key == '*'){
cmpMP=0;
lcd.setCursor(0,2);lcd.print("# Mot de passe: #");
}
Page 97
Annexe B : Programme Arduino
lcd.clear();
lcd.setCursor(0,0);lcd.print("####################");
lcd.setCursor(0,1);lcd.print("# MOT de PASSE #");
lcd.setCursor(0,2);lcd.print("# CORRECTE #");
lcd.setCursor(0,3);lcd.print("####################");
delay(500);
bip(Bipper,880,100);bip(Bipper,880,100);
cmpMP=0;
}else{
lcd.clear();
lcd.setCursor(0,0);lcd.print("####################");
lcd.setCursor(0,1);lcd.print("# MOT DE PASSE #");
lcd.setCursor(0,2);lcd.print("# INCORRECTE #");
lcd.setCursor(0,3);lcd.print("####################");
delay(1000);
bip(Bipper,1000,200);bip(Bipper,1000,200);bip(Bipper,1000,200);
cmpMP=0;
goto debut;
}
}
//##############################
SYSTEM_CONTROLE();
//##############################
}while (ACTIVE_ALARME==1);
}
//###########################################################
Page 98
Annexe B : Programme Arduino
//###########################################################
void bip(int PIN,int FRQ,int TIME){
pinMode(PIN,OUTPUT);
tone(PIN,FRQ);
delay(TIME);
noTone(PIN);
delay(50);
}
//###########################################################
//###########################################################
int CapteurG(){
digitalWrite(TrigG,LOW);
delayMicroseconds(5);
digitalWrite(TrigG, HIGH);
delayMicroseconds(10);
return distance;
}
//###########################################################
//###########################################################
int CapteurD(){
digitalWrite(TrigD,LOW);
delayMicroseconds(5);
digitalWrite(TrigD, HIGH);
delayMicroseconds(10);
Page 99
Annexe B : Programme Arduino
return distance;
}
//###########################################################
//###########################################################
void SYSTEM_CONTROLE(){
if(ALARM_ON==0){
ValeurG = CapteurG();
ValeurD = CapteurD();
}
int DistanceOBSTACLE = 20;// 20cm
if(((ValeurD > 5)&&(ValeurD < DistanceOBSTACLE))||((ValeurG > 5)&&(ValeurG <
DistanceOBSTACLE))){
//if((ValeurD > 5)&&(ValeurD < DistanceOBSTACLE)){
if((ValeurD > 5)&&(ValeurD < DistanceOBSTACLE)){
moteur(45);
digitalWrite(LED_SYS_D,HIGH);
}
if((ValeurG > 5)&&(ValeurG < DistanceOBSTACLE)){
moteur(135);
digitalWrite(LED_SYS_G,HIGH);
}
ALARM_ON=1;
}
if(ALARM_ON==1){
bip(Bipper,1500,100);
Page 100
Annexe B : Programme Arduino
}
}
//###########################################################
//###########################################################
void moteur(int degre){
int frq= map(degre,0,180,500,2400);
myservo.writeMicroseconds(frq);
}
//######################################################
//######################################################
void DOMOTIQUE()
{
int N=0;
while(Serial.available())
{
delay(15);
char c = Serial.read();
chaine = chaine+c;
}
if (chaine.length() >0){
Serial.println(chaine);
if(chaine == "LED_SALON_ON") N = 1 ;
if(chaine == "LED_SALON_OFF") N = 2 ;
if(chaine == "LED_CHAMBRE_ON") N = 3 ;
if(chaine == "LED_CHAMBRE_OFF") N = 4 ;
Page 101
Annexe B : Programme Arduino
chaine = "" ;
}
switch(N)
{
case 1: SALON_ON(); break;
case 2: SALON_OFF(); break;
case 3: CHAMBRE_ON(); break;
case 4: CHAMBRE_OFF(); break;
}
}
//############################################
void SALON_ON()
{
digitalWrite(LED_SALON,HIGH);
}
void SALON_OFF()
{
digitalWrite(LED_SALON,LOW);
}
//############################################
void CHAMBRE_ON()
{
digitalWrite(LED_CHAMBRE,HIGH);
}
void CHAMBRE_OFF()
{
Page 102
Annexe B : Programme Arduino
digitalWrite(LED_CHAMBRE,LOW);
}
Page 103
Bibliographie
Bibliographie
[2] George Asch," Les capteurs en instrumentation industrielle" Edition Dunod, 2010.
[3] Cédric Locqueneux ,"Le guide de la maison et des objets connectés " Edition Eyrolles,
2016.
[6] <<Guide technique, technique de la vidéo sur IP>> page 21disponible sur le site :
www.axis.com
[7] Philipe Gasser, "MPEG-4", créative commons, cours, MSH, Paris nord, plateforme
Arts, Sciences et Technologies, 2005.
[8] Sylvain Caicoya , Jean-Georges Saury, "TCP/IP - Le guide complet", Edition Micro
Application, 2013
[9] Nico Van Haute, Julien Barascud et Jean-Roland Conca,<<Les protocoles RTP et
RTCP>>, document disponible sur : www.commentcamarche.net.
[10] <<Guide technique, technique de la vidéo sur IP>> disponible sur le site :
www.axis.com
[11] Eskimon & olyte, “Arduino pour bien commencer en électronique et en
programmation”, 2012openclassrooms.
[12] Eskimon & olyte ,"Arduino : Premiers pas en informatique embarquée", Le blog
d' Eskimon ,Edition 19 Juin 2014
[13] Matt Richardson "A la découverte de la Raspberry PI", édition Eyrolles, Serial
maker, 2014
Page 104
Bibliographie
Sites Web :
[1] www.arduino.cc
[2] www.abcelectronique.com
[4] www.fr.wikipedia.org
[5] www.fr.openclassrooms.com
[6] www.developpez.net
[7] www.sourceforge.net
[8] www.github.com
[9] www.microsoft.com/france/visual-studio.com
[10] www.fritzing.org
[11] www.mon-club-elec.fr
[12] www.raspbian-france.fr
[13] www.the-raspberry.com
[14] www.pihomeserver.fr
[15] www.framboise314.fr
[16] www.axis.com
[17] www.securité01.com
[18] www.rince.fr
[19] www.commentcamarche.net
[20] www.appinventor.mit.edu .
[21] www.insctructable.com
Page 105