truhensteuerung/Truhe.cpp
Simon Zeyer 263b9a1a56 Change DHT Sensor to DS18B20
The Sensors have a unique ID and can be used in a bus configuration on one
gpo pin,
but we are using one pin/bus per sensor and only read the first sensor
on a bus to be able to change the sensors later without changing the code.
2022-07-04 21:52:50 +02:00

57 lines
1.6 KiB
C++

#include "Truhe.h"
Truhe::Truhe(String name, int relay, uint8_t sensorpin){
_name = name;
_relay = relay;
_sensorpin = sensorpin;
_oneWire = OneWire(sensorpin);
_sensors = DallasTemperature(&_oneWire);
};
void Truhe::setup() {
Serial.println("Setup " + _name);
Serial.println(_sensorpin);
pinMode(_relay, OUTPUT);
digitalWrite(_relay, HIGH);
pinMode(_sensorpin, INPUT);
_sensors.begin();
}
void Truhe::mess() {
Serial.println(String(_name) + " mess()");
_sensors.requestTemperatures();
_cur_temp = _sensors.getTempCByIndex(0);
// Check if reading was successful
if(_cur_temp != DEVICE_DISCONNECTED_C)
{
Serial.println(String(_name) + "\t\t" + String((int)_cur_temp) + " grad gelesen");
}
else
{
Serial.println("Error: Could not read temperature data: "+ String(_name));
_cur_temp = 99; // Liewer warmes bier als garkenn bier
_stat = 2;
}
};
void Truhe::schalt(int oT, int uT) {
Serial.print(String(_name) + " schalt() stat: " + String(_stat));
if (_cur_temp >= oT && _stat != 1 && _stat != 2) {
digitalWrite(_relay, LOW);
_stat = 1;
Serial.println("schalt " + _name + " zu " + String(_stat));
}
else if (_cur_temp <= uT && _stat != 0 && _stat != 2) {
digitalWrite(_relay, HIGH);
_stat = 0;
Serial.println("schalt " + _name + " zu " + String(_stat));
}
}
int Truhe::getUpdLcd(){ return _updlcd;};
void Truhe::setUpdLcd(int updlcd){ _updlcd = updlcd;};
int Truhe::getRelay(){ return _relay;};
int Truhe::getSensorPin(){return _sensorpin;};
int Truhe::getStat(){return _stat;};
int Truhe::getCurTemp(){return int(_cur_temp);};
String Truhe::getName(){return _name;};