Académique Documents
Professionnel Documents
Culture Documents
Le Creusot
Baptiste
Le groupe Alstom a été créé en 1928. C’est le résultat de la fusion entre la SACM (Société
Alsacienne de Constructions Mécaniques) spécialiste dans la production de locomotives et de
Thomson-Houston, société franco-américaine, spécialiste des équipements de tractions
électriques et construction électro mécanique. Le nom à la création de l’entreprise est donc
ALSTHOM contraction d’Alsace-Thomson.
Puis en 1989 se crée une alliance entre ALCATEL et GEC (General Electric Compagny).
C’est en 1998 que les deux compagnies vendent la majorité du capital Alsthom en bourse, de
part cet évènement est né ALSTOM.
Dans le début des années 2000, ALSTOM possède des parts de marché dans l’énergie, le
transport, et les chantiers navals. Mais après la crise économique de 2003, l’entreprise décide
de se départir de ses chantiers navals en 2006, et de son secteur énergie en 2014 au profit du
géant américain General Electric.
ALSTOM conçoit et propose des systèmes, équipements et services pour le secteur ferroviaire.
• 1990 : le TGV Atlantique bat le record de vitesse sur rail : 515,3 km/h. Il a permis de faire
connaître le TGV au monde entier. Il apparaît alors comme étant le train de l'avenir.
• 2007 : nouveau record du monde : 574,8 km/h avec la nouvelle automotrice AGV.
• métros, tramways
Implanté depuis 1836, le site du Creusot participe activement à la vie locale. Il est l’un des plus
gros employeurs de la région. Le site a développé des partenariats avec l’université de
Bourgogne, en particulier avec l’IUT du Creusot et le pôle laser Bourgogne. Il est par ailleurs
membre du pôle nucléaire de Bourgogne et mène des recherches dans les domaines de la
métallurgie, de la mécanique ou encore du soudage.
Le site est dédié aux bogies, aux amortisseurs et aux freins. Ces équipes d’experts en
ingénierie, R&D, production et essais, assurent la conception puis la fabrication à
l’international de l’ensemble des matériels ferroviaires d’ALSTOM. Le site du Creusot produit
ces derniers temps, près de 45 bogies par semaine.
Le bogie est l’interface qui permet de lier la caisse au rail (figure 5). La puissance, la vitesse, la
sécurité et le confort d'un train sont déterminés en grande partie par la qualité des bogies.
Supporter : C’est le rôle du châssis, il doit être conçu de façon qu’il supporte tous les organes
du bogie et la caisse. Il garantit également une sécurité et un confort maximal aux voyageurs.
Guider : Assurer une stabilité sur rail et une sécurité contre le déraillement (roues, essieux.).
Entraîner : Transmettre une puissance issue du moteur au rail, ceci entre autre par
l’intermédiaire d’un réducteur et de roues.
Le site du Creusot est le centre d’excellence mondiale de la fabrication de bogies. Ils sont
produits à partir de plaques de métal brutes qui sont découpées, mise en forme puis soudées
entre elles pour former le châssis du bogie. Après l’étape de mécano soudure, le châssis reçoit
des traitements de surface puis passe à l’assemblage. C’est à cette étape de la production que
sont montées les suspensions primaires et secondaires, les boîtes d’essieux, le système de
frein, les moteurs… Chaque processus nécessite des contrôles réguliers pour s’assurer de la
qualité attendue.
Pour pouvoir commercialiser des bogies, il est nécessaire de contrôler les différentes parties
qui composent les bogies avant et pendant sa mise en circulation, en sachant qu’ils doivent
répondre aux exigences techniques du client et aux normes de sécurité, c’est le rôle du centre
d’essais. De plus, c’est l’essai de qualification en aval qui donne de la valeur au travail de
développement en amont.
On y distingue deux catégories d’essais : les essais à poste fixe et les essais en lignes.
Les essais à poste fixes sont réalisés au centre d’essais du Creusot. Une grande partie des
pièces qui constituent le bogie sont testées ici (cf. tableau 1)
De plus, le centre s’agrandit actuellement afin de pouvoir intégrer les équipements d’essais
pour les structures (châssis de bogies). Ceci s’inscrit dans la volonté de renforcer le centre
d’excellence des bogies ALSTOM au Creusot, de la conception à la fabrication en passant par
les essais de validation.
Ce centre d’essais sera accrédité ISO 17025 « Essais et validation des structure Ferroviaire ».
Cette accréditation nécessite des exigences concernant la traçabilité des moyens d’essais.
Mon stage traitera donc de la partie traçabilité des capteurs et matériel d’essais
Le but du stage est donc de trouver un moyen d’obtenir un suivi de chaque capteurs dans les
armoires afin de pouvoir être informé d’où ils se situe en temps réel, et si il est utilisé.
Cependant tout le matériel du centre d’essais ne sera pas soumis à ce traçage. En effet, une
étude au préalable a été effectuer dans le but de comprendre le travail du technicien au
centre d’essais ainsi que du matériel utilisé. De ce fait, les capteurs nécessitant un étalonnage
régulier (une vérification d’un milieu extérieur pour s’assurer que le capteur délivre une
information cohérente et juste) seront les plus importants à tracer. En effet, selon les normes
imposées, un capteur doit être réétalonné toutes les années d’utilisation. Cette étalonnage a
un coup pour l’entreprise. Il y a donc un enjeu financier bien plus important qu’un enjeu
pratique.
Ce prototype devra communiquer avec un ordinateur, pour pouvoir lui envoyer les
informations quant au changement de place des objets de la boite.
Sur la partie ouverte j’ai rajouté du plexiglass afin de pouvoir observer au travers, même
lorsque celle-ci est fermée. J’ai également séparé la boite en deux étages, en rajoutant un
plateau au milieu de la hauteur de la boite. La boite maintenant créée, pourra être modifiée à
notre guise.
Pour mieux comprendre le fonctionnement logique des étapes à suivre, j’ai dressé un
organigramme répertoriant ces étapes :
Ouverture porte
Fermeture porte
Dans un premier temps, j’ai analysé les besoins autour de l’ouverture sécurisée de la porte de
l’armoire.
Pour rentrer dans le site d’Alstom le Creusot, l’employé dispose d’une carte magnétique qu’il
doit passer devant une badgeuse afin de s’identifier.
Elle est également utilisée pour l’accès à la deuxième partie du centre d’essais (porte
verrouillée électroniquement).
J’ai donc envisagé d’utiliser ces badges et cette technologie pour obtenir, en conséquences, le
nom de l’individu qui ouvrira la porte de l’armoire.
3.3 Arduino
Arduino est une plateforme Open Source (accès libre à l’intérieur du programme et
documentation complète de tous les composants)
Elle permet donc d’écrire des programmes qui peuvent être implantés dans des cartes
électroniques
Arduino propose également des cartes électroniques programmables. Il existe différent types
de carte qui répondent chacune à différentes contraintes. Ces cartes sont très abordables
(~25 € pour la carte « basic » appelée UNO sur le site officiel Arduino mais dont le prix, peut
être nettement diminué sur d’autre site comme Amazon).
Il existe plusieurs types de cartes pour différentes utilités : nous utiliserons ici pour l’ouverture
de la porte une Arduino UNO. (Nous ne recherchons pas de la puissance importante ce qui
justifie le non choix de la gamme d’Arduino supérieur : la MEGA et nous n’utiliserons pas la
plus petite ici (NANO) pour garder de la clarté dans nos câblages).
Le langage utilisé ici est le C++. Arduino de base possède certaine librairie pour faciliter la
programmation. Cependant nous utiliserons d’autres librairies qui devront être installées afin
de permettre à la carte de comprendre notre programme.
Dans un premier temps, le but était de récupérer l’identifiant d’un badge Alstom quelconque.
Il me fallait donc utiliser du matériel pour lire un badge RFID.
Il est alimenté en 3,3V (câble rouge sur 3,3V et câble noir sur le Gnd de la UNO)
Le câble Orange (sur le RC522 est appelé MISO pour Master Input Serial Output) est relié sur
l’entrée/sortie (que j’abrégerai dorénavant en E/S) digitale 12.
Le câble Vert (sur le RC522 est appelé SCK pour Serial Clock) est relié sur l’E/S digitale 13.
Le pin de sélection de l’esclave est le câble Violet (SDA), c’est lui qu’il faut paramétrer dans le
programme pour que l’Arduino sélectionne ce lecteur RFID et pas un autre (en admettant que
d’autres lecteurs soient également branchés sur les E/S 11,12,13). Ces 4 câblages
représentent le protocole de communication appelé SPI.
Enfin pour le pin RST, il n’est pas forcément utile de le câbler, cependant il est également à
paramétrer dans le programme Arduino, donc si l’on ne le câble pas, il faut néanmoins lui
définir une E/S digitale non câblée (qui peut être commune à d’autres modules RFID dans le
programme).
Cette adresse est écrite sur 5 octets : il existe donc 2565 combinaisons d’adresses différentes.
La méthode que j’ai utilisée consiste à multiplier par 1000 l’octet de rang n et d’ajouter l’octet
de rang n+1 à chaque itérations.
𝐼𝐷 = 𝐼𝐷 × 1000 + 𝑈𝐼𝐷[𝑖]
Cependant, nous allons faire face à un problème lié à l’informatique. En effet, la taille d’une
variable de type nombre n’est pas infinie : le nombre le plus grand que l’on peut utiliser est
defini avec la variable long qui le précede. Un nombre de type long peut prendre une valeur
comprise entre -2,147,483,648 et 2,147,483,647 or ici l’ID de travail est bien supérieur à cette
limite.
J’ai donc choisi de décomposer en 2 variables pour conserver une plage d’ID importante.
De ce fait, on peut maintenant assimiler deux nombres à un individu et, avec des
conditions, si ces nombres appartiennent à la base de données (liste des ID des personnes
autorisées) alors on autorise l’accès.
Je me suis donc appuyé sur ce qui existait déjà dans l’entreprise ; une serrure à électroaimant.
Au vu des dimensions un peu petites de la boite, j’ai préféré utiliser seulement un
électroaimant. Il est défini par des caractéristiques sur sa consommation et sa force. J’ai choisi
un électroaimant de 12V 1A et de 60 Kg d’attraction.
Or, la carte ne permet pas de délivrer un courant aussi important (40 mA pour les E/S et 200
mA pour le VCC) et également de le commander. Nous devrons alors utiliser un relais et une
alimentation externe pour contourner ce problème.
Le but du relais est de commander un interrupteur (où il y a 12 V 1A) grâce à une entrée de
5V en amont.
Le relais alimentera donc l’électroaimant lorsqu’il est en position de repos (position 1) et une
bande de LED lorsqu’il bascule en seconde position. (La lumière intérieure de la boite ne
s’allume que lorsque le badge est validé et les portes sont ouvertes.)
Cette methodes n’ai pas très coûteuse et facilement instalable (seulement 4 câbles).
La détection est efficaces pour des diodes qui émettent dans un cône relativement faible.
L’un des principal défauts de cette méthode , c’est qu’elle ne permet pas de différencier deux
objets si ils sont intervertis. On pourrait donc l’utiliser pour le suivi d’objets dont on dispose
en plusieurs exemplaires (par exemple des thermocouples).Un autre défaut est que si la diode
ou le récepteur se tâche ( avec des restes d’huiles par exemple), le recepteur pourrait
renvoyer en permanence l’information qu’un objet est présent alors qu’il a été retiré.
Suivi par masse. Principe : une balance ou un système identique est placé sous chaque
emplacement d’objets et celle-ci renvoie ou non l’ information de la présence d’objet.
L’inconvéniant c’est que ce système est cher, relativement complexe et peu pratique à
installer (volumineux, il faudrait une balance par objet dans l’armoire ce qui n’est pas
pratique). De plus l’étagère Visseries (petits objet en grande quantité) , ne fait pas partie des
étagères à suivre. Cette méthode est donc peu envisageable et très situationnelle.
Suivi par contact électrique. Principe : Sous chaque emplacement d’objets, se trouve un petit
interrupteur qui bascule de niveau lorsqu’il reçoit une légère pression.
Tout comme le principe de suivi par lumière, ce système est relativement facile à installer et
peu couteux
Cependant il ne permet pas lui non plus de différencier les objets présents, et certains
capteurs sont très légers et ne feront probablement pas basculer d’état l’interrupteur, cette
méthode est donc peu envisageable.
L’un des désavantages d’utiliser les badges RFID est qu’ils ne fonctionnent pas forcément sur,
ou au travers d’une partie métalique, et que les badges peuvent être trop gros pour suivre de
petits objets (5 cm max )
J’aurrais pu envisager d’autres méthodes de détection comme la détection par GPS ou par
lecture de code barre, mais ces deux méthode ne respecte pas les contraintes fixée. Pour le
suivi GPS, les systèmes à intégrer aux capteurs seraient trop volumineux et trop chers. Alors
que pour le lecteur de CodeBarre, celui-ci ne serait pas automatique.
J’ai donc réalisé un prototype d’armoire à deux étages, pour illustrer les deux possibilités de
détection que j’ai choisi : la lecture par badge d’un coté et par lumière de l’autre coté.
Sur l’étage supérieur j’installerai deux emplacements capables de suivre un objet possédant
un badge et sur l’étage inférieur j’utiliserai un suivi par LED et photodiode.
Un relais
Des LEDs reliées au relais pour allumer la boite lorsque celle-ci s’ouvre
Des photodiodes
Une carte ne suffit plus. J’ai donc effectué des tests afin de voir s’il était possible de faire
communiquer deux cartes entre elles ; et si cela était possible, de vérifier que cela pouvait
marcher pour une infinité de cartes.
Lorsqu’une carte Arduino communique avec le PC (avec la fonction Serial.print), les deux
entrées/ sorties 0 et 1 sont bloquées. Elle n’ont plus la même fonctionalité que les autres E/S.
Sur ces bornes est envoyés le même signal que la carte envoie à l’ordinateur par USB.
J’ai verifié que si l’on envoyait un message d’une carte A par L’ E/S TX de celle-ci sur l’autre
E/S TX de la carte B on obtenait le message de la carte A dans la console de l’ordinateur relié
par usb seulement à la carte B.
Cependant il faut prendre une précaution : la fonction Serial.begin initialise la liaison série et
« bloque » les E/S RX et TX . il faut penser à utilisé Serial.end avant de recevoir des
informations provenant d’autres cartes.
Carte UNO
Serial.begin(9600)
Carte UNO
Serial.print(’’UNO’’)
Carte UNO
Serial.end()
Figure 10 : Ordre
des étapes de Carte UNO
communication Envoie impulsion E/S digital
entre 2 cartes (Uno
et Nano)
Carte NANO
Si impulsion reçue
alors
Serial.begin(9600)
Carte NANO
Serial.print(‘’nano’’)
Carte NANO
Serial.end()
5.1.1 L’initialisation
La toute première étape de notre algorithme consiste à la mise sous tension de la carte. Un inventaire
doit être fait automatiquement à chaque mise en tension de la boite (pour que celle-ci puisse
déterminer automatiquement quels objets ont été sortis lors de la première ouverture et fermeture de
la boite).
Initialisation 1
La porte se referme (on active l’élécroaimant) la carte uno envoie un signal à la carte nano n°1
qui va procéder à un scan.
Elle doit également garder en mémoire les ID des anciens objets présents avant l’ouverture.
(donc pour 10 emplacement RFID, cela donne 10 variables stockées avant ouverture et 10
nouvelles variables après fermeture)
Scan objets 3
Tout les lecteurs RFID ont renvoyé leurs informations du nouvelle ID qu’ils captent.
Elle peut renvoyer une impulsion à une autre carte nano branchée à la suite de la chaine pour
que celle-ci procède à l’étape 5.1.3 et 5.1.4.
L’objectif de la boite est de comparer les variables des objets avant l’ouverture de la boite
avec ceux d’après fermeture.
Prenons l’exemple pour deux objets A et B pouvant prendre deux états chacun :
Etudions les possibilités et ce que la carte doit renvoyer pour chaque possibilité.
Etat avant identification Etat après fermeture porte Message renvoyé par NANO
A0 B0 A0 B0
A0 B1 A0 B1
A1 B0 A1 B0 Aucun changement
A1 B1 A1 B1
A1 B1 B1 A1 (position intervertie) Aucun changement
A0 B0 A1 B0
A0 B1 A1 B1 A rentré
A0 B 0 A0 B1
A1 B 0 A1 B1 B rentré
A1 B0 A0 B0
A1 B1 A0 B1 A sorti
A1 B 1 A1 B0
A0 B 1 A0 B0 B sorti
A 0 B0 A1 B1 A rentré et B rentré
A 1 B1 A0 B0 A sortie et B sortie
A ces mouvements peut être rajouté 2 nouveaux objets : par exemple on peut imaginer que
lorsque A et B sont sortis, ils soit remplacés par deux nouveaux objets C et D :
Etat avant identification Etat après fermeture Message renvoyé par NANO
A1 B1 C0 D0 A0 B0 C1 D1 A sortie B sortie C rentré D rentré
Pour 2 lecteurs RFID, on obtient donc le message comportant le maximum d’informations soit
4 informations.
Nous utiliserons donc 4 variables pour stocker les ID des objets repérés par les lecteurs.
AID1 et BID1 sont les variables représentants ce que le lecteur RFID a reçu avant
l’ouverture de la porte.
Initialisation 1
Son but est de détecter dés la mise sous tension des cartes, les objets présents.
Pour ce faire on va initialiser les variables des ID à 0. Puis dans la fonction void setup(),
(fonction qui ne s’effectue qu’une fois à chaque démarrage) nous allons attribuer à nos
variables AID1 et BID1, les ID des objets présents, si il y en a de détectés, et sinon la variable
reste à 0.
Identification 2
La partie identification résulte du travail en amont de la carte UNO, en effet si celle-ci reçoit
un badge avec accès autorisé, alors la carte UNO envoie une impulsion à la carte NANO pour
lui demander de préparer le Scan.
Tout le reste du programme (soit l’entiereté de la fonction loop() ) dépend de si la carte reçoit
l’impulsion attendue. Par concéquant, si la carte NANO ne reçoit rien, alors elle ne fait rien.
On retrouve une partie similaire à l’initialisation, sauf qu’au lieu de travailler sur les variables
AID1 et BID1, on travaille maintenant sur AID2 et BID2.
Après cette partie on obtient donc 4 variables à analyser. (AID1 et BID1 pour l’état de
l’armoire avant modification , AID2 et BID2 pour après modification).
Renvoie d’informations 4
Les deux premières boucles concernent les objets sorties ( la première par rapport au lecteur
RFID A et la seconde pour le B).
-qu’il soit présent dans la boite à l’état 1 (avant ouverture des portes)
-qu’il ne soit plus présent à l’état 2 sur TOUS les lecteurs de l’armoire (cela ne veux pas
dire qu’aucun objet ne doit être sur les lecteurs, mais juste que l’objet dont on compare les
variables ne soit plus dans l’armoire ; il peut par exemple être remplacé par un autre objet).
On obtient donc la condition suivante (pour savoir si l’objet présent sur le lecteur A a disparu):
Si cette condition est vraie (grâce à la fonction and cela signifie que les trois conditions sont
vraies), alors la carte nous renvoie l’information que l’objet possédant de tels identifiant (ici
c’est AID1) est sorti de la boite. Le programme ne s’arrête pas là, que cette condition soit vraie
ou fausse, il va tester les trois autres.
Pour vérifier la sortie de l’objet présent sur le 2ème lecteur RFID, on reprend les mêmes
conditions mais au lieu de les tester sur le lecteur A on les teste sur le B :
L’objet est détecté après L’objet était présent sur aucun des
fermeture des portes sur le lecteur lecteurs RFID avant l’ouverture
A? des portes ?
Enfin, lorsque toutes les conditions se sont effectuées et que les messages ont été envoyé à la
carte UNO, on ajoute un petit delais pour s’assurer qu’il n’y ai pas de problème de
transmission, puis on ferme les E/S RX et TX de la nano pour que celles-ci ne soit plus
influencées par les messages de toutes autres cartes branchées sur ce même câble.
Pour terminer, il faut réinitialiser les variables pour une prochaine itération :
La fonction loop() est donc prête à être relancée avec les nouvelles
variables mises à jours.
Le programme principal commence également par une partie plutôt lourde d’initialisation. En effet,
plusieurs protocoles de communication différentes sont utilisés ici (SPI pour les lecteurs RFID et I2C
pour l’horloge) ce qui rend la partie initialisation complexe.
Initialisation 1
Comme expliqué précédemment j’ai dédoublé la variable reçue par le lecteur d’identification (une
variable de 5 octets à 2 variables de respectivement 3 et 2 octets).
Ensuite nous allons comparer les deux variables obtenues de telle sorte que si les variables reçues sont
celles appartenant à quelqu’un autorisé, alors on ouvre la porte, sinon on laisse fermer. C’est ici qu’il
faudra reprogrammer la carte pour autoriser de nouvelles personnes :
-Déverrouiller l’électroaimant
En effet, imaginons qu’il y ait une dizaine de cartes NANO qui communiquent chacune leur tour, alors
on pourrait faire en sorte que la dernière à envoyer son message envoie également une impulsion
lorsque son travail est terminé pour que la carte UNO redémarre sa fonction loop().
L’arduino ne possède qu’un moyen de communication par défaut et c’est par cable USB
(Universal Serial Bus).
J’ai donc cherché un programme permettant de lire les données d’un port serie (COM sur
Windows ).
Il existe donc des logiciels sur internet permettant de charger les données recus par USB
J’ai cherché un logiciel analogue pour utiliser sur excel. Cependant dans un premier temps, je
n’ai pas trouver directement un logiciel mais une macro à installer. Cette macro permet de lire
et de classer les informations reçues dans le tableur, selon un protocole plutôt complexe et
peu approprié à notre utilisation.
J’ai donc préférer utiliser un Data Logger qui enregistre directement toutes les données dans
un fichier texte qui servira de base de données.
De plus, grâce aux options présentes dans excel, j’ai pu remonter les informations de la bases
de données du fichier texte dans excel afin de l analyser (Voir Annexe 5 : Guide d’utilisation
Data Logger pour Excel)
On obtient donc un fichier Excel presque autonome (à mettre à jours en un clique) retraçant
les changement des objets à l’interieur de la boite.
Cette boite répond à certaines contraintes qui m’ont été fixées. Elle s’ouvre avec le badge
ALSTOM et permet de remonter l’information de la personne l’ayant ouverte. Elle utilise
également le principe de détection RFID pour analyser les sorties et entrées des matériaux
dans la boite.
Ces informations sont traitées et remontées par cables USB à un ordinateur afin de les stocker
dans un premier temps dans un fichier texte, puis dans un second temps, triées dans un
tableur Excel.
Cependant, j’avais imaginé utiliser le principe de détection par lumières à implanter sur
l’étage du bas de l’armoire. Ayant rencontré quelques problèmes , elles ne seront
probablement pas disponibles le jour de la soutenance.
Mon stage étant prolongé de 2 semaines , mon objectif sera de pouvoir implanter un système
de détection par lumières.
La maquette représente une armoire typique de rangement que l’on peut trouver au centre
d’essais. Elle est miniaturisée et n’accepte (pour l’instant) que 2 lecteurs RFID , soit 2 objets
rangés.
Bien entendu les armoires du centre d’essais peuvent quant à elle posséder plus d’une
centaine d’objets. C’est pour cela que ma méthode de suivi par RFID peut être équipée d’une
infinité de cartes (tant que l’alimentation de toute ces cartes est suffisante). Il faut donc que
ces cartes communiquent entre elles une par une et pour cela il suffit que la carte 1, dés que
celle-ci a fini sont travail, informe la carte 2 que c’est à elle de poursuivre et ainsi de suite.
Enfin chaque carte peut supporter entre une dizaine et quinzaine de lecteurs RFID. On
pourrait donc imaginer que chaque carte gère un étage de l’armoire et que toutes ces cartes
communiquent entre elles pour faire facilement l’inventaire de l’armoire.
J’ai également beaucoup appris des membres de l’équipe sur l’aspect technique et
pluridiciplinaire du travail au centre d’essais ; comme par exemple , j’ai découvert le
taraudage, et j’ai appris des techniques de soudure qui me seront bénéfiques pour mon
avenir.
Pour terminer, j’ai reçu une réponse positive pour ma candidature à l’école d’ingénieur en
électronique de PHELMA à Grenoble à la rentrée prochaine et de ce fait, ce stage sera un gros
point positif et une énorme source de motivation pour la suite, car cela m’a permis de me
rendre compte que c’est bien l’électronique qui me plait le plus.
RFID lecteurPorte(10,7); //définition des broches utiles ainsi que le nom de notre capteur rfid
//(ici le nom est lecteurPorte et il a ses broches SDA et RST branchées respectivement sur le
pin 10 et 7 de l’Arduino)
int UID[5]; // création d’un tableau de 5 entiers qui contiendra l'identifiant d'une carte
void setup() {
Serial.begin(9600); // initialisation de la communication par le port USB (d'une vitesse de
9600 baud).
SPI.begin(); // initialisation de la communication maître esclave
lecteurPorte.init(); // initialisation du module RFID
}
void loop() {
if (lecteurPorte.isCard()) {
if (lecteurPorte.readCardSerial()) { // si il y a une carte de détectée, le programme va lire
l'ID de la carte
Serial.print("L'UID est: ");
for(int i=0;i<=4;i++)
{
UID[i]= lecteurPorte.serNum[i];
Serial.print(UID[i]); // affiche dans la console un octet de l'ID et répète avec for
Serial.print(".");
}
Serial.println("");
}
lecteurPorte.halt(); // fin d'utilisation des pins dédiés au module RFID (le 10 et le 9 ).
}
delay(100); // attendre 100ms pour une clarté dans l'affichage
}
void setup() {
pinMode(2,OUTPUT); // pin 2 = commande du relais
digitalWrite(2,HIGH); // Bloque le relais pour fermeture de la porte à l'initialisation
pinMode(3,OUTPUT); // Pin de communication de la nano
pinMode(4,INPUT); // Pin d'état de la porte
digitalWrite(3,LOW); // On s'assure que le message envoyé à la nano est nul
Serial.begin(9600); // On ouvre la communication par la liaison série
SPI.begin();
Serial.println("Connexion armoire réussie");
lecteurPorte.init(); // On initialise le lecteur rfid à la carte
Serial. End();
Wire.begin();
DS3231_init(DS3231_INTCN);
}
void loop() {
Serial.begin(9600);
long ID1=0;
long ID2=0; //déclaration des deux sous ID et Remise à zéros
if (lecteurPorte.isCard()) {
if (lecteurPorte.readCardSerial()) {
for(int i=0;i<=2;i++)
{
UID[i]= lecteurPorte.serNum[i];
int IDt1=UID[i];
ID1=ID1*1000+IDt1;
}
for(int i=3;i<=4;i++){
UID[i]= lecteurPorte.serNum[i];
void setup(){
SPI.begin(); // initialisation de la communication SPI
A.init(); // initialisation lecteur A
B.init(); // initialisation lecteur B
pinMode(3,INPUT); // initialisation de la pin pour l’entré du signal de la carte UNO
if (A.isCard()) { //Début de lecturs des données pour le lecteur A
if (A.readCardSerial()) {
for(int i=0;i<=2;i++) {
UID[i]=A.serNum[i];
AID1=AID1*1000+UID[i] ; }
}
A.halt();}
if (B.isCard()) { //Début de lecturs des données pour le lecteur B
if (B.readCardSerial()) {
for(int i=0;i<=2;i++) {
UID[i]=B.serNum[i];
BID1=BID1*1000+UID[i];}
}
B.halt();}
}
void loop(){
if (digitalRead(3)==HIGH){ //Si la carte recoit le signal de commande, alors …
Serial.begin(9600);
if (A.isCard()) { //Début de lecturs des données pour le lecteur A
if (A.readCardSerial()) {
for(int i=0;i<=2;i++)
{
UID[i]=A.serNum[i];
AID2=AID2*1000+UID[i];}
}
A.halt();}
else{
AID2=0;}
delay(10);
BID2=0;
AID2=0;}
}
void teste(){
Interface :
Afin de récupérer correctement les données reçues, la connexion série doit être paramétrée
de la même façon du côté de l’émetteur que du récepteur.
Baudrate : C’est le nombre de bits par seconde paramétrés dans le programme ARDUINO. J’ai
paramétré à 9600 des deux côtés par défauts.
Ensuite on choisit le fichier .txt qui servira de base de données ; et l’on coche ꙱Append to file
Les données sont enregistrées chronologiquement du haut vers le bas (chaque nouvelle ligne
est écrite en bas). Pour rechercher plus facilement le nom d’une personne ou l’état du
capteur : on dispose, du raccourci Alt+F qui nous ouvre une console permettant de chercher
dans la base de données, un mot spécial.
Vérifier que tout les paramètres coïcident avec ceux-ci, puis valider en cliquant sur charger.
Dans l’onglet Développeur, cliquer sur Enregistrer une macro, donner lui un nom puis valider
en appuyant sur OK :
Cliquer sur une case du tableau précédemment créée, puis aller dans l’onglet Création et
cliquer sur actualiser tout.
Maintenant on va créer un bouton sur l’écran pour que lorsque l’on clique dessus ça lance la
macro que l’on vient de faire.
Choisir la première forme proposée. Ensuite sur le tableur, rester appuyer avec le clique
gauche pour former un rectangle, puis relâcher le bouton de la souris.
Sélectionner la macro que vous venez de créer puis OK. On peut créer toute sorte de macro
comme par exemple une macro qui classe par ordre chronologique les données.