Hey Azdle,
Thank you for your answer.
This is what i did but i get the result 0 on Exosite and i dont know why.
#include <EEPROM.h>
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Exosite.h>
// Pin use
#define ONEWIRE 7 //pin to use for One Wire interface
// Set up which Arduino pin will be used for the 1-wire interface to the sensor
OneWire oneWire(ONEWIRE);
DallasTemperature sensors(&oneWire);
/*==============================================================================
* Configuration Variables
*
* Change these variables to your own settings.
*=============================================================================*/
String cikData = "26eff170d21c965f0aca8f1bf60a81d370c34353"; // <-- FILL IN YOUR CIK HERE! (https://portals.exosite.com -> Add Device)
byte macData[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; // <-- FILL IN YOUR Ethernet shield's MAC address here.
// User defined variables for Exosite reporting period and averaging samples
#define REPORT_TIMEOUT 30000 //milliseconds period for reporting to Exosite.com
#define SENSOR_READ_TIMEOUT 5000 //milliseconds period for reading sensors in loop
/*==============================================================================
* End of Configuration Variables
*=============================================================================*/
class EthernetClient client;
Exosite exosite(cikData, &client);
//
// The 'setup()' function is the first function that runs on the Arduino.
// It runs completely and when complete jumps to 'loop()'
//
void setup() {
Serial.begin(9600);
Serial.println("Boot");
// Start up the OneWire Sensors library
sensors.begin();
delay(1000);
Serial.println("Starting Exosite Temp Monitor");
Serial.print("OneWire Digital Pin Specified: ");
Serial.println(ONEWIRE);
Ethernet.begin(macData);
// wait 3 seconds for connection
delay(3000);
}
//
// The 'loop()' function is the 'main' function for Arduino
// and is essentially a constant while loop.
//
void loop() {
static unsigned long sendPrevTime = 0;
static unsigned long sensorPrevTime = 0;
static float tempC;
char buffer[7];
String readParam = "";
String writeParam = "";
String returnString = "";
Serial.print("."); // print to show running
// Read sensor every defined timeout period
if (millis() - sensorPrevTime > SENSOR_READ_TIMEOUT) {
Serial.println();
Serial.println("Requesting temperature...");
sensors.requestTemperatures(); // Send the command to get temperatures
float tempC = sensors.getTempCByIndex(0);
Serial.print("Celsius: ");
Serial.print(tempC);
Serial.println(" C ..........DONE");
sensorPrevTime = millis();
}
// Send to Exosite every defined timeout period
if (millis() - sendPrevTime > REPORT_TIMEOUT) {
Serial.println(); //start fresh debug line
Serial.println("Sending data to Exosite...");
readParam = ""; //nothing to read back at this time e.g. 'control&status' if you wanted to read those data sources
writeParam = "temp="; //parameters to write e.g. 'temp=65.54' or 'temp=65.54&status=on'
String tempValue = dtostrf(tempC, 1, 2, buffer); // convert float to String, minimum size = 1, decimal places = 2
writeParam += tempValue; //add converted temperature String value
//writeParam += "&message=hello"; //add another piece of data to send
if ( exosite.writeRead(writeParam, readParam, returnString)) {
Serial.println("Exosite OK");
if (returnString != "") {
Serial.println("Response:");
Serial.println(returnString);
}
}
else {
Serial.println("Exosite Error");
}
sendPrevTime = millis(); //reset report period timer
Serial.println("done sending.");
}
delay(1000); //slow down loop
}