client.print( my variables);

Can someone point me in the right direction? I am trying to insert variables, strings, chars and other data into my webclient get requests. Can someone tell me what I am doing wrong? I just can’t quite figure out the coding format for this, thx

Specifically, I am trying to insert the MAC value into my GET request. I will use your supreme help to then insert temperature sensor values from code that is not present in this example.

I have tried:

client.print(mac);

client.print({mac});

client.print(mac, HEX);

client.print(mac, String);

client.print(HEX, mac);

client.print(mac, Byte);

and:

Ethernet.client(mac) = variable1;

client.print(variable1);

client(mac) = somevariable;

client.print(somevariable);

I am trying to end up with a GET request that sends essentially:

(“GET /freezer/?time_stamp=2015-04-06%2023:12:01&device_id=0xDE, 0xB1, 0xBE, 0xEF, 0x23, 0xED&sensor_id=1&fahrenheit=120.01&celsius=12.1 HTTP/1.1”);

or

/freezer/?time_stamp=2015-04-06%2023:12:01&device_id=0xDE, 0xB1, 0xBE, 0xEF, 0x23, 0xED&sensor_id=1&fahrenheit=120.01&celsius=12.1

#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[] = { 0xDE, 0xB1, 0xBE, 0xEF, 0x23, 0xED };

// if you don’t want to use DNS (and reduce your sketch size)

// use the numeric IP instead of the name for the server:

//IPAddress server(74,125,232,128); // numeric IP for Google (no DNS)

char server = “usav1svopsd1”; // name address for Google (using DNS)

// Set the static IP address to use if the DHCP fails to assign

IPAddress ip(10,1,132,199);

// 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:

if (Ethernet.begin(mac) == 0) {

Serial.println(“Failed to configure Ethernet using DHCP”);

// no point in carrying on, so do nothing forevermore:

// try to congifure using IP address instead of DHCP:

Ethernet.begin(mac, ip);

}

// 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.print(“GET /freezer/?time_stamp=2015-04-06%2023:12:01&device_id=”); client.print(“mac”); client.println(“&sensor_id=1&fahrenheit=120.01&celsius=12.1 HTTP/1.1”);

client.println(“Host: usav1svopsd1”);

client.println(“Connection: close”);

client.println();

}

looks like the answer is it is being interpreted as an array, so I asked a programmer onsite and he gave me this:

client.print(mac[0]);

which I used to create this:

client.print(“GET /freezer/?time_stamp=2015-04-07%2023:12:01&device_id=”); client.print(mac[0]);client.print(“.”);client.print(mac[1]);client.print(“.”);client.print(mac[2]); client.println(“&sensor_id=1&fahrenheit=120.01&celsius=12.1 HTTP/1.1”);

but now the problem is the command returns the values:

222.177.190

when I am expecting to get:

0xDE.0xB1.0xBE

or even better

DE.B1.BE

ok clearly I need to convert decimal to hex. I will look that up and post the results in order to help others, thanks

found this to work! client.println(mac[0], HEX);