Close

Ovládání klimatizace

Úvodní stránka Fórum Vaše projekty Arduino Ovládání klimatizace

Aktuálně je na stránce zobrazeno 30 příspěvků - 1. až 30. (celkem z 40)
  • Autor
    Příspěvky
  • #8703
    Pulec
    Účastník

    Dobrý den.Potřebuji ovládat přes internet klimatizaci doma.Zapnutí vypnutí, teplotu.Šlo by arduino uno s ethernet shildem využít jako dálkový ovladač s ir diodou?Děkuji za pomoc

    #8705
    Zbyšek Voda
    Účastník

    Dobrý den, určitě by to nějak šlo.
    Třeba tady http://www.instructables.com/id/Air-Conditioning-web-controlled-by-Arduino/?ALLSTEPS o tom píšou.

    #9067
    Pulec
    Účastník

    Ano to jsem našel bohužel to je na megu arduino to nezvládne.Na megu čekám je objednaná.Mám ir přijímač a ir vysílač a uno.Chtěl bych jen zvýšení a snížení teploty klimatizace po ethernet.Kodý ovladače od klimi mám načtené.Dokázal by někdo napsat kód?Podobný tomu v odkazu víše.
    Ale jen pro zvýšení a snížení teploty.Moc děkuji za jakoukoliv pomoc.

    #9069
    Luke_CZ
    Účastník

    A, proč by to normální arduino nezvládlo?
    B, nemáš možnost WiFi? ESP8266(NodeMcu) by bylo ideální, napájet by šlo rovnou v klimě a nikde by nelezly dráty
    C, kód je jednoduchý

    L.

    #9070
    Pulec
    Účastník

    A.Píše to málo proměné
    B.wifi je objednané
    C.pro mě moc ne
    Nevím jestly si rozumíme ale na arduinu beží server a přes vebowé rozhraní ovládám klimu.Arduino je osazeno ir diodou.

    #9071
    Luke_CZ
    Účastník

    A, nerozumím
    B, mega != wifi
    C, „Učit se, učit se, učit se! VIL“
    D, ESP8266 zvládne vše, tj. server, měření teploty a vlhkosti i ovládání IR

    L:

    #9072
    Luke_CZ
    Účastník

    Pro doplnění:
    A, jde o přeplnění SRAM paměti vloženými obrázky a HTML kódem, autor skriptu řeší vše pouze v rámci SRAM. V jeho případě je to MEGA s 8kB SRAM vs tvoje UNO s 2kB SRAM 🙁

    Toto jde řešit:
    1, větším arduinem, přístup autora = s kanonem na vrabce
    2, nahráním obrázků na SD a loadovat je z ní = v případě opravdu velkých obrázků, či skriptů (java apod)
    3, místo obrázků použít tag <button>, ten tolik paměti nezabere viz.
    http://www.w3schools.com/tags/tag_button.asp
    4, celkově optimalizovat zápis HTML viz F() macro
    https://playground.arduino.cc/Learning/Memory
    a PROGMEM
    https://www.arduino.cc/en/Reference/PROGMEM

    L.

    #9073
    Pulec
    Účastník

    Tak změna.Megu mám doma dnes došla.Autorův kód funguje.Jen nevím jak dodělat teplota více/méně.Jak jsem zjistil každá nastavená teplota má svůj kód.Šlo by do kódu dodělat teplota více ,teplota méně?Nebo napsat kód jak pro pitomce (čili mě) úplně nový a česky.
    Jedná se mi o toto:
    Teplota a vlhkost s dht22 :to se mi podařilo
    Ovládat teplotu klimatizace vzestupně sestupně:to neumím
    Vyp/zap:neumím není duležité ale potěší

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

    Předpokládám že ten ovladač má šipky nahoru a dolu pro zvýšení a snížení teploty a nějaká další tlačítka. Pokud tedy opravdu při stisku tlačítka nahoru pošle vždy jiný kód, což mi přijde trochu jako hovadina ale dobře, zkuste zjistit jak se číslo mění. Chce to něco podle čeho by jsme mohli ty kódy generovat aby jste je neměl jen všechny naklikané v kódu, pro každou teplotu jeden (což by taky šlo). Vyp/zap si taky vyřešíte podle kódů. Pak se dá podle protokolu ve kterém IR mluví napsat odesílání kódů.

    #9076
    darira
    Účastník
    #9077
    Pulec
    Účastník

    Dobrý den.Nejsou mi jasné ty kódy ovladače.V příloze posílám kódy získané megou přez ir přijímač.Je to postupně z 18,19,20,21,22 čili pořád směrem nahoru.Neřekl bych že se kód opakuje.Nebo ano?Musí se používat celá řada čísel?Děkuji za ujasnění

    Attachments:
    #9079
    Pulec
    Účastník

    Bohužel nejsem schopen dostat z ovladače klimatizace kód v tomto tvaru 0xFDD827.Ten pak stačí v kódu programu?
    Tento se mi daří získat pouze z ovladače na settopbox.Vše je zjištěno přes IRrecvDumpV2.

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

    Zkusme něco jiného, například tuhle knihovnu: https://learn.adafruit.com/using-an-infrared-library/hardware-needed, ta vypisuje i kód ve formáru co by jsme chtěli.

    #9087
    Pulec
    Účastník

    Moc děkuji pane Vosáhlo.Tady je výsledek.Co stoho je k použití?Viz příloha
    V čem jsem to měl spustit v IRrecvDumpV2?
    Děkuji za pomoc

    Attachments:
    #9089
    Pulec
    Účastník

    Omlouvám se ale nějak blbne odesílání zpráv.

    Attachments:
    #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 30 příspěvků - 1. až 30. (celkem z 40)
  • Pro reakci na toto téma se musíte přihlásit.