Projet Memoire 2021 - 2022 - 102001
Projet Memoire 2021 - 2022 - 102001
Projet Memoire 2021 - 2022 - 102001
DEDICACES
REMERCIEMENTS
REMERCIEMENT
La réalisation de cet œuvre n’aurait pas été possible sans l’aide des précieuses
personnes qui nous ont soutenues de près ou de loin. Par la présente note, nous tenons à
exprimer nos sincères gratitudes à toutes ces personnes, il s’agit de :
Les membres du jury, pour le temps qu’ils ont bien voulu nous accorder malgré leurs
occupations.
AVANT PROPOS
AVANT PROPOS
L’entrée à cet établissement se fait pour les premières années (niveau baccalauréat) sur
concours, les titulaires de BTS et DUT ont directement accès en troisième année du premier
cycle sur concours également. Ceux titulaires d’une Licence y accèdent également sur
concours mais en première année master du second cycle. Enfin, les retours sur titre et
ingénieurs entrent dans cet établissement sur étude de dossier au niveau quatre. La formation
se fait en deux cycles, chacun sanctionné par un diplôme de professeur d’enseignement
technique tel qu’il suit : premier cycle DIPET I et second cycle DIPET II.
A cet effet nous avons opté pour le thème qui suit : ETUDE ET REALISATION D’UNE
HORLOGE ANALOGIQUE MULTIFONCTIONS. Cela s’introduit dans le
développement de nouveaux systèmes d’apprentissage.
ABSTRACT
ABSTRACT
The aim of this work is to study and realize a multifunction analog clock (a trunk and
a surveillance system). The design of this multifunction clock consists of setting up an analog
electronic device capable of displaying the time, viewing the images from the camera and
having access to the trunk. To do this, we have divided this work into three main parts. The
first part is the general study on clocks coupled with the advantages and limits of existing
analog clocks. Regarding the second part, it is essentially centered on the design and
dimensioning of the prototype. . We have examined the basic components of our module by
highlighting the characteristics, criteria for choosing them. The last part of this project is to
inform us about the simulation and the realization, the operating test of the device as well as
the results obtained and the estimated cost of the project. This part clarified exactly the price
of the various electronic components as well as the labor cost.
TABLE
TABLEDES
DESMATIERES
MATIERES
DEDICACES .......................................................................................................................... I
REMERCIEMENT ............................................................................................................... II
AVANT PROPOS ................................................................................................................ III
RESUME .............................................................................................................................. IV
ABSTRACT ........................................................................................................................... V
TABLE DES MATIERES .................................................................................................... VI
LISTE DES FIGURES......................................................................................................... IX
LISTE DES TABLEAUX ..................................................................................................... XI
SIGLES ET ABREVIATIONS ............................................................................................XII
INTRODUCTION GENERALE ........................................................................................... 1
CHAPITRE 1 : GENERALITES SUR LES SYSTEMES D’HORLOGES ......................... 2
I. INTRODUCTION ................................................................................................................2
LISTE
LISTE DESFIGURES
DES FIGURES
LISTEDES
DES TABLEAUX
TABLEAUX
LISTE
Tableau II. 1: Définition Des Fonctions De Conception (Cahier des charges) ................... 20
Tableau II. 2: comparatifs des cartes électroniques .............................................................. 29
SIGLES ET
SIGLES ET ABREVIATIONS
ABREVIATIONS
INTRODUCTION GENERALE
INTRODUCTION GENERALE
Les activités humaines sont effectuées en corrélation avec le temps ; car être dans le
temps, le mesurer, analyser nos actions d’hier et planifier celle de demain fait partir de notre
vie quotidienne. Cependant avec la diversité des tâches on a besoin d’assistance pour atteindre
les objectifs (timing, couts, performance ; etc.)
En effet plusieurs dispositifs ont été pensés et ont été mis sur pied par l’homme dans le but de
lire le temps. Ainsi l’évolution et le développement des nouvelles gammes de services
semblent être l’un des facteurs essentiels au développement du monde de l’Electronique et
d’Informatique. Ce nouveau concept assure l’automatisation de certains dispositifs
électroniques avec des contraintes temps réel.
La migration des entreprises et de certaines structures vers cette nouvelle technologie est
marquée principalement par la réduction d’encombrement et de coût de réalisation des circuits
électriques, l’utilisation des cartes électroniques programmables (cartes ESP 32, Arduino) et
la facilitation du dépannage et de la maintenance. L’électronique programmée est donc
utilisée dans plusieurs domaines parmi lesquels : l’instrumentation pour contrôler par exemple
; les dispositifs des mesures de temps (horloge)
Vu les différents avantages que l’électronique embarquée nous apporte dans notre vie
quotidienne ; nous allons étendre notre réflexion sur un projet d’étude. Ce projet porte sur le
thème : étude et réalisation d’une horloge analogique multifonctions. Ce prototype
électronique conçu présentera des nombreux avantages :
- afficher l’heure ;
- sécurisé les biens matériels ;
- système de surveillance.
Le système de surveillance (sécurité des personnes et des biens) ce fessant par une caméra et
dont les images permet de visionner les personnes ayant accès au coffre. Dans cette optique,
notre travail répondra aux prescriptions fixées dans le cahier des charges. Ainsi, pour mener à
bien notre étude, nous subdiviserons notre travail en trois chapitres :
Les généralités sur les horloges.
Le deuxième sera consacré sur la conception, dimensionnement du prototype et enfin la
troisième partie sera stimulation et réalisation.
CHAPITRE11::GENERALITES
CHAPITRE GENERALITESSUR
SURLES
LES SYSTEMES D’HORLOGES
SYSTEMES D’HORLOGES
I. INTRODUCTION
I.1.2 Historique
L’horloge est utilisée depuis l’aube de la civilisation, de sort que les anciens ce sont
d’abord servis des éléments naturels simples qui les entouraient à savoir l’eau, le sable, la
lumière du soleil ou de la lune pour indiquer le temps mais ces méthode ne donnait pas la
notion exacte du temps [1] et leur utilisation tout au long de l’année était impossible, ce qui a
conduit à l’utilisation de nouveaux concepts pour mesurer le temps.
Aussi appelé le gnomon, le mot vient du grec qui veut dire connaître. Connu dès
l’antiquité, il aurait été inventé, selon l’historien grec Hérodote, par les chaldéens. C’est un
bâton planté en terre verticalement ; la longueur de l’ombre permet de repérer l’heure au
soleil. Cet instrument est égyptien et aurait été créé en date de 1500 avant JC. Ce système est
connu dans toutes les civilisations, mais il est imprécis. C’est une surface plane dans laquelle
est plantée une tige appelée style. La direction de l’ombre indique l’heure au soleil. Le cadran
est divisé en douze heures du lever au coucher du soleil, mais comme la durée du jour varie
selon les saisons, la durée des heures varie également. Progressivement la graduation du
cadran se perfectionne, mais elle est toujours imparfaite en raison de l’orientation verticale du
style. Au XIV siècle, les Arabes, en inclinant la tige du cadran selon l’attitude du lieu, en font
un instrument fiable. . Le cadran solaire donne l’heure locale, quand le soleil n’est pas voilé.
Le mot vient de la grecque clepsydre signifiant voleur d’eau car elle servait à limiter le
temps de parole des avocats lors des procès .C’est un instrument qui mesure le temps par
l’écoulement d’une certaine quantité d’eau d’un récipient dans un autre. On pense qu’elle fut
inventée par les Egyptiens au XVIe siècle avant JC. Elle est peu fiable car la vitesse de
l’écoulement varie en fonction de la température et de la pression de l’eau, et est difficile à
graduer. Les Egyptiens pallient cet inconvénient en utilisant des récipients de forme évasée.
Mais c’est le physicien de la Grèce, Ctésiphon d’Alexandrie, qui améliore considérablement
l’horloge à eau par un système de flotteur qui régule le débit dans un récipient annexe. Des
perfectionnements complexes améliorent sa fiabilité, mais elle doit être réglée sur le cadran
solaire. Progressivement les deux techniques du cadran solaire et de la clepsydre sont
associées dans des horloges à eau astronomique mises au point dès l’Antiquité grecque.
Apparu 300 ans avant Jésus Christ, l'invention de l'horloge à eau peut être attribuée à
CTESIBIOS, un contemporain d'Archimède. Une horloge à eau est une amélioration de la
clepsydre. Elle consiste en un flotteur posé sur le réservoir contenant l'eau dont le niveau
descend ou monte régulièrement. Ce flotteur est surplombé d'un index qui va indiquer l'heure
sur un cylindre mobile. Sur le cylindre en question sont dessinées des courbes représentant les
heures en fonction des mois de l'année (Les jours et les nuits étant plus ou moins longs en
fonction des saisons.).
I.1.2.4 Le Sablier
Peu cher et silencieux, il doit être hermétique pour que le sable ne soit pas humide. Les
progrès de la verrerie ont rendu sa fabrication possible. Utilisé couramment au XIV e siècle, il
permet de mesurer le temps quand le ciel est couvert et que les cadrans solaires ne peuvent
plus servir. On l’utilise sur les bateaux où il sert à définir le service de bord de quatre heures,
le quart.
Figure I. 5 Le sablier
En Chine, le temps est aussi mesuré par la combustion lente d’un bâton d’encens qui brûle
un fil, ce fil est relié à une boule qui tombe dans un récipient métallique marquant ainsi une
certaine durée.
Les concepts précédents ont été utilisés pour calculer le temps jusqu’à l’apparition de
l’horloge mécanique au moyen d’un moteur capable de déplacer le mécanisme. Le
fonctionnement constant et continu de l’horloge est assuré par un régulateur qui représente la
vitesse à laquelle le temps passe [1].
Le temps est mesuré par le mouvement discontinu de roues dentées dont l’énergie est
fournie par la chute d’un poids. Le problème technique et théorique est de trouver comment
stabiliser la vitesse des rouages alors que la chute du poids l’accélère .Un mécanisme
régulateur est nécessaire, c’est l’échappement. Il consiste à bloquer le poids et donc la rotation
des roues pendant un temps court et à intervalles réguliers à l’aide d’un balancier ou d’un
pendule. On mesure donc un temps artificiel qui dépend de la correction des effets de la
pesanteur. C’est un temps qui n’est pas continu comme l’écoulement de l’eau ou le
mouvement apparent du soleil, c’est un temps divisible en unités successives.
En 1370 apparaît la véritable horloge mécanique dont une pièce appelée foliot permet de
réguler l’énergie fournie par un poids à une roue. Le mouvement est ensuite transmis à des
rouages qui entraînent les aiguilles. La régulation est imparfaite car la dérive peut atteindre
une heure par jour. Les premières horloges ne montrent pas l’heure. Reliées à une cloche,
elles sonnent l’heure et sont avant tout destinées aux moines dont les journées ont été
strictement découpées par la règle de saint Benoît en sept périodes de prières, du milieu de la
nuit où on sonne la première prière, les matines, jusqu'aux deux dernières, les vêpres et
complies, en fin de journée.
Des horlogers ont joué un rôle décisif dans la naissance de la grande industrie. Ainsi, vers
1770, Frédéric Japy, produit 100 000 montres par an dans son usine de Beaucourt, près de
Montbéliard, où travaillent 300 salariés issus des artisans et paysans locaux. Il est un des
L'horloge atomique à jet de césium a été créée dans les années 1950 par Jerrold Zacharies,
professeur au Massachussetts Institute du Technologie.
Génère un signal électrique de fréquence 10 MHz aussi exactement que possible et un
dispositif électronique multiplie la fréquence de base du signal issu de l'oscillateur à quartz
pour obtenir un signal dont la fréquence vaut 9.192.631.770 Hz (Étage multiplicateur de
fréquence). Ce signal très haut fréquence (on parle de signal hyper-fréquence ou micro-onde)
est injecté dans un guide d'onde dont la géométrie est telle qu'il entretient une résonance à
cette fréquence particulière (cavité de Ramsay) et en même temps un four envoie un jet
d'atomes de césium 133, qui, au départ, se trouvent dans deux états d'énergie différents
(symbolisés par état A et état B sur la figure ci-dessous).Un système de déflexion magnétique
dévie les atomes qui ne sont pas dans l'état A : seuls les atomes dans l'état d'énergie A
pénètrent dans la cavité de Ramsay (étage de sélection d'entrée): Si la fréquence injectée dans
la cavité a très exactement la valeur 9.192.631.770 Hz, un grand nombre d'atomes passe de
l'état A à l'état B (phase d'interrogation). Un second système de déflexion magnétique sépare
la direction des atomes dans l'état A de celle des atomes dans l'état B (étage de sélection de
sortie) ; Enfin, un détecteur, placé sur le trajet des atomes dans l'état B, compte le nombre
d'atomes reçus (étage de détection) et en fonction de la réponse du détecteur, un système
modifie la fréquence du quartz de telle sorte que le nombre d'atomes détectés dans l'état B soit
maximal (boucle d'asservissement). Cette horloge à une plus grande précision que les
horloges apparues auparavant, elle est la base de la seconde. L'horloge atomique n'est plus
définie à partir des mouvements astronomiques, mais à partir des fréquences de transition
atomiques : par définition, la fréquence de transition entre les niveaux hyperfins de l'état
fondamental de Césium 133 est 9 192 631 770 Hz [2].
Enfin au XIXe siècle, avec l’industrialisation et l’arrivée du chemin de fer, des gares sont
construites et pour informer les voyageurs des horloges y sont installées. Le calcul du temps
de travail devient important dans la production industrielle. Aujourd’hui, des satellites
permettent de régler automatiquement des horloges digitales et nos chronomètres sont précis
et performent (au risque d’imposer une vision plus fragmentée du temps). Ainsi nous voyons
comment au cours de l’histoire, les instruments de mesures du temps ont investi les lieux
publics symboliques des différentes sociétés. Cet historique sur les horloges est le relief de
l’évolution même de la société, de ses progrès et de ses besoins. Elle montre comment la
technique essaie d’y répondre tant sur le plan collectif qu’individuel.
Dans le cas d’une horloge, nous distinguons deux types d’affichage des systèmes horaires
: le système horaire numérique et le système horaire analogique.
C’est une technologie qui utilise l’affichage numérique ou alphanumérique, contrôlé par
des cartes électroniques programmables (cartes Arduino, ESP, etc.…). Cette technique est la
dernière dans la grande industrie horlogère, elle offre de nombreux avantages qui ne sont pas
offerts par les horloges analogiques, L’affichage d’une horloge numérique peut prendre
plusieurs formes comme : les afficheurs 7 segments, les afficheurs à cristaux liquides,
autrement appelés afficheurs LCD, les afficheurs matrice de LED etc. Ce système horaire a
pour particularité d’être plus récentes et plus résistantes donnant l’heure en une fraction de
seconde. La taille de l’écran n’affecte pas le cerveau (mémoire) et celle-ci n’effectue aucun
effort supplémentaire d’interprétation pour associer l’aiguille à une heure, il la lit simplement.
Elle possède une bonne visibilité dans la nuit. Cependant, le système numérique a pour
inconvénient de tenir à son look, ils sont traditionnellement moins élégant, dépendent de leur
source d’alimentation (pile, énergie électrique etc.) et de la longévité de la mémoire
programmée [3].
Le terme "analogique" fait référence aux montres qui possèdent un système d'indication
de temps analogique, c'est-à-dire que l'utilisateur connaît l'heure grâce au déplacement
d'aiguilles qui indiquent, en règle générale, les heures, les minutes ainsi que les secondes, sur
un cadran qui peut être divisé ou non. Ce type d'affichage peut s'accompagner d'un affichage
alphanumérique ou numérique qui, quant à lui, donne des indications de temps par le biais
d'un guichet à chiffres ou à lettres [4]. L’horloge analogique a pour avantage d’être élégante,
ayant des infinies possibilités offertes par le cadran aux joailliers (incrustations, gravures,
peintures etc.) et ces montres analogiques peuvent également utiliser un mouvement à quartz
ou mécanique.
L’inconvénient de ce système d’horloge est une lisibilité moindre, parfois même très faible
pour certains modèles conceptuels, l’impossibilité de les consulter dans le noir.
pied de ce projet avait un cout d’environ 195 000frs et les difficultés principales rencontrées
étaient la non disponibilité des composants sur le marché, le cout du matériel etc.
La communication (heure) ;
Maisons
…
Energie
Capteurs
I.8.2 Contexte
Dans le cadre de la formation à L’ENSET de DOUALA, les étudiants de 3ème Année que
nous sommes ; sont amenés à concevoir et à réaliser un projet de fin d’étude, capable de
résoudre les problèmes d’actualités ou alors d’apporter un plus à notre prestigieuse école.
C’est dans ce sens, que nous nous sommes penchés sur le thème de l`étude et réalisation
d’une l`horloge analogique multifonctions. Il sera question ici pour nous de redonner une
nouvelle forme aux horloges analogiques qui tendent à disparaitre en y ajoutant une plus-
value.
I.8.3. Motivation
Nous souhaitons apporter notre modeste contribution dans la réforme des horloges, et le
confort des personnalités possédant des bureaux.
I.8.4. Problématique
D’après nos recherches, nous avons pu observer que l’horloge analogique étudiée
auparavant était centré uniquement sur l’aspect affichage de l’heure, ou du moins deux
fonctions principales maximum, donc notre étude. Nous avons choisi d’associer à la
technologie analogique un système numérique permettant de mettre en valeur notre projet en
y associant un système de surveillance par caméra plus un coffre ouvrable par saisie du code
sur clavier et ouverture par empreinte digitale.
I.8.5. Objectifs
Face aux limites évoquées ci-dessus, l’objectif visé par le projet est la réalisation d`une
horloge multifonctions. Par ailleurs le dispositif doit intégrer une technologie de commande
électronique programmable, capable de développer les fonctions principales suivantes :
Visionner les personnes ayant accès au coffre;
Il est difficile de parler d’un projet sans avoir fait une analyse détaillée du travail à faire.
Par conséquent, il est nécessaire d’effectuer une première estimation générale pour pouvoir
cadrer le projet ; ce qui s’effectue comme suit :
I.8.7.1.2 Objectifs
Délais : 3 mois et plus
Difficulté principale : Avoir un projet réalisé conforme dans les délais et une marge
coût prévue et acceptable.
Nous effectuons dans cette partie la répartition du projet en différentes taches, ainsi que
les durées associées à chacune d’elle ; afin de mieux déterminer et respecter l’échéancier de
réalisation et livraison du projet. La répartition est faite selon la figure I.11ci-dessous:
Les matériels : ESP 32, câbles, caméra, bois, caisse métallique, etc.
Communication
Interne : formelle
Externe : informelle
CONCLUSION
Dans ce premier chapitre, nous avons présenté les notions différentes sur le
développement de temps ancien et actuel. Il en ressort que le système analogique de gestion
horaire sera associer à d’autres fonctionnalités le tout dans un battis en bois afin d’ajouté un
plus valu a ce dernier d’où le thème de notre travail étude et réalisation d’une horloge
multifonctions. Il en ressort que c’est un concept, qui consiste non seulement à décorer nos
bureaux mais aussi à conserver cette nostalgie de l’affichage analogique avec les aiguilles.
CHAPITRE
CHAPITRE II :II : ETUDE,
ETUDE, CONCEPTION
CONCEPTION ET ET DIMENTIONNEMENT
DIMENTIONNEMENT DU
PROTOTYPE DU PROTOTYPE
INTRODUCTION
La conception d’un système technique nécessite une réflexion et des outils d’aide à la
conception, c’est-à-dire l’ensemble intègre : la méthode, le matériel physique et logiciels.
C’est la raison pour laquelle ce chapitre intervient pour l’étude la conception et le
dimensionnement des différents composants qui devront constituer notre horloge analogique
multifonctions.
Produit
Horloge multifonctions
réel, protéger les biens et les personnes, prévenir des intrusions mal intentionnées, et même
véhiculer un message à tout usager du produit
Aussi appelé diagramme des inters acteurs. Ici nous définissons les éléments à prendre en
compte et les contraintes nécessaires de conception en essayant de se placer dans la situation
d’utilisation opérationnelles du produit. A l’aide du diagramme pieuvre nous identifions les
relations entre les éléments et les produits. Le diagramme de pieuvre est un outil d’analyse du
besoin représentant graphiquement les interactions d’un produit /service avec son
environnement ; analyser le tableau qui donne la fonction principale (FP) et les différentes
contraintes (C) imposées à l’objet étudié, lister les différents éléments présents dans
l’environnement de l’objet avec l’aide du tableau des contraintes, mettre l’objet technique
étudié au centre du diagramme dans un cercle et représenter les différents éléments présents
dans l’environnement de l’objet dans d’autres cercles situés tout autour de l’objet technique
étudié[5].
Lecture de
L’heur
e Utilisateur
Design
FT1
(beauté) FC2
FC : fonction contrainte
FT : fonction de transfert
Fonctions Description
Le module complet intégrera trois (03) blocs, pour l’exécution des fonctions, ainsi qu’il
suit :
Le block horloge : constitué d’un astable
Le block camera commandé par un microcontrôleur via la carte ESP
Le block coffre dont l’ouverture est commander par empreinte digital et code clavier
ESP 32 Visualisation
Photo
CAM
Signalisation
KEY PAD
BUZZER
GLEP
UCT
FINGER
ESP32
PRINT
REGULATOR
POWER SUPPLY+
(2V, 2A) GAHE
Dans le but de réaliser une structure devant remplir au mieux les critères de notre cahier de
charge, il est primordial de passé tout d’abord par une conception virtuelle de la structure
CAO (conception assistée par ordinateur). L'avantage d'un logiciel de CAO est qu'il permet
d'éviter dès les débuts les erreurs de conception grâce notamment aux fonctions paramétriques
et aux possibilités de simulations. ... Au final, un logiciel de CAO vous permet de travailler
mieux, plus vite tout en réduisant les coûts de conception [6]. Nous allons nous attarder ici
uniquement sur la conception du coffret (surface devant abritée l’ensemble des dispositifs) et
les autres parties de la structure seront illustrées au chapitre suivant.
II.3.1.2-Conception De la lunette
Résultat final
Elle évolue normalement comme des horloges analogiques que nous connaissons
(l’horloge à quartz). Quelle heure est-il ? Pour le savoir, il suffit de regarder votre montre. A
l'intérieur d'une montre à quartz, c'est un petit cristal de quartz qui divise le temps. Le quartz
est une substance minérale composée d'atomes de silice qui ne sont pas organisés n'importe
comment mais rangés de manière à former des figures géométriques particulières comme des
prismes hexagonaux. Un minéral dont les constituants sont ainsi ordonnés est un cristal. Du
fait de cet agencement particulier, certains cristaux de quartz possèdent une propriété
intéressante : la piézo-électricité. La piézo-électricité a été mise en évidence en 1880 par les
frères Curie. Quand on les soumet à des déformations, à des pressions, les cristaux qui
possèdent cette propriété voient apparaître à leur surface un courant électrique. Inversement,
l'application d'une tension électrique sur ces mêmes surfaces donne lieu à une modification
des dimensions des cristaux. En bref, les cristaux de quartz permettent de transformer un
signal électrique en déformation mécanique et réciproquement. Quel est l'intérêt d'un tel
phénomène ? Si on lui applique un courant électrique, le quartz se met à vibrer de façon
régulière ; D'où l'idée de l'utiliser en horlogerie.
Alors que se passe-t-il à l'intérieur d'une montre à quartz ? Une pile miniature, dont la
durée de vie atteint plusieurs années, fournit de l'énergie électrique. Celle-ci "excite" le quartz
et lui permet de vibrer avec une très grande régularité, plus de 32 000 fois par seconde. Un
circuit intégré alimenté par la pile entretient ensuite les vibrations du quartz. Ce circuit envoie
donc des impulsions électriques régulières. Voilà comment s'opère la division du temps.
S'il s'agit d'une montre à affichage digital, ces impulsions électriques. S'il s'agit d'une montre
à affichage digital, ces impulsions électriques sont envoyées vers l'écran en rendant opaques
les cristaux liquides qu'elles traversent. S'il s'agit d'une montre à affichage analogique
(aiguilles), les vibrations du quartz entretiennent le fonctionnement d'un moteur pas à pas qui
permet de faire tourner les aiguilles [7]. Quel que soit l'affichage choisi, le système est fiable.
On estime qu'une montre à quartz ne perd qu'une seconde tous les 6 ans !
Figure II. 6: Evolution de l’intensité du courant débité par l’alimentation De l’horloge [7].
La pile est remplacée par une source de tension associée à la résistance : On observe sur
l’oscillographe des impulsions de tension aux bornes de la résistance, image de l’intensité qui
circule dans le réveil. La durée qui sépare deux impulsions est d’une seconde.
Principe De Fonctionnement
L'authentification par les empreintes digitales repose sur la concordance entre le
fichier d'enregistrement, ou « signature », obtenu lors de l'enrôlement et le fichier obtenu
lors de l'authentification. Ces deux fonctions se décomposent chacune en plusieurs étapes:
Capture de l'image de l'empreinte. Les données d'un doigt sont en principe suffisantes
à l'enrôlement, mais la plupart des systèmes enregistrent au moins deux doigts (un par
main par exemple) pour parer l'indisponibilité résultant de petites blessures.
Fonction 2 : Authentification :
Ces modules contiennent une mémoire FLASH pour stocker les empreintes digitales et
fonctionne avec n’importe quel microcontrôleur ou système avec liaison série TTL. Ces
modules peuvent être ajoutés aux systèmes de sécurité, aux serrures de porte, aux systèmes de
pointage du temps, et bien plus encore.
Caractéristiques :
Tension d’alimentation: DC 3.6 ~ 6.0V / 3.3V
Alimentation Courant d’alimentation: Courant: <120mA
Courant de crête: <140mA
Temps d’image d’empreinte digitale: <1,0 secondes
Taille de la fenêtre: 14 x 18 mm
Mode de correspondance: mode de correspondance (1: 1)
Mode de recherche (1: N)
Fichier de signature : 256 octets
Fichiers de modèle : 512 octets
Capacité de stockage: 200
Niveau de sécurité : Cinq (de bas à élever : 1, 2, 3, 4,5)
Taux de fausse acceptation (FAR) : <0,001 % (niveau de sécurité 3)
Taux de faux rejets (FRR) : <1,0 % (niveau de sécurité 3)
Temps de recherche: <1,0 secondes (1:500, la moyenne)
Interface PC: UART (niveau logique TTL) ou USB2.0 / USB1.1
Débit en bauds de communication (UART): (9600 w N) bps où N = 1 ~ 12 (valeur par
défaut N = 6, soit 57600bps)
Pour faciliter la tâche des programmeurs, des ingénieurs ont inventé le code
hexadécimal (base 16). Il utilise alors les 10 chiffres plus 6 symboles supplémentaires : A
(qui représente 10), B(11), C(12), D(13), E(14), F(15).
Le code étant numérique, donc il nous suffit de choisir un clavier douze touches dont il
y’a deux boutons spéciaux, un capable de changer facilement le mot de passe et l’autre efface
l’écran en cas d’erreur de frappe.
On introduisant le code d’accès qui est par défaut 12345, suivant « * », l’activation du relais.
Si on introduit un code erroné plus de trois fois, le PIC génère un signal pour l’activation de
l’alarme. Par sécurité, le système est totalement bloqué. Il est débloqué en introduisant le bon
code.
Si nous voudrions changer le code d’accès, nous allons nous connecter sur la carte
ARDINO Nano qui se trouve dans le boitier situé au-dessus de la porte d’entrée,
l’administrateur entre dans le programme et change le code qui est au préalable déjà dans le
serveur du département puis on le télé-verse dans le système.
Cette fonction est assurée par une caméra connectée sur le microcontrôleur ESP
32cam.
L’ESP32 est une carte électronique permettant de réaliser des projets assez facilement.
Elle possède en effet une connectivité assez complète. L’ESP32 est assez simple à prendre en
main car elle est cousine de la carte Arduino. Il est donc possible de l’utiliser comme la carte
microcontrôleur italienne, en utilisant le même langage de programmation, les mêmes
modules complémentaires et surtout le même logiciel de compilation (Arduino IDE). Pas de
changement fondamental d’interface pour l’utilisateur, ce qui la rend d’autant plus simple à
utiliser. Par ailleurs, on peut relever que sa taille miniature lui est un avantage considérable :
elle mesure en effet moins de 3 cm par 5 cm, malgré les technologies qu’elle embarque!
L’ESP32 est sans doute la carte microcontrôleur qui possède le meilleur compromis taille /
connectivité / entrées sorties. Cela en fait un outil redoutable pour la miniaturisation des
projets connectés Pour finir elle est aussi tout à fait adaptée à la réalisation de prototypes et
non uniquement à la réalisation de projets «finis et définitifs». Elle est une référence dans
l’univers maker pour ces nombreuses raisons, il est donc très facile de trouver de l’aide sur
Internet pour utiliser cette carte
Alimentation :
Port USB
5V régulé sur broche indiquée 5V
6 à 20V max, recommandé 7 à 12V, sur la broche Vin
Microprocesseur :ESP-WROOM-32 (Tensilica Xtensa lx6)
Mémoire flash : 4000 KB
Mémoire SRAM : 2 ko
Mémoire EEPROM : 448 ko
20broches d’entrées et sorties
Boîtier DIL30
Dimensions : 45*18*18mm
Poids : 10g
Wifi : yes
Bluetooth : yes
La mémoire Flash : c’est la mémoire qui est destinée à recevoir le programme à exécuter.
Elle est effaçable : la mémoire flash que nous avons utilisée est de 4000 KB de programme.
La RAM (Radom Access Memory) encore appelée mémoire morte, c’est elle qui contient les
variables de notre programme. Elle est dite volatile parce qu’elle perd toutes ses données
lorsqu’on coupe l’alimentation du microcontrôleur sa mémoire est de 520kb
EEPROM (Electrical Erasable Programmable Red Only Memory) : c’est le disque dur ou
encore la mémoire morte du microcontrôleur. C’est elle qui sauve les informations en
l’absence du courant électrique. Dans Notre ATMEGA328, l’EEPROM à une capacité de
448kb [12].
OLED est un acronyme pour Organic Light Emitting Diodes et est un type de technologie
utilisé pour les écrans. Les écrans OLED ont une couche de matière organique (carbone et
autres substances) située entre deux électrodes qui, lorsqu’elles sont alimentées en électricité,
émettent de la lumière. Les pixels sur les écrans OLED sont éclairés indépendamment, car
chacun d’eux peut recevoir du courant électrique indépendamment. Cela signifie que les
écrans OLED ne nécessitent pas de rétro éclairage supplémentaire comme le font les écrans
LCD classiques. Une conséquence importante est que les écrans OLED sont plus minces et
plus légers que les écrans LCD. Un autre avantage de l’OLED est la qualité de l’image. Les
écrans OLED peuvent éclairer chacun de leurs pixels indépendamment et éteindre chacun
indépendamment. Lorsqu’aucune électricité ne traverse un pixel, il est éteint, ce qui signifie
qu’il est très proche du noir absolu. Cela donne aux écrans OLED un avantage sur les écrans
LCD traditionnels qui ont toujours un rétro éclairag et ne parviennent donc pas à atteindre la
couleur « noir absolu » dans les images qu’ils affichent [15]. Un autre aspect essentiel des
écrans OLED est qu’ils offrent un rapport de contraste élevé. Nous savons déjà que l’OLED
peut afficher un noir absolu, mais il peut également colorier chaque pixel en utilisant des
niveaux de luminosité exacts, car tout ce qu’il a à faire est d’envoyer plus d’électricité à ce
pixel spécifique. Les avantages des meilleurs écrans OLED sont les suivants :
Une consommation d’énergie moindre : en effet, les diodes LED consomment très
peu d’énergie ce qui permet à la fois d’alléger la facture mais aussi de limiter la
chauffe du téléviseur afin d’augmenter sa durée de vie
Rédigé et présenté par NGOUAKANG SOCTOUO Sandrine, NGUEKENG Ulrich
Pavel, NJOUONHOU TCHOUANTIEU Ephraim .J page 32
Etude Et Réalisation D’une Horloge Analogique Multifonctions
Une qualité d’image haut de gamme : présent sur les meilleurs écrans du marché,
l’OLED retransmet une image inégalée surtout au niveau de la perception des couleurs
qui sont perçues comme éclatantes.
La réactivité : les écrans OLED sont beaucoup plus réactifs et permettent d’avoir des
fréquences de balayage plus grandes et donc plus réalistes.
Un écran OLED peut souvent retransmettre au minimum du 60Hz jusqu’à 144Hz, ce
qui est très agréable pour les gamers et leur console de jeu [15].
Tout projet qui nécessite tant de convivialité ou de contrôle pour l’utilisateur doit
comporter un afficheur. En effet, celui-ci permet de manière très rapide de révéler n’importe
quelle information qui pourrait être utile au programmeur ou à l’usager.
Cas de la résistance R1
Vcc-R1I1-VF=0
Connaissant le module de l’Arduino nano est de Vcc=5V et celui du courant I1=20mA
=220 ohms
Un Buzzer est un élément électronique qui produit un son quand on lui applique une
tension. Certains nécessitent une tension continue, d'autres nécessitent une tension alternative.
C’est un élément électromécanique ou électronique qui produit un son quand on lui applique
une tension. Certains nécessitent une tension continue (Buzzer électromécanique) et d’autres
nécessitent une tension alternative (transducteur piézo-électrique)
Caractéristiques
Voltage : 3,5 -5V
Courant < 25mA
taille : 7 mm
Brochage : VCC du buzzer →VCC d’Arduino
GND du buzzer→GND d’Arduino
I /0→ une pine PWM d’Arduino
Blynk est une plateforme IdO (Internet des objets) cloud compatible avec tous les
appareils qui permet aux utilisateurs de se connecter à plus de 400 modèles de matériel grâce
au cloud Blynk sécurisé en open source via WiFi, 2G-4G, LTE ou Ethernet. La plateforme en
open source peut être hébergée sur site sur des serveurs locaux, dans des environnements
cloud tels qu'AWS ou hébergée par Blynk.
Les utilisateurs peuvent créer des applications IdO natives pour iOS et Android grâce à une
sélection de widgets préconçus pour suivre les données de capteur, contrôler les appareils
électroniques, recevoir des notifications, etc. Les modules d'application préconçus permettent
aux utilisateurs de prototyper, tester et déployer rapidement leurs applications, sans avoir
besoin d'équipes d'ingénieurs ou de concepteurs. Parmi les fonctionnalités de l'application
figurent : visualisation des données, contrôle des équipements à distance, gestion des
appareils, contrôle des notifications et des règles, etc.
Grâce à la solution en marque blanche de Blynk, les utilisateurs peuvent personnaliser leurs
applications IdO avec des logos, polices, thèmes et icônes personnalisés à l'image de
l'entreprise, puis les publier dans des boutiques en leur nom. L'allocation de services
informatiques est incluse, ce qui permet aux clients de créer des comptes et de connecter des
appareils à des réseaux Wi-Fi ou des réseaux mobiles en quelques étapes. Les applications
peuvent être connectées à n'importe quel nombre, type et combinaison de produits
manufacturés. Les utilisateurs sont en mesure de créer des tableaux de bord personnalisés
pour chaque client et les mettre à jour à tout moment [18].
Toute au long de notre travail nous avons utilisé divers logiciels parmi lesquels nous
pouvons citer
Microsoft Office
MS Office Word : Nous avons utilisé ce logiciel pour le traitement de texte
MS Office Power Point : Nous avons utilisé ce logiciel pour la présentation du projet.
Proteus : logiciel permettant d’éditer des schémas électriques ;
Solid Works
IDE Arduino
Easy EDA
CONCLUSION
CHAPITRE
CHAPITREIII
III: :SIMULATION
SIMULATIONET
ETREALISATION
REALISATIONDU
DU PROTOTYPE
PROTOTYPE
INTRODUCTION
Le chapitre précèdent nous a permis de définir le besoin matériel faire des choix
technologique nécessaire pour le projet. C’est la raison pour laquelle dans ce chapitre, nous
faisons les simulations et réalisations choix technologiques et la présentation des composants,
en accords avec les paramètres définis au préalable. En effet, la sécurité du coffre est bâtie
autour d’une unité centrale de traitement (ESP 32), pour l’exécution locale des fonctions du
système. Ainsi l’illustration de ce chapitre se fera en trois grandes étapes, stimulation du
fonctionnement (dans le logiciel mentionner plus haut) en premier lieu, la réalisation du
prototype en deuxième lieu, ensuite test et résultat
Les premiers tests de simulation du montage de notre horloge se sont faits sur Proteus
ISIS, le logiciel fameux des simulations des montages électroniques. En plus de sa capacité de
simuler des montagnes à base de microcontrôleurs, il permet d’avantage de donner une idée
sur la réalisation matérielle et la conception des circuits imprimés. Présentation de la
plateforme ISIS de proteus, nous permettant ainsi de réaliser le montage et de le simuler.
Notre bâti est constitué des différents éléments en bois en bois profilés de manière
aérodynamique. Pour ce faire, nous avons optés pour le nzigana qui est une essence de bois
qui donne les différentes formes. Pour reproduire notre profile sur un bois, on a scié afin
d’obtenir des morceaux de 1,3 m de longueur ,15 cm de largeur et de 3 cm d’épaisseur.
Ensuite nous avons meulés le bois et poncé à la main afin d’obtenir aux finales des
morceaux qui constituera notre bâtis. Nous avons enfin vernis notre bâti afin d’avoir une
bonne étanchéité et une meilleur longévité.
Prototype de carte de circuit imprime à double face qui nous a permis de maintenir et
de relier électriquement ensemble des composants électroniques de notre prototype entre eux
dans le but de réaliser notre circuit électroniques complexe
d’image
Régulateur 7805 01 2000 2000
Etain 01 2000 2000
Divers 15000
TOTAL 178100
CONCLUSION
Au terme de la réalisation de notre horloge, force est de constaté que nous avons pu
atteindre nos objectifs, pour ce qui est du cout et de la fiabilité de notre système nous offrons
à l’utilisateur un module permettant de lui renseigner sur l’heure et de sécuriser ses biens.
CONCLUSION GENERALE
CONCLUSION GENERALE
Parvenu au terme de notre projet qui portait sur l’étude et réalisation d’une horloge
analogique multifonctions, nous pouvons dire que les critères de notre cahier de charges ont
été respectés. Pour y parvenir nous avons à l’aide de l’analyse fonctionnelle conçu la structure
de notre système ; nous avons opté à la souplesse de la programmation du système, ceci en
utilisant une (01) unité de traitement principale gérant tout le système via une carte
programmable. Pour répondre aux critères du cout réduit et d’esthétique nous avons opté pour
l’utilisation de la carte ESP 32, et nous avons fabriqué un battis en bois nzigana. Nous ne
saurons dire que ce travail a été aisé en raison des multiples difficultés rencontrés. Nous
pouvons citer ici la non disponibilité des composants sur le marché, le cout du matériel,
l’implémentation des fonctions sous plateforme ISIS/ARES, la rédaction des programmes sur
le logiciel IDE Arduino et l’association de l’enveloppe physique et les différents montages
électriques. Bien que ayant réalisé ce prototype il n’en demeure pas moins vrai que ce
prototype présente quelques insuffisances et les perspectives telles que: la difficulté de
communication entre le microcontrôleur et les autres périphériques programmable dispose
dans le boitier. Toutefois, ce travail de groupe a été rendu efficace à cause de ses membres et
superviseur qui ont été actifs et on collaborés entre eux afin toute sorte de problème soit au
niveau théorique que pratique.
REFERENCES BIBIOGRAPHIQUES
REFERENCES BIBIOGRAPHIQUES
[2] Mansouri Kamel « Réalisation d’une horloge à plusieurs alarmes » Mémoire de fin
d’étude en vue de l’obtention du diplime d’ingénieur en informatique. JUIN 2011. Pages 9-
16
[3] Alex Begini « Projet Clear ‘Horloge composite numérique polyvalente asservissement en
fréquence multisources’ 2018 ; Université de Bourgogne France. Pages 15-16
[5] Wangre mathias « Conception et réalisation d’un système biométrique d’identification par
empreinte digitale » mémoire de fin de cycle licence technologique la 2014. Pages 9-11
[8] Justin Darnet « Tutoriel ESP 32 présentation et installation Juin 2020. Pages 3-9
[9] S. Chaptal, "La biométrie s'infiltre dans le quotidien", 01 Informatique, n° 1641, pages 34-
39, July 6, 2001.
[20] John nussy, «Arduino pour les nuls, grand format,3éd,» édi,2020,254 pages
ANNEXES
ANNEXES
PHIQUES
Code le programmation pour ouverture du coffre
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Fingerprint.h>
#include <HardwareSerial.h>
#include "Adafruit_Keypad.h"
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET 4 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64,
0x3C for 128x32
#define mySerial Serial2
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire,
OLED_RESET);
// define your pins here
// can ignore ones that don't apply
#define R1 27//12
#define R2 0//4
#define R3 4//0
#define R4 12//2
#define C1 19
#define C2 18
#define C3 5
Rédigé et présenté par NGOUAKANG SOCTOUO Sandrine, NGUEKENG Ulrich
Pavel, NJOUONHOU TCHOUANTIEU Ephraim .J
Page 48
Etude Et Réalisation D’une Horloge Analogique Multifonctions
#define C4 14
#define gache 35
#define buzzer 32
#define commands 25
const byte ROWS = 4; // rows
const byte COLS = 4; // columns
// define the symbols on the buttons of the keypads
char keys[ROWS][COLS] = {{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}};
byte rowPins[ROWS] = {R1, R2, R3, R4}; // connect to the row pinouts of the keypad
byte colPins[COLS] = {C1, C2, C3,C4}; // connect to the column pinouts of the
keypad
int FingerID = 0; // The Fingerprint ID from the scanner
byte counts = 0;
bool estMotPasseTrouver = false, flag_change = false;
String motPasseConcatener = "";
const String motPasse = "1990";
long time_change = 0, time_fault = 0;
byte count = 0 ;
//*************************Biometric
Icons*********************************
#define FinPr_start_width 64
#define FinPr_start_height 64
const uint8_t PROGMEM FinPr_start_bits[] = {
0x00,0x00,0x00,0x1f,0xe0,0x00,0x00,0x00
,0x00,0x00,0x01,0xff,0xfe,0x00,0x00,0x00
,0x00,0x00,0x03,0xff,0xff,0x80,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x0f,0xe0,0x00,0x00
,0x00,0x00,0x1f,0x00,0x01,0xf8,0x00,0x00
,0x00,0x00,0x3c,0x00,0x00,0x7c,0x00,0x00
,0x00,0x00,0x78,0x00,0x00,0x3e,0x00,0x00
,0x00,0x00,0xf0,0x3f,0xf8,0x0f,0x00,0x00
,0x00,0x01,0xe0,0xff,0xfe,0x07,0x80,0x00
,0x00,0x03,0xc3,0xff,0xff,0x03,0x80,0x00
,0x00,0x03,0x87,0xc0,0x07,0xc3,0xc0,0x00
,0x00,0x07,0x0f,0x00,0x03,0xe1,0xc0,0x00
,0x00,0x0f,0x0e,0x00,0x00,0xe0,0xe0,0x00
,0x00,0x0e,0x1c,0x00,0x00,0xf0,0xe0,0x00
,0x00,0x0c,0x3c,0x1f,0xe0,0x70,0xe0,0x00
,0x00,0x00,0x38,0x3f,0xf0,0x38,0x70,0x00
,0x00,0x00,0x78,0x78,0xf8,0x38,0x70,0x00
,0x00,0x00,0x70,0x70,0x3c,0x18,0x70,0x00
,0x00,0x00,0xe0,0xe0,0x1e,0x1c,0x70,0x00
,0x00,0x03,0xe1,0xe0,0x0e,0x1c,0x70,0x00
,0x00,0x0f,0xc1,0xc3,0x0e,0x1c,0x70,0x00
,0x00,0x3f,0x03,0xc3,0x8e,0x1c,0x70,0x00
,0x00,0x3e,0x03,0x87,0x0e,0x1c,0x70,0x00
,0x00,0x30,0x07,0x07,0x0e,0x18,0xe0,0x00
,0x00,0x00,0x0e,0x0e,0x0e,0x38,0xe0,0x00
,0x00,0x00,0x3e,0x1e,0x1e,0x38,0xe0,0x00
,0x00,0x00,0xf8,0x1c,0x1c,0x38,0xe0,0x00
,0x00,0x03,0xf0,0x38,0x3c,0x38,0xe0,0x00
,0x00,0x3f,0xc0,0xf8,0x78,0x38,0xe0,0x00
,0x00,0x7f,0x01,0xf0,0x70,0x38,0xf0,0x00
,0x00,0x78,0x03,0xe0,0xe0,0x38,0x70,0x00
,0x00,0x00,0x0f,0x81,0xe0,0x38,0x7c,0x00
,0x00,0x00,0x3f,0x03,0xc0,0x38,0x3e,0x00
,0x00,0x00,0xfc,0x0f,0x80,0x38,0x1e,0x00
,0x00,0x07,0xf0,0x1f,0x1c,0x1c,0x04,0x00
,0x00,0x3f,0xc0,0x3e,0x3f,0x1e,0x00,0x00
,0x00,0x7f,0x00,0xf8,0x7f,0x0f,0x00,0x00
,0x00,0x38,0x01,0xf0,0xf7,0x07,0xc0,0x00
,0x00,0x00,0x07,0xe1,0xe3,0x83,0xf8,0x00
,0x00,0x00,0x3f,0x87,0xc3,0xc0,0xfc,0x00
,0x00,0x01,0xfe,0x0f,0x81,0xe0,0x3c,0x00
,0x00,0x0f,0xf8,0x1f,0x00,0xf0,0x00,0x00
,0x00,0x1f,0xc0,0x7c,0x00,0x7c,0x00,0x00
,0x00,0x1e,0x01,0xf8,0x00,0x3f,0x00,0x00
,0x00,0x00,0x07,0xe0,0x78,0x0f,0xc0,0x00
,0x00,0x00,0x3f,0x81,0xfe,0x07,0xf0,0x00
,0x00,0x01,0xfe,0x07,0xff,0x01,0xf0,0x00
,0x00,0x07,0xf8,0x0f,0x87,0x80,0x30,0x00
,0x00,0x07,0xc0,0x3f,0x03,0xe0,0x00,0x00
,0x00,0x06,0x00,0xfc,0x01,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x7e,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x3f,0x80,0x00
,0x00,0x00,0x7f,0x00,0xf8,0x0f,0x80,0x00
,0x00,0x00,0xfc,0x03,0xfe,0x01,0x80,0x00
,0x00,0x00,0xf0,0x1f,0xff,0x80,0x00,0x00
,0x00,0x00,0x00,0x7f,0x07,0xe0,0x00,0x00
,0x00,0x00,0x00,0xfc,0x03,0xf8,0x00,0x00
,0x00,0x00,0x03,0xf0,0x00,0x78,0x00,0x00
,0x00,0x00,0x0f,0xc0,0x00,0x18,0x00,0x00
,0x00,0x00,0x0f,0x01,0xf8,0x00,0x00,0x00
,0x00,0x00,0x00,0x07,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1f,0xfe,0x00,0x00,0x00
,0x00,0x00,0x00,0x1e,0x0e,0x00,0x00,0x00
,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00
};
//--------------------------------------
#define FinPr_valid_width 64
#define FinPr_valid_height 64
const uint8_t PROGMEM FinPr_valid_bits[] = {
0x00,0x00,0x03,0xfe,0x00,0x00,0x00,0x00
,0x00,0x00,0x1f,0xff,0xe0,0x00,0x00,0x00
,0x00,0x00,0x7f,0xff,0xf8,0x00,0x00,0x00
,0x00,0x00,0xfc,0x00,0xfe,0x00,0x00,0x00
,0x00,0x03,0xe0,0x00,0x1f,0x00,0x00,0x00
,0x00,0x07,0xc0,0x00,0x07,0x80,0x00,0x00
,0x00,0x0f,0x80,0x00,0x03,0xe0,0x00,0x00
,0x00,0x0e,0x03,0xff,0x01,0xe0,0x00,0x00
,0x00,0x1c,0x1f,0xff,0xe0,0xf0,0x00,0x00
,0x00,0x3c,0x3f,0xff,0xf0,0x78,0x00,0x00
,0x00,0x78,0x7c,0x00,0xf8,0x3c,0x00,0x00
,0x00,0x70,0xf0,0x00,0x3c,0x1c,0x00,0x00
,0x00,0xe1,0xe0,0x00,0x1e,0x1c,0x00,0x00
,0x00,0xe1,0xc0,0x00,0x0f,0x0e,0x00,0x00
,0x00,0xc3,0x81,0xfc,0x07,0x0e,0x00,0x00
,0x00,0x03,0x83,0xff,0x07,0x8e,0x00,0x00
,0x00,0x07,0x07,0x8f,0x83,0x87,0x00,0x00
,0x00,0x0f,0x0f,0x03,0xc3,0x87,0x00,0x00
,0x00,0x1e,0x0e,0x01,0xc3,0x87,0x00,0x00
,0x00,0x3c,0x1c,0x00,0xe1,0x87,0x00,0x00
,0x00,0xf8,0x1c,0x30,0xe1,0x87,0x00,0x00
,0x07,0xf0,0x38,0x70,0xe1,0x86,0x00,0x00
,0x07,0xc0,0x78,0x70,0xe3,0x8e,0x00,0x00
,0x02,0x00,0xf0,0xf0,0xe3,0x8e,0x00,0x00
,0x00,0x01,0xe0,0xe0,0xe3,0x8e,0x00,0x00
,0x00,0x03,0xc1,0xe1,0xc3,0x8e,0x00,0x00
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x0c,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xfc,0x00
,0x00,0x00,0x7c,0x3e,0x3f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x80
,0x00,0xff,0x83,0xe0,0xff,0xff,0xff,0x80
,0x01,0xfc,0x07,0xc1,0xff,0xff,0xe3,0xc0
,0x01,0xe0,0x1f,0x01,0xff,0xff,0xc3,0xc0
,0x00,0x00,0xfe,0x01,0xff,0xff,0x87,0xe0
,0x00,0x03,0xf8,0x13,0xff,0xff,0x0f,0xe0
,0x00,0x1f,0xe0,0x73,0xff,0xfe,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xff,0xfc,0x1f,0xe0
,0x00,0xfc,0x03,0xe3,0xef,0xf8,0x3f,0xe0
,0x00,0x60,0x0f,0xc3,0xc7,0xf0,0x7f,0xe0
,0x00,0x00,0x3f,0x03,0xc3,0xe0,0xff,0xe0
,0x00,0x00,0xfc,0x03,0xc1,0xc1,0xff,0xe0
,0x00,0x07,0xf0,0x13,0xe0,0x83,0xff,0xe0
,0x00,0x0f,0xc0,0x7b,0xf8,0x07,0xff,0xe0
,0x00,0x0f,0x01,0xf9,0xfc,0x0f,0xff,0xc0
,0x00,0x00,0x07,0xf1,0xfe,0x1f,0xff,0xc0
,0x00,0x00,0x1f,0xc0,0xff,0x3f,0xff,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
//--------------------------------------
#define FinPr_invalid_width 64
#define FinPr_invalid_height 64
,0x00,0x0f,0x83,0xc3,0xc3,0x8e,0x00,0x00
,0x00,0x7f,0x07,0x83,0x83,0x0e,0x00,0x00
,0x07,0xfc,0x0f,0x07,0x83,0x0e,0x00,0x00
,0x07,0xf0,0x1e,0x0f,0x03,0x0e,0x00,0x00
,0x07,0x80,0x7c,0x1e,0x03,0x07,0x00,0x00
,0x00,0x00,0xf8,0x3c,0x03,0x87,0x80,0x00
,0x00,0x03,0xf0,0x78,0x03,0x83,0xc0,0x00
,0x00,0x1f,0xc0,0xf0,0x02,0x00,0x00,0x00
,0x00,0xff,0x01,0xe1,0xc0,0x00,0x00,0x00
,0x07,0xfc,0x03,0xc3,0xe1,0xff,0xc0,0x00
,0x07,0xe0,0x0f,0x87,0xc7,0xff,0xf0,0x00
,0x07,0x00,0x3f,0x0f,0x0f,0xff,0xf8,0x00
,0x00,0x00,0x7c,0x3e,0x1f,0xff,0xfe,0x00
,0x00,0x03,0xf8,0x7c,0x3f,0xff,0xff,0x00
,0x00,0x1f,0xe0,0xf0,0x7f,0xff,0xff,0x00
,0x00,0xff,0x83,0xe0,0xfe,0xff,0xbf,0x80
,0x01,0xfc,0x07,0xc0,0xfc,0x7f,0x1f,0xc0
,0x01,0xe0,0x1f,0x01,0xf8,0x3e,0x0f,0xc0
,0x00,0x00,0xfe,0x01,0xf8,0x1c,0x07,0xe0
,0x00,0x03,0xf8,0x13,0xf8,0x00,0x0f,0xe0
,0x00,0x1f,0xe0,0x73,0xfc,0x00,0x1f,0xe0
,0x00,0x7f,0x81,0xf3,0xfe,0x00,0x3f,0xe0
,0x00,0xfc,0x03,0xe3,0xff,0x00,0x7f,0xe0
,0x00,0x60,0x0f,0xc3,0xff,0x80,0xff,0xe0
,0x00,0x00,0x3f,0x03,0xff,0x00,0x7f,0xe0
,0x00,0x00,0xfc,0x03,0xfe,0x00,0x3f,0xe0
,0x00,0x07,0xf0,0x13,0xfc,0x00,0x1f,0xe0
,0x00,0x0f,0xc0,0x79,0xf8,0x08,0x0f,0xe0
,0x00,0x0f,0x01,0xf9,0xf8,0x1c,0x0f,0xc0
,0x00,0x00,0x07,0xf1,0xfc,0x3e,0x1f,0xc0
,0x00,0x00,0x1f,0xc0,0xfe,0x7f,0x3f,0x80
,0x00,0x00,0x7e,0x00,0xff,0xff,0xff,0x80
,0x00,0x00,0xfc,0x00,0x7f,0xff,0xff,0x00
,0x00,0x00,0xf0,0x1f,0x3f,0xff,0xfe,0x00
,0x00,0x00,0x00,0x7f,0x1f,0xff,0xfc,0x00
,0x00,0x00,0x01,0xff,0x8f,0xff,0xf8,0x00
,0x00,0x00,0x03,0xe0,0xe3,0xff,0xe0,0x00
,0x00,0x00,0x01,0x80,0x00,0x7f,0x00,0x00
};
//---------------------------------------------------------------
#define FinPr_failed_width 64
#define FinPr_failed_height 64
const uint8_t PROGMEM FinPr_failed_bits[] = {
0x00,0x00,0x3f,0xe0,0x00,0x00,0x00,0x00
,0x00,0x01,0xff,0xfe,0x00,0x00,0x00,0x00
,0x00,0x0f,0xc0,0x1f,0x80,0x00,0x00,0x00
,0x00,0x1e,0x00,0x03,0xc0,0x00,0x00,0x00
,0x00,0x78,0x00,0x00,0xf0,0x00,0x00,0x00
,0x00,0xe0,0x00,0x00,0x38,0x00,0x00,0x00
,0x01,0xc0,0x00,0x00,0x1c,0x00,0x00,0x00
,0x03,0x80,0x00,0x00,0x0e,0x00,0x00,0x00
,0x07,0x00,0x7f,0xe0,0x07,0x00,0x00,0x00
,0x06,0x01,0xff,0xf8,0x03,0x00,0x00,0x00
,0x0c,0x03,0xc0,0x3c,0x03,0x80,0x00,0x00
,0x1c,0x0f,0x00,0x0e,0x01,0x80,0x00,0x00
,0x18,0x0c,0x00,0x03,0x00,0xc0,0x00,0x00
,0x18,0x18,0x00,0x01,0x80,0xc0,0x00,0x00
,0x30,0x38,0x00,0x01,0xc0,0xe0,0x00,0x00
,0x30,0x30,0x0f,0x00,0xc0,0x60,0x00,0x00
,0x30,0x30,0x3f,0xc0,0xe0,0x60,0x00,0x00
,0x70,0x60,0x78,0xe0,0x60,0x60,0x00,0x00
,0x60,0x60,0x60,0x60,0x60,0x70,0x00,0x00
,0x60,0x60,0x60,0x60,0x60,0x30,0x00,0x00
,0x60,0x60,0x60,0x60,0x30,0x30,0x00,0x00
,0x60,0x60,0x60,0x30,0x30,0x20,0x00,0x00
,0x60,0x60,0x60,0x30,0x30,0x01,0xe0,0x00
,0x60,0x60,0x60,0x30,0x30,0x0f,0xfc,0x00
,0x60,0x60,0x60,0x30,0x30,0x3f,0xff,0x00
,0x60,0x60,0x60,0x30,0x18,0x78,0x03,0x80
,0x60,0x60,0x60,0x30,0x1c,0x60,0x01,0x80
,0x60,0x60,0x30,0x38,0x0c,0xc0,0x00,0xc0
,0x00,0x60,0x30,0x18,0x00,0xc0,0x00,0xc0
,0x00,0x60,0x30,0x18,0x00,0xc0,0x00,0xc0
,0x00,0xe0,0x30,0x0c,0x01,0xc0,0x00,0xe0
,0x00,0xc0,0x18,0x0e,0x01,0xc0,0x00,0xe0
,0x60,0xc0,0x18,0x07,0x01,0xc0,0x00,0xe0
,0x01,0xc0,0x1c,0x03,0x81,0xc0,0x00,0xe0
,0x01,0x80,0x0c,0x01,0xc1,0xc0,0x00,0xe0
,0x03,0x80,0x0e,0x00,0xf1,0xc0,0x00,0xe0
,0x0f,0x00,0x06,0x00,0x01,0xc0,0x00,0xe0
,0x3e,0x01,0x03,0x00,0x01,0xc0,0x00,0xe0
,0x30,0x03,0x83,0x80,0x1f,0xff,0xff,0xfe
,0x00,0x03,0x81,0xc0,0x3f,0xff,0xff,0xff
,0x00,0x07,0xc0,0xe0,0x30,0x00,0x00,0x03
,0x00,0x0e,0xc0,0x78,0x30,0x00,0x00,0x03
,0x00,0x3c,0x60,0x1e,0x30,0x00,0x00,0x03
,0x00,0x78,0x70,0x0f,0x30,0x00,0x00,0x03
,0x03,0xe0,0x38,0x03,0x30,0x00,0x00,0x03
,0x07,0x80,0x1c,0x00,0x30,0x00,0x00,0x03
,0xc0,0x00,0x0f,0x00,0x30,0x00,0x00,0x03
,0xc0,0x00,0x03,0x80,0x30,0x01,0xe0,0x03
,0x00,0x18,0x01,0xe0,0x30,0x03,0xf0,0x03
,0x00,0x18,0x00,0x7c,0x30,0x07,0x38,0x03
,0x00,0x0c,0x00,0x1f,0x30,0x06,0x18,0x03
,0x18,0x0e,0x00,0x07,0x30,0x06,0x18,0x03
,0x0c,0x07,0x80,0x00,0x30,0x07,0x38,0x03
,0x0e,0x03,0xc0,0x00,0x30,0x03,0x30,0x03
,0x07,0x00,0xf0,0x00,0x30,0x03,0x30,0x03
,0x03,0x00,0x7e,0x00,0x30,0x03,0x30,0x03
,0x01,0x80,0x1f,0xc0,0x30,0x03,0x30,0x03
,0x01,0xc0,0x03,0xe1,0x30,0x07,0xf8,0x03
,0x00,0xf0,0x00,0x01,0x30,0x03,0xf0,0x03
,0x00,0x38,0x00,0x00,0x30,0x00,0x00,0x03
,0x00,0x1e,0x00,0x00,0x30,0x00,0x00,0x03
,0x00,0x07,0xc0,0x00,0x30,0x00,0x00,0x03
,0x00,0x01,0xff,0x80,0x3f,0xff,0xff,0xff
,0x00,0x00,0x3f,0x80,0x1f,0xff,0xff,0xfe
};
void setup() {
Serial.begin(9600);
// SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
pinMode(gache, OUTPUT);pinMode(buzzer, OUTPUT);pinMode(commands,
OUTPUT);pinMode(26, OUTPUT);
digitalWrite(gache, LOW);digitalWrite(buzzer, LOW);digitalWrite(commands,
HIGH);digitalWrite(26, LOW);
//-----------initiate OLED display-------------
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed")); // Address 0x3D for 128x64
for(;;){digitalWrite(buzzer, HIGH);delay(300);
digitalWrite(buzzer, LOW);
delay(400);} // Don't proceed, loop forever
}
//---------------------------------------------
else {display.clearDisplay();digitalWrite(buzzer, HIGH);
delay(1000);digitalWrite(buzzer, LOW);digitalWrite(9, LOW);}
if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
display.clearDisplay();
display.clearDisplay();display.setTextSize(2);display.setTextColor(WHITE);display.setCurso
r(0, 0);display.println(" you're");
display.setCursor(0, 24);display.println(" welcome");display.display();delay(300);
customKeypad.begin();
finger.getTemplateCount();
time_change = millis();
}
void loop() {
// put your main code here, to run repeatedly:
FingerID = getFingerprintID(); // Get the Fingerprint ID from the Scanner
if(FingerID > 0)DisplayFingerprintID();
else if(FingerID == -1)DisplayFingerprintID();
else if(FingerID == -3)DisplayFingerprintID();
customKeypad.tick();
if(customKeypad.available()){
keypadEvent e = customKeypad.read();
char number = (char)e.bit.KEY;
if(e.bit.EVENT == KEY_JUST_PRESSED) Serial.println((char)e.bit.KEY);
else if(e.bit.EVENT == KEY_JUST_RELEASED) Serial.println("released");
if (number == '#') {
if (motPasseConcatener == motPasse) {
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(0, 16);
display.setCursor(3, 0);
display.println("Mot");
display.setCursor(1, 16);
display.println("de passe");display.setCursor(2, 32);
display.println("efface");
display.display();delay(1000);
display.clearDisplay();
motPasseConcatener = "";} }
else if (!estMotPasseTrouver) {
if (number == '*') { verifierMotPasse();}
else {
motPasseConcatener = motPasseConcatener + String (number);
display.println("Bonjour");
display.setCursor(2, 16);
display.println("ENSET");
display.setCursor(1, 32);
display.println("DOUALA");display.display();
//estMotPasseTrouver = true;
digitalWrite(gache, HIGH);delay(1000);digitalWrite(gache, LOW);delay(2500);
motPasseConcatener = "";time_change = millis();count =0;}
else {count +=1;
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(3, 0);
display.println("Mot");
display.setCursor(1, 16);
display.println("de passe");
display.setCursor(0, 32);
display.println(motPasseConcatener);display.display();
digitalWrite(gache, LOW);delay(1000);
//passwordEnter = false;
motPasseConcatener = ""; time_change = millis();}
}
//************Display the fingerprint ID state on the OLED*************
void DisplayFingerprintID(){
//Fingerprint has been detected
if (FingerID > 0){
display.clearDisplay();
display.drawBitmap( 34, 0, FinPr_valid_bits, FinPr_valid_width,
FinPr_valid_height, WHITE);
Rédigé et présenté par NGOUAKANG SOCTOUO Sandrine, NGUEKENG Ulrich
Pavel, NJOUONHOU TCHOUANTIEU Ephraim .J
Page 64
Etude Et Réalisation D’une Horloge Analogique Multifonctions
display.display();delay(1000);
display.clearDisplay();
display.setTextColor(WHITE);
display.setCursor(1, 0);
display.println("Bonjour");
display.setCursor(2, 16);
display.println("ENSET");
display.setCursor(1, 32);
display.println("DOUALA");display.display();
//estMotPasseTrouver = true;
digitalWrite(gache, HIGH);digitalWrite(gache,
HIGH);delay(1000);digitalWrite(gache, LOW);delay(2500);
//SendFingerprintID( FingerID ); // Send the Fingerprint ID to the website.
}
//---------------------------------------------
//No finger detected
else if (FingerID == 0){
//display.clearDisplay();
//display.drawBitmap( 32, 0, FinPr_start_bits, FinPr_start_width,
FinPr_start_height, WHITE);
digitalWrite(gache, LOW);
//display.display();
}
//---------------------------------------------
//Didn't find a match
else if (FingerID == -1){
display.clearDisplay();
//Serial.println("Imaging error");
return -2;
default:
//Serial.println("Unknown error");
return -2;
}
// OK success!
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK:
//Serial.println("Image converted");
break;
case FINGERPRINT_IMAGEMESS:
//Serial.println("Image too messy");
return -1;
case FINGERPRINT_PACKETRECIEVEERR:
//Serial.println("Communication error");
return -2;
case FINGERPRINT_FEATUREFAIL:
//Serial.println("Could not find fingerprint features");
return -2;
case FINGERPRINT_INVALIDIMAGE:
//Serial.println("Could not find fingerprint features");
return -2;
default:
//Serial.println("Unknown error");
return -2;
}
// OK converted!
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
//Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) {
//Serial.println("Communication error");
return -2;
} else if (p == FINGERPRINT_NOTFOUND) {
//Serial.println("Did not find a match");
return -1;
} else {
//Serial.println("Unknown error");
return -2;
}
// found a match!
//Serial.print("Found ID #"); Serial.print(finger.fingerID);
//Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
void change(bool change_val){
if(change_val){
if (motPasseConcatener.length() == 0) {
display.clearDisplay();
display.setTextSize(2); // taille du texte
display.setTextColor(WHITE);
Serial.setDebugOutput(true);
Serial.println();
camera_config_t config;
config.ledc_channel = LEDC_CHANNEL_0;
config.ledc_timer = LEDC_TIMER_0;
config.pin_d0 = Y2_GPIO_NUM;
config.pin_d1 = Y3_GPIO_NUM;
config.pin_d2 = Y4_GPIO_NUM;
config.pin_d3 = Y5_GPIO_NUM;
config.pin_d4 = Y6_GPIO_NUM;
config.pin_d5 = Y7_GPIO_NUM;
config.pin_d6 = Y8_GPIO_NUM;
config.pin_d7 = Y9_GPIO_NUM;
config.pin_xclk = XCLK_GPIO_NUM;
config.pin_pclk = PCLK_GPIO_NUM;
config.pin_vsync = VSYNC_GPIO_NUM;
config.pin_href = HREF_GPIO_NUM;
config.pin_sscb_sda = SIOD_GPIO_NUM;
config.pin_sscb_scl = SIOC_GPIO_NUM;
config.pin_pwdn = PWDN_GPIO_NUM;
config.pin_reset = RESET_GPIO_NUM;
config.xclk_freq_hz = 20000000;
config.pixel_format = PIXFORMAT_JPEG;
// if PSRAM IC present, init with UXGA resolution and higher JPEG quality
// for larger pre-allocated frame buffer.
if(psramFound()){
config.frame_size = FRAMESIZE_UXGA;
config.jpeg_quality = 10;
config.fb_count = 2;
} else {
config.frame_size = FRAMESIZE_SVGA;
config.jpeg_quality = 12;
config.fb_count = 1;
}
// camera init
esp_err_t err = esp_camera_init(&config);
if (err != ESP_OK) {
Serial.printf("Camera init failed with error 0x%x", err);
return;
}
sensor_t * s = esp_camera_sensor_get();
// initial sensors are flipped vertically and colors are a bit saturated
if (s->id.PID == OV3660_PID) {
s->set_vflip(s, 1); // flip it back
s->set_brightness(s, 1); // up the brightness just a bit
s->set_saturation(s, -2); // lower the saturation
}
// drop down frame size for higher initial frame rate
s->set_framesize(s, FRAMESIZE_QVGA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
startCameraServer();
Serial.print("Camera Ready! Use 'http://");
Serial.print(WiFi.localIP());
local_IP = WiFi.localIP().toString();
Serial.println("' to connect");
Blynk.begin(auth, ssid, password);
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();
if(digitalRead(PIRS) == LOW){
Serial.println("Send Notification");
Blynk.notify("Intruder Detected...");
Serial.println("Capture Photo");
takePhoto();
delay(3000);
}
if(digitalRead(PHOTOS) == HIGH){
Serial.println("Capture Photo");
takePhoto();
} }