/*
Web client
This sketch connects to a solar system inverter and takes the power output of the moment in Watt (4 chars). Then print it to serial TTL console of arduino
using an Arduino Wiznet Ethernet shield.
Circuit:
* Ethernet shield attached to pins 10, 11, 12, 13
created 18 Dec 2009
modified 9 Apr 2012
by David A. Mellis
*/
#include <SPI.h>
#include <Ethernet.h>
// 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 , 0x00 , 0x6A , 0x23 } ;
IPAddress server( 192 ,168 ,0 ,55 ) ; // Solarlog 200
// 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;
char cifra1;
char cifra2;
char cifra3;
char cifra4;
boolean finito;
int delimitatore;
void setup( ) {
Serial.begin ( 9600 ) ;
// 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:
for ( ;; )
;
} else { Serial.println ( "eth0 is up and configured via dhcp." ) ; }
delay( 1000 ) ;
if ( client.connect ( server, 80 ) ) {
// Make a HTTP request:
client.println ( "GET /min_day.js HTTP/1.0" ) ;
client.println ( ) ;
}
}
void loop( ) {
finito = 0 ;
if ( client.available ( ) ) {
delimitatore = 0 ;
while ( finito == 0 ) {
char c = client.read ( ) ;
Serial.print ( c) ;
if ( delimitatore== 1 ) { cifra1= c; delimitatore++ ; }
if ( c== '|' ) { delimitatore++ ; }
if ( ( delimitatore== 2 ) && ( c! = ';' ) ) { cifra2= c; delimitatore++ ; } else { if ( c== ';' ) { finito= 1 ; } ; } ;
if ( ( delimitatore== 3 ) && ( c! = ';' ) ) { cifra3= c; delimitatore++ ; } else { if ( c== ';' ) { finito= 1 ; } ; } ;
if ( ( delimitatore== 4 ) && ( c! = ';' ) ) { cifra4= c; delimitatore++ ; } else { if ( c== ';' ) { finito= 1 ; } ; } ;
if ( delimitatore== 5 ) { finito= 1 ; client.stop ( ) ; } ;
}
}
Serial.println ( cifra1) ;
Serial.println ( cifra2) ;
Serial.println ( cifra3) ;
Serial.println ( cifra4) ;
Serial.println ( "end" ) ;
delay ( 5000 ) ;
}
text that webclient reads:
m[ mi++ ] = "03.01.13 16:50:00|6;0;6;6230;212;209;13"
expected serial output:
6
end
serial output:
6
6
6
6
end
why??
LyoKICBXZWIgY2xpZW50CiAKIFRoaXMgc2tldGNoIGNvbm5lY3RzIHRvIGEgc29sYXIgc3lzdGVtIGludmVydGVyIGFuZCB0YWtlcyB0aGUgcG93ZXIgb3V0cHV0IG9mIHRoZSBtb21lbnQgaW4gV2F0dCAoNCBjaGFycykuIFRoZW4gcHJpbnQgaXQgdG8gc2VyaWFsIFRUTCBjb25zb2xlIG9mIGFyZHVpbm8KIHVzaW5nIGFuIEFyZHVpbm8gV2l6bmV0IEV0aGVybmV0IHNoaWVsZC4gCiAKIENpcmN1aXQ6CiAqIEV0aGVybmV0IHNoaWVsZCBhdHRhY2hlZCB0byBwaW5zIDEwLCAxMSwgMTIsIDEzCiAKIGNyZWF0ZWQgMTggRGVjIDIwMDkKIG1vZGlmaWVkIDkgQXByIDIwMTIKIGJ5IERhdmlkIEEuIE1lbGxpcwogCiAqLwoKI2luY2x1ZGUgPFNQSS5oPgojaW5jbHVkZSA8RXRoZXJuZXQuaD4KCi8vIEVudGVyIGEgTUFDIGFkZHJlc3MgZm9yIHlvdXIgY29udHJvbGxlciBiZWxvdy4KLy8gTmV3ZXIgRXRoZXJuZXQgc2hpZWxkcyBoYXZlIGEgTUFDIGFkZHJlc3MgcHJpbnRlZCBvbiBhIHN0aWNrZXIgb24gdGhlIHNoaWVsZApieXRlIG1hY1tdID0geyAgMHg5MCwgMHhBMiwgMHhEQSwgMHgwMCwgMHg2QSwgMHgyMyB9OwpJUEFkZHJlc3Mgc2VydmVyKDE5MiwxNjgsMCw1NSk7IC8vIFNvbGFybG9nIDIwMAoKLy8gSW5pdGlhbGl6ZSB0aGUgRXRoZXJuZXQgY2xpZW50IGxpYnJhcnkKLy8gd2l0aCB0aGUgSVAgYWRkcmVzcyBhbmQgcG9ydCBvZiB0aGUgc2VydmVyIAovLyB0aGF0IHlvdSB3YW50IHRvIGNvbm5lY3QgdG8gKHBvcnQgODAgaXMgZGVmYXVsdCBmb3IgSFRUUCk6CkV0aGVybmV0Q2xpZW50IGNsaWVudDsKCmNoYXIgIGNpZnJhMTsKY2hhciAgY2lmcmEyOwpjaGFyICBjaWZyYTM7CmNoYXIgIGNpZnJhNDsKYm9vbGVhbiBmaW5pdG87CmludCBkZWxpbWl0YXRvcmU7Cgp2b2lkIHNldHVwKCkgewogICAgCiAgICAKCiAgU2VyaWFsLmJlZ2luKDk2MDApOwogIAogICAgLy8gc3RhcnQgdGhlIEV0aGVybmV0IGNvbm5lY3Rpb246CiAgaWYgKEV0aGVybmV0LmJlZ2luKG1hYykgPT0gMCkgewogICAgU2VyaWFsLnByaW50bG4oIkZhaWxlZCB0byBjb25maWd1cmUgRXRoZXJuZXQgdXNpbmcgREhDUCIpOwogICAgLy8gbm8gcG9pbnQgaW4gY2Fycnlpbmcgb24sIHNvIGRvIG5vdGhpbmcgZm9yZXZlcm1vcmU6CiAgICBmb3IoOzspCiAgICAgIDsKICB9IGVsc2UgeyBTZXJpYWwucHJpbnRsbigiZXRoMCBpcyB1cCBhbmQgY29uZmlndXJlZCB2aWEgZGhjcC4iKTsgfQogIAogIGRlbGF5KDEwMDApOwoKaWYgKGNsaWVudC5jb25uZWN0KHNlcnZlciwgODApKSB7CiAgICAvLyBNYWtlIGEgSFRUUCByZXF1ZXN0OgogICAgICBjbGllbnQucHJpbnRsbigiR0VUIC9taW5fZGF5LmpzIEhUVFAvMS4wIik7CiAgICAgIGNsaWVudC5wcmludGxuKCk7CiAgICAgIH0KCgogIAp9Cgp2b2lkIGxvb3AoKSB7CgogIAogICAgICAKZmluaXRvID0gMDsKICAgICAgICAKaWYgKGNsaWVudC5hdmFpbGFibGUoKSkgeyAgCiAgZGVsaW1pdGF0b3JlICA9IDA7CiAgICB3aGlsZShmaW5pdG8gPT0gMCl7CiAgICAgIGNoYXIgYyA9IGNsaWVudC5yZWFkKCk7CiAgICAgIFNlcmlhbC5wcmludChjKTsKICAgICAgICAgIGlmIChkZWxpbWl0YXRvcmU9PTEpIHsgY2lmcmExPWM7IGRlbGltaXRhdG9yZSsrOyB9CiAgICAgICAgICBpZiAoYz09J3wnKSB7IGRlbGltaXRhdG9yZSsrOyB9CiAgICAgICAgICBpZiAoKGRlbGltaXRhdG9yZT09MikmJiAoYyE9JzsnKSkgeyBjaWZyYTI9YzsgZGVsaW1pdGF0b3JlKys7IH0gZWxzZSB7IGlmIChjPT0nOycpIHtmaW5pdG89MTt9OyB9OwogICAgICAgICAgaWYgKChkZWxpbWl0YXRvcmU9PTMpJiYgKGMhPSc7JykpIHsgY2lmcmEzPWM7IGRlbGltaXRhdG9yZSsrOyB9IGVsc2UgeyBpZiAoYz09JzsnKSB7ZmluaXRvPTE7fTsgfTsgICAgICAgICAgCiAgICAgICAgICBpZiAoKGRlbGltaXRhdG9yZT09NCkmJiAoYyE9JzsnKSkgeyBjaWZyYTQ9YzsgZGVsaW1pdGF0b3JlKys7IH0gZWxzZSB7IGlmIChjPT0nOycpIHtmaW5pdG89MTt9OyB9OwogICAgICAgICAgaWYgKGRlbGltaXRhdG9yZT09NSkge2Zpbml0bz0xOyBjbGllbnQuc3RvcCgpO307CiAgICB9Cn0gICAgCgoKClNlcmlhbC5wcmludGxuKGNpZnJhMSk7ClNlcmlhbC5wcmludGxuKGNpZnJhMik7ClNlcmlhbC5wcmludGxuKGNpZnJhMyk7ClNlcmlhbC5wcmludGxuKGNpZnJhNCk7ClNlcmlhbC5wcmludGxuKCJlbmQiKTsKICAKZGVsYXkgKDUwMDApOwoKfQoKCnRleHQgdGhhdCB3ZWJjbGllbnQgcmVhZHM6CgptW21pKytdPSIwMy4wMS4xMyAxNjo1MDowMHw2OzA7Njs2MjMwOzIxMjsyMDk7MTMiCgpleHBlY3RlZCBzZXJpYWwgb3V0cHV0Ogo2CgoKCmVuZAoKCnNlcmlhbCBvdXRwdXQ6Cgo2CjYKNgo2CmVuZAoKd2h5Pz8=