Conexão com banco de dados remoto

Alguém poderia me ajudar, sou iniciante e estou aprendendo aos poucos
Estou com um problema com a conexão do meu Arduino com meu banco de dados,
tenho um banco de dados criado localmente que funciona 100% e um remoto que não esta dando certo.
No banco de dados remoto esta tudo configurado corretamente,
parece que o Arduino não recebe os dados que vem do banco e não se conecta

segue o código

/*

Ethernet shield attached to pins 10, 11, 12, 13

*/

/*
Layout de pinos típico usado:

MFRC522 Arduino Arduino Arduino Arduino Arduino
Reader/PCD Uno Mega Nano v3 Leonardo/Micro Pro Micro
Signal Pin Pin Pin Pin Pin Pin

RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
SPI SS SDA(SS) 10 53 D10 10 10
SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
//------------------------------------------------------------------------------------------
#include <SPI.h>
#include <Ethernet.h>
#include <MFRC522.h>

//------------------------------------------------------------------------------------------
void make_request(String& id); // Faça um pedido de crachá
//------------------------------------------------------------------------------------------
// CONFIG ethernet

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192, 198, 1, 12}; // IP da placa Arduino (shild eternet)
byte server[] = {XXX, XXX, XXX, XXX}; //IP do site

EthernetClient client;
//------------------------------------------------------------------------------------------
// CONFIG RFID
#define SS_PIN 9
#define RST_PIN 8
MFRC522 mfrc522(SS_PIN, RST_PIN);
//------------------------------------------------------------------------------------------

void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init(); // Init MFRC522

// disable rfid
pinMode(9, OUTPUT);
digitalWrite(9, HIGH);

// disable sd card
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);

// enable ethernet
pinMode(10, OUTPUT);
digitalWrite(10, LOW);

pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
// acquiring ip without dhcp
Ethernet.begin(mac, ip);
delay(1000);
}
//------------------------------------------------------------------------------------------
void loop()
{ // Se um cartão é lido, então obtenha o id do cartão e mande para make_request () para validação

if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Selecione um dos cartões
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}

String id = "";
for (byte i = 0; i < 4; i++) {
id += String(mfrc522.uid.uidByte*, HEX);*
_ //Serial.print(mfrc522.uid.uidByte*, HEX);_
_
}_
_
Serial.println(id);_
_
delay(200);_
make_request(id);
_
}_
void make_request(String& id)
_
{_
_
digitalWrite(6, LOW);_
_
digitalWrite(5, LOW);_
_
if (client.connect(server, 3306)) // porta do servidor Mysql*_
* {*
* // crie a solicitação apontando para a página sob o caminho apache2 / htdocs / index.php*
* String richiesta = "GET /dboard/ea/check_card.php?card_id="";
_
richiesta += id;_
_
richiesta += "" HTTP/1.0";_
_
client.println(richiesta);_
_
client.println();_
_
delay(50);_
_
Serial.print("conectado");_
_
String risposta = ""; // variável de resposta*_
* while (true)*
* {*
* if (client.available())*
* {*
* char ch = client.read();*
* risposta += String(ch);*
* //Serial.println(c);*
* }*
* // se não houver nada a ser lido a partir do servidor, a mensagem será exibida*
* if (!client.connected())*
* { client.stop();*
* break;*
* }*
* }*
* Serial.println(risposta);*
* Serial.println(risposta.endsWith(" "));*
* if (risposta.endsWith("OPEN")) {*
* Serial.println("Ticket Purchased");*
* digitalWrite(6, LOW);*
* digitalWrite(3, LOW);*
* digitalWrite(5, HIGH);*
* status_sound();
_
delay(500);_
_
digitalWrite(5, LOW);_
_
digitalWrite(3, HIGH);_
_
}_
_
if (risposta.endsWith("CLOSE")) {_
_
Serial.println("Ticket Close");_
_
digitalWrite(6, HIGH);_
_
digitalWrite(5, LOW);_
_
digitalWrite(3, LOW);_
status_sound();
_
delay(500);_
status_sound();
_
delay(500);_
_
digitalWrite(6, LOW);_
_
digitalWrite(3, HIGH);_
_
}_
_
delay(1000);_
_
}_
_
}_
void status_sound() {
_
tone(7, 262, 200);_
_
tone(7, 196, 200);_
_
tone(7, 196, 200);_
_
tone(7, 220, 200);_
_
tone(7, 196, 200);_
_
tone(7, 247, 200);_
_
tone(7, 262, 200);_
_
}_
_
[/td]_
_
[/tr]_
_
[/table]*_

Falta-te definir a gateway... isso costuma ajudar.

De resto tens de dividir todo esse código em partes e ver exactamente o que está a travar.

O servidor que envia os dados está a funcionar?

olá bubulindo blz
o código esta funcionando perfeitamente no acesso local (localhost)

o servidor esta funcionando sim, esta tudo correto as configurações do bd
creio que o servidor nao esteja localizando o ip da placa, quando eu acesso o Arduino externamente eu consigo
colocando o numero de ip da rede e a porta de acesso,
mais nao sei como configurar nesse código o ip

exemplos para acessar o Arduino

xxx.3.87.72 ip pego através do site meu ip

para cessar o Arduino eu coloco

xxx.3.87.72:82 o Arduino esta na porta 82 da minha rede

e se eu colocar esse numero de ip com a porta o arduino da erro de sintase

e onde eu configuro minha gateway?

Tens aqui mais informação.

fala bubulindo blz !! cara já fiz de tudo e não esta dando certo, de uma olhada no codigo e me fale se esta certo os campos que estao sendo colocados, coloquei ate o MySQL_Connection.h pra ver, e nada,
entrei em contato com o pessoal da hostgator para saber sobre o banco de dados e eles me falaram que esta tudo certo. Eu ate entro na tela de login faço login e entro no sistema então esta tudo certo, mais o problema esta mesmo no Arduino que nao esta se conectando ao banco

/*

  Ethernet shield attached to pins 10, 11, 12, 13

*/

/*
 Layout de pinos típico usado:
  -----------------------------------------------------------------------------------------
              MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
              Reader/PCD   Uno           Mega      Nano v3    Leonardo/Micro   Pro Micro
  Signal      Pin          Pin           Pin       Pin        Pin              Pin
  -----------------------------------------------------------------------------------------
  RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
  SPI SS      SDA(SS)      10            53        D10        10               10
  SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
  SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
  SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
*/
//------------------------------------------------------------------------------------------
#include <SPI.h>
#include <Ethernet.h>
#include <MFRC522.h>
#include <MySQL_Connection.h>
#include <MySQL_Cursor.h>
//------------------------------------------------------------------------------------------
void make_request(String& id);                                     // Faça um pedido de crachá
//------------------------------------------------------------------------------------------
// CONFIG ethernet
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  

// o endereço IP depende da sua rede
IPAddress ip(xxx, xxx, x, x); // Ip do arduino (eternet shild)

// o ip do servidor dns 
byte server[] = {"www.xxxxx.com.br"}; //endereço do site onde esta o banco de dados

// o endereço do gateway do roteador:
IPAddress gateway(xxx, xxx, xxx, xxx); // gateway padrão do meu modem

// a sub-rede:
IPAddress subnet(255, 255,255, 0); // mascara de entrada

char user[] = "xxxxxxxx";              // MySQL user login username (creio que não precise ele ja chama uma pagina php com login)

char password[] = "xxxxxx";        // MySQL user login password  (creio que também não precise) 



EthernetClient client;
//------------------------------------------------------------------------------------------
// CONFIG RFID
#define SS_PIN 9
#define RST_PIN 8
MFRC522 mfrc522(SS_PIN, RST_PIN);
//------------------------------------------------------------------------------------------

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();		// Init MFRC522

  // disable rfid
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH);

  // disable sd card
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);

  // enable ethernet
  pinMode(10, OUTPUT);
  digitalWrite(10, LOW);

  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH);
  // acquiring ip without dhcp
 // Ethernet.begin(mac, ip);
 Ethernet.begin(mac, ip, server, gateway, subnet);
  delay(1000);
}
//------------------------------------------------------------------------------------------
void loop()
{ // Se um cartão é lido, então obtenha o id do cartão e mande para make_request () para validação

  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Selecione um dos cartões
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }


  String id = "";
  for (byte i = 0; i < 4; i++) {
    id += String(mfrc522.uid.uidByte[i], HEX);
    //Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println(id);
  delay(200);

  make_request(id);
}

void make_request(String& id)
{
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);
  if (client.connect(server, 3306)) // porta do servidor Mysql no site
  {
    // crie a solicitação apontando para a página sob o caminho apache2 / htdocs / index.php
    String richiesta = "GET /dboard/ea/check_card.php?card_id=\"";
    richiesta += id;
    richiesta += "\" HTTP/1.0";
    client.println(richiesta);
    client.println();
    delay(50);
    Serial.print("conectado");
    String risposta = ""; // variável de resposta

    while (true)
    {
      if (client.available())
      {
        char ch = client.read();
        risposta += String(ch);
        //Serial.println(c);
      }
      // se não houver nada a ser lido a partir do servidor, a mensagem será exibida
      if (!client.connected())
      { client.stop();
        break;
      }
    }
    Serial.println(risposta);
    Serial.println(risposta.endsWith(" "));

    if (risposta.endsWith("OPEN")) {
      Serial.println("Ticket Purchased");
      digitalWrite(6, LOW);
      digitalWrite(3, LOW);
      digitalWrite(5, HIGH);
      status_sound();
      delay(500);
      digitalWrite(5, LOW);
      digitalWrite(3, HIGH);
    }

    if (risposta.endsWith("CLOSE")) {
      Serial.println("Ticket Close");
      digitalWrite(6, HIGH);
      digitalWrite(5, LOW);
      digitalWrite(3, LOW);
      status_sound();
      delay(500);
      status_sound();
      delay(500);
      digitalWrite(6, LOW);
      digitalWrite(3, HIGH);
    }
    delay(1000);
  }
}

void status_sound() {
  tone(7, 262, 200);
  tone(7, 196, 200);
  tone(7, 196, 200);
  tone(7, 220, 200);
  tone(7, 196, 200);
  tone(7, 247, 200);
  tone(7, 262, 200);
}

O Arduino está a fazer login também na base de dados?? Que eu saiba, o Arduino não costuma ter capacidade para isso...

Se estás a fazer com PHP, parece-me que esse pedido tem falta de bastantes campos...

Olha aqui exemplos:

o Arduino faz login através de uma pagina php que esta hospedada no site.

vou tentar ser mais claro no que esta acontecendo ok

quando eu passo o código para o Arduino e conecto com o servidor em local host atravez do xampp ele funciona perfeitamente o controle de acesso, ele conecta ao banco de dados, lé as tags, faz a liberação e tudo
mas..
conectando ele remotamente, eu não consigo fazer a conexão do Arduino com o banco de dados no site, não sei o que eu estou fazendo de errado, já configurei como vc me falou acima

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192, 168, 1, 11}; // IP da placa Arduino (shild eternet)
byte server[] = {108,167,188,218}; //IP do site
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};

e não deu certo

outra coisa que eu reparei foi a mensagem no monitor serial quando eu conecto pelo local host que da certo é...

