Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

D

Deleted member 1344

Vieras
EDIT 21.1.2016: Tämä saattaa toimia ESP8266:lla, tervetuloa testaamaan
EDIT 8.1.2016: Uusi rautaversio + MySensors -integraatio: http://lampopumput.info/foorumi/index.php?topic=18509.msg299849#msg299849

Tehdäänpäs tästä uusi aloitus, ettei huku tuohon ILPon irDA ohjaus tietokoneen avulla ketjun tämänhetkisiin 24 sivuun. Eli aiheena on 'miten etäohjata ilmalämpöpumppua verkon yli käyttämällä Arduinoa'.

Homma toimii siis Arduinolla, johon on kytketty
  • Ethernet shield, lähiverkkoyhteyttä varten
  • Infrapunaledi (ja sen etuvastus) pumpun ohjaamista varten
Arduino-kloonit maksavat vajaat 20€ eBayssä, siis kotiinkannettuna. Ethernet-shield maksaa noin kympin.

Ledin voi viedä vaikkapa sisäyksikön kuorien sisälle, suoraan IR-vastarin viereen, on ainakin riittävä signaalivoimakkuus. Muu kaapelointi jää tietysti haasteeksi, Arduinolle pitää viedä Ethernet sekä käyttösähkö, virtalähteeksi sopii esim. kännykkälaturi jossa on USB-A liitin, ja siihen USB-A - USB-B välikaapeli.

Softa on nyt tehty niin, että se kuuntelee xPL-protokollaa, olen itse käyttänyt xPL-perl kirjastoa omissa systeemeissäni. Toisaalta minkä tahansa Open Source kotiautomaatioprotokollan lisääminen on pala kakkua, koska koodasin tuon niin että pumpun ohjaus ja protokollan parsiminen ovat aika lailla erillään toisistaan. xPL toimii siis sisäverkossa, sen laajentaminen toimimaan Internetin yli vaatii tunnelointia vaikka OpenVPN- tai SSH-protokollan yli.

Softa on nyt tehty niin, että se toimii samalla sekä Windows Phone-appiksen 'serveripäänä', että kuuntelee UDP-broadcast viestejä lähiverkosta. Eli pumpun komentaminen mistä tahansa ympäristöstä on varsin helppoa.

Tällä hetkellä softa tukee ainakin näitä pumppuja:
  • Panasonic E9-CPK, E12-CKP
  • Panasonic E9-DKE, E12-DKE
EDIT: Lista on kasvanut, en tosin ole itse testannut näiden toimivuutta
  • Ultimate Pro Plus 13 FP / Ultimate 12 Pro Plus Inverter
  • Panasonic JKE & NJE
  • Carrier 42NQV035G / 38NYV035H2
  • Fujitsu AWYZ14
  • Mitsubishi MSZ FD-25
  • Samsung AQV12PSBN / AQV09ASA
Uuden mallin lisääminen vaatii IR-protokollan selvittämisen. Mulla on IR-vastarisofta (Netduino) / IR-vastarisofta (Arduino) jolla saa tavut ulos, loppu on sitten viestin tulkintatyötä. Pitää vain järjestelmällisesti käydä läpi koodidumppia, siinä menee mukavasti pari tuntia.

Lähdekoodi:
  • https://github.com/ToniA/arduino-heatpumpir (Arduino-kirjasto lämpöpumppujen ohjaamiseen, GPL-lisenssi)
  • https://github.com/ToniA/arduino-wp-heatpump-controller (serveripää Windows Phone appikselle, eli Arduinon softa, GPL-lisenssi)
  • https://github.com/ToniA/wp8-heatpumpcontrol (Windows Phone appis, GPL-lisenssi)

Tuosta etäohjauksesta täytyy pitää mielessä se että infrapunaetäohjaus on täysin yksisuuntaista, eli se vastaa täysin kaukosäätimen käyttöä. Eli ei voi olla täysin varma siitä että komento meni perille, ellei sitten esim. jotenkin lue sisäyksikön ledien tilaa. Pumppu tietysti myös piippaa joka kerta kun se vastaanottaa koodin. Panasonic DKE:n piippaukset saa pois näin:
3. REMOTE CONTROLLER RECEIVING SOUND ON/OFF
The ON/OFF of remote controller receiving sound can be change over by pressing the following step:
a. Release the Auto Switch after Test Run operation is activated.
b. Then, within 20 sec., after a., press Auto Switch for more than 5 sec.
A “beep” “beep” sound will occur at the fifth sec., then release the Auto Switch.
c. Within 20 sec. after b., press Auto Switch again. Everytime Auto Switch is pressed (within 20 sec. interval), remote controller receiving sound status will be reversed between ON and OFF.
Long “beep” sound indicates that remote controller receiving sound is OFF.
Short “beep” sound indicates that remote controller receiving sound is ON.

