Arduino - problema de arduino al conectarse a un servidor web

 
Vista:

problema de arduino al conectarse a un servidor web

Publicado por Avellaneda478 (1 intervención) el 16/09/2019 22:49:20
Hola, buenas tardes.
Somos el grupo de una escuela secundaria, en donde decidimos hacer un proyecto (lector de tarjetas y registro de usuario); en este proyecto utilizamos: un ArduinoUno + EthernetShield + RFID + PHP + mysql. Cuando uno ingresa la tarjeta se abre la puerta y manda los datos de la tarjeta a la base de datos de un servidor (WAMP).

Tenemos un proyecto ("controlpres") que corre en el apache del WAMP (en otra pc de la LAN), y la idea es que el arduino, una vez que el usuario pasa la tarjeta, envíe la información de la misma para que esto se almacene en la base de datos, para ello queremos que el arduino "corra" un php que se encarga de la inserción en la base.


El problema es que cuando tenemos que enviar los datos, no se conecta al servidor (apache); Llega hasta la línea de la conexión y el if (client.connect(server, 5100)) se va por el "else", o sea, que algo está pasando en la conexión (es decir, creemos que no se conecta).

NOTA:
modelo del Arduino: Arduino Uno R3
modelo del EthernetShield: W5100

Acá les dejo el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include <SPI.h>
#include <MFRC522.h>
#include <EthernetClient.h>
#include <EthernetUdp.h>
#include <Dns.h>
#include <EthernetServer.h>
#include <Ethernet.h>
 
#define SS_PIN 9
#define RST_PIN 8
#define LED_G 5 //define green LED pin
#define LED_R 4 //define red LED
#define RELAY 3 //relay pin
#define ACCESS_DELAY 2000
#define DENIED_DELAY 1000
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
// Configuracion del Ethernet Shield
 byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Direccion MAC
IPAddress ip(10, 0, 96, 12); // Direccion IP del Arduino
 IPAddress server (10,0,30,254); //     10,0,96,18           10,0,30,254          Direccion IP del servidor
EthernetClient client;
byte estado_conexion;
boolean anteriormente_conectado;
int analog_pin = 0;
 
void setup(void) {
 
  Serial.begin(9600);
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();          // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(RELAY, OUTPUT);
  digitalWrite(RELAY, LOW);
  Serial.println("Coloque su tarjeta sobre el lector...");
  Serial.println();
 
Serial.println("conectando....");
 
  if (client.connect(server, 5100)) {
  Serial.println("conectado");
    client.println("GET /controlpres/iot.php?valor=88 2C 89 A6&acc_val=1"); // Enviamos los datos por GET
    client.println();
  } else {
    Serial.println("Fallo de conexion");
  }
}
 
void loop(void) {
   // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "1A B9 92 B9") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Acceso autorizado");
    Serial.println();
    delay(500);
    digitalWrite(RELAY, HIGH);
    digitalWrite(LED_G, HIGH);
    delay(ACCESS_DELAY);
    digitalWrite(RELAY, LOW);
    digitalWrite(LED_G, LOW);
  }
 
 else   {
    Serial.println("Acceso denegado");
    Serial.println();
    digitalWrite(LED_R, HIGH);
    delay(DENIED_DELAY);
    digitalWrite(LED_R, LOW);
  }
  if (client.available()){
    char c= client.read();
    Serial.println(c);
  }
  if (!client.connected()){
    Serial.println();
    Serial.println("desconectando...");
    client.stop();
    for(;;)
    ;
  }
 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder