ciao Mauro, ho trovato il modo di leggere e stampare su seriale le temperature da 3 sonde di temperatura su un unico ingresso di Arduino.
come faccio a "darle" in pasto a freedomotic?
ti allego lo sketch che ho usato e cosa mi "stampa " il monitor seriale, scusa se procedo cosi ma visto il risultato positivo sui relè magari riesci ad indirizzarmi su come procedere per termometro e termostato in freedomotic.
ciao Adalberto
Getting temperatures...
temperatura casa: C: 26.25 F: 79.25
temperatura cantina: C: 25.50 F: 77.90
temperatura esterna: C: 25.25 F: 77.45
sketch:
// This Arduino sketch reads DS18B20 "1-Wire" digital
// temperature sensors.
// Tutorial:
//
http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 10 on the Arduino
#define ONE_WIRE_BUS 10
// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
// Assign the addresses of your 1-Wire temp sensors.
// See the tutorial on how to obtain these addresses:
//
http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.htmlDeviceAddress casa = { 0x28, 0xFF, 0xB6, 0x14, 0x4C, 0x04, 0x00, 0x1C };
DeviceAddress cantina = { 0x28, 0xFD, 0x0B, 0xBD, 0x05, 0x00, 0x00, 0x6F };
DeviceAddress esterna = { 0x28, 0x9C, 0x58, 0x04, 0x00, 0x00, 0x80, 0xFB };
void setup(void)
{
// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(casa, 10);
sensors.setResolution(cantina, 10);
sensors.setResolution(esterna, 10);
}
void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
Serial.print("Error getting temperature");
} else {
Serial.print("C: ");
Serial.print(tempC);
Serial.print(" F: ");
Serial.print(DallasTemperature::toFahrenheit(tempC));
}
}
void loop(void)
{
delay(2000);
Serial.print("Getting temperatures...\n\r");
sensors.requestTemperatures();
Serial.print("temperatura casa: ");
printTemperature(casa);
Serial.print("\n\r");
Serial.print("temperatura cantina: ");
printTemperature(cantina);
Serial.print("\n\r");
Serial.print("temperatura esterna: ");
printTemperature(esterna);
Serial.print("\n\r\n\r");
}
Ps:vorrei fare una chiacchierata telefonica con te per un idea che mi sta passando per la testa, di un possibile sviluppo.
preferirei parlarne a voce poi eventualmente ne parleremo nel gruppo se fosse una cosa interessante.