Monitor for central heating system (e.g. 2zones+hw) Supports up to 15 temp probes (DS18B20/DS18S20) 3 valve monitors Gas pulse meter recording Use stand-alone or with nodeEnergyServer See http://robdobson.com/2015/09/central-heating-monitor

Dependencies:   EthernetInterfacePlusHostname NTPClient Onewire RdWebServer SDFileSystem-RTOS mbed-rtos mbed-src

Committer:
Bobty
Date:
Mon Sep 28 10:33:14 2015 +0000
Revision:
16:89778849e9f7
Parent:
9:0e103c2f869a
Child:
20:7933076df5af
Turned on debugging messages on thermometers; Updated web callbacks method signatures

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Bobty 9:0e103c2f869a 1 // Handles Thermometers
Bobty 9:0e103c2f869a 2 // Rob Dobson, 2015
Bobty 9:0e103c2f869a 3
Bobty 9:0e103c2f869a 4 #ifndef Thermometers__H
Bobty 9:0e103c2f869a 5 #define Thermometers__H
Bobty 9:0e103c2f869a 6
Bobty 9:0e103c2f869a 7 #include "RdDS18B20.h"
Bobty 9:0e103c2f869a 8
Bobty 9:0e103c2f869a 9 struct TemperatureValue
Bobty 9:0e103c2f869a 10 {
Bobty 9:0e103c2f869a 11 time_t timeStamp;
Bobty 9:0e103c2f869a 12 char address[DS18B20::ONEWIRE_ADDR_STRLEN];
Bobty 9:0e103c2f869a 13 double tempInCentigrade;
Bobty 9:0e103c2f869a 14 };
Bobty 9:0e103c2f869a 15
Bobty 9:0e103c2f869a 16 class Thermometers
Bobty 9:0e103c2f869a 17 {
Bobty 9:0e103c2f869a 18 public:
Bobty 9:0e103c2f869a 19 Thermometers(int numTempSensorPins, const PinName tempSensorPins[], int serviceIntervalInMs);
Bobty 9:0e103c2f869a 20 void Init();
Bobty 9:0e103c2f869a 21 void Service();
Bobty 9:0e103c2f869a 22 int GetTemperatureValues(int maxTempValues, TemperatureValue* tempValues, int maxAgeInSecs);
Bobty 9:0e103c2f869a 23 static const int numSecondsBetweenThermReadings = 10;
Bobty 9:0e103c2f869a 24 static const int timeForThermReadingInSecs = 2;
Bobty 9:0e103c2f869a 25 static const int reGetThermometerAddressesAfterNumReadings = 100;
Bobty 9:0e103c2f869a 26 static const int MAX_ONEWIRE_BUSES = 1;
Bobty 9:0e103c2f869a 27 static const int MAX_THERMOMETERS = 8;
Bobty 9:0e103c2f869a 28
Bobty 9:0e103c2f869a 29 private:
Bobty 9:0e103c2f869a 30 // Thermometer info
Bobty 9:0e103c2f869a 31 int _numTempSensorPins;
Bobty 9:0e103c2f869a 32 const PinName* _tempSensorPins;
Bobty 9:0e103c2f869a 33 int _numThermometerBuses;
Bobty 9:0e103c2f869a 34 DS18B20* _thermometerBuses[MAX_ONEWIRE_BUSES];
Bobty 9:0e103c2f869a 35 int _serviceIntervalInMs;
Bobty 9:0e103c2f869a 36
Bobty 9:0e103c2f869a 37 // Counters for state machine
Bobty 9:0e103c2f869a 38 int _countForThermReadings;
Bobty 9:0e103c2f869a 39 int _countForGetThermometerAddresses;
Bobty 16:89778849e9f7 40
Bobty 16:89778849e9f7 41 // DEBUG
Bobty 16:89778849e9f7 42 int _failReadCount;
Bobty 16:89778849e9f7 43 int _failAddrCount;
Bobty 9:0e103c2f869a 44 };
Bobty 9:0e103c2f869a 45
Bobty 9:0e103c2f869a 46 #endif