Go Down

Topic: Problème d'envoi de donnée dans un fichier .txt par URL avec Shield Ethernet (Read 57 times) previous topic - next topic

nanophase

Bonjour à tous !

Je suis bloqué depuis un moment sur un certain point.
Je m'explique, j'ai une carte arduino UNO monté sur un shield Ethernet. J'ai modifié un code arduino WebClient afin que l'identifiant d'un badge RFID (avec un module RC522) soit enregistré dans un fichier texte. J'utilise un serveur LAMP afin de simuler en local la manip' (car la finalité sera d'enregistrer cette donnée dans une base de donnée MySQL).
Je passe par un fichier php afin d'enregistrer la valeur de l'Identifiant.


Voici mon code :
(les lignes concernant l'RFID sont pour plus tard n'y faites pas attention ^^)

Code: [Select]
#include <SPI.h>
#include <RFID.h>
#include <Ethernet2.h>

RFID RFID(10,9);

//int UID[5];


// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = { 0x90, 0xA2, 0xDA, 0x11, 0x1C, 0x82 };
// if you don't want to use DNS (and reduce your sketch size)
// use the numeric IP instead of the name for the server:
IPAddress server(192,168,229,10);  // numeric IP for Google (no DNS)
//char server[] = "www.google.com";    // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign
IPAddress ip(192,168,229,25);

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetClient client;

void setup()
{
  Serial.begin(9600);

 while (!Serial) {
     // wait for serial port to connect. Needed for Leonardo only
  }

  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    // try to congifure using IP address instead of DHCP:
    Ethernet.begin(mac, ip);
  }

  // give the Ethernet shield a second to initialize:
  delay(1000);
  Serial.println("connexion...");

  // if you get a connection, report back via serial:
  if (client.connect(server, 80)) {
    Serial.println("connexion avec le server etabli");
    // Make a HTTP request:
    client.println("GET http://localhost/APPEL_UID_V2/LitValeurs.php?UID=A1B2C3D4C5");
    client.println("Host: localhost");
    client.println("Connection: close");
    client.println();


  }
  else {
    // s'il n'y a pas de conection server:
    Serial.println("echec de la connexion");
  }

 
}

void loop()

{
  // if there are incoming bytes available
  // from the server, read them and print them:
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    // do nothing forevermore:
    while (true);
  }


/*{
    if (RFID.isCard()) { 
          if (RFID.readCardSerial()) {       
            Serial.print("L'UID est: ");
            for(int i=0;i<=4;i++)
            {
              UID[i]=RFID.serNum[i];
              Serial.print(UID[i],HEX);
              Serial.print(".");
            }
            Serial.println("");
          }         
          RFID.halt(); */

}
 



Lorsque j'écrit la ligne suivante dans l'URL : http://localhost/APPEL_UID_V2/LitValeurs.php?UID=A1B2C3D4C5
Cela fonctionne donc je ne comprend pas pourquoi je n'arrive pas à le faire avec mon shield Ethernet.


Et voici mon php qui extractait les valeurs transmises dans l'URL et sauvegarde dans un fichier .txt (appelé identifiant):

Code: [Select]
<?php
$i=0;

$GrandreursPhysique[0]=$_GET["UID"];


$Fichier_Sauvegarde fopen("identifiant.txt","w");

for($i=0;$i<3;$i++)
{
fputs($Fichier_Sauvegarde,$GrandreursPhysique[$i]."\n");
}
fclose($Fichier_Sauvegarde);
?>




Je vous remercies d'avance pour vos réponses  :)

hbachetti

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up