Pages: [1] 2   Go Down
Author Topic: Besoins conseils pour Projet BAC  (Read 1012 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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):

Code:
/*
 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 Offline
Faraday Member
**
Karma: 33
Posts: 4964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-cool ne fait pas le transfert vers le forum français general  smiley-cool
ouvrez un topic là bas , ici vous êtes sur réalisations et projets finis , (vous y reposterez dans quelques mois  smiley-mr-green  )
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est ou le forum général svp ?
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4964
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est ou le forum général svp ?
smiley-mr-green

http://arduino.cc/forum/index.php/board,33.0.html
et tu fais vous selectionnez new topic  smiley-cool
« Last Edit: January 22, 2013, 08:47:38 am by Artouste » Logged

Offline Offline
Edison Member
*
Karma: 17
Posts: 1938
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Il manque un bon paquet d'informations !
- Les pages web seront sur l'arduino ou sur un serveur externe ?
Si oui voir "webduino" et arduino "tinywebserver".
- Quel lecteur RFID utilisez vous ?
- Ou seront stocké la liste des tags autorisé ?
- De quel matériel disposez vous ?
...

Tu peut reprendre mon code (pour arduino 0023 + lecteur RFID parallax) comme base de réflexion :
version simple :
http://skyduino.wordpress.com/2012/03/15/arduino-systeme-douverture-de-porte-rfid-version-serie/

version complète :
http://skyduino.wordpress.com/2011/12/17/arduino-lecteur-rfid-a-ecran-lcd-avec-stockage-du-tag-valide-en-eeprom-externe-i2c/
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 39
Posts: 3567
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Par définition s'il n'est pas dans la liste c'est qu'il n'est pas autorisé ...
Logged


Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 39
Posts: 3567
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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" smiley-wink
Et pour le temps -> Time.h
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour, voici notre programme pour reconnaitre les pastilles
Code:
/*
 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   smiley
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3421
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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 Offline
Newbie
*
Karma: 1
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Et comment fais ton cela svp ?
Logged

Pages: [1] 2   Go Up
Jump to: