Hi, I have an Arduino Uno and a V3 Ethernet shield.
At some point, I am going to be logging some GPS coordinates via the ethernet shield and a GPS module. For now, I am just trying to figure out how to send the data. My code:
/*
Web client
This sketch connects to a website (http://www.google.com)
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, 0x0D, 0x45, 0x2B };
byte ip[] = { 192, 168, 2, 2 };
byte dnServer[] = { 192, 168, 2, 1 };
byte gateway[] = { 192, 168, 2, 1 };
byte subnet[] = { 255, 255, 255, 0 };
byte server[] = { 184, 168, 27, XX };
unsigned long latitude = 44;
// 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;
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// start the Ethernet connection:
Ethernet.begin(mac, ip, dnServer, gateway, subnet);
// give the Ethernet shield a second to initialize:
delay(1000);
Serial.println("connecting...");
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /default.aspx?q1=latitude HTTP/1.1");
client.println("HOST: test.com");
client.println("USER-AGENT: Arduino");
client.println();
}
else {
// kf you didn't get a connection to the server:
Serial.println("connection failed");
}
}
void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
Serial.print(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
for(;;)
;
}
}
As you can tell, I just started out with the stock web client example. I have a friend who wrote the default.aspx query string. As the code is now, the webserver gives an error, "0 - Exception: Input string was not in a correct format". I know it is looking for ASCI characters, numbers specifically. When I change
/default.aspx?q1=latitude
to
/default.aspx?q1=1
or any other number, it works fine.
So, I need to convert my long named latitude to char first? If someone could point me in the right direction it would be appreciated.
Thanks!