10-01-2020, 17:28
Ja się nie gniewam, ale nie daje mi to spokoju od kilku dni, niby proste a nie. Chcę włączyć grzałkę w określonym czasie, na ten moment to jest pierwszy i możliwe że ostatni projekt ( z braku czasu ). Myślałem, że mogę to załatwić w bardzo "jak dla mnie" prosty sposób.
#include <dht11.h>
#include <LiquidCrystal_I2C.h>
#include <DS1302.h>
dht11 DHT11;
#define DHT11PIN 2
LiquidCrystal_I2C lcd(0x27,16,2);
DS1302 rtc(3, 4, 5);
void setup()
{
lcd.init();
lcd.backlight();
lcd.clear();
Serial.begin(9600);
}
void loop()
{
int chk = DHT11.read(DHT11PIN);
int godz = 17; //odczytana godzina
if (godz >= 12 && godz < 18) {
Serial.println("wlaczone ");
}
else {
Serial.println("wylaczone ");
}
lcd.setCursor(11,0);
lcd.print(rtc.getTimeStr());
Serial.print("godz - ");
Serial.println(rtc.getTimeStr(FORMAT_SHORT));
Serial.print("temp - ");
Serial.println((float)DHT11.temperature, 0);
Serial.print("czas - ");
Serial.println(godz);
Serial.print("data - ");
Serial.println(rtc.getDateStr());
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print((float)DHT11.temperature, 0);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("W: ");
lcd.print((float)DHT11.humidity, 0);
lcd.print(" %");
delay(1000);
}
Na ten moment dla prób stworzyłem zmienną "int godz = 17; //odczytana godzina" i to działa jak zmienię liczby ręcznie. Wiem, że dużo się muszę nauczyć ale myślałem, że można to tak rozwiązać. Próbowałem wywnioskować coś z tego t.hour = _decodeH(_burstArray[2]); z pliku DS1302.cpp ale szybko padłem z braku wiedzy i doświadczenie. Dzieki za odpowiedź.
#include <dht11.h>
#include <LiquidCrystal_I2C.h>
#include <DS1302.h>
dht11 DHT11;
#define DHT11PIN 2
LiquidCrystal_I2C lcd(0x27,16,2);
DS1302 rtc(3, 4, 5);
void setup()
{
lcd.init();
lcd.backlight();
lcd.clear();
Serial.begin(9600);
}
void loop()
{
int chk = DHT11.read(DHT11PIN);
int godz = 17; //odczytana godzina
if (godz >= 12 && godz < 18) {
Serial.println("wlaczone ");
}
else {
Serial.println("wylaczone ");
}
lcd.setCursor(11,0);
lcd.print(rtc.getTimeStr());
Serial.print("godz - ");
Serial.println(rtc.getTimeStr(FORMAT_SHORT));
Serial.print("temp - ");
Serial.println((float)DHT11.temperature, 0);
Serial.print("czas - ");
Serial.println(godz);
Serial.print("data - ");
Serial.println(rtc.getDateStr());
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print((float)DHT11.temperature, 0);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("W: ");
lcd.print((float)DHT11.humidity, 0);
lcd.print(" %");
delay(1000);
}
Na ten moment dla prób stworzyłem zmienną "int godz = 17; //odczytana godzina" i to działa jak zmienię liczby ręcznie. Wiem, że dużo się muszę nauczyć ale myślałem, że można to tak rozwiązać. Próbowałem wywnioskować coś z tego t.hour = _decodeH(_burstArray[2]); z pliku DS1302.cpp ale szybko padłem z braku wiedzy i doświadczenie. Dzieki za odpowiedź.