Avatar billede steen-h Mester
10. november 2013 - 07:44 Der er 1 kommentar og
1 løsning

Arduino parse side med gsm shield

Jeg er ved at lave et project hvor jeg vil læse data fra en hjemmeside.
Vil lige sige at jeg har haft det til at virke.
Nu tror jeg at problemet er den side jeg vil læse.
Det er et gsm shield med en SIM900 og en Leonardo

Her er sketchen til arduinoen

int onModulePin = 9;        // the pin to switch on the module (without press on button)

int data_size;
char aux;
int x = 0;

void switchModule(){
    digitalWrite(onModulePin,HIGH);
    delay(2000);
    digitalWrite(onModulePin,LOW);
}

void ShowSerialData()
{
  while(Serial1.available()!=0)
    Serial.write(Serial1.read());
}

void setup(){
    Serial1.begin(19200);   
    Serial.begin(19200);               
    delay(2000);
    pinMode(led, OUTPUT);
    pinMode(onModulePin, OUTPUT);
    digitalWrite(led,LOW);
    switchModule();                    // switches the module ON
    do{
        while(Serial1.available()==0);
    }while(Serial1.read()!='y'); 
    delay(100);

  Serial1.println("AT+CSQ");
  delay(100);
  ShowSerialData();
 
  Serial1.println("AT+CGATT?");
  delay(100);
  ShowSerialData();

    Serial1.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");    //Sets GPRS parameters
    delay(1000);
    ShowSerialData();   
   
    Serial1.println("AT+SAPBR=3,1,\"APN\",\"internet\"");
    delay(4000);
    ShowSerialData();
   
    Serial1.println("AT+SAPBR=1,1");
    delay(2000);
    ShowSerialData();

    Serial1.println("AT+HTTPINIT");
    delay(2000);
    ShowSerialData();   
    }

void loop(){
  Serial1.println("AT+HTTPPARA=\"URL\",\"www.libelium.com\"");    //Sets URL direction
//    Serial1.println("AT+HTTPPARA=\"URL\",\"www.stenbjergbryghus.dk/time.php\"");    //Sets URL direction
    delay(1000);
    ShowSerialData();
   
    Serial1.println("AT+HTTPACTION=0");  //Connects with the HTTP server, this action can need to wait a several time
    delay(10000);
    ShowSerialData();

    Serial1.println("AT+HTTPREAD");  //Reads 200 bytes from byte 0   
    delay(300);
  //ShowSerialData();
   
    do{
        while(Serial1.available()==0);
        aux=Serial1.read();     
    Serial.print(aux);       
       
    }while(aux!=':');
 
    data_size=0;
    while(Serial1.available()==0);
   
  aux=Serial1.read();
    Serial.print(aux);
    do{
        data_size*=10;
        data_size+=(aux-0x30);
        while(Serial1.available()==0);
        aux=Serial1.read();     
    Serial.print(aux);       
    }while(aux!='\r');
   
    do{
        while(Serial1.available()==0);
    }while(Serial1.read()!='\n'); 

Serial.println(" datasize");
Serial.println(data_size);
Serial.println("_*****_");
    for(x=0;x<=data_size;x++){
        while(Serial1.available()==0);
char inChar = Serial1.read();  // læs data fra nettet
Serial.print(inChar);       

    }
    delay(100);

    switchModule();                    // switches the module OFF   
    delay(900000);
}


Her er min time.php

<!DOCTYPE html>
<html>
<head>
<title>ARDUINO</title>
</head>
<body>
<p>
<?php

echo(date("H,i,d,m,y", time()));

?>
</p>
</body>
</html>


Jeg kan læse www.libelium.com
men ikke www.stenbjergbryghus.dk/time.php
Hvad gør jeg galt ?
Avatar billede steen-h Mester
10. november 2013 - 10:13 #1
Det er ved
Serial1.println("AT+HTTPREAD");
det går galt.

Ved  www.stenbjergbryghus.dk/time.php får jeg ikke størrelsen på siden retur.
det gør jeg ved  www.libelium.com
Avatar billede steen-h Mester
11. november 2013 - 17:10 #2
Så tror jeg fejlen er fundet.

Jeg har adgang til 2 webhoteller ved one.com, der har det virket men gør det ikke mere.

Så har jeg adgang til et webhotel ved unoeuro, der virker det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester