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.
This commit is contained in:
parent
e3c611e909
commit
263b9a1a56
@ -85,6 +85,10 @@ void loop() {
|
||||
else if (truhen[i].getStat() == 0) {
|
||||
lcd.print("O");
|
||||
}
|
||||
else if (truhen[i].getStat() == 2) {
|
||||
lcd.setCursor(8, i);
|
||||
lcd.print("Error");
|
||||
}
|
||||
if(truhen[i].getUpdLcd() == 0){
|
||||
lcd.setCursor(15, i);
|
||||
lcd.print(String("|"));
|
||||
@ -99,4 +103,4 @@ void loop() {
|
||||
}
|
||||
}
|
||||
wdt_reset();
|
||||
}
|
||||
}
|
||||
|
40
Truhe.cpp
40
Truhe.cpp
@ -1,37 +1,47 @@
|
||||
#include "Truhe.h"
|
||||
Truhe::Truhe(String name, int relay, uint8_t dhtpin): _dht(dhtpin, DHT22) {
|
||||
_name = name;
|
||||
Truhe::Truhe(String name, int relay, uint8_t sensorpin){
|
||||
_name = name;
|
||||
_relay = relay;
|
||||
_dhtpin = dhtpin;
|
||||
_sensorpin = sensorpin;
|
||||
_oneWire = OneWire(sensorpin);
|
||||
_sensors = DallasTemperature(&_oneWire);
|
||||
|
||||
};
|
||||
|
||||
void Truhe::setup() {
|
||||
Serial.println("Setup " + _name);
|
||||
Serial.println(_dhtpin);
|
||||
Serial.println(_sensorpin);
|
||||
pinMode(_relay, OUTPUT);
|
||||
digitalWrite(_relay, HIGH);
|
||||
pinMode(_dhtpin, INPUT);
|
||||
_dht.begin();
|
||||
delay(2000);
|
||||
pinMode(_sensorpin, INPUT);
|
||||
_sensors.begin();
|
||||
}
|
||||
|
||||
void Truhe::mess() {
|
||||
Serial.println(String(_name) + " mess()");
|
||||
//Serial.print("Minimum Sampling Period: ");
|
||||
//delay(_dht.getMinimumSamplingPeriod());
|
||||
_cur_temp = _dht.readTemperature();
|
||||
Serial.println(String(_name) + "\t\t" + String((int)_cur_temp) + " grad gelesen");
|
||||
_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) {
|
||||
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) {
|
||||
else if (_cur_temp <= uT && _stat != 0 && _stat != 2) {
|
||||
digitalWrite(_relay, HIGH);
|
||||
_stat = 0;
|
||||
Serial.println("schalt " + _name + " zu " + String(_stat));
|
||||
@ -40,7 +50,7 @@ void Truhe::schalt(int oT, int uT) {
|
||||
int Truhe::getUpdLcd(){ return _updlcd;};
|
||||
void Truhe::setUpdLcd(int updlcd){ _updlcd = updlcd;};
|
||||
int Truhe::getRelay(){ return _relay;};
|
||||
int Truhe::getDhtPin(){return _dhtpin;};
|
||||
int Truhe::getSensorPin(){return _sensorpin;};
|
||||
int Truhe::getStat(){return _stat;};
|
||||
float Truhe::getCurTemp(){return _cur_temp;};
|
||||
int Truhe::getCurTemp(){return int(_cur_temp);};
|
||||
String Truhe::getName(){return _name;};
|
||||
|
12
Truhe.h
12
Truhe.h
@ -1,9 +1,11 @@
|
||||
#include <DHT.h>
|
||||
#include <OneWire.h>
|
||||
#include <DallasTemperature.h>
|
||||
class Truhe {
|
||||
private:
|
||||
DHT _dht;
|
||||
OneWire _oneWire;
|
||||
DallasTemperature _sensors;
|
||||
int _relay;
|
||||
uint8_t _dhtpin;
|
||||
uint8_t _sensorpin;
|
||||
int _stat = -1;
|
||||
float _cur_temp = 0;
|
||||
int _updlcd = 0;
|
||||
@ -16,8 +18,8 @@ class Truhe {
|
||||
int getUpdLcd();
|
||||
void setUpdLcd(int);
|
||||
int getRelay();
|
||||
int getDhtPin();
|
||||
int getSensorPin();
|
||||
int getStat();
|
||||
float getCurTemp();
|
||||
int getCurTemp();
|
||||
String getName();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user