Ovládání klimatizace
Úvodní stránka › Fórum › Vaše projekty › Arduino › Ovládání klimatizace
- Toto téma obsahuje celkem 39 odpovědí. Do diskuze (6 diskutujících) se naposledy zapojil uživatel Vojtěch Vosáhlo a poslední změna proběhla před 8 roky.
-
AutorPříspěvky
-
5.11.2016 v 12:29 #9091PulecÚčastník
Zjistil jsem že duležitý je pro mne první řádek ale ten je bohužel bez hodnot.
Decoded Unknown(0): Value:0 (0 bits)Při testu ovladače settopboxu je vše jak má.
Decoded NEC(1): Value:FD6897 (32 bits)
Bohužel tedy z ovladače klimatizace nedostanu tyto hodnoty.
Co stím?Zadávat tedy ty dlouhé kódy raw?S nimi to funguje ale je to hrozná práce.Attachments:
5.11.2016 v 17:02 #9095Vojtěch VosáhloÚčastníkJeště tak mimochodem co je to za klimošku? Předpokládám že cíl je nepájet přímo na ni ani na ovladač. To že je tam 0 znamená že to nevysílá v žádném známém formátu. Chtělo by to její název a pak se dá třeba kouknout i po nějakejch projektech, jestli nedělal někdo reverse engineering…
To pane si prosím nechte 😀7.11.2016 v 17:48 #9136PulecÚčastníkKlimatizace je nějaká čína Nordline.Ale kódy mě zas až tak netrápí nacpu tam ty dlouhé a s těmi to funguje.Byl by někdo ochoten upravit program z těchto stránek ?
tady
Potřebuji abych tam měl třeba 6 tlačítek a po jejich stisku na stránkách klimatizace bych změnil teplotu.Kódy a popis přiřadit umím.Jen nevím jak napsat ten program jednotlivých tlačítek.
Arduino bude napájeno ze sítě sólo.Poběží pořád v topné sezoně.7.11.2016 v 17:59 #9138PulecÚčastníkTakto mi to už zhruba funguje ale pouze na třech funkčních tlačítkach
Attachments:
7.11.2016 v 18:12 #9141PulecÚčastníkTady v příloze mnou pokřivený kód který umí pouze dvě teploty a vypnout.Potřebuji alespoň 5 teplot a on/OFF.
Attachments:
7.11.2016 v 20:05 #9144Vojtěch VosáhloÚčastníkVy komentujete španělsky? 😀 Samozřejmě jen vtip…
Prakticky by vám mělo stačit přidávat jen else if
else if (readString.indexOf("L=X") > 0) { irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA)</ sizeof(int), khz); }
a pak jen do tohoto oddílu
client.print("<h2> <a href='/?L=0'> OFF </a>| <a href='/?L=1'> Teplota mene </a> | <a href='/?L=2'> Teplota vice </a></h2>");
přidávat html kód viz.
<h2> <a href='/?L=X'> TEPLOTA </a>
Aspoň tak bych to chápal já…
7.11.2016 v 22:37 #9150PulecÚčastníkTak tlačítka jsem přidal ale dál se mi nedaří 🙁
Když přidám else if (readString.indexOf(„L=X“) > 0) {irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA)</ sizeof(int), khz);
}
Hazí to chybu.
C:\Users\MPUHLO~1\AppData\Local\Temp\untitled1276640573.tmp\sketch_nov07e\sketch_nov07e.ino: In function ‚void loop()‘:sketch_nov07e:103: error: expected primary-expression before ‚/‘ token
irsend.sendRaw(18, sizeof(18)</ sizeof(int), khz);/
^
sketch_nov07e:103: error: expected primary-expression before ‚/‘ token
irsend.sendRaw(18, sizeof(18)</ sizeof(int), khz);/
^
sketch_nov07e:106: error: expected primary-expression before ‚}‘ token
}
^
Byly nalezené násobné knihovny „DHT.h“
Použitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT
Nepoužitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT_sensor_library
exit status 1
expected primary-expression before ‚/‘ tokenNezkusil by jste prosím alespoň jedno tlačítko oživit?Jdou mi jen ty první tři.
Attachments:
8.11.2016 v 15:55 #9158Vojtěch VosáhloÚčastníkmáte v kódu navíc toto </
irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA)</ sizeof(int), khz);
bez toho by to mělo fungovat. Omlouvám se, napsal jsem to nahoře chybně…
9.11.2016 v 10:39 #9163PulecÚčastníkTak zase se nedaří hlásí to toto
klima_poku2:109: error: ‚TEPLOTA‘ was not declared in this scope
irsend.sendRaw(TEPLOTA, sizeof(TEPLOTA) sizeof(int), khz);
^
klima_poku2:175: error: expected ‚}‘ at end of input
} // fine loop
^
Byly nalezené násobné knihovny „DHT.h“
Použitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT
Nepoužitý: C:\Users\Mpuhlovsky\Documents\Arduino\libraries\DHT_sensor_library
exit status 1
‚TEPLOTA‘ was not declared in this scope10.11.2016 v 20:40 #9169NasranekÚčastníkNepoužitou knihovnu smaž s disku, někdy to dělá bordel při kompilaci.
Nejlepší je všechny knihovny přidávat do dokumety/arduino/library a nikam jinam
pokud možno tak přes program ne ručně.11.11.2016 v 8:19 #9170Vojtěch VosáhloÚčastníkSorry za menší odmlčení.
1 věc, TEPLOTA je hen obrazná, musíte místo ní deklarovat proměnnou ve které budou ir kódy pro jednu z teplot, jako u coolon atd.
2 jak to píše očekává to závorku takže ta někde chybí, nejspíš právě uplně na konci ale musel bych vidět kód kam už jste vložil teplotu.
O knihovnách už tu napsal Nasranek
11.11.2016 v 16:50 #9172PulecÚčastníkZde je kód.Opět jsem si sním pohrál a kostrbatě počeštil už nevypisuje chybu.Byl by někdo tak hodný a přidal mi tam i s okomentováním další funkční tlačítko čily 19°C které by po stisknutí vypsalo „topim na 19*C“ a poslalo do diody signál.Klidně použijte kod pro off nebo nějaký jiny nebo tam napište „sem to dej ty blbe levej“já si to už přepíšu.Moc děkuju za pomoc
Attachments:
11.11.2016 v 20:42 #9175Vojtěch VosáhloÚčastníkKód vracím, doufám že funkční.
Všechny věci co jsem přidal jsou vyznačeny dlouhou řadou //// aby jste se zorientovalJediné co by mělo být potřeba přidávat při přidávání dalších teplot by měli být tyto části:
// kod ovladače pro Topím na 19 stupnu unsigned TEPLOTAXY[] = {8800,4350, 550,500, 600,500, 550,500, 550,500, 600,500, 550,500, 600,500, 550,500, 550,1600, 600,1600, 550,1600, 550,1600, 550,1600, 600,1600, 550,500, 550,1600, 600,500, 550,500, 550,500, 600,500, 550,1600, 600,500, 550,500, 550,500, 600,1600, 550,1600, 550,1600, 550,1600, 600,500, 550,1600, 550,1600, 600,1600, 550 };
Zde stačí vždy jen změnit název a IR kódy
else if (readString.indexOf("L=Z") > 0) { if(CILOVATEPLOTA != XY){ /// Pokud teplota kterou chceme zapnou jeste neni zapnuta => pustime dal irsend.sendRaw(TEPLOTAXY, sizeof(TEPLOTAXY) / sizeof(int), khz); CILOVATEPLOTA = XY; ///Nastavime promenne aby se nepodelala orig cast programu a cilovateplota na teplotu kterou jsem nastavili COOLON = false; DRYON = false; }
Tahle funkce musí existovat pro každou tepotu, kolik teplot, tolik těchto funkcí. Jediné co je potřeba změnit tady je TEPLOTAXY za název pole ve kterém jsou uloženy kódy pro danou teplotu a do proměnné CILOVATEPLOTA zapisovat hodnotu teploty kterou jste nastavil.Důležité je nastavit čemu se rovná L, koukal jsem že už tam máte vložených pár teplot takže pro každou z nich je L jiné… Jak máte napsáno L=4 by mělo topit na 20*C a proto funkci upravíte tak aby se spustila když L=4 tzn nahradíte Z tímto číslem a aby vysílala vše správně.
Zbytek by měl být připravený na více teplot a měl by vypisovat na webu danou teplotu na kterou je nastaveno.
PS: Píšu měl protože nemám na čem to otestovat takže pište jakýkoliv feedback
Attachments:
12.11.2016 v 11:20 #9178PulecÚčastníkTak zase nějaká chybka.Píše to toto
C:\Users\MPUHLO~1\AppData\Local\Temp\arduino_modified_sketch_719325\klimav2.ino: In function ‚void loop()‘:
klimav2:162: error: invalid operands of types ‚const char*‘ and ‚const char [17]‘ to binary ‚operator+‘
client.println(„<span style=’color:red; font-weight:bold;‘>Topim na “ + CILOVATEPLOTA + „*C</span></font>“);
^
klimav2:193: error: expected ‚}‘ at end of input
} // fine loop
^
exit status 1
invalid operands of types ‚const char*‘ and ‚const char [17]‘ to binary ‚operator+‘12.11.2016 v 11:29 #9179Vojtěch VosáhloÚčastníkOops,musí tam být String(CILOVATEPLOTA) místo té teploty a opět na konci chybí }
-
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.