#include <Xively.h>
#include <XivelyClient.h>
#include <XivelyDatastream.h>
#include <XivelyFeed.h>
#include <CountingStream.h>
#include <b64.h>
#include <HttpClient.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SPI.h>
#include <Ethernet.h>
//Defines for DS18B20
#define ONE_WIRE_BUS 3
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress Sensor1 = {0x28, 0x82, 0x03, 0x55, 0x05, 0x00, 0x00, 0xB8};
DeviceAddress Sensor2 = {0x28, 0x82, 0x03, 0x55, 0x05, 0x00, 0x00, 0xB8};
//End Defines for DS18B20
//Defines for Xively Ethernet
char xivelyKey[] = "YKTsQhH5n2bt9AXyPpFQ123gfd7jH0jTccxmAds6AvAr7aBc";
byte mac[] = {
0x00, 0x1D, 0x0D, 0x2C, 0x55, 0x3D};
EthernetClient client;
XivelyClient Xivelyclient(client);
//End Defines for Xively Ethernet
double s1 = 0;
double s2 = 0;
#define MYDELAY 5000
char sensor1Id[] = "FermSensor1";
char sensor2Id[] = "Ambient";
XivelyDatastream datastreams[] = {
XivelyDatastream(sensor1Id, strlen(sensor1Id), DATASTREAM_FLOAT),
XivelyDatastream(sensor2Id, strlen(sensor2Id), DATASTREAM_FLOAT)};
XivelyFeed feed(633693457, datastreams, 2);
void setup(void)
{
// start serial port
Serial.begin(9600);
SetupSensors();
while (Ethernet.begin(mac) != 1)
{
Serial.println("Error getting IP address via DHCP, trying again...");
delay(15000);
}
}
void SetupSensors()
{
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(Sensor1, 12);
sensors.setResolution(Sensor2, 12);
}
float getTemperature(DeviceAddress deviceAddress)
{
//Get temperature, convert to Fahrenheit, and return
return DallasTemperature::toFahrenheit(sensors.getTempC(deviceAddress));
}
void loop(void)
{
SensorLoopAndSend();
}
void SensorLoopAndSend()
{
sensors.requestTemperatures();
s1 = getTemperature(Sensor1);
s2 = getTemperature(Sensor2);
Serial.print("S1: ");
Serial.println(s1);
Serial.print("S2: ");
Serial.println(s2);
if((s1 != 185) && (s2 != 185) && (s1 != 32) && (s2 != 32))
{
datastreams[0].setFloat(s1);
datastreams[1].setFloat(s2);
int ret = Xivelyclient.put(feed, xivelyKey);
}
delay(MYDELAY);
}