Close

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.
Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 40)
  • Autor
    Příspěvky
  • #9091
    Pulec
    Úč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:
    #9095
    Vojtěch Vosáhlo
    Účastník

    Ješ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 😀

    #9136
    Pulec
    Účastník

    Klimatizace 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ě.

    #9138
    Pulec
    Účastník

    Takto mi to už zhruba funguje ale pouze na třech funkčních tlačítkach

    Attachments:
    #9141
    Pulec
    Účastník

    Tady v příloze mnou pokřivený kód který umí pouze dvě teploty a vypnout.Potřebuji alespoň 5 teplot a on/OFF.

    #9144
    Vojtěch Vosáhlo
    Účastník

    Vy 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á…

    #9150
    Pulec
    Účastník

    Tak 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 ‚/‘ token

    Nezkusil by jste prosím alespoň jedno tlačítko oživit?Jdou mi jen ty první tři.

    #9158
    Vojtěch Vosáhlo
    Účastník

    má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ě…

    #9163
    Pulec
    Účastník

    Tak 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 scope

    #9169
    Nasranek
    Účastník

    Nepouž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ě.

    #9170
    Vojtěch Vosáhlo
    Účastník

    Sorry 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

    #9172
    Pulec
    Účastník

    Zde 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

    #9175
    Vojtěch Vosáhlo
    Účastník

    Kód vracím, doufám že funkční.
    Všechny věci co jsem přidal jsou vyznačeny dlouhou řadou //// aby jste se zorientoval

    Jediné 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

    #9178
    Pulec
    Účastník

    Tak 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+‘

    #9179
    Vojtěch Vosáhlo
    Účastník

    Oops,musí tam být String(CILOVATEPLOTA) místo té teploty a opět na konci chybí }

Aktuálně je na stránce zobrazeno 15 příspěvků - 16. až 30. (celkem z 40)
  • Pro reakci na toto téma se musíte přihlásit.