termometro e termostato freedomotic e Arduino

39 views
Skip to first unread message

Adalberto Carrera

unread,
Jun 22, 2016, 3:40:48 AM6/22/16
to Freedomotic - IoT and Smart Spaces Framework
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.html

DeviceAddress 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.




Mauro Cicolella

unread,
Jun 23, 2016, 2:34:19 AM6/23/16
to Freedomotic - IoT and Smart Spaces Framework
Ciao,
lo sketch necessita di alcune modifiche per essere compatibile con il plugin.
In particolare occorre modificare le stringhe inviate sulla seriale utilizzando il formato di cui abbiamo accennato nell'altra mail.
Alla fine dovresti leggere
T1,26.25
T2,25.50
T3,25.25

dove T1,T2,T3 sono rispettivamente le temperature di casa, cantina ed esterni.

Ti allego le due funzioni modificate. Ho anche rimosso la temperatura espressa in gradi Fahrenheit. 
Anche il plugin necessita di una piccola variazione che cercherò di fare non appena più libero dagli impegni.

Mauro

-------


void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  if (tempC == -127.00) {
    Serial.print("Error getting data");
  } else {
    Serial.print(tempC);
   }
}

void loop(void)
{
  delay(2000);
  sensors.requestTemperatures();
 
  Serial.print("T1,");
  printTemperature(casa);
  Serial.print("\r\n");
  Serial.print("T2,");
  printTemperature(cantina);
  Serial.print("\r\n");
  Serial.print("T3,");
  printTemperature(esterna);
  Serial.print("\r\n");
}

Adalberto Carrera

unread,
Jun 27, 2016, 4:06:35 AM6/27/16
to Freedomotic - IoT and Smart Spaces Framework
grazie Mauro, ho caricato lo sketch su arduino e mi legge perfettamente le tre soglie.
Attendo con ansia su come procedere per configurare la plugin e se devo modificare qualche file cmd come per i relè,
grazie mille degli aiuti

Adalberto
Reply all
Reply to author
Forward
0 new messages