Jatkokehitysajatuksia:
  • Mulla on Fujitsu ILP jonka protokollan voisi selvittää. Tehty
  • Foorumin jäsenillä olisi varmaan mielenkiintoa Mitsun koodeihin, erityisesti FD-25. Tehty
  • Integrointi mun kotiautomaatiosysteemiin (esim. jäähdytys/lämmitys käynnistyy ja sammuu automaattisesti, tarpeen mukaan), lämmityksen ajaminen optimaalisesti (vanhan Panasonicin COP romahtaa pikkutehoilla). Työn alla pikkuveljelle, automaattinen lämpötilapyynnin muutos ja FAN moden käyttö kun takka on kuumana. Tehty
  • Etäohjaus Internetin yli, älypuhelinsoftalla. Mun mielenkiintoni suuntautuu sattuneesta syystä Windows Phone-alustaan. Tarvittava tietotaito ja softapalaset ovat jo tiedossa, loppu on koodaamista. ADSL-modeemin/palomuurin konfigurointi on myös mielenkiintoinen haaste, niitä kun on ainakin 'miljoona' erilaista, omassani pyörii DD-WRT-softa. Tehty, tosin ei ole niin valmis että löytyisi vielä Windows Phone Marketplacesta
 
D

Deleted member 1344

Vieras
  • Keskustelun aloittaja
  • #2
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

WRT-54GL odottaa vieläkin imagen vaihtoa, pitäisi asentaa DD-WRT:stä versio jossa on JFFS, jotta saisi asennettua 'socat' -paketin. Sen avulla saisi lähetettyä UDP-broadcast-paketteja sisäverkkoon SSH-tunnelin yli. Siinä olisi tekninen ratkaisu siihen miten ulkopuolelta päästään turvallisesti kiinni tuohon etäohjaukseen.

