I’ve assembled a Photon out of box with 2 DS18B20; one on d2 and one on d3 since i don’t know how to gather temps on same digital input. Heck, I don’t even know how to code.
My application is putting a probe each into a freezer each that reach just under 0 degrees F. I assume they are at 4-7 degrees F at moment. I had been logging debug at room temperatures without issue.
Today, i drove the hour and dropped the unit off at my Dad’s house and installed.
I watched the temps drop from ambient air to near 4 degrees where they would then report -196 for hours. Below is actually looking better…
For a long while they just kept report -196.
I need help in these areas please:
- Is the code I have correct to obtain the above temp range?
- Is the code correct in case the temp drops below zero F?
- What can i do to reduce the -196 values?
- BONUS - how do i read both temps off D2, for example?
When answering - please note, i am just getting started. I don’t have a background in C or C++.
Here are a few recent outputs:
logD3 Temp: -196.600006May 17th at 7:08:36 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:08:36.225Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:08:36 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:08:36.156Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 7.362500May 17th at 7:08:35 pmfreezer_gkring
{"data":"D2 Temp: 7.362500","ttl":"60","published_at":"2016-05-18T00:08:35.447Z","coreid":"370036001047353138383138","name":"log"}
Temperature7.362500May 17th at 7:08:35 pmfreezer_gkring
{"data":"7.362500","ttl":"6000","published_at":"2016-05-18T00:08:35.378Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:07:34 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:07:34.662Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:07:34 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:07:34.590Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 7.025000May 17th at 7:07:33 pmfreezer_gkring
{"data":"D2 Temp: 7.025000","ttl":"60","published_at":"2016-05-18T00:07:33.880Z","coreid":"370036001047353138383138","name":"log"}
Temperature7.025000May 17th at 7:07:33 pmfreezer_gkring
{"data":"7.025000","ttl":"6000","published_at":"2016-05-18T00:07:33.812Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:06:33 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:06:33.095Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:06:33 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:06:33.026Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.687500May 17th at 7:06:32 pmfreezer_gkring
{"data":"D2 Temp: 6.687500","ttl":"60","published_at":"2016-05-18T00:06:32.316Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.687500May 17th at 7:06:32 pmfreezer_gkring
{"data":"6.687500","ttl":"6000","published_at":"2016-05-18T00:06:32.247Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:05:31 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:05:31.532Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:05:31 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:05:31.462Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.575000May 17th at 7:05:30 pmfreezer_gkring
{"data":"D2 Temp: 6.575000","ttl":"60","published_at":"2016-05-18T00:05:30.750Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.575000May 17th at 7:05:30 pmfreezer_gkring
{"data":"6.575000","ttl":"6000","published_at":"2016-05-18T00:05:30.682Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:04:29 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:04:29.966Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:04:29 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:04:29.898Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.462500May 17th at 7:04:29 pmfreezer_gkring
{"data":"D2 Temp: 6.462500","ttl":"60","published_at":"2016-05-18T00:04:29.184Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.462500May 17th at 7:04:29 pmfreezer_gkring
{"data":"6.462500","ttl":"6000","published_at":"2016-05-18T00:04:29.116Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:03:28 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:03:28.400Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:03:28 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:03:28.331Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.350000May 17th at 7:03:27 pmfreezer_gkring
{"data":"D2 Temp: 6.350000","ttl":"60","published_at":"2016-05-18T00:03:27.621Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.350000May 17th at 7:03:27 pmfreezer_gkring
{"data":"6.350000","ttl":"6000","published_at":"2016-05-18T00:03:27.552Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:02:26 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:02:26.836Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:02:26 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:02:26.767Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.237500May 17th at 7:02:26 pmfreezer_gkring
{"data":"D2 Temp: 6.237500","ttl":"60","published_at":"2016-05-18T00:02:26.056Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.237500May 17th at 7:02:25 pmfreezer_gkring
{"data":"6.237500","ttl":"6000","published_at":"2016-05-18T00:02:25.987Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: 3.650000May 17th at 7:01:25 pmfreezer_gkring
{"data":"D3 Temp: 3.650000","ttl":"60","published_at":"2016-05-18T00:01:25.275Z","coreid":"370036001047353138383138","name":"log"}
Temperature3.650000May 17th at 7:01:25 pmfreezer_gkring
{"data":"3.650000","ttl":"6000","published_at":"2016-05-18T00:01:25.203Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 6.125000May 17th at 7:01:24 pmfreezer_gkring
{"data":"D2 Temp: 6.125000","ttl":"60","published_at":"2016-05-18T00:01:24.515Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.125000May 17th at 7:01:24 pmfreezer_gkring
{"data":"6.125000","ttl":"6000","published_at":"2016-05-18T00:01:24.423Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: -196.600006May 17th at 7:00:23 pmfreezer_gkring
{"data":"D3 Temp: -196.600006","ttl":"60","published_at":"2016-05-18T00:00:23.710Z","coreid":"370036001047353138383138","name":"log"}
Temperature-196.600006May 17th at 7:00:23 pmfreezer_gkring
{"data":"-196.600006","ttl":"6000","published_at":"2016-05-18T00:00:23.640Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 5.900000May 17th at 7:00:22 pmfreezer_gkring
{"data":"D2 Temp: 5.900000","ttl":"60","published_at":"2016-05-18T00:00:22.949Z","coreid":"370036001047353138383138","name":"log"}
Temperature5.900000May 17th at 7:00:22 pmfreezer_gkring
{"data":"5.900000","ttl":"6000","published_at":"2016-05-18T00:00:22.880Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: 4.775000May 17th at 6:59:22 pmfreezer_gkring
{"data":"D3 Temp: 4.775000","ttl":"60","published_at":"2016-05-17T23:59:22.171Z","coreid":"370036001047353138383138","name":"log"}
Temperature4.775000May 17th at 6:59:22 pmfreezer_gkring
{"data":"4.775000","ttl":"6000","published_at":"2016-05-17T23:59:22.098Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 5.787500May 17th at 6:59:21 pmfreezer_gkring
{"data":"D2 Temp: 5.787500","ttl":"60","published_at":"2016-05-17T23:59:21.385Z","coreid":"370036001047353138383138","name":"log"}
Temperature5.787500May 17th at 6:59:21 pmfreezer_gkring
{"data":"5.787500","ttl":"6000","published_at":"2016-05-17T23:59:21.317Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: 5.450000May 17th at 6:58:20 pmfreezer_gkring
{"data":"D3 Temp: 5.450000","ttl":"60","published_at":"2016-05-17T23:58:20.602Z","coreid":"370036001047353138383138","name":"log"}
Temperature5.450000May 17th at 6:58:20 pmfreezer_gkring
{"data":"5.450000","ttl":"6000","published_at":"2016-05-17T23:58:20.532Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 5.675000May 17th at 6:58:19 pmfreezer_gkring
{"data":"D2 Temp: 5.675000","ttl":"60","published_at":"2016-05-17T23:58:19.821Z","coreid":"370036001047353138383138","name":"log"}
Temperature5.675000May 17th at 6:58:19 pmfreezer_gkring
{"data":"5.675000","ttl":"6000","published_at":"2016-05-17T23:58:19.752Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: 6.125000May 17th at 6:57:19 pmfreezer_gkring
{"data":"D3 Temp: 6.125000","ttl":"60","published_at":"2016-05-17T23:57:19.036Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.125000May 17th at 6:57:18 pmfreezer_gkring
{"data":"6.125000","ttl":"6000","published_at":"2016-05-17T23:57:18.967Z","coreid":"370036001047353138383138","name":"Temperature"}
logD2 Temp: 5.562500May 17th at 6:57:18 pmfreezer_gkring
{"data":"D2 Temp: 5.562500","ttl":"60","published_at":"2016-05-17T23:57:18.255Z","coreid":"370036001047353138383138","name":"log"}
Temperature5.562500May 17th at 6:57:18 pmfreezer_gkring
{"data":"5.562500","ttl":"6000","published_at":"2016-05-17T23:57:18.187Z","coreid":"370036001047353138383138","name":"Temperature"}
logD3 Temp: 6.800000May 17th at 6:56:17 pmfreezer_gkring
{"data":"D3 Temp: 6.800000","ttl":"60","published_at":"2016-05-17T23:56:17.471Z","coreid":"370036001047353138383138","name":"log"}
Temperature6.800000May 17th at 6:56:17 pmfreezer_gkring
{"data":"6.800000","ttl":"6000","published_at":"2016-05-17T23:56:17.403Z","coreid":"370036001047353138383138","name":"Temperature"}
Code on Photon:
// This #include statement was automatically added by the Particle IDE.
#include "spark-dallas-temperature/spark-dallas-temperature.h"
// This #include statement was automatically added by the Particle IDE.
#include "OneWire/OneWire.h"
double tempC = 0.0;
double tempF = 0.0;
int tempSensorPinD2 = D2;
int tempSensorPinD3 = D3;
OneWire oneWireD2(tempSensorPinD2);
OneWire oneWireD3(tempSensorPinD3);
DallasTemperature sensorD2(&oneWireD2);
DallasTemperature sensorD3(&oneWireD3);
float temperatureF = 0.0;
char resultstr[64];
bool readingValid = true; //default to true
void setup() {
Serial.begin(9600);
sensorD2.begin();
sensorD3.begin();
Spark.variable("tempc", &tempC, DOUBLE);
Spark.variable("tempf", &tempF, DOUBLE);
}
void loop() {
sensorD2.requestTemperatures();
temperatureF=sensorD2.getTempFByIndex( 0 );
sprintf(resultstr, "{\"value F\":%.4f}",temperatureF);
Serial.println(temperatureF); //For debug only
bool success;
success = Particle.publish("Temperature", String(temperatureF),6000,PUBLIC);
Serial.println("--Success is " + String(success)); //For debug only
Spark.publish("log", "D2 Temp: " + String(temperatureF));
if (!success) {
//// get here if event publish did not work
Serial.println("Particle.publish FAILED"); //For debug only
}
//###################################
if (temperatureF < 95 && temperatureF > 0) {
// ledControl("l0,LOW");
Serial.println("LOW"); //For debug only
//led.setColor(green);
}
if (temperatureF > 95 && temperatureF > 0) {
//ledControl("l0,HIGH");
Serial.println("HIGH"); //For debug only
//led.fade(green, red, 5000);
}
//###################################
sensorD3.requestTemperatures();
temperatureF=sensorD3.getTempFByIndex( 0 );
sprintf(resultstr, "{\"value F\":%.4f}",temperatureF);
Serial.println(temperatureF); //For debug only
//bool success;
success = Particle.publish("Temperature", String(temperatureF),6000,PUBLIC);
Serial.println("--Success is " + String(success)); //For debug only
Spark.publish("log", "D3 Temp: " + String(temperatureF));
if (!success) {
//// get here if event publish did not work
Serial.println("Particle.publish FAILED"); //For debug only
}
//###################################
// if (temperatureF < 95 && isValidReading(temperatureF) {
if (temperatureF < 95 && temperatureF > 0) {
// ledControl("l0,LOW");
Serial.println("LOW"); //For debug only
//led.setColor(green);
}
// if (temperatureF> 95 && isValidReading(tempeatureF) {
if (temperatureF > 95 && temperatureF > 0) {
//ledControl("l0,HIGH");
Serial.println("HIGH"); //For debug only
//led.fade(green, red, 5000);
}
//###################################
delay(60000); //milliseconds - increase in production to save battery (60000 for 1 minute or even higher)
}
/*bool isValidReading(float t) {
bool retVal = false;
if (t > 0) {
retVal = true;
Serial.println("true");
}
return retVal;
}
*/
Thanks a ton. I hope to pay it forward for the next person in my spot.
~Douglas