Focusing on getting multiple temp sensors on the same pin now, but i keep getting fliers in the readings. mostly -127 which I have read is attributed to a non read of the device. Can I get rid of any lines of code here?
#include "spark-dallas-temperature/spark-dallas-temperature.h"
#include "OneWire/OneWire.h"
#include "blynk/blynk.h"
#include "blynk/BlynkSimpleParticle.h"
#include "SparkCorePolledTimer/SparkCorePolledTimer.h" // USED TO SEND PUSH DATA AT INTERVAL SET
char auth[] = "token"; // CHANGE TO BLYNK DASHBOARD TOKEN
#define ONE_WIRE_BUS D0 // DS18B20 Thermometer Stuff
#define TEMPERATURE_PRECISION 11 // DS18B20 Thermometer Stuff
OneWire oneWire(ONE_WIRE_BUS); // DS18B20 Thermometer Stuff
DallasTemperature sensors(&oneWire); // DS18B20 Thermometer Stuff
//Run I2C Scanner to get address of DS18B20(s)
//CHANGE TO YOUR DEVICE'S ADDRESS
DeviceAddress Thermometer1 = { 0x28, 0xFF, 0x44, 0x50, 0x16, 0x15, 0x3, 0xC };
DeviceAddress Thermometer2 = { 0x28, 0xFF, 0xD5, 0x4D, 0x16, 0x15, 0x3, 0xD3 };
DeviceAddress Thermometer3 = { 0x28, 0xFF, 0x2D, 0x37, 0x16, 0x15, 0x3, 0xF8 };
DeviceAddress Thermometer4 = { 0x28, 0xFF, 0x6A, 0x24, 0x16, 0x15, 0x3, 0xF0 };
double InTempC = -1;
double Temp1 = -1;
double Temp2 = -1; // XXXXXXXX
double Temp3 = -1;
double Temp4 = -1;
void update18B20Temp(DeviceAddress deviceAddress, double &tempC);
void setup()
{
// DS18B20 initialization
sensors.begin();
sensors.setResolution(Thermometer1, TEMPERATURE_PRECISION);
sensors.setResolution(Thermometer2, TEMPERATURE_PRECISION); // XXXXXXXXXX
sensors.setResolution(Thermometer3, TEMPERATURE_PRECISION);
sensors.setResolution(Thermometer4, TEMPERATURE_PRECISION);
Serial.begin(9600); // open serial over USB
//Blynk initialization
Blynk.begin(auth);
}
void loop()
{
Blynk.run();
// DS18B20
sensors.requestTemperatures();
update18B20Temp(Thermometer1, InTempC);
Temp1 = (InTempC * 9)/5 + 32;
update18B20Temp(Thermometer2, InTempC);
Temp2 = (InTempC * 9)/5 + 32;
update18B20Temp(Thermometer3, InTempC);
Temp3 = (InTempC * 9)/5 + 32;
update18B20Temp(Thermometer4, InTempC);
Temp4 = (InTempC * 9)/5 + 32;
// Serial.print("Water Temp:");
//Serial.print(waterTempF);
//Serial.println("F");
delay(5000); // READ DELAY - TOOK THIS OUT AND IT GOT JUMPY WITH -127'S C AND 196'S F
}
void update18B20Temp(DeviceAddress deviceAddress, double &tempC)
{
tempC = sensors.getTempC(deviceAddress);
Blynk.virtualWrite(8, tempC);
Blynk.virtualWrite(9, Temp1);
Blynk.virtualWrite(10, Temp2);
Blynk.virtualWrite(11, Temp3);
Blynk.virtualWrite(12, Temp4);
}