Koodasin sen verran lisää, että tuo Arduino muodostaa itse itselleen Ethernet MAC-osoitteen. Ja huomasin että tuosta aloitusviestistä puuttui linkki projektin lähdekoodiin :-[ Se on nyt lisätty.

Kaveri ehdotti että voitaisiin tehdä Airpatrolia muistuttava laite. Siihen tarvittaisiin Arduino ja sille GSM shield. GSM-shield on tosin ikävän kallis, halvimmat maksavat luokkaa $45 eBayssä...
 
P

pkarppi

Vieras
  • Keskustelun aloittaja
  • #3
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Itse tekisin ohjausboksin Linuxin ja BeagleBoardin avulla(http://beagleboard.org/Products). Tuo uusi Black-versio ei olisi hinnaltaan paha. Ja siihen saisi kiinni usb-härpättämiä kuten wlanin.

uPnP:llä reikä palomuuriin ja yksi BeagleBoard toimii sisäverkossa palvelimena ja toiset orjina. Ja tietysti KNX-moduuli pitäisi tehdä tyyliin http://www.intesishome.com/

Airpatrol-tyylisen GSM-ohjauksen voisi tehdä Gammu:lla, joka tukee satoja usb-nettitikkuja.
 
D

Deleted member 1344

Vieras
  • Keskustelun aloittaja
  • #4
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Käyhän se noinkin, mun mielestäni on vaan oikean Linux-tietokoneen valjastaminen tuohon on kuin hyttysen ampumista tykillä. Vaikka eipä tuo Beaglebone Black maksa juuri mitään. Onkos noissa hardis-watchdog?

Arduino Ethernet PoE-modulilla olisi kaiketi paras kortti tähän tarkoitukseen. Mutta miksi siitä on sitten taas jätetty USB pois... Netduino olisi muuten aika täydellinen, mutta luulenpa että tuon infrapuna-ajurin joutuisi kirjoittamaan natiivikoodina jotta saa ajoitukset täsmälleen kohdalleen.
 
P

pkarppi

Vieras
  • Keskustelun aloittaja
  • #5
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Blackin cpu:ssa näyttäisi datalehden mukaan olevan watchdog. Vielä kuin saisivat Blackista tehtyä lite-version, jossa olisi TI:n kevyempi AM3352.

Olen puoliksi samaa mieltä kanssasi ampumisesta, mutta kehityksen helppous Linuxilla, uusien ohjelmistoversioiden lataaminen verkon yli, dhcp ja tuki usb-laitteille. Ja eihän mikään estä kytkemästä BeagleBone tai Rasberry Pi <> arduino.
 
D

Deleted member 1344

Vieras
  • Keskustelun aloittaja
  • #6
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Eipä tuo Arduinokaan niin kovin vaikea ole, ainakin tuo 'proof of concept' on nyt olemassa, eli täysin toimiva demo Arduinolla.

Osaakos LIRC muuten lähettää tuollaisia monimutkaisempia IR-koodeja?
 
P

pkarppi

Vieras
  • Keskustelun aloittaja
  • #7
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Nopealla vilkaisulla ainakin R-Pi:lle löytyy lircin kernel gpio-driveri, jossa on send_pulse, send_space ja safe_udelay. Itse lircin daemonista en raakakoodien lähetystä löytänyt.

Jos saisi tehtyä geneerisen rajapinnan, jolla voi lähettää kaikenlaisia ir-koodeja. Sitten esim. pythonilla voisi luoda koodit. Sitten voisi tehdä pjsip+python clientin ja laittaa sip-palvelimen pyörimään, niin saataisiin kommunikaatio suoraan ohjausboksiin nateista välittämättä. Käyttäjätunnukset tottakai tuohon. Hallintapaneeli viikkoajastuksineen olisi hyvä.
 
D

Deleted member 1344

Vieras
  • Keskustelun aloittaja
  • #8
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Dekoodasin Ultimaten Pro Plus Basic 13FP:n protokollaa: https://github.com/ToniA/netduino-ir-receiver

Nyt pitäisi sitten kirjoittaa vastaava lähetyskoodi Arduinolle.
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

tällaista olen olen itsekin aloitellut tekemään arduinolla ja ethernet shieldillä. jäi tosin vaiheeseen kesän muiden projektien alle. ostin jäsen abc123:lta piirin jolla mitsun viestittely onnistuu.

http://lampopumput.info/foorumi/index.php?topic=13699

omaani tein selainkäyttöliittymä jolla pumppua saa käskytettyä sekä mahdollisesti automaatiota päiväs aikaan kun ei olla kotona ( ei sitä piipitystä kestä yö aikaan :) ) 1wire lämpötila mittailut löytyvät jo ympäri asuntoa. mutta tämä on vielä lopputoteutusta vaille, lomake tulee olemaan serverillä joka pyörii muutenkin 24/7 josta sitten arduino käy poimimassa arvot esim 15min välein.
snapshot1.png


raspin käyttö tähän on alkanut myös houkuttaa muttei taito riitä tuohon elektroniikan säätöön..
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Tuon lomakkeenkin saa tehtyä täysin Arduinolla, mulla on jonkinlainen esimerkki siitä: https://github.com/ToniA/arduino-panasonic-heatpump-controller

Siinä on tietysti haasteena turvallisuus, siis jos avaa tuon internettiin. Tuonhan voi laittaa kysymään salasanaa melko helposti, mutta esim. SSL (https-yhteyksiin) on noin kahta kertaluokkaa isompi softa kuin mitä Arduinon muistiin mahtuu.
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

tuota arduinon lomaketta mietin myös varsinkin kun ethernet shieldissä on micro sd kortti paikka.
omalta osaltani totesin helpommaksi tuolloin, ja tulee se tietoturvaoptiokin käytettäväksi serverin perässä.
Toki tuota vaihtoehtoa voi vielä miettiä ja vaihtaa arduinolle koko hökötyksen. pari ds1820 lämpötila-anturia vielä arduinon kylkeen niin saisi muusta riippumattoman paketin...
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Tämä saattaa nyt sitten ohjata myös Ultimaten Pro Plus Basic 13FP-pumppua. En ole testannut oikealla pumpulla, mutta mun IR-vastarisoftan mukaan signaali näyttää melko lailla samalta.

https://github.com/ToniA/arduino-xpl-heatpump-controller
 
P

pkarppi

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Mikäs lisenssi tuolla arduino-xpl-heatpump-controller:lla on? Saako käyttää?

Meinasin tehdä r:pi:lle samanlaisen systeemin. Tein jo viikkoajastuksen sekä kaksisuuntaisen xmpp-ohjauksen. Ajatuksena oli työntään www-frontendin kautta viikkoajastukset koneelle ja ehkä sensoridatat takaisin palvelimelle. Joku yksinkertainen www-frontend, jolla voisi tehdä viikkoajastuksia ja tsekata esim. lämpötiloja.

Rasberrylle näyttäisi löytyvän wiringPi, jolla tarkemmat signaalit pitäisi onnistua.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Senkus käytät. Tarttis varmaan laittaa sinne joku lisenssitieto, ihan omaksi ilokseni mä olen noita kehittänyt ja 'varastanut' joitakin koodinpätkiä muualta netistä, esim. foorumeilta ja muista repoista.

Itse asiassa tuo muiden koodinpätkien käyttö onkin sitten mielenkiintoisempi juttu jos haluaa laittaa lisenssit viimeisen päälle kuntoon. Omalle työlleen voi julistaa millaisen lisenssin vaan haluaa.

Mullakin on kotiautomaatiossa XMPP käytössä, eli esim. Android-härveleiden GTalk-appiksesta saa suoraan komennettua automaatiota. Automaatio voi sitten esim. lähettää xPL-viestin Arduinolle.
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Rpille ohjeet gtalkkauksen kautta ohjaamiseen
http://mitchtech.net/raspberry-pi-google-talk-robot/

Sent from my Nexus 7 using Tapatalk HD
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

En voinut vastustaa kiusausta, Arduinon GSM shield on nyt tilattuna: http://www.ebay.com/itm/221245501084

Eiköhän tässä kesän aikana synny projekti jolla tuota mökkipumppua pääsee ohjaamaan SMS:n tai mahdollisesti GPRS:n yli. Hintaluokka tuollaiselle viritykselle on noin 50€ + omaa koodaustyötä. Juu, laitan kaiken Githubiin.
 
P

pkarppi

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Itse laitoin tilaukseen: http://dangerousprototypes.com/docs/USB_IR_Toy_v2

Nyt on portattu Tonin lähetyshässäkät pythonille ja irtoy:lle sopivaan muotoon. Eipähän tarvii olla erikseen tuota dekoodausvälinettä, kun pitää vielä oman Panan koodit setviä. Aika lähelle tuota dke-koodia onneksi.

Itse käytän xmpp-palvelimena Openfireä. Testasin xmpp:een tilalla myös websocket-yhteyttä, joten periaatteessa sekin olisi mahdollinen. Websocket toimii normaalista http-portista. Ja kyllähän hässäkkä toimii ihan ilman yhteyksiäkin - siis viikko-ohjelmat.

Taitaa Google olla ajamassa Gtalkkia ja xmpp:tä alas, Hangouts tilalle.
 
P

P3trik

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla


Tällainen löytyi Midea/Ultimateja varten jos jotain kiinnostaa. Toimii ainakin meikäläisellä sellaisenaan.

Eli kaveri on tehnyt valmiiksi scriptit:
- IR koodin analysointityökalu
- IR lähetysohjelma joka osaa asettaa lämpötilan lämmitysmoodissa ja jäähdytysmoodissa sekä sammuttaa pumpun

Koodista näkee myös hieman eri komentoja.

http://veillard.com/embedded/midea.html
 
P

P3trik

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Piti kokeilla lisää ja näyttäisi toimivan ihan ok tuo Midea IR kirjasto, liitin siihen DHT22 lämpö/kosteussensorin ja 18B20 lämpötilasensorin. Ajatus on jo pidempään ollut rakentaa pyyntilämpö joka säätyy ulkolämmön perusteella.

Alla kuva miten tässä oleva koodinpätkä toimisi (hystereesinkäsittely on vielä rakentamatta) sekä kuva testilaudasta ja jonkinmoinen lähdekoodi jossa osat on liitetty siistimättä. samoin watchdog puuttuu vielä myös.

if (OutdoorC <= 10.0) // linear heating curve between +10 .. -10C
{
tempC = 23 - ((OutdoorC - 10) * 0.15);
if (tempC <= 17) tempC = 17;
if (tempC >= 30) tempC = 30;
warm_midea_ac(tempC);
}
else if (OutdoorC <= 20) // dehumidifier between +10..+20
{
tempC = 23;
if (HumidityRH >= 50.0)
{
dehu_midea_ac(tempC);
}
else
{
stop_midea_ac();
}
}
else // airconditioning mode
{
tempC = 23 - ((OutdoorC - 20) * 0.5);
if (tempC <= 17) tempC = 17;
if (tempC >= 30) tempC = 30;
cool_midea_ac(tempC);
}
 

Liitteet

  • ILPulkopyynti.jpg
    ILPulkopyynti.jpg
    21,9 KB · Katsottu: 711
  • ILPduino.JPG
    ILPduino.JPG
    121,1 KB · Katsottu: 813
  • IR_midea_temphum_control.txt
    9,4 KB · Katsottu: 742
P

pkarppi

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Nyt on raspberry pi:kin hommattu. Tuolla rpi:iin lirc_rpi kernel-ajurilla voi siis vastaanottaa ja lähettää ir-koodeja. Testattu on. Toimii ihan yksinkertaisesti eli kirjoitetaan tai luetaan tuosta char devicestä. Ja wlan-tikkukin toimi heittämällä.

Pitäisi vielä tehdä käyttöliittymä viikko-ohjelmien tekoon tai suoraohjaukseen. Köyhän miehen intensishome.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Toni sanoi:
En voinut vastustaa kiusausta, Arduinon GSM shield on nyt tilattuna: http://www.ebay.com/itm/221245501084

Haettu postista. Eikun koodaamaan :)
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Syksyn ja pimeän tullen on taas aikaa koodata. Softa on mennyt sen verran eteenpäin, että Arduinon pää on aika lailla valmis eikä puhelinappiksestakaan puutu kuin käyttöliittymän hienosäätöä. Komennot menevät läpi sekä WLANin yli, että internetin yli jos vain on olemassa keino muodostaa SSH-yhteys internetistä kotiverkkoon.

