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
RdDS18B20.h
- Committer:
- Bobty
- Date:
- 2015-02-22
- Revision:
- 9:0e103c2f869a
- Parent:
- 8:5980547ae71c
- Child:
- 16:89778849e9f7
File content as of revision 9:0e103c2f869a:
// Handles OneWire temperature sensors DB18S20 // Can handle multiple devices per pin // Rob Dobson, 2015 #ifndef RdDS18B20__H #define RdDS18B20__H #include "mbed.h" #include "Onewire.h" class DS18B20 { public: DS18B20(PinName mbedPin); void ReqConvert(); double ReadTemperature(int addrIdx); void DebugPrintAddress(int addrIdx); void SearchToGetAddresses(); int GetNumAddresses() { return _numValidAddresses; } uint8_t* GetAddress(int addrIdx, uint8_t* addrBufPtr); char* GetAddressStr(int addrIdx); double GetLatestTemperature(int addrIdx, time_t& timeOfReading); static const int ONEWIRE_ADDR_STRLEN = 3 * ONEWIRE_ADDR_BYTES + 1; static const int MAX_BUS_DEVICES = 8; static const int INVALID_TEMPERATURE = -1000.0; private: int _numValidAddresses; uint8_t _addrTable[MAX_BUS_DEVICES][ONEWIRE_ADDR_BYTES]; double _temperatureTable[MAX_BUS_DEVICES]; time_t _timeOfReadingTable[MAX_BUS_DEVICES]; Onewire _oneWire; char _addrStr[ONEWIRE_ADDR_STRLEN]; }; #endif