měl bych dotaz, jestli někdo z Vás nemá jednoduché funkční menu k nastavení šesti různých hodnot (položek). V podstatě by se jednalo o hlavní nabídku šesti položek a po stisknutí enkodéru na konkrétní položce by se zobrazila podnabídka s nastavením parametru (času). Čas by se nastavoval otáčením a potvrzovalo by se stisknutím enkodéru. Zkoušel jsem hledat ale nic co by mi vyhovovalo jsem bohužel nenašel. Pouze nějaké demo menu s různými nastaveními, ale to bylo dost složité. Přiložil jsem obrázek aktuálního zobrazení na displeji a potom ještě požadovaný vzhled menu. Jedná se o:
- Arduino Mega
4x relé
Ethernet modul
I2C Displej 20x4
Rotační enkodér
Kód: Vybrat vše
// REGULACE PELETKOVEHO KOTLE 2.0
// author Johnyhol
// v 14_11_2020
// changelog
// definice poruch
// bit funkce
// 0 prehrati kotle pri zapalovani
// 1 ztrata plamene pri horeni
// 2 volne
// 3 volne
// 4 volne
// 5 volne
// 6 volne
// 7 volne
// knihovna watchdogu
#include <avr/wdt.h>
// knihovna displeje
#include <LiquidCrystal_I2C.h>
#include <UIPEthernet.h>
#include <CayenneMQTTEthernet.h>
// Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
char username[] = "6c40f970-f7a9-11e6-9728-67156ca35db4";
char password[] = "6ef9aaf21f1b0782b8e6a854ebe6f88f3aa0370d";
char clientID[] = "1311d2b0-2208-11eb-8779-7d56e82df461";
//#define VIRTUAL_CHANNEL 1
// nastaveni pinu displeje
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4);
#define davkovaniPelet 13 // davkovani pelet snek
#define spirala 12 // zapalovaci spirala
#define ventilator 11 // ventilator
#define alarm 14 // signalizace poruchy
#define kotlovyTermostat 2 // kotlovy termostat
#define fotobunka 55 // fotobunka pro kontrolu plamene DI55 = A1 pro arduino MEGA
#define trimr1 56 // nastaveni doby zapaleni DI56 = A2 pro arduino MEGA
#define tlacitkoKvitance 3 // pin tlacitka kvitance poruchy
//pin DI54 = A0 -> rezervace pro tlacitka displeje
//pin D13 -> rezervace pro Ethernet Schield
//pin D12 -> rezervace pro Ethernet Schield
//pin D11 -> rezervace pro Ethernet Schield
//pin D10 -> rezervace pro Ethernet Schield + pro podsviceni displeje
//pin D4 -> rezervace pro SD kartu + pro displej
//pin D1 -> rezervace pro seriovou linku
//pin D0 -> rezervace pro seriovou linku
int smycka1 = 0; // pomocna smycka - zapaleni
int smycka1max = 720; // max.pomocne smycky - ted jiz nastavitelne trimrem na A2 60-720s
int smycka2 = 0; // pomocna smycka - udrzeni horeni
int smycka2max = 2; // max.pomocne smycky
int smycka3 = 0; // pomocna smycka - pocet pokusu o zapaleni
int smycka3max = 2; // max.pomocne smycky
int smycka4 = 0; // pomocna smycka - davkovani zapalne davky pelet
int smycka4max = 110; // max.pomocne smycky
int smycka5 = 0; // pomocna smycka - rozhoreni
int smycka5max = 40; // max.pomocne smycky
int smycka6 = 0; // pomocna smycka - dohoreni
int smycka6max = 840; // max.pomocne smycky
byte porucha = 0; // promenna pro zaznam poruchy
int ldr = 1; // analogovy pin kde je pripojen fotorezistor
int ldr_value = 0; // promenna pro zaznam hodnot z fotorezistoru
boolean cayenne_zapnuto; // promenna pro stav sepnuti Cayenne
boolean kotlovy_zapnut; // promenna pro stav sepnuti kotloveho termostatu
boolean cayenne_zapnuto_display; // promenna pro zobrazeni sepnuti Cayenne
void setup() {
Serial.begin(9600); // nastav seriovou komunikaci na rychlost 9600 bd
Serial.println("Nastavuji vstupy/vystupy"); // ladici seriova komunikace
Cayenne.begin(username, password, clientID);
lcd.init(); // inicializace LCD
lcd.backlight(); // zapnutí podsvícení
lcd.print("NAST. VSTUPY/VYSTUPY"); // zobrazeni na displeji
lcd.setCursor(0, 3); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("VYPINAM VSECHNY RELE"); // zobrazeni na displeji
delay (2000);
pinMode(davkovaniPelet, OUTPUT);
pinMode(spirala, OUTPUT);
pinMode(ventilator, OUTPUT);
pinMode(alarm, OUTPUT);
pinMode(kotlovyTermostat, INPUT);
pinMode(fotobunka, INPUT);
pinMode(trimr1, INPUT);
pinMode(tlacitkoKvitance, INPUT);
vypniVse(); // vsechno vypni
wdt_enable(WDTO_8S); // nastav watchdog na 8s
}
void loop() {
wdt_reset(); // resetuj watchdog
Cayenne.loop();
ldr_value = analogRead(ldr); // čte hodnoty LDR
Serial.print("HODNOTA FOTOBUNKY = ");
Serial.println(ldr_value); // zobrazí hodnoty LDR na seriove lince
Serial.println("Cekam na sepnuti termostatu ..."); // ladici seriova komunikace
smycka1max = map(analogRead(trimr1), 0, 1024, 60, 720); // nastaveni doby zapaleni trimrem na A2
if (digitalRead(kotlovyTermostat) == HIGH){
kotlovy_zapnut = true;
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -TERMOSTAT ZAPNUT- "); // zobrazeni na displeji
}
else {
kotlovy_zapnut = false;
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -TERMOSTAT VYPNUT- "); // zobrazeni na displeji
}
if (cayenne_zapnuto == true && kotlovy_zapnut == true){ // cayenne a kotlovy termostat je zapnuty
Serial.println("Kotlovy termostat zapnut"); // ladici seriova komunikace
//lcd.clear();
//lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
//lcd.print(" -TERMOSTAT ZAPNUT- "); // zobrazeni na displeji
delay (2000);
// startovaci davka pelet
//------------------------
zapalovaciDavkaPelet();
// proces zapaleni
//----------------
zapaleni();
// test poruchy
// -----------------
//testPlamene();
// udrzeni horeni
//--------------
udrzujHoreni();
// dohoreni
//---------
//dohoreni();
} else {
Serial.println("Kotlovy/Prostorovy termostat vypnut"); // ladici seriova komunikace
//lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
//lcd.print(" "); // zobrazeni na displeji
//lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
//lcd.print(" -TERMOSTAT VYPNUT- "); // zobrazeni na displeji
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("(VERZE FW: 14.11.20)"); // zobrazeni na displeji
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
//lcd.print(" "); // zobrazeni na displeji
}
// kvitence pripadne poruchy
//-------------------------------
kvitancePoruchy();
}
void vypniVse() { // funkce: vypni vse
Serial.println("Vypinam vsechny rele ..."); // ladici seriova komunikace
digitalWrite(davkovaniPelet, HIGH); // vypni davkovani
digitalWrite(spirala, HIGH); // vypni zhaveni
digitalWrite(ventilator, HIGH); // vypni ventilator
digitalWrite(alarm, HIGH); // vypni alarm
}
void zapalovaciDavkaPelet() { // funkce: prvotni davkovani pelet pro zapaleni
Serial.println("Davkuji pelety pro zapaleni ... 90s"); // ladici seriova komunikace
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -STARTOVACI DAVKA- "); // zobrazeni na displeji
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" DAVKUJI PELETY "); // zobrazeni na displeji
lcd.setCursor(0, 3); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" ZADNA PORUCHA... "); // zobrazeni na displeji
digitalWrite(davkovaniPelet, LOW); //davkuj pelety
for (smycka4 = 0; smycka4 < smycka4max; smycka4 ++){ // pomocna smycka - davkovani zapalne davky pelet
delay(1000);
wdt_reset(); // resetuj watchdog
Serial.print("Stav: ");
Serial.print(smycka4); // pomocna smycka - davkovani zapalne davky pelet
Serial.print("s/");
Serial.print(smycka4max); // pomocna smycka - davkovani zapalne davky pelet
Serial.println("s ");
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" STAV: "); // pomocna smycka - davkovani zapalne davky pelet
lcd.setCursor(13, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(smycka4); // pomocna smycka - davkovani zapalne davky pelet
lcd.setCursor(16, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("/"); // zobrazeni na displeji
lcd.print(smycka4max); // pomocna smycka - davkovani zapalne davky pelet
}
digitalWrite(davkovaniPelet, HIGH); // potom vypni davkovani
digitalWrite(ventilator, LOW); // zapni ventilator
digitalWrite(spirala, LOW); // zapni zhaveni
}
void zapaleni() { // funkce: zapaleni pelet
// 2 pokusy o zapaleni
Serial.println("Spoustim zapaleni ..."); // ladici seriova komunikace
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -ZAPALENI- "); // zobrazeni na displeji
for (smycka3 = 0; smycka3 < smycka3max; smycka3 ++){ // smycka 2 pokusy o zapaleni
for (smycka1 = 0; smycka1 < smycka1max; smycka1 ++){ // smycka "1-10" minut zapalovani
wdt_reset(); // resetuj watchdog
Serial.print("Pokus o zapaleni "); // ladici seriova komunikace
Serial.print(smycka3); // ladici seriova komunikace - pomocna smycka - pocet pokusu o zapaleni
Serial.print("/"); // ladici seriova komunikace
Serial.println(smycka3max); // ladici seriova komunikace - pomocna smycka - pocet pokusu o zapaleni
Serial.print("Stav: "); // ladici seriova komunikace
Serial.print(smycka1); // ladici seriova komunikace - pomocna smycka - zapaleni
Serial.print("s/"); // ladici seriova komunikace
Serial.print(smycka1max); // ladici seriova komunikace - pomocna smycka - zapaleni
Serial.println("s "); // ladici seriova komunikace
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("POKUS "); // zobrazeni na displeji
lcd.setCursor(6, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(smycka3); // pomocna smycka - pocet pokusu o zapaleni
lcd.setCursor(7, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("/"); // zobrazeni na displeji
lcd.print(smycka3max); // pomocna smycka - pocet pokusu o zapaleni
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" STAV: "); // pomocna smycka - davkovani zapalne davky pelet
lcd.setCursor(13, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(smycka1); // pomocna smycka - zapaleni
lcd.print(" "); // zobrazeni na displeji
lcd.setCursor(16, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("/"); // zobrazeni na displeji
lcd.print(smycka1max); // pomocna smycka - zapaleni
ldr_value = analogRead(ldr); // čte hodnoty
lcd.setCursor(10, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(15, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
if(digitalRead(kotlovyTermostat) == LOW){ // kotlovy termostat vypne
//digitalWrite(spirala, HIGH); //vypni zhaveni
//smycka1 = smycka1max; // ukonci smycku1 (zapaleni)
//smycka3 = smycka3max; // ukonci smycku3 (pokusy o zapaleni)
Serial.println("Rozepnuti termostatu ..."); // ladici seriova komunikace
//bitSet(porucha,0); // nastav poruchu bit c.0 na "1"
}
if(analogRead(fotobunka) <= 800){ // pokud fotobunka vidi plamen
delay(2000);
digitalWrite(spirala, HIGH); // vypni zhaveni
smycka1 = smycka1max; // ukonci smycku1 (zapaleni)
smycka3 = smycka3max; // ukonci smycku3 (2 pokusy o zapaleni)
Serial.println(" hori ..."); // ladici seriova komunikace
Serial.println("Rozhoreni ... 40s ");
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -ROZHORENI- "); // zobrazeni na displeji
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("HORI... "); // zobrazeni na displeji
ldr_value = analogRead(ldr); // čte hodnoty LDR
lcd.setCursor(11, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(16, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
} else {
Serial.println(" nehori ..."); // ladici seriova komunikace
}
delay(1000);
}
for (smycka5 = 0; smycka5 < smycka5max; smycka5 ++){ // smycka rozhoreni
delay(1000);
wdt_reset(); // resetuj watchdog
Serial.print("Stav: ");
Serial.print(smycka5); // pomocna smycka - rozhoreni
Serial.print("s/");
Serial.print(smycka5max); // pomocna smycka - rozhoreni
Serial.println("s ");
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" STAV: "); // pomocna smycka - davkovani zapalne davky pelet
lcd.setCursor(13, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(smycka5); // pomocna smycka - rozhoreni
lcd.setCursor(16, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("/"); // zobrazeni na displeji
lcd.print(smycka5max); // pomocna smycka - rozhoreni
ldr_value = analogRead(ldr); // čte hodnoty
lcd.setCursor(11, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(16, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
}
//delay(5000); // cekej 5s
}
}
void udrzujHoreni() { // funkce: udrzeni horeni
ldr_value = analogRead(ldr); // čte hodnoty LDR
Serial.print("HODNOTA FOTOBUNKY = ");
Serial.println(ldr_value); // zobrazí hodnoty LDR na seriove lince
Serial.println("Udrzeni horeni ..."); // ladici seriova komunikace
for (smycka2 = 0; smycka2 < smycka2max; smycka2 ++){ // pomocna smycka - udrzeni horeni
wdt_reset(); // resetuj watchdog
smycka2 = 0; // vynuluj smycku
if(digitalRead(kotlovyTermostat) == HIGH){ // kotlovy termostat je zapnuty
if (cayenne_zapnuto_display = true){
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE ZAPNUTO- "); // zobrazeni na displeji
}
else{
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE VYPNUTO- "); // zobrazeni na displeji
}
if(analogRead(fotobunka) <= 1000){ // pokud fotobunka vidi plamen
Serial.println("Test plamene ... hori"); // ladici seriova komunikace
Serial.println("Davkuji pelety ... ");
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -DAVKOVANI- "); // zobrazeni na displeji
ldr_value = analogRead(ldr); // čte hodnoty
lcd.setCursor(11, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(16, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
digitalWrite(davkovaniPelet, LOW); // davkuj pelety
delay(4000); // pockej 4s
wdt_reset(); // resetuj watchdog
delay(4000); // pockej 4s
wdt_reset(); // resetuj watchdog
Serial.println("Pauza ... ");
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -HORENI- "); // zobrazeni na displeji
ldr_value = analogRead(ldr); // čte hodnoty
lcd.setCursor(11, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(16, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
digitalWrite(davkovaniPelet, HIGH); //vypni davkovani
delay(5000); // pockej 5s
wdt_reset(); // resetuj watchdog
delay(5000); // pockej 5s
wdt_reset(); // resetuj watchdog
} else {
delay(2000); // pocekej jeste 1s a zkus to znovu
if(analogRead(fotobunka) >= 1020){ //pokud fotobunka nevidi plamen 1020
Serial.println("Test plamene ... porucha"); // ladici seriova komunikace
lcd.setCursor(0, 3); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("!!!NEHORI-PORUCHA!!!"); // zobrazeni na displeji
//delay (500);
smycka2 = smycka2max; // ukonci smycku
//porucha = 1; // nastav poruchu
bitSet(porucha,1); // nastav poruchu bit c.1 na "1"
digitalWrite(alarm, LOW); // zapni alarm
}
}
} else {
smycka2 = smycka2max; // ukonci smycku
dohoreni();
}
}
}
void dohoreni() { // funkce: dohoreni
Serial.println("Dohoreni ... 840s "); // ladici seriova komunikace
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -DOHORENI- "); // zobrazeni na displeji
digitalWrite(davkovaniPelet, HIGH); // vypni davkovani pelet
digitalWrite(spirala, HIGH); // vypni zhaveni - pro jistotu
for (smycka6 = 0; smycka6 < smycka6max; smycka6 ++){ // pomocna smycka - dohoreni
if(analogRead(fotobunka) >= 1020){ //pokud fotobunka nevidi plamen
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("NEHORI... "); // zobrazeni na displeji
}
Serial.print("Stav: ");
Serial.print(smycka6); // pomocna smycka - dohoreni
Serial.print("s/");
Serial.print(smycka6max); // pomocna smycka - dohoreni
Serial.println("s ");
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" STAV: "); // pomocna smycka - davkovani zapalne davky pelet
lcd.setCursor(13, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(smycka6); // pomocna smycka - dohoreni
lcd.print(" "); // zobrazeni na displeji
lcd.setCursor(16, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("/"); // zobrazeni na displeji
lcd.print(smycka6max); // pomocna smycka - dohoreni
ldr_value = analogRead(ldr); // čte hodnoty
lcd.setCursor(11, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print("FOTO="); // zobrazeni na displeji
lcd.setCursor(16, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(ldr_value); // hodnota fotobuňky
delay(1000);
wdt_reset(); // resetuj watchdog
}
digitalWrite(ventilator, HIGH); // vypni ventilator
if (cayenne_zapnuto_display = true){
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE ZAPNUTO- "); // zobrazeni na displeji
}
else{
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE VYPNUTO- "); // zobrazeni na displeji
}
}
void kvitancePoruchy() { // funkce: kvitance poruchy
if(porucha > 0 ){ // kdyz je porucha aktivni
Serial.println("Kvitance poruchy ..."); // ladici seriova komunikace
// vypni vse
vypniVse();
while (digitalRead(tlacitkoKvitance) == LOW) { // zapni alarm a cekej na stisk tlacitka
digitalWrite(alarm, LOW); // zapni alarm
Serial.println("Porucha ... cekam na kvitanci"); // ladici seriova komunikace
lcd.setCursor(0, 0); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CEKAM NA KVITACI- "); // zobrazeni na displeji
lcd.setCursor(0, 1); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" STISKNI TLACITKO "); // zobrazeni na displeji
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" NA PANELU "); // zobrazeni na displeji
wdt_reset(); // resetuj watchdog
}
Serial.println("Porucha kvitovana ..."); // ladici seriova komunikace
digitalWrite(alarm, HIGH); // vypni alarm
porucha = 0; // vynuluj poruchu
} else { // jinak
Serial.println("Zadna porucha ..."); // ladici seriova komunikace
//lcd.clear();
lcd.setCursor(0, 3); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" ZADNA PORUCHA... "); // zobrazeni na displeji
digitalWrite(alarm, HIGH); // vypni alarm
}
}
//CAYENNE_IN(VIRTUAL_CHANNEL)
CAYENNE_IN_DEFAULT()
{
// Write value to turn the relay switch on or off. This code assumes you wire your relay as normally open.
if (getValue.asInt() == 1) {
cayenne_zapnuto = true;
cayenne_zapnuto_display = true;
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE ZAPNUTO- "); // zobrazeni na displeji
}
else {
cayenne_zapnuto = false;
lcd.setCursor(0, 2); // (1 znak => sloupec,druhy znak => radek, prvni radek je 0)
lcd.print(" -CAYENNE VYPNUTO- "); // zobrazeni na displeji
}
}
CAYENNE_OUT_DEFAULT()
{
if (digitalRead(kotlovyTermostat) == HIGH){
Cayenne.virtualWrite(2, 1, "digital_sensor", "d");
}
else{
Cayenne.virtualWrite(2, 0, "digital_sensor", "d");
}
// Some examples of other functions you can use to send data.
//Cayenne.celsiusWrite(1, 22.0);
//Cayenne.luxWrite(2, 700);
//Cayenne.virtualWrite(3, 50, TYPE_PROXIMITY, UNIT_CENTIMETER);
}