Rautana tuossa kontrollerissa on:
  • Arduino Duemilanove
  • Arduino Ethernet shield
  • IR-ledi + sen etuvastus
  • Nokian USB-kännykkälaturi virtalähteenä
Eli tuo Arduino pitää saada kotiverkkoon kiinni niin, että IR-ledin saa vietyä sellaiseen paikkaan josta pumpun IR-silmä näkee sen (vaikka kuorien sisälle, jos viitsii askarrella).

Tuo puhelinsofta toimii hienosti kotiverkossa. SSH-yhteyden virittäminen internetin yli vaatii vähän enemmän harrastamista (pitää olla joku Dynamic DNS-palvelu käytössä, reitittimeen pitää avata reikä SSH:lle, pitää olla joku kone joka on aina päällä ja johon saa SSH-yhteyden). Mulla Linksys WRT-54GL WLAN-tukiasema hoitaa tuon kaiken, ainoa haaste oli siinä että lisäksi tarvitaan softa jolla saadaan lähetettyä UDP broadcast sisäverkossa. Arvatkaa kaksi kertaa oliko DD-WRT:n vakio netcat rikki, ja millainen jumppa oli asentaa JFFS käyttöön ja löytää sille toimiva socat.... Jos sisäverkossa on 'oikea' Linux-kone niin tuo on kertaluokkaa helpompaa.

