Coucou j'ai un probleme

coucou je poste ici car j'ai un petit soucis et je ne sais comment le résoudre.
je travaille sur un projet qui a pour but d'identifier des personnes absentes grace a des cartes magnétiques et je dois créer un interface web afin d'y noter les absents. Mon interface est fait mais je n'arrive pas a trouver le moyen de recuperer les données de mon caramade afin de les mettre sur mon site web :blush:
est ce que quelqu'un peut m'éclairer s'il vous plait :slight_smile:

sophie

bonjour,
j'ai bien mon briquet pour éclairer :slight_smile:
ca sent le bac ca

sans code, tu veux qu'on fasse comment?
sans connaitre le matériel utilisé, on fait comment?

oui pour le bac je stresse beaucoup :s
ah oui biensur escusez moi :blush: pour ma part j'utilise une carte arduino avec une ethernet shield et mon camarade une arduino, une platine shield NFC RFID et des cartes transpondeur.
j'ai mis les codes en attaché
merci d'avance si vous pouvez m'aider !!!

CodeAssemblage.ino (4.9 KB)

sketch_may18bmoncodesolo.ino (5.14 KB)

J'oubliais de dire que le premier code c'est celui de mon camarade et le second c'est mon interface
Merci
Sophie

Vous utilisez une carte arduino chacun, et le problème est de transmettre d'une carte vers l'autre ?
Rx - Tx en liaison série par exemple.

Non enfait c'est au niveau du programme il a les personnes absentes=0 et les personnes présentes=1 et ensuite je dois affiche soit que les absents soit tout le monde mais avec un etat soit absent sout present tout mon probleme se situe au niveau du code :blush: et je ne sais vraiment pas comment m'y prendre

sophie3399:
Non enfait c'est au niveau du programme il a les personnes absentes=0 et les personnes présentes=1 et ensuite je dois affiche soit que les absents soit tout le monde mais avec un etat soit absent sout present tout mon probleme se situe au niveau du code :blush: et je ne sais vraiment pas comment m'y prendre

tu peux nous la refaire dans un francais compréhensible s'il te plait?
tu bloque sur quoi?
le code php, le code niveau arduino, le code sur le site?

sur le code arduino, je n'arrive pas a savoir comment afficher les personnes absentes par rapport au code arduino de mon collegue

Est ce que tu arrives déjà à afficher un simple "hello" sur ton interface web ?

oui oui

je pense savoir exactement ce qu'il faut que je vous demande :
Comment lire les données d'un tableau j'ai cherché partout mais je nous trouve pas d'explications claires
merci

sophie3399:
j'ai cherché partout mais je nous trouve pas d'explications claires

J'ai tapé : "tableau c" sur google"
1 er lien -> http://www.commentcamarche.net/contents/120-langage-c-les-tableaux -> tu as ta réponse la dedans.

Dans la partie : Manipuler les éléments
Bon courage

Merci pour le lien du coup ca devrait avoir cette tête ? :slight_smile:

int Abs[]={1,2,3,4,5,6,7,8,9,10};
int i;

void setup ()
{
  for (i=0;i<9;i++);
}

void loop ()
{
  for (i=0;i<9;i++);
} 
  if Abs[1]=0
{
  client.println("&Eacutel&egraveve N&deg1 : Absent");
}
  if Abs[2]=0
{
  client.println("&Eacutel&egraveve N&deg2 : Absent");

Coucou les copians (copines) ,
Dans ton listage la variable de boucle i est déclarée en doublon en global, ce qui ne sert à rien.
Dans la séquence d'initialisation la boucle ne fait rien, donc elle est inutile.
Dans le tableau Abs, j'imagine que chaque élément représente une personne. Dans ce cas les valeurs devraient être des 0 et des 1. Du reste, vu que ces valeurs restent faibles, un byte serait plus économe qu'un int.
Bon, je ne sais pas si ces quelques observations te seront utiles, mais je n'ai pas le temps ce soir de tester du code sur mon Arduino. Mais globalement ton programme devrait ressembler à :

int Abs[]={1,0,1,1,0,0,0,0,1,0};
void setup (){ }
void loop (){
  for (byte i=0; i<=9; i++) {
    Serial.print("Personne num "); Serial.print(i);
    if (Abs[i]==0) {Serial.println(" : Absente.");}
       else {Serial.println(" : Presente."); } } }

Amicalement : Nulentout.

Coucou nulentout merci beaucoup pour cette correction mais je comprends pas pourquoi tu met des 0 et des 1 au tableau pourquoi un est 1 et pourquoi l'autre 0 ? :cold_sweat:

Tu peux mettre les valeurs que tu veux du moment que si tu déclares ton tableau avec un type tu n'y mets que le même type

j'ai enfin compris ce qu'il fallait que je fasse exactement ! j'ai juste besoin d'une correction s'il vous plait :blush: (plus précisement le tableau "Nom" ou j'ai apparement des erreurs de déclarations :/)

 #include <SPI.h> // Chargement de la Librairie SPI
 #include <Ethernet.h> // Chargement de la Librairie Ethernet

 char Nom[i] = {"Mendiondo", "Dormont", "Millereux"};

 byte mac[] = {0x90, 0xA2, 0xDA, 0x0F, 0x12, 0xDC }; // Instaure l'adresse mac de la shield Ethernet
 IPAddress ip(172,19,239,60); // Initialise l'adresse IP 172.19.239.60 dans le programme

 EthernetServer server(80); // Permet à la carte de communiquer avec le Navigateur en HTTP

 void setup() 
  {
  Serial.begin(9600);
  Ethernet.begin(mac,ip); // Initialise la Librairie Ethernet, l'adresse mac et IP  
  server.begin(); // Initialise le Serveur
  Serial.print("L'adresse du serveur HTTP est: "); // Affiche le message à l'adresse du réseau HTTP
  Serial.println(Ethernet.localIP()); // Affiche l'adresse IP
  }


 void loop() 
  {
  //Fonction qui permet de savoir si un client est connecté au serveur et que des données sont disponibles
  EthernetClient client = server.available(); // Regarde si le serveur est disponible
  if (client) 
  {
    //Un nouveau client est identifié
    Serial.println("new client");
    boolean currentLineIsBlank = true; // Une requête http finit avec une ligne blanche
    
    //Tant que le client est connecté et que les données sont disponibles, on va lire et envoyer les données sur le port série
    while (client.connected()) // Tant que l'arduino et la carte réseau sont connectés
   {
    if (client.available()) // Si le client est disponible
    {
      char c = client.read();// Lit la valeur du client
      Serial.write(c);
      if (c == '\n' && currentLineIsBlank) // Si on est arrivé à la fin de la ligne (on a reçu un retour à la ligne) et que la ligne est blanche, la requête http est fini, donc on peut envoyer une réponse
      { 
       //Quand toutes les données sont envoyées, la requête HTTP est terminée, fin de la connexion     
       client.println("HTTP/1.1 200 OK");
       client.println("Content-Type: text/html");
       client.println("Connnection: close"); // La connexion sera fermé après l'achèvement de la réponse
       
       //Permet de fixer le temps de rafraichissement de la page web à 5s
       client.println("Refresh: 5"); 
       client.println();
       client.println("<!DOCTYPE HTML>");
       {
          }
        {
          client.print("<body>"); // Contient le corps du document html
            client.println("<body style = background:#003366>"); // Définit la couleur en fond du site en Bleu nuit
              client.println("<span style = color:#FEFDF0>"); // Définit la couleur de la police du site en Blanc de Troyes
                client.print("<u>"); // Souligne le Texte à l'intérieur de la balise 
                  client.println("<center>"); // Centre le texte
                    client.println ("<font size=7>"); // Règle la taille des caractères
                      client.println ("<font face=Comic sans MS>"); // Applique une police au texte
                        client.println ("<b>"); // Règle le texte en gras
                          client.print("Lyc&eacutee Gustave Eiffel : ");
                        client.print ("</b>"); // Fin de la balise <b>
                      client.print ("</font size>"); // Fin de la balise <font size=7>
                    client.print ("</font face>"); // Fin de la balise <font face=Comic sans MS>
                  client.print("</center>"); // Fin de la balise <center>
                client.println("</u>"); // Fin de la balise <u>
          client.println("<ul>"); // Permet de créer une liste ordonnée ou numéroté
            client.println("<li>"); // Incrémente le nombre qui sera affiché devant l'élement de la liste
           client.print("Absents :");
           client.print(Nom);
          client.println("</ol>"); // Fin de la balise <ol>
          client.println("
"); // Retour à la ligne
          client.print("</body>"); // Fin de la balise <body>
        }
       client.println("</html>");
       break;
      }
      
     // Fin de la transmission et déconnexion
     if (c == '\n') 
     {
     currentLineIsBlank = true; // Commencer une nouvelle ligne
     } 
    else if (c != '\r') 
    {
    currentLineIsBlank = false; // Obtention d'un caractère sur la ligne actuelle
    }
   }
  }
 delay(1); // Temps pour que le Navigateur Internet reçoive les données
 client.stop();  // Couper la connexion
 Serial.println("client disonnected");
 }
 }

Je tiens aussi a remercier toutes les personnes qui ont eu la patience de m'aider <3

Bonjour,

j'ai enfin compris ce qu'il fallait que je fasse exactement !

Apparemment non car ton code ne tiens pas compte de tes besoins.
Je ne vois pas apparaitre la gestion des absents et présents?
Que viennent faire les noms dans l'histoire?

Dans tous les cas pour la déclaration de ton tableau tu as besoin d'un tableau de pointeurs vers des chars (tes noms) et non un tableau de char.
Chaque élément du tableau de pointeurs sera initialisé à l'adresse de la chaine littérale pour ce nom.

char *Nom[] = {"Mendiondo", "Dormont", "Millereux"};

Tu y accède ensuite par:

int i=0;
client.print(Nom[i]);

En choisissant i tu affichera le nom que tu souhaites. Attention n'oublies pas que dans un tableau on commence à 0 donc tu auras:

Nom[0]= "Mendiondo"
Nom[1]="Dormont"
Nom[2]= "Millereux"

Mais si tu veux associer une liste de noms à une valeur "absent" ou "présent" il faut plutôt partir sur un tableau à 2 colonnes: la première pour stocker les noms, la deuxième pour stocker l'information "présent" ou "absent".

:wink:

Effectivement, il y a un souci de déclaration :

char Nom[i] = {"Mendiondo", "Dormont", "Millereux"};
Coucou nulentout merci beaucoup pour cette correction mais je comprends pas pourquoi tu met des 0 et des 1 au tableau pourquoi un est 1 et pourquoi l'autre 0 ?

Bonjour tout le monde,
Pour répondre (Un peu tard) à ta question, je suppose que les noms des personnes sont contenues dans un tableau de chaines de caractères. Le tableau que je te propose contient autant d'éléments que de personnes identifiées par leur noms. Dans ce tableau, respectant l'ordre des personnes, je place un "1" si la personne est présente, et un zéro dans le cas contraire. C'est un moyen détourné d'écrire des booléens. Il serait plus logique de déclarer un tableau de booléens et de le remplir avec des true et de false. C'est alors une question de lisibilité, de philosophie, voir d’optimisation de ton programme.
Amicalement : Nulentout.