Compare commits

...

3 Commits

Author SHA1 Message Date
Simon Zeyer
bc3a06c0a3 working release with ds18B20 2022-07-04 21:53:47 +02:00
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
Simon Zeyer
e3c611e909 Change LiquidCrystal Libary, include the right one as zip 2022-07-04 21:48:56 +02:00
5 changed files with 39 additions and 22 deletions

Binary file not shown.

View File

@ -2,6 +2,7 @@
#include <Wire.h> //Setup LCD #include <Wire.h> //Setup LCD
#include <LiquidCrystal_I2C.h> #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2); //0x3F = Adresse des Displays
#include "Truhe.h" #include "Truhe.h"
#include "Settings.h" #include "Settings.h"
@ -12,7 +13,7 @@ static unsigned long last_schalt_time = 0;
void setup_lcd() { void setup_lcd() {
//LCD //LCD
lcd.begin(16, 2); //Starten des LCD, 16 Zeichen, 2 Zeilen lcd.init();
lcd.backlight(); //Beleuchtung des Displays einschalten lcd.backlight(); //Beleuchtung des Displays einschalten
lcd.blink(); lcd.blink();
lcd.clear(); lcd.clear();
@ -84,6 +85,10 @@ void loop() {
else if (truhen[i].getStat() == 0) { else if (truhen[i].getStat() == 0) {
lcd.print("O"); lcd.print("O");
} }
else if (truhen[i].getStat() == 2) {
lcd.setCursor(8, i);
lcd.print("Error");
}
if(truhen[i].getUpdLcd() == 0){ if(truhen[i].getUpdLcd() == 0){
lcd.setCursor(15, i); lcd.setCursor(15, i);
lcd.print(String("|")); lcd.print(String("|"));

Binary file not shown.

View File

@ -1,37 +1,47 @@
#include "Truhe.h" #include "Truhe.h"
Truhe::Truhe(String name, int relay, uint8_t dhtpin): _dht(dhtpin, DHT22) { Truhe::Truhe(String name, int relay, uint8_t sensorpin){
_name = name; _name = name;
_relay = relay; _relay = relay;
_dhtpin = dhtpin; _sensorpin = sensorpin;
_oneWire = OneWire(sensorpin);
_sensors = DallasTemperature(&_oneWire);
}; };
void Truhe::setup() { void Truhe::setup() {
Serial.println("Setup " + _name); Serial.println("Setup " + _name);
Serial.println(_dhtpin); Serial.println(_sensorpin);
pinMode(_relay, OUTPUT); pinMode(_relay, OUTPUT);
digitalWrite(_relay, HIGH); digitalWrite(_relay, HIGH);
pinMode(_dhtpin, INPUT); pinMode(_sensorpin, INPUT);
_dht.begin(); _sensors.begin();
delay(2000);
} }
void Truhe::mess() { void Truhe::mess() {
Serial.println(String(_name) + " mess()"); Serial.println(String(_name) + " mess()");
//Serial.print("Minimum Sampling Period: "); _sensors.requestTemperatures();
//delay(_dht.getMinimumSamplingPeriod()); _cur_temp = _sensors.getTempCByIndex(0);
_cur_temp = _dht.readTemperature(); // Check if reading was successful
if(_cur_temp != DEVICE_DISCONNECTED_C)
{
Serial.println(String(_name) + "\t\t" + String((int)_cur_temp) + " grad gelesen"); 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) { void Truhe::schalt(int oT, int uT) {
Serial.print(String(_name) + " schalt() stat: " + String(_stat)); 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); digitalWrite(_relay, LOW);
_stat = 1; _stat = 1;
Serial.println("schalt " + _name + " zu " + String(_stat)); 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); digitalWrite(_relay, HIGH);
_stat = 0; _stat = 0;
Serial.println("schalt " + _name + " zu " + String(_stat)); Serial.println("schalt " + _name + " zu " + String(_stat));
@ -40,7 +50,7 @@ void Truhe::schalt(int oT, int uT) {
int Truhe::getUpdLcd(){ return _updlcd;}; int Truhe::getUpdLcd(){ return _updlcd;};
void Truhe::setUpdLcd(int updlcd){ _updlcd = updlcd;}; void Truhe::setUpdLcd(int updlcd){ _updlcd = updlcd;};
int Truhe::getRelay(){ return _relay;}; int Truhe::getRelay(){ return _relay;};
int Truhe::getDhtPin(){return _dhtpin;}; int Truhe::getSensorPin(){return _sensorpin;};
int Truhe::getStat(){return _stat;}; int Truhe::getStat(){return _stat;};
float Truhe::getCurTemp(){return _cur_temp;}; int Truhe::getCurTemp(){return int(_cur_temp);};
String Truhe::getName(){return _name;}; String Truhe::getName(){return _name;};

12
Truhe.h
View File

@ -1,9 +1,11 @@
#include <DHT.h> #include <OneWire.h>
#include <DallasTemperature.h>
class Truhe { class Truhe {
private: private:
DHT _dht; OneWire _oneWire;
DallasTemperature _sensors;
int _relay; int _relay;
uint8_t _dhtpin; uint8_t _sensorpin;
int _stat = -1; int _stat = -1;
float _cur_temp = 0; float _cur_temp = 0;
int _updlcd = 0; int _updlcd = 0;
@ -16,8 +18,8 @@ class Truhe {
int getUpdLcd(); int getUpdLcd();
void setUpdLcd(int); void setUpdLcd(int);
int getRelay(); int getRelay();
int getDhtPin(); int getSensorPin();
int getStat(); int getStat();
float getCurTemp(); int getCurTemp();
String getName(); String getName();
}; };