Tän systeemin protokolla toimii niin, että puhelin lähettää komennon UDP broadcastina, joka suoraan sisäverkossa, tai internetin yli lähetetään SSH:n yli 'socat'-komento joka suorittaa broadcastin. Data on JSON-formaatissa, siinä on komento mikä pitäisi antaa pumpulle, muodossa:
Koodi:
{"channel":"http://db3.notify.live.net:80:/throttledthirdparty/01.00/AQGz1SA2aQP1QqTBCSew8UWAAgAAAAAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","command":"command","fan":1,"mode":1,"model":"aircon.ckp","power":0,"temperature":22}

Arduino sitten kuittaa käyttäen Windows Phone RAW-notifikaatiota, eli lähettää XML-muotoista dataa tuohon 'channel' parametriin. Ajatuksena tuossa on, että voisin laajentaa toiminnallisuutta niin, että Arduinolle voisi myös asettaa hälytysrajan, jonka alittuessa lähetetään ns. toast notification luurille (sama joka tulee esim. tekstiviestin saapuessa), tai jos sovellus on kiinnitetty aloitusnäyttöön, tiilessä voisi olla esim. jatkuvasti päivittyvä lämpötilatieto. Tuo lämpötilatieto tietysti vaatii esim. 1-wire lämpötila-anturin lisäämisen Arduinoon.
 

Liitteet

  • wp_ss_20131111_0001.jpg
    wp_ss_20131111_0001.jpg
    30,7 KB · Katsottu: 718
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla

Tää projekti alkaa nyt oikeasti olla aika hyvässä hapessa. Eilen kerkisin jo miettiä sellaisiakin turhuuksia kuin 'millainen ikoni softalla pitäisi olla Windows Phonen valikossa'.

Tarkoituksena olisi saada ekat versiot näistä julkistettua Githubissa tällä viikolla:
  • Windows Phone 8 appiksen lähdekoodi. Jos omalle luurille on tehty 'Developer Unlock', niin tän saa asennettua ilmaisilla työkaluilla
  • Arduinon päässä pyörivän serverin lähdekoodi

Toistaiseksi kommunikointi Internetin yli menee niin, että kotiverkon palomuuriin pitää avata reikä SSH:lle (lähiverkossa mennään ihan UDP broadcastilla). Turvallisuuden kannalta tuo on varsin OK ratkaisu, mutta jonkin verran monimutkainen homma. Pilvipalvelin ratkaisisi tuon, mutta esim. Google Cloud Platform ei taida tarjota ilmaiseksi mahdollisuutta ajaa soketteja käyttäviä appiksia. Jos jollakin on hyviä ajatuksia aiheesta, niin otan kiitollisuudella vastaan.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus älypuhelimella ja Arduinolla

No, kuten lupasin, softat on julkaistu:
  • https://github.com/ToniA/wp8-heatpumpcontrol
  • https://github.com/ToniA/arduino-wp-heatpump-controller

Aika alkuvaiheessahan tämä vielä on, mutta nyt on kuitenkin jotain toimivaa kasassa. Vielä kun tuon härvelin laittaisi koteloon ja vetäisi piuhat paikalleen. Kuinkakohan kova homma siinä mahtaa olla että saisi appiksen Marketplaceen... Pöydältä löytyy kirja 'Windows Phone 7 Development Internals', siinä olisi sekin käytynä läpi, siis jos vain jaksaisi lukea.
 

Liitteet

  • ohjain.jpg
    ohjain.jpg
    91,4 KB · Katsottu: 819
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Ja homma edistyy, Ultimate Pro Plus 13 FP tuki on mukana (Panasonic CKP ja DKE:n lisäksi), ylläpitolämmitys löytyy myös. Ja käyttöliittymä on lokalisoitu suomeksi ja englanniksi, vielä kun jaksaisi lokalisoida appiksen nimen sekä piirtää sille pari ikonia.

En ole vielä varsinaisesti testannut tätä alusta loppuun asti oikeiden pumppujen kanssa, mutta mun IR-vastarini näyttää samaa bittikuviota mitä aito kaukosäädin lähettää.

Saas nähdä jos erään foorumilaisen avulla saadaan aikaiseksi Panasonic JKE ja NKE-tuki. Myöskin Fujitsu AWYZ olisi helppo lisätä, kun mulla on jo sen protokolla selvillä. Arduinosta vaan alkaa RAM loppumaan, pitänee pistää eri mallit #ifdef:n taakse ja valita käännösaikana mitä haluaa tukea.

Arduino GSM shield löytyy myös, jossain välissä koodaan SMS-ohjaustuen.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Puuhastelin tuon Arduinon osuuden kimpussa. Nyt Githubissa on versio jota voi ohjata myös suoraan UDP-viesteillä, siellä on myös pikkuinen esimerkki Pythonilla kirjoitettuna.

https://github.com/ToniA/arduino-wp-heatpump-controller

Tuettujen pumppujen lista on edelleen sama, eli Panasonicin CKP ja DKE -sarjat, sekä Ultin Pro Plus 13FP. Katsotaan jos lähiaikoina saataisiin myös Panasonicin JKE ja NKE-sarjat tuettujen listalle.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Pitkienkin pulssisarjojen lukeminen onnistuu ihan Arduinolla, vaikka alunperin luulin ettei sen muisti riitä.

Eli tarvitaan tällainen kytkis: http://learn.adafruit.com/ir-sensor/using-an-ir-sensor
  • Arduino
  • IR-vastarimoduli, esim. mulla on vanhasta Pana CKP:stä ryöstetty moduli
Softaksi tämä, ja eikun nauhoittamaan: https://github.com/ToniA/Raw-IR-decoder-for-Arduino

Löytyisikö foorumilta ketään joka saisi tallennettua Mitsu FD-25:n koodeja?
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

minulta löytyy FD25 sekä arduino.
voin yrittää kunhan saan jostain tuon vastaanottimen. tarkistan hyllyt iltasella joku IR sensori siellä pitäisi olla jos ei niin tilaan sitten..
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

IR vastari löytyi miljoonalaatikosta, vanhasta PCn sarjaportin kautta tehdystä IR vastaanottimesta.malli on TFMS5300 (30kHz)
testi kytkentä vilkutti lediä http://learn.adafruit.com/system/assets/assets/000/000/550/medium800/irremotetest.gif?1340899916
myös Mitsun kakella.
mutta nyt on niin että vapaana on vain arduino Diecimila joka kyllä koodin (rawirdecode.ino) otti vastaan mutta ei tulosta mitään serial monitoriin.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

timop sanoi:
Mutta nyt on niin että vapaana on vain arduino Diecimila joka kyllä koodin (rawirdecode.ino) otti vastaan mutta ei tulosta mitään serial monitoriin.

Toimiiko siinä yhtään mikään, siis edes simppeli esimerkkiohjelma joka tulostaisi jotain serial monitoriin?

Pikkuveli kävi just kylässä Carrier-ILP:n kaukosäätimen kanssa. Saatiin sen protokollasta oleelliset osat selvitettyä. Sillä on sellainen ajatus, että laitetaan Arduun kiinni pari DS18B20-anturia, joilla mitataan ulkolämpötilaa, sisälämpötilaa ja lämpötilaa takan päältä. Ajatuksena on, että pakkasen kiristyessä nostetaan automaattisesti pyyntiä, ja toisaalta lauhalla kelillä takan ollessa lämmin puhalletaan vain ilmaa.

Toisella pikkuveljellä olisi FD-25
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

kyllä tuolta arduinon esimerkeistä SoftwareSerialExample tulostaa tekstiä.
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

noniin, sain kaverilta uno R3 kloonin lainaan ja jo alkoi pelaamaan.
mites tuota pitäisi "kellottaa" ?
jos painan mitsun kakesta virrat päälle puniin monitorissa kelaa ihan prkleesti :
virtojen päälle laiton jälkeen asetukset on:
puhallus 3, pyynti 22, isee off, vispaus sivusuunnassa, ja vane 2
eli tämän perusteella http://www.anvianet.fi/nwalker/files/ControlFD_serial_communication.pdf
A3 B3 C2 D5 E3 F0 G0 H0 I0 J1 K22 L1

Koodi:
Ready to decode IR!
Free RAM: 214

Received: 

OFF 	ON
Number of pulses: 2
18152 usec,	400 usec
17560 usec,	160 usec
int IRsignal[] = {
// ON, OFF (in 10's of microseconds)
	40, 1756,
	16, 0};Free RAM: 214



Received: 

OFF 	ON
Number of pulses: 292
64396 usec,	3440 usec
1660 usec,	480 usec
1180 usec,	480 usec
1220 usec,	460 usec
360 usec,	500 usec
340 usec,	500 usec
340 usec,	500 usec
1240 usec,	420 usec
360 usec,	520 usec
320 usec,	480 usec
1240 usec,	440 usec
1240 usec,	460 usec
360 usec,	480 usec
1260 usec,	460 usec
320 usec,	480 usec
380 usec,	500 usec
1200 usec,	460 usec
ja jatkuu loputtomasti:

tavallisella töllön kaukosäätimellä kelasi hetken ja lopetti sitten.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Duecimilassa on ATmega168, jossa on vain kilotavu RAM-muistia, Duemilanovessa on ATmega328 jossa on kaksi kilotavua. Siitä se on kiinni, tuo nykyinen versio vie aika tarkkaan sen 2 kilotavua. Siitä en osaa sanoa miksi se ei toimi Unossa, jospa siinäkin on joku hardis-ero (esim. pitää käyttää eri pinniä ja vaihtaa sitä myös softassa).

Muutapa tämä koodirivi (uint8_t ja vähän pienempi taulukko), pitäisi mahtua kilotavuun noilla eväillä. 'RESOLUTION' on 20, joten pisin aika mitä se nyt mittaa on 5100 us. Ainakin Panan protokollassa on yli 10000 us tauko headerin jälkeen. Tietysti tuota RESOLUTION-arvoa voisi myös kasvattaa.

Koodi:
uint8_t pulses[250][2];  // pair is high and low pulse

Tästä pitäisi saada irti jotain tän näköistä, uusimmassa Github-versiossa siis pitää antaa joka samppelille nimi:

Koodi:
{
   "OFF": [ 3500, 1640, 500, 360, 500, 1220, 500, 340, 500, 360, 500, 360, 500, 360, 500, 360, 500, 340, 480, 380, 480, 380, 480, 380, 480, 380, 460, 400, 460, 1240, 480, 380, 480, 380, 480, 380, 460, 400, 460, 380, 480, 380, 480, 380, 480, 1240, 460, 1260, 460, 1240, 480, 380, 480, 380, 460, 1260, 460, 380, 480, 380, 460, 400, 480, 380, 460, 380, 480, 380, 480, 380, 480, 380, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 480, 380, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 460, 400, 460, 380, 480, 380, 480, 380, 460, 400, 460, 400, 460, 1240, 480, 1240, 480, 380, 460, 400, 460, 380, 480, 380, 480, 380, 480, 4700, 3480, 1680, 460, 400, 460, 1240, 480, 380, 480, 380, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 460, 400, 460, 400, 460, 400, 460, 380, 480, 1240, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 480, 380, 460, 400, 460, 1260, 460, 1240, 460, 1260, 460, 400, 460, 400, 460, 1240, 460, 400, 460, 400, 460, 380, 480, 380, 480, 380, 480, 400, 440, 400, 460, 400, 460, 380, 480, 380, 480, 380, 460, 400, 460, 420, 440, 420, 440, 380, 480, 380, 480, 1240, 460, 400, 460, 420, 440, 1240, 480, 380, 460, 400, 460, 420, 440, 1240, 480, 1240, 460, 420, 440, 1260, 460, 380, 480, 380, 460, 400, 460, 400, 460, 420, 440, 380, 480, 400, 460, 380, 460, 400, 460, 1280, 440, 1240, 480, 380, 460, 420, 440, 400, 460, 420, 440, 1240, 480, 400, 440, 1260, 460, 1280, 440, 420, 440, 1240, 460, 1280, 440, 400, 460, 420, 440, 400, 460, 400, 440, 400, 460, 420, 440, 420, 440, 400, 440, 420, 440, 400, 460, 380, 480, 420, 440, 420, 420, 1260, 460, 1280, 440, 1240, 480, 420, 420, 400, 460, 400, 460, 400, 460, 420, 440, 400, 460, 400, 440, 420, 440, 420, 440, 1280, 440, 1260, 440, 1280, 440, 420, 440, 420, 440, 400, 460, 400, 440, 420, 440, 420, 440, 420, 440, 420, 420, 420, 440, 420, 440, 420, 440, 420, 440, 420, 440, 400, 440, 420, 440, 420, 440, 1280, 440, 400, 460, 400, 440, 420, 440, 420, 440, 420, 440, 400, 460, 400, 440, 420, 440, 420, 440, 420, 440, 420, 420, 420, 440, 420, 440, 420, 440, 420, 440, 420, 420, 1280, 440, 1280, 440, 420, 440, 400, 460, 420, 420, 420, 440, 420, 440, 1280, 440, 400, 460, 1260, 440, 1280, 440, 1280, 440, 400, 460, 400, 440, 1280, 440, 0 ],
...
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

eikun siis UnoR3ssa se monitori pelaa (RAMmia 2kt), tuo millä kokeilin ensin on Diecimila 1kt RAMmia :)
http://arduino.cc/en/Main/ArduinoBoardDiecimila.
mutta asiaan.
kopsin uudelleen tuosta github sivustasi tuon
https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/rawirdecode.ino
ja vaihdoin ensin siitä ylemmätä uint16 alkuisesta rivistä alun -> uint8 ei antanut mitään, sitten vaihdoin seuraavankin ni tuli alla oleva litania
eli:
Koodi:
uint8_t pulses[400][2]; // pair is high and low pulse
uint8_t currentpulse = 0; // index for pulses we're storing
ja se antoi tuolla power on painalluksella (A3 B3 C2 D5 E3 F0 G0 H0 I0 J1 K22 L1) ja power off alempi.
Koodi:
{
 "poweron": [ pulses: 36
420, 420, 440, 400, 440, 420, 440, 400, 460, 380, 460, 400, 460, 380, 460, 1240, 420, 420, 460, 380, 440, 400, 460, 400, 420, 420, 460, 400, 420, 420, 440, 400, 460, 400, 440, 400, 460, 400, 420, 420, 420, 420, 460, 400, 420, 420, 440, 400, 460, 400, 440, 400, 460, 400, 420, 420, 440, 1240, 440, 400, 440, 1260, 420, 420, 440, 1240, 440, 420, 460, 380, 460, 0 ],
 "poweroff": [ pulses: 36
460, 380, 440, 420, 460, 380, 440, 420, 420, 420, 460, 380, 440, 420, 440, 1240, 440, 420, 440, 400, 460, 380, 440, 400, 440, 420, 420, 420, 440, 420, 440, 400, 440, 400, 440, 400, 440, 420, 420, 420, 440, 400, 440, 420, 420, 420, 460, 380, 460, 400, 440, 400, 460, 400, 420, 420, 460, 1240, 420, 420, 460, 1240, 420, 420, 440, 400, 440, 400, 440, 420, 460, 0 ],
 
K

korteke

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Tämä ketjuhan tuli kuin tilauksesta :)
Olen tekemässä koulun päättötyötä ja yhtenä ajatuksena oli se, että voisin liittää kodin valvontajärjestelmään ILPOn ohjauksen :)

Tänään aloin etsimään tietoa, että olisiko joku tehnyt jotain samanlaista Arduinolla ja kas, jopa suomenkieliseltä foorumilta löytyi vastaavanlainen projekti.

Omassa projektissa kaiken keskellä on RPi jonka kyljessä on JeeLink (Arduinoklooni + RMF12 lähetin/vastaanotin) ja muut anturit ovat JeeNodeja (Arduinoklooni + RMF12 lähetin/vastaanotin).

Oma ILPo on Fujitsu ASYG 09LE

Nopeasti testattuna toi RAW lukija toimii vallan moitteettomasti jeenoden kanssa, joten ei kai tässä auta muu kuin alkaa dekoodaamaan :)
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

korteke sanoi:
Oma ILPo on Fujitsu ASYG 09LE

Mun Github-sivuilta löytyy Netduinolle kirjoitettu softa joka osaa purkaa myös Fujitsu AWYZ-protokollan. Siitä voisi olla apua.
 
D

Deleted member 1344

Vieras
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Timop, kummassa raudassa olet nyt ajanut tuota? Varsinkin tuo currentpulse olisi syytä olla tyyppiä uint16_t, 8-bittinen luku EI riitä. 36 pulssia ei tunnu uskottavalta. Pienennä sitä pulses-taulukon kokoa niin että mahtuu muistiin.
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

Unossa.
Se uint16 teki sen että tietokone(i7 4gb ubuntulla) leipo juntturaa ja piti tappaa koko arduino softa.
Kokeilen vielä uudestaan ja viimeistään huomenna win7ssa

Sent from my Nexus 7 using Tapatalk 4
 

timop

Aktiivinen jäsen
Vs: Ilmalämpöpumpun etäohjaus Arduinolla ja älypuhelimella

kokeilun tuloksia
tämä oli koko ajan vakio
uint16_t currentpulse = 0;

uint16_t pulses[250][2]; -> ei anna mitään
uint8_t pulses[250][2]; -> ei anna mitään
uint16_t pulses[300][2]; -> kelaa älyttömästi kunnes hidastuu ja alkaa viemään CPUta
uint8_t pulses[400][2]; -> kelaa älyttömästi kunnes hidastuu ja alkaa viemään CPUta
 
Back
Ylös Bottom