Offline
Newbie
Karma: 0
Posts: 9
|
 |
« on: January 22, 2013, 08:01:04 am » |
Bonjour,nous sommes un groupe de travail en Terminale STI2D SIN qui avons pour travail de réaliser un projet pour le BAC. "Amélioration de la sécurité dans les centres médicalisés"
Contraintes imposées : -Utilisation d'Arduino -Capteurs RFID -Page WEB
Principe du projet : Il s'agit de réguler l'accès a une salle en équipant les patients d'un bracelet à capteur RFID, de tel sorte que la porte ne s'ouvre pas pour tout le monde. par exemple Monsieur X (qui est autorisé à passer) possède le bracelet jaune, le capteur de la porte détecte le code du bracelet jaune et ouvre la porte. Monsieur Y (qui n'a pas le droit d'accéder à la salle) possède le bracelet rouge, le capteur remarque que le code de ce bracelet interdit l'ouverture, la porte reste donc fermé. Il faut ensuite que tout les passages soit répertoriés sur une page WEB en indiquant la personne, la date, l'heure et si oui ou non elle est passées.
Nous avons plusieurs problèmes : Le premier par rapport à la page WEB sur Arduino, nous avons la forme de la page (cela dois représenter une liste avec les donnés cités plus haut), mais il faudrais que ce sois sous forme de tableau, en gros il y a tout, sauf les lignes pour en faire un tableau. Car la programmation WEB sur Arduino et différents que le HTML et CSS
Le deuxième en rapport avec les capteurs : nous avons des difficultés avec la programmation sous arduino , pour autoriser ou non l'accès mais nous avons commencer ce programme (ci dessous):
/* Example 15.2 read RFID tag, if it matches a preset tag, set a digital pin high for 10 seconds tronixstuff.com/tutorials > Chapter 15 */
int data1 = 0; int ok=-1; // define the tag numbers that can have access int yellowtag[14] = { 1,11,1,1,12,224,151,161,255,2,154}; // my yellow tag. Change this to suit your own tags, use example 15.1 sketch to read your tags int redtag[14] = { 1,11,1,1,12,227,163,190,255,147,110}; // my red tag... int newtag[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // used for read comparisons int okdelay = 500; // this is the time the output will be set high for when an acceptable tag has been read int notokdelay = 500; // time to show no entry (red LED) void setup() { Serial.flush(); // need to flush serial buffer, otherwise first read from reset/power on may not be correct pinMode(3, OUTPUT); // this if for "rejected" LED pinMode(4, OUTPUT); // this will be set high when correct tag is read. Use to switch something on, for now - an LED. Serial.begin(9600); // for debugging }
boolean comparetag(int aa[14], int bb[14]) // compares two arrrays, returns true if identical - good for comparing tags { boolean ff=false; int fg=0; for (int cc=0; cc<14; cc++) { if (aa[cc]==bb[cc]) { fg++; } } if (fg==14) { ff=true; } return ff; }
void checkmytags() //compares each tag against the tag just read { ok=0; // this variable helps decision making, if it is 1, we have a match, zero - a read but no match, -1, no read attempt made if (comparetag(newtag,yellowtag)==true) { ok++; } if (comparetag(newtag,redtag)==true) { ok++; } }
void readTag() // poll serial port to see if tag data is coming in (i.e. a read attempt) { ok=-1; if (Serial.available() > 0) // if a read has been attempted { // read the incoming number on serial RX delay(100); // Needed to allow time for the data to come in from the serial buffer. for (int z=0; z<14; z++) // read the rest of the tag { data1=Serial.read(); newtag[z]=data1; } Serial.flush(); // stops multiple reads // now to match tags up checkmytags(); // compare the number of the tag just read against my own tags' number } //now do something based on tag type if (ok>0==true) // if we had a match { digitalWrite(4, HIGH); delay(okdelay); digitalWrite(4, LOW); ok=-1; } else if (ok==0) // if we didn't have a match { digitalWrite(3, HIGH); delay(notokdelay); digitalWrite(3, LOW); ok=-1; } }
void loop() { readTag(); // we should create a function to take care of reading tags, as later on // we will want other things to happen while waiting for a tag read, such as // displaying data on an LCD, etc } Le dernier problème est : comment assemblé nos 2 fichiers, le fichier Arduino avec la page avec le fichier Arduino sur la régulation d'accès.[/font]
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 6
Posts: 2415
|
 |
« Reply #1 on: January 22, 2013, 08:35:33 am » |
Bonjour,nous sommes un groupe de travail en Terminale STI2D SIN qui avons pour travail de réaliser un projet pour le BAC. "Amélioration de la sécurité dans les centres médicalisés"
bonjour Si un modo  ne fait pas le transfert vers le forum français general  ouvrez un topic là bas , ici vous êtes sur réalisations et projets finis , (vous y reposterez dans quelques mois  )
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #2 on: January 22, 2013, 08:39:25 am » |
C'est ou le forum général svp ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Edison Member
Karma: 6
Posts: 2415
|
 |
« Reply #3 on: January 22, 2013, 08:44:51 am » |
C'est ou le forum général svp ?
 là http://arduino.cc/forum/index.php/board,33.0.htmlet tu fais vous selectionnez new topic 
|
|
|
|
« Last Edit: January 22, 2013, 08:47:38 am by Artouste »
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 828
|
 |
« Reply #4 on: January 22, 2013, 02:08:11 pm » |
bonjour, les bases sont bonnes sur le papier, mais tu ne pose pas tout. quels sont les contraintes ou cahier des charges? après : 1- comment entrer les données de passage 2- comment les lire, voir les parser 3- comment les afficher ce qui en découle : 1- quelle carte utiliser 2- quel shield utiliser 3- quel support de stockage utiliser le mieux est de faire un diagramme, facile a dire j'en fais très rarement 
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #6 on: January 29, 2013, 07:09:26 am » |
Les pages web seront sur l'arduino la liste des tag seront sur la page web nous disposons de arduino uno.
Désolé pour le temps de reponse, nous sommes uniquement present le mardi.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #7 on: January 29, 2013, 07:36:35 am » |
J'ai regardé ton programme, il est génial, cependant il y a une liste de tag autorisés, mais comment ajouté une liste de tags non autorisés ? Merci.
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #8 on: January 29, 2013, 07:48:58 am » |
Par définition s'il n'est pas dans la liste c'est qu'il n'est pas autorisé ...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #9 on: January 29, 2013, 07:54:52 am » |
Mais les tags non autorisés doivent apparaitre sur le site web, pour savoir quelle personne non autorisé a voulu franchir la porte.
|
|
|
|
|
Logged
|
|
|
|
|
Ales
Offline
Edison Member
Karma: 7
Posts: 1658
Do or DIY
|
 |
« Reply #10 on: January 29, 2013, 10:32:52 am » |
Bah de toute façon tu dois loguer les tags autorisés, de la même manière tu pourras loguer les tentatives d'intrusion !
24/01/13 23:24:35 Tag n°123445 Autorisation accordée 24/01/13 23:26:15 Tag n°325895 Autorisation accordée 24/01/13 23:28:11 Tag n°597897 Autorisation refusée, identification non répertoriée
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4328
Arduino Hacker
|
 |
« Reply #11 on: January 30, 2013, 03:26:48 am » |
Mais les tags non autorisés doivent apparaitre sur le site web, pour savoir quelle personne non autorisé a voulu franchir la porte.
Google -> "buffer circulaire"  Et pour le temps -> Time.h
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #12 on: February 05, 2013, 07:46:45 am » |
Bonjour, voici notre programme pour reconnaitre les pastilles /* Example 15.2 read RFID tag, if it matches a preset tag, set a digital pin high for 10 seconds tronixstuff.com/tutorials > Chapter 15 */
int data1 = 0; int ok=-1; // define the tag numbers that can have access int yellowtag[14] = { 1,11,1,1,12,224,151,161,255,2,154,-1,-1,-1}; // my yellow tag. Change this to suit your own tags, use example 15.1 sketch to read your tags int redtag[14] = { 1,11,1,1,12,227,163,190,255,147,110,-1,-1,-1}; // my red tag... int newtag[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // used for read comparisons int okdelay = 500; // this is the time the output will be set high for when an acceptable tag has been read int notokdelay = 500; // time to show no entry (red LED) void setup() { Serial.flush(); // need to flush serial buffer, otherwise first read from reset/power on may not be correct pinMode(3, OUTPUT); // this if for "rejected" LED pinMode(4, OUTPUT); // this will be set high when correct tag is read. Use to switch something on, for now - an LED. Serial.begin(9600); // for debugging }
boolean comparetag(int aa[14], int bb[14]) // compares two arrrays, returns true if identical - good for comparing tags { boolean ff=false; int fg=0; for (int cc=0; cc<14; cc++) { if (aa[cc]==bb[cc]) { fg++; } } if (fg==14) { ff=true; } return ff; }
void checkmytags() //compares each tag against the tag just read { ok=0; // this variable helps decision making, if it is 1, we have a match, zero - a read but no match, -1, no read attempt made if (comparetag(newtag,yellowtag)==true) { ok++; } if (comparetag(newtag,redtag)==true) { ok++; } }
void readTag() // poll serial port to see if tag data is coming in (i.e. a read attempt) { ok=-1; if (Serial.available() > 0) // if a read has been attempted { // read the incoming number on serial RX delay(100); // Needed to allow time for the data to come in from the serial buffer. for (int z=0; z<14; z++) // read the rest of the tag { data1=Serial.read(); newtag[z]=data1; Serial.println(data1); newtag[z]=data1; } Serial.flush(); // stops multiple reads // now to match tags up checkmytags(); // compare the number of the tag just read against my own tags' number } //now do something based on tag type if (ok>0==true) // if we had a match { digitalWrite(4, HIGH); delay(okdelay); digitalWrite(4, LOW); ok=-1; } else if (ok==0) // if we didn't have a match { digitalWrite(3, HIGH); delay(notokdelay); digitalWrite(3, LOW); ok=-1; } }
void loop() { readTag(); // we should create a function to take care of reading tags, as later on // we will want other things to happen while waiting for a tag read, such as // displaying data on an LCD, etc }
Les pastilles rouges et jaunes sont autorisés, comment insérés les pastilles suivantes pour qu'il ne sois pas autorisés ? Bleu : 1 11 1 1 12 227 164 224 255 59 78 -1 -1 -1 Vert : 1 11 1 1 12 224 151 103 255 190 104 -1 -1 -1 Violet : 1 11 1 1 12 224 152 118 255 162 27 -1 -1 -1 Car il faut que les passages apparaissent sur la page web, meme s'il ne sont pas autorisés, donc comment integrer les codes des 3 pastilles dans le programme Arduino. Avec ce systeme, les aide soignant seront obliges de marquer chaque nouveau code de pastille (lors de l'arrivé d'un nouveau patient), comment eviter la reprogrammation du code Arduino au aide soignant et automatiser le tout. Merci beaucoup 
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Edison Member
Karma: 12
Posts: 1800
There is an Arduino for that
|
 |
« Reply #13 on: February 05, 2013, 08:50:26 am » |
comment insérés les pastilles suivantes pour qu'il ne sois pas autorisés B@tto te l'a dit, si un tag n'est pas dans la liste des tags autorisés alors cela veut dire qu'il n'a pas accès donc il est inutile de l'enregistrer à l'avance. D'ailleurs comment enregistrer quelque chose qui ne devrait pas exister car il faut bien interdire l'accès aux badges inconnus. Cela n'empêche pas de conserver la valeur des badges qui ont été lus dans un tableau que tu crées dynamiquement pour mémoriser TOUTES les tentatives de passages.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 9
|
 |
« Reply #14 on: February 05, 2013, 09:42:54 am » |
Et comment fais ton cela svp ?
|
|
|
|
|
Logged
|
|
|
|
|
|