ac4e8fab (numero da TAG)
conectado (status)
HTTP/1.1 200 OK
Date: Fri, 23 Jun 2017 01:18:08 GMT
Server: Apache/2.4.23 (Win32) OpenSSL/1.0.2h PHP/5.6.28
X-Powered-By: PHP/5.6.28
Content-Length: 4
Connection: close
Content-Type: text/html; charset=UTF-8

OPEN
0
ID liberado

e a mensagem quando esta conectado pelo servidor remoto que não está conectado...

ac4e8fab (numero da TAG)
conectado (status)
HTTP/1.1 400 Bad Request
Server: nginx/1.12.0
Date: Fri, 23 Jun 2017 01:37:09 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 277
Connection: close

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.


Apache Server at * Port 80

0

não sei se tem alguma coisa a ver em relação ao meu sistema local ser Windows e o servidor remoto ser linux

se vc quiser e se vc puder me ajudar eu posso te passar o código do Arduino e o projeto original das paginas em php para vc entender melhor o que eu quero dizer, e assim vc poderia me ajudar ok
abrigado por estar respondendo e tentando me ajudar
abraço

Não entendi o que entendes por local e remoto... Local é o teu pc a correr um servidor web? E remoto é um servidor num sítio qualquer?

Tens a certeza que os ficheiros php são os mesmos?

isso mesmo
Remoto= o banco de dados esta hospedado no site
local host= o mesmo banco de dados esta hospedado no meu computador

alterei o nome do banco de dados remoto tudo certinho, só estou achando que meu Arduino que não esta conseguindo conectar e enviar e receber os dados das tags dos cartões RFID para esse banco de dados (remoto)

se quiser eu posso te enviar todos os arquivos para vc analisar ok
obrigado

Olá pessoal..

Desculpe me intrometer.. :wink:

Anibal_c, pelo erro que vc relatou...

Anibal_C:

400 Bad Request

Bad Request

Your browser sent a request that this server could not understand.


Apache Server at * Port 80

Vc está passando uma informação errada para o servidor php, e ele não está sabendo lidar com isso.

Pelo que entendi, vc passa as informações pelo método GET para a página PHP, e é a página que conversa com se banco mysql correto?

Note que seu servidor apache está lhe dizendo claramente que ele está na porta 80, pq vc quer conectar à porta 3306, esta porta fica por conta do php, ele é quem conversa com o mysql.

Se tiver dúvidas de como seus pacotes estão sendo transmitidos, vc pode baixar o WireShark e investigá-los com calma. É fácil de entender após gastar algumas horas...

Outra coisa, como vc usa o método GET, vc pode simplesmente digitar essa URL em qualquer browser e testar o funcionamento do PHP, inclusive no futuro sugiro aderir ao metodo SET para tornar seu sistema mais seguro.

Ps.. ao testar o funcionamento utilizando o browser, analize os pacotes via wireshark, e verá o que realmente o browser envia para o servidor..

Abs...

ola martlima!

obrigado por tentar me ajudar.
esse erro da porta 80 é que eu alterei no codigo do arduino para se comunicar
na porta 80 do meu servidor remoto
porque a porta 3306 foi o pessoal da hostgator que falou que era a porta de comunicação do mysql
e quando eu alterei para essa porta 80 parece que quase se conectou

segue o codigo que eu coloquei

/*

  Ethernet shield attached to pins 10, 11, 12, 13

*/

/*
 Layout de pinos típico usado:
  -----------------------------------------------------------------------------------------
              MFRC522      Arduino       Arduino   Arduino    Arduino          Arduino
              Reader/PCD   Uno           Mega      Nano v3    Leonardo/Micro   Pro Micro
  Signal      Pin          Pin           Pin       Pin        Pin              Pin
  -----------------------------------------------------------------------------------------
  RST/Reset   RST          9             5         D9         RESET/ICSP-5     RST
  SPI SS      SDA(SS)      10            53        D10        10               10
  SPI MOSI    MOSI         11 / ICSP-4   51        D11        ICSP-4           16
  SPI MISO    MISO         12 / ICSP-1   50        D12        ICSP-1           14
  SPI SCK     SCK          13 / ICSP-3   52        D13        ICSP-3           15
*/
//------------------------------------------------------------------------------------------
#include <SPI.h>
#include <Ethernet.h>
#include <MFRC522.h>

//------------------------------------------------------------------------------------------
void make_request(String& id);                                     // Faça um pedido de crachá
//------------------------------------------------------------------------------------------
// CONFIG ethernet


byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192, 168, 1, 11};  // IP da placa Arduino (shild eternet)
byte server[] = {xxx,xxx,xxx,xxx}; //IP do site
byte gateway[] = {192, 168, 1, 1};
byte subnet[] = {255, 255, 255, 0};

EthernetClient client;
//------------------------------------------------------------------------------------------
// CONFIG RFID
#define SS_PIN 9
#define RST_PIN 8
MFRC522 mfrc522(SS_PIN, RST_PIN);
//------------------------------------------------------------------------------------------

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();		// Init MFRC522

  // disable rfid
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH);

  // disable sd card
  pinMode(4, OUTPUT);
  digitalWrite(4, HIGH);

  // enable ethernet
  pinMode(10, OUTPUT);
  digitalWrite(10, LOW);

  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(3, OUTPUT);
  digitalWrite(3, HIGH);
  // acquiring ip without dhcp
  Ethernet.begin(mac, ip);
  delay(1000);
}
//------------------------------------------------------------------------------------------
void loop()
{ // Se um cartão é lido, então obtenha o id do cartão e mande para make_request () para validação

  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Selecione um dos cartões
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }


  String id = "";
  for (byte i = 0; i < 4; i++) {
    id += String(mfrc522.uid.uidByte[i], HEX);
    //Serial.print(mfrc522.uid.uidByte[i], HEX);
  }
  Serial.println(id);
  delay(200);

  make_request(id);
}

void make_request(String& id)
{
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);
  if (client.connect(server, 80)) // porta do servidor Mysql
  {
    // crie a solicitação apontando para a página sob o caminho apache2 / htdocs / index.php
    String richiesta = "GET /dboard/ea/check_card.php?card_id=\"";
    richiesta += id;
    richiesta += "\" HTTP/1.0";
    client.println(richiesta);
    client.println();
    delay(50);
    Serial.println("conectado");
    String risposta = ""; // variável de resposta

    while (true)
    {
      if (client.available())
      {
        char ch = client.read();
        risposta += String(ch);
        //Serial.println(c);
      }
      // se não houver nada a ser lido a partir do servidor, a mensagem será exibida
      if (!client.connected())
      { client.stop();
        break;
      }
    }
    Serial.println(risposta);
    Serial.println(risposta.endsWith(" "));

    if (risposta.endsWith("OPEN")) {
      Serial.println("ID liberado");
      digitalWrite(6, LOW);
      digitalWrite(3, LOW);
      digitalWrite(5, HIGH);
      status_sound();
      delay(500);
      digitalWrite(5, LOW);
      digitalWrite(3, HIGH);
    }

    if (risposta.endsWith("CLOSE")) {
      Serial.println("ID Recusado");
      digitalWrite(6, HIGH);
      digitalWrite(5, LOW);
      digitalWrite(3, LOW);
      status_sound();
      delay(500);
      status_sound();
      delay(500);
      digitalWrite(6, LOW);
      digitalWrite(3, HIGH);
    }
    delay(1000);
  }
}

void status_sound() {
  tone(7, 262, 200);
  tone(7, 196, 200);
  tone(7, 196, 200);
  tone(7, 220, 200);
  tone(7, 196, 200);
  tone(7, 247, 200);
  tone(7, 262, 200);
}

vou dar uma olhada a respeito do WireShark
Abraço

Bom..

Acho que a strting que vc está enviando para o servidor está faltando muita informação.

Estou colocando aqui um trecho de um código meu que funciona perfeitamente, neste código estou utilizando o POST, mas é só trocar de POST pra GET que funciona da mesma forma... inicialmente eu utilizava o GET, mas não quero que nenhum gatuno acesse minha pagina php e insira valores pela linha de comando de forma tão fácil... :wink:

static void sendToServer (boolean rst, boolean Test) {
	
	EthernetClient clientPost;
	String DataStr = String("");
	
	if (clientPost.connect( ServerIP, 80))
	{
		DataStr += "envia=1&boardreset=" + String(rst, DEC) ;	
		DataStr += "&serialnumber=Xxxxx";
		DataStr += "&localip=" + IpAddress2String(Ethernet.localIP());
		DataStr += "&dnsip=" + IpAddress2String(Ethernet.dnsServerIP());
		DataStr += "&gwip=" + IpAddress2String(Ethernet.gatewayIP());
		DataStr += "&sensorA0=" + String((analogRead(A0)),DEC);
		
		
		clientPost.print("POST http://"); // basta trocar POST por GET
		clientPost.print(ServerIP);
		clientPost.print("/");
		clientPost.print(ServerPATH);
		clientPost.print(" HTTP/1.0\r\n");
		clientPost.print("Host: ");
		clientPost.print(ServerIP);
		clientPost.print("\r\n");
		clientPost.print("Content-Length: ");
		clientPost.print(DataStr.length());
		clientPost.print("\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n");
		clientPost.println(DataStr);
	}
	else {	
		#ifdef DEBUG
		Serial.println(F("\n##Erro ao conectar ao post SERVER##"));
		Serial.print(F("ServerString="));
		Serial.println(ServerIP);
		#endif // DEBUG
	}
	
/// .........

Removi manualmente algumas coisas do código, mas o importante alí e saber formatar o pacote que será enviado, inclusive a sequencia das informações, pois estamos falando de protocolo IP que é bastante complexo.

Não tenho certeza se é isto, mas pelo meu entendimento o erro está exatamente alí, seu servidor recebe uma informação incompleta e indevidamente formatada...

Abs...

não estou conseguindo unir esse código que vc me passou ao meu código
sou um pouco leigo nesse assunto se puder me ajudar eu agradeço

Olá...

Seria mais ou menos isto.... Não testei, portanto podem haver erros....

void make_request(String& id)
{
	digitalWrite(6, LOW);
	digitalWrite(5, LOW);
	if (client.connect(server, 80)) // porta do servidor Mysql
	{
		// crie a solicitação apontando para a página sob o caminho apache2 / htdocs / index.php
		String richiesta = "?card_id=\"";
		richiesta += id;
		richiesta += "\"";
		
		client.print("GET http://");
		client.print(server); // server sem o http://, já foi colocado na linha acima...
		client.print("/dboard/ea/check_card.php"); // este é o caminho da página... se for outro vc. deve mudar esta linha...
		client.print(" HTTP/1.0\r\n");
		client.print("Host: ");
		client.print(server);
		client.print("\r\n");
		client.print("Content-Length: ");
		client.print(richiesta.length());
		client.print("\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n");
		client.println(richiesta);
		
		// para debugar o que vc enviou...
		Serial.print("GET http://");
		Serial.print(server);
		Serial.print("/dboard/ea/check_card.php");
		Serial.print(" HTTP/1.0\r\n");
		Serial.print("Host: ");
		Serial.print(server);
		Serial.print("\r\n");
		Serial.print("Content-Length: ");
		Serial.print(richiesta.length());
		Serial.print("\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n");
		Serial.println(richiesta);

		// daqui para frente segue seu código...

Abs;...

Muito Obrigado martlima
agora ele se conectou,
só que agora ele não esta conseguindo me retornar o que esta no banco de dados
vou ver se tem alguma coisa que esta bloqueando ele a se conctar
obrigado