Ovladaní vetráku dle teploty a displeye
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Re: Ovladaní vetráku dle teploty a displeye
uuuplne krrááááááásne to funguje, presne dle mych predstav
Re: Ovladaní vetráku dle teploty a displeye
taky bych se rád potěšil, jak jsi to vyřešil ? uvítám, když zveřejníš kod nejen pro mě , ale i pro ostatní díkyuuuplne krrááááááásne to funguje, presne dle mych predstav
Re: Ovladaní vetráku dle teploty a displeye
Kód: Vybrat vše
#include <DHT.h>
#include <LiquidCrystal.h>
// inicializace pinu, lze vyměnit za jiné volné
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define pinDHT 8
DHT mySensor(pinDHT, DHT22);
int teplota;
void setup()
{
Serial.begin(115200);
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print("Aktualni:");
lcd.setCursor(0,1);
lcd.print("Nastaveni: ");
pinMode(52, INPUT_PULLUP); // pin 52 nastaven jako vstup
pinMode(53, INPUT_PULLUP); // pin 53 nastaven jako vstup
pinMode(50, OUTPUT);
}
void loop()
{
float tep = mySensor.readTemperature();
lcd.setCursor(10,0);
lcd.print(" ");
lcd.setCursor(10,0);
lcd.print(tep);
Serial.println(tep);
lcd.setCursor(14,0);
lcd.print((char)223);
lcd.print("C");
if (digitalRead(52) == LOW){
teplota = (teplota+5);
Serial.println(teplota);
lcd.setCursor(11,1);
lcd.print(" ");
}
if (digitalRead(53) == LOW){
teplota = (teplota-5);
Serial.println(teplota);
lcd.setCursor(11,1);
lcd.print(" ");
}
Serial.println(teplota);
lcd.setCursor(11,1);
lcd.print(teplota);
lcd.setCursor(14,1);
lcd.print((char)223);
lcd.print("C");
if (tep > (teplota + 2)) digitalWrite(50, LOW);
if (tep < (teplota - 2)) digitalWrite(50, HIGH);
delay (200);
}
Re: Ovladaní vetráku dle teploty a displeye
zdravím, díky za zveřejnění kodu.
Mám k němu otázečku - máš kod odzkoušený ? a dále by mě zajímalo, proč chceš nastavovat teplotu dvěma tlačítkama ? když to může být třeba takto :
tento kod může být určitě jiný a lepší, ale je včera postavený a vyzkoušený, teplotu si nastavíš jakou potřebuješ a vlhkost u 3d tiskárny je dobré si taky hlídat. Pravda je , že teplotu si tady nenastavíš tlačítkem, ani potenciometrem, no dobré by to bylo - mám co zlepšovat
Jen pro inspiraci přikládám printScreen výpisu na seriový monitor https://ctrlv.cz/ZBNL
Mám k němu otázečku - máš kod odzkoušený ? a dále by mě zajímalo, proč chceš nastavovat teplotu dvěma tlačítkama ? když to může být třeba takto :
Kód: Vybrat vše
int zelena = 10;
int cervena = 9;
int modra = 11;
int zluta = 12;
int RELE = 4;
#include "DHT.h"
#define typDHT11 DHT11
#define pinDHT 3
DHT mojeDHT(pinDHT, typDHT11);
// knihovny pro LCD přes I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// nastavení adresy I2C (0x27 moje adresa), + počet znaků a řádků LCD, moje lcd je 16x2
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2); // inicializace LCD
lcd.backlight(); // zapnutí podsvícení
lcd.print(" LCD pripraven "); // vytisknutí hlášky na první řádek
pinMode(zelena, OUTPUT);
pinMode(modra, OUTPUT);
pinMode(cervena, OUTPUT);
pinMode(zluta, OUTPUT);
pinMode(RELE, OUTPUT);
mojeDHT.begin();
}
void loop() {
float teplota = mojeDHT.readTemperature();
float vlhkost = mojeDHT.readHumidity();
if (isnan(teplota) || isnan(vlhkost)) {
Serial.println("Chyba při čtení z DHT senzoru!");
lcd.setCursor(0, 0);
lcd.print(" Erorr read DHT "); // vypis na lcd >> chyba při čtení DHT
lcd.setCursor(0, 1);
lcd.print(" "); // vymazání druhého řádku na lcd
} else {
Serial.print("Teplota: ");
Serial.print(teplota);
Serial.print(" stupnu Celsia, ");
lcd.setCursor(0,0);
lcd.print("Teplota: ");
lcd.print(teplota);
lcd.setCursor(14,0);
lcd.print((char)223); // znak pro stupeň Celsia
lcd.print("C");
Serial.print("vlhkost: ");
Serial.print(vlhkost);
Serial.println(" %");
lcd.setCursor(0, 1);
lcd.print("Vlhkost: ");
lcd.print(vlhkost);
lcd.print(" %");
}
if (teplota < 26) {
digitalWrite(zelena, LOW);
}else
{ digitalWrite(zelena, HIGH); // když je teplota vyšší jak 26 stupňů rožne se zelená led
}
if (vlhkost < 85) {
digitalWrite(modra, LOW);
}else
{ digitalWrite(modra, HIGH); // když je vlhkost vyšší jak 85 procent rožne se modrá led
}
if (teplota > 26 && vlhkost > 85) {
digitalWrite(cervena, HIGH); // když teplota a vlhkost překločily horní limity rožne se červená led
digitalWrite(RELE, LOW); // relé sepne motor ventilátoru
digitalWrite(zluta, HIGH); // když běží motor ventilátoru svítí žlutá led
Serial.println("senzory >> ALARM <<");
Serial.println("Klimatizace ZAP");
lcd.setCursor(0, 0);
lcd.print("sensory ALARM ");
lcd.setCursor(0, 1);
lcd.print("Klimatizace ZAP ");
}
else {
digitalWrite(cervena, LOW);
digitalWrite(RELE, HIGH);
digitalWrite(zluta, LOW);
}
delay(1500);
}
Jen pro inspiraci přikládám printScreen výpisu na seriový monitor https://ctrlv.cz/ZBNL
Re: Ovladaní vetráku dle teploty a displeye
ano kod mam odzkouseny a funkcni.
Teplotu nastavuji dvema, protoze jeden plus a druhý mínus hodnota
Teplotu nastavuji dvema, protoze jeden plus a druhý mínus hodnota
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Ovladaní vetráku dle teploty a displeye
Pěkná práce, dále jen úvaha:
když vezmu tu MEGU a další - asi nejdražší "termostat" co jsem za život potkal ale moje první meteostanice mne stála tak 4000Kč (každá další 1200Kč) - není nad tu radost když to chodí.
Kod by chtělo učesat, okomentovat a dát do hotových projektů - může ho někdo použít do svých začátků s MEGA
když vezmu tu MEGU a další - asi nejdražší "termostat" co jsem za život potkal ale moje první meteostanice mne stála tak 4000Kč (každá další 1200Kč) - není nad tu radost když to chodí.
Kod by chtělo učesat, okomentovat a dát do hotových projektů - může ho někdo použít do svých začátků s MEGA
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Ovladaní vetráku dle teploty a displeye
nebude to jen termostat, ale navic to bude ovladat dalsi rele, bude to mit jeste na sobe cidlo koure, otevreneho ohne a dalsi pxcovinky..
Kod musim ucesat )
Kod musim ucesat )
Re: Ovladaní vetráku dle teploty a displeye
musím ti pogratulovat k tomuto
má kod pracovat tak, jak je v ukázce, nebo ti chodí jinak a mám někde chybu ? , což se může stát.
kod použit z přízpěvku zde od Kony » 25 říj 2020, 12:08
PS: může mi prosím někdo vysvětlit, proč se mi na lcd vypisuje cca jen poloviční hodnota naměřené teploty a navíc místo hodnoty, která se objevuje a zase mizí,u výpisu "Aktualní : nan °C" ? díky
no nedávno jsem se tě ptal, jestli máš kod odzkoušený a odpověď byla
radoval jsem se a kod sestavil, zde je odkaz na video : https://www.youtube.com/watch?v=ImpQfZzVSvgano kod mam odzkouseny a funkcni.
má kod pracovat tak, jak je v ukázce, nebo ti chodí jinak a mám někde chybu ? , což se může stát.
kod použit z přízpěvku zde od Kony » 25 říj 2020, 12:08
PS: může mi prosím někdo vysvětlit, proč se mi na lcd vypisuje cca jen poloviční hodnota naměřené teploty a navíc místo hodnoty, která se objevuje a zase mizí,u výpisu "Aktualní : nan °C" ? díky
Re: Ovladaní vetráku dle teploty a displeye
Me to chodi uplne v pohode.... natocim taky video
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 47 hostů