Yes, is is missing because in the original is that brackett:Multi ds18b20 on thingspeak code
NOW IT IS WORKING
THANK YOU VERY MUCH TO ALL OF YOU HELPED.
THANK YOU FOR YOUR KIND LOVE APPROACH TO NEWBIES
HERE IS THE FINAL WORKING CODE:
// This #include statement was automatically added by the Particle IDE.
#include "thingspeak/thingspeak.h"
// This #include statement was automatically added by the Particle IDE.
#include "OneWire/OneWire.h"
// This #include statement was automatically added by the Particle IDE.
#include "spark-dallas-temperature/spark-dallas-temperature.h"
ThingSpeakLibrary::ThingSpeak thingspeak ("MY.KEY");
// Data wire is plugged into port 2 on the Particle Photon
#define ONE_WIRE_BUS D2
#define TEMPERATURE_PRECISION 9
int F1temp ;
int F2temp ;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
double tempF = 0.0;
double tempC = 0.0;
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// arrays to hold device addresses
DeviceAddress insideThermometer, outsideThermometer;
// function to print a device address
void printAddress(DeviceAddress deviceAddress);
void printAddress(DeviceAddress deviceAddress)
{
for (uint8_t i = 0; i < 8; i++)
{
// zero pad the address if necessary
if (deviceAddress[i] < 16) Serial.print("0");
Serial.print(deviceAddress[i], HEX);
}
}
// function to print the temperature for a device
void printTemperature(DeviceAddress deviceAddress);
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
Serial.print("Temp C: ");
Serial.print(tempC);
Serial.print(" Temp F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}
// function to print a device’s resolution
void printResolution(DeviceAddress deviceAddress);
void printResolution(DeviceAddress deviceAddress)
{
Serial.print("Resolution: ");
Serial.print(sensors.getResolution(deviceAddress));
Serial.println();
}
// main function to print information about a device
void printData(DeviceAddress deviceAddress);
void printData(DeviceAddress deviceAddress)
{
Serial.print("Device Address: ");
printAddress(deviceAddress);
Serial.print(" ");
printTemperature(deviceAddress);
Serial.println();
}
void setup(void)
{
sensors.begin();// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
Spark.variable("tempf", &tempF, DOUBLE);
// Start up the library
sensors.begin();
// locate devices on the bus
Serial.print("Locating devices…");
Serial.print("Found ");
Serial.print(sensors.getDeviceCount(), DEC);
Serial.println(" devices.");
// report parasite power requirements
Serial.print("Parasite power is: ");
if (sensors.isParasitePowerMode()) Serial.println("ON");
else Serial.println("OFF");
// assign address manually. the addresses below will need to be changed
// to valid device addresses on your bus. device address can be retrieved
// by using either oneWire.search(deviceAddress) or individually via
// sensors.getAddress(deviceAddress, index)
//insideThermometer = { 0x28, 0x1D, 0x39, 0x31, 0x2, 0x0, 0x0, 0xF0 };
//outsideThermometer = { 0x28, 0x3F, 0x1C, 0x31, 0x2, 0x0, 0x0, 0x2 };
// search for devices on the bus and assign based on an index. ideally,
// you would do this to initially discover addresses on the bus and then
// use those addresses and manually assign them (see above) once you know
// the devices on your bus (and assuming they don’t change).
//
// method 1: by index
if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0");
if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1");
// method 2: search()
// search() looks for the next device. Returns 1 if a new address has been
// returned. A zero might mean that the bus is shorted, there are no devices,
// or you have already retrieved all of them. It might be a good idea to
// check the CRC to make sure you didn’t get garbage. The order is
// deterministic. You will always get the same devices in the same order
//
// Must be called before search()
//oneWire.reset_search();
// assigns the first address found to insideThermometer
//if (!oneWire.search(insideThermometer)) Serial.println("Unable to find address for insideThermometer");
// assigns the seconds address found to outsideThermometer
//if (!oneWire.search(outsideThermometer)) Serial.println("Unable to find address for outsideThermometer");
// show the addresses we found on the bus
Serial.print("Device 0 Address: ");
printAddress(insideThermometer);
Serial.println();
Serial.print("Device 1 Address: ");
printAddress(outsideThermometer);
Serial.println();
// set the resolution to 9 bit
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
Serial.print("Device 0 Resolution: ");
//Serial.print(sensors.getResolution(insideThermometer), DEC);
Serial.println();
Serial.print("Device 1 Resolution: ");
//Serial.print(sensors.getResolution(outsideThermometer), DEC);
Serial.println();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print("Requesting temperatures…");
sensors.requestTemperatures();
Serial.println("DONE");
delay(300000);
// print the device information
printData(insideThermometer);
printData(outsideThermometer);sensors.requestTemperatures();
tempC = sensors.getTempCByIndex(0);
tempF = tempC * 9.0 / 5.0 + 32.0;
int WT = sensors.getTempC(insideThermometer);
F1temp = (WT * 9.0)/ 5.0 + 32.0;
int OT = sensors.getTempC(outsideThermometer);
F2temp = (OT * 9.0)/ 5.0 + 32.0;
bool valSet = thingspeak.recordValue(1, String(F1temp, DEC));
bool valSet1 = thingspeak.recordValue(8, String(F2temp, DEC));
bool valsSent= thingspeak.sendValues();
bool valsSent1= thingspeak.sendValues();
}