Go Down

Topic: Arduino y php consulta (SOLUCIONADO) (Read 12024 times) previous topic - next topic

Sergegsx


Pipper

Bueno serg no te me enojes je  :*, no he leido bien perdon ahi va todo el codigo:

Code: [Select]

#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 88 };
byte server[] = {192, 168, 1,33  };
Client client(server, 80);
int g=0;
int posicion=0;
int prend;
int foco;
long tiempofuncion1 = 1000; // cada segundo
long tiempofuncion2 = 10000; // cada 3 segundos
long TiempoInicial1;
long TiempoInicial2;
int data = 0;
int tempPin = 1;

void setup()
{
Serial.begin(9600);         
Ethernet.begin(mac, ip);       
TiempoInicial1=millis(); // inicia la variable al momento actual para temporizador 1
TiempoInicial2=millis(); // inicia la variable al momento actual para temporizador 2
}
void loop()
{
if (millis() >= (TiempoInicial1+tiempofuncion1)) {
      recibirdatos();
      TiempoInicial1=millis();    // reset de inicio
   }
 
   if (millis() >= (TiempoInicial2+tiempofuncion2)) {
      senddata();
      TiempoInicial2=millis();    // reset de inicio
   }       

while (client.available()) {
    if (g<15){
    char dato_recibido = client.read();
   if (dato_recibido=='B' && posicion==0){
      posicion=1;
      Serial.println("POSICION 1");
      Serial.println(dato_recibido);
    }
    if (((dato_recibido=='H')) && posicion==1){
      posicion=2;
      Serial.println("POSICION 2");
      Serial.println(dato_recibido);
    }
    if (((dato_recibido=='1')||(dato_recibido=='2')||(dato_recibido=='3')||(dato_recibido=='4')||(dato_recibido=='5')) && posicion==2){
      posicion=3;
      if (dato_recibido=='1')  foco=13;
      if (dato_recibido=='2')  foco=28;
      if (dato_recibido=='3')  foco=30;
      Serial.println("POSICION 3");
      Serial.println(dato_recibido);
    }
    if (((dato_recibido=='A')||(dato_recibido=='Y')) && posicion==3){
      posicion=4;
      if (dato_recibido=='A')  prend=1;
      if (dato_recibido=='Y')  prend=0;
      Serial.println("POSICION 4");
      Serial.println(dato_recibido);
      Serial.println(prend);
    }
    if (dato_recibido=='F' && posicion==4){
      posicion=0;
      pinMode(foco, OUTPUT);
      digitalWrite(foco,prend);
      Serial.println("POSICION 5");
      Serial.println(dato_recibido);
      //Serial.println(prend);
      //Serial.println(foco);
    }
    g=g+1;
    }
    else{
    //Serial.flush();
    char d = client.read();
    Serial.print("");}
}
}

void recibirdatos()
{
g=0;
//Serial.println("Dentro de la funcion");
delay(100);                 

if (client.connect()) {
Serial.println("Connected");
client.println("GET /prueba2.php?led=1&led1=2&led2=3");
client.println();
}
else
{
Serial.println("");
}
  if (!client.connected()) {                     
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
}
}

void senddata()
{
data = analogRead(tempPin);      //leemos la temperatura
//Serial.println(data);
Serial.println();
Serial.println("Next");
delay(100);

if (client.connect()) {
Serial.println("Connected");
client.print("GET /prueba1.php?");
client.print("data");
Serial.print("data");
client.print("=");
Serial.print("=");
client.print(data);
Serial.print(data);
client.println(" HTTP/1.1");
client.println("Host: localhost");
client.println();
Serial.println();    
}
else
{
Serial.println("Connection unsuccesfull");
}
//}
//stop client
client.stop();
while(client.status() != 0)
{
  delay(5);
}
}


Saludos.

Sergegsx

no se si tendra algo que ver pero en una funcion lo haces asi

Code: [Select]

  if (!client.connected()) {                     
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
}


y enla otra no compruebas y haces el stop forzado
Code: [Select]
//stop client
client.stop();
while(client.status() != 0)
{
  delay(5);
}


tampoco se para que haces lo del client.status

spiquer

buenas, me estoy uniendo, de La Rioja -Argentina. me interesa este tema. estoy intentando hacer lo mismo. un casa domotica. no para lucrar sino para mi tesis final de lic en sistema. grande aporte
"PIPPER" muy bueno lo tuyo. viendo lo de temperatura creo que no sera tan dificl, por que lo digo. por  es algo que no utilizaria arduino. solo lo almacenarias en la BD para visualizarlo en tu web

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy