torstai 28. tammikuuta 2016

Tekniikkaostoksia ja retroa

Pitkästä aikaa pikkuinen teksiikkapostaus. Tossa lokakuussa meillä syntyi kaksostytöt, joten vapaa-aika on ollut vähän kortilla. Kaikki aika menee käytännössä ihanien vauvojen hoitoon. Valoautomaatioprojektin päivittämisen olen suosiolla siirtänyt ensi kesälomille, kun sen säätämiseen vaan ei ole aikaa.

Osa lukijoista voi vielä muistaa Commodore-64 tietokoneen. Tuossa iltapuhteina kolvailin kasaan kahden joystick:n adapterin, jonka tilasin täältä: http://www.sinchai.de/index.php?main_page=page&id=17. Saksalainen youtube video kasauksesta löytyy täältä: https://www.youtube.com/watch?v=l7WOeSh4fvA

Tarkoitus on virittää Raspberry Pi:hin retroemulaaattorituki vanhoille alustoille, niin tuolla saa minun vanhat commodore joystickit hyötykäyttöön. Sen lisäksi tilasin pari tämmöistä ebaystä 3.1e kipale:

Niin voi pelata myös vanhoja Nintendo pelejä autenttisen tuntuisilla ohjaimilla. Sen lisäksi tuli tilattua tämmöinen ohjainadapteri Playstation 1, PS2 ja PSX ohjaimille ebaystä 2.1e hintaan. Tuolla voin hyötykäyttää laatikostani löytyvät PS1 ohjaimet.

Pitkän aikaa minulla on ollut tavisleikkurit johtojen pätkimiseen. Kunnes päätin pistää vanhat leikkurit eläkkeelle. Banggoodista löysin uuden aarteen itselleni vain 5.5e hintaan. http://www.banggood.com/Wholesale-OEM-Plato-170-Wire-Cutting-Shears-Cutter-Nippers-Tools-for-RC-Airplane-p-52096.html. Sairaan terävät ja saa kulman ansiosta leikeltyä ihan protolevyssä kiinni tarvittaessa. Voin suositella.


Samalla päivitin minun Wii-pelikonsolin. Pistin sisään uusimman USB Loader GX:n ja Nintendont (GameCube emulaattori). Ja päivin kovalevyyn kasan pelejä joita on vuosien varrella tullut. Voi kätevästi suoraan kovalevyltä vain valita mitä haluaa pelata ilman että tarvii dvd levyillä venkslata.

RetroPie:n asensin Raspberry Pi 2:seen, ja latasin sen täyteen Commodore 64, Amiga 500, SNES, N64 ja MAME pelejä. Nyt voi helposti pelata kaikkia nuoruusvuosien klassikkoja helposti ja ilman pitkiä latausaikoja.

maanantai 7. syyskuuta 2015

Valoautomaatio - valmistelut ja rautapuoli

Muutamassa edellisessä blogipostauksessa olinkin jo maininnut, että jossain vaiheessa ryhdyn valoautomaationkin kimppuun. Ja lomaviikoilla ehdin pikkuisen taas projektiin antaa vapaa-aikaani. Talvella jo koitin yleismittarilla ihmetellä, että miten teknisessä tilassa oleva matalasähköimpulsseilla toimiva valojen kytkentätaulu toimii. Mutta tulokset olivat laihoja kun en saanut kunnollisia arvoja mitattua. Mutta sitten tajusin, että hetkinen kokoajan olen yrittänyt tasavirtaa mitata, mutta noi valokatkaisijat voivat myös toimia vaihtovirralla. Joten yleismittarin vipu vaihtovirralle ja uusi mittaus, ja johan alkoi lyyti kirjoittamaan. Muutama ärräpää pääsi, kun AC:n ohjaus on pikkuisen kinkkisempää kuin DC:n (mutta enpä speksausvaiheessa tajunnut sähkärille sanoa, että tasavirtaa haluaisin ohjausimpulssien olevan).

40 kaksikärkistä relettä siis hoitaa teknisessä tilassa valojen ohjausta. Huoneissa on Schneiderin Exxact-sarjan impulssikytkimet, joilla voi valoja ohjata normaalisti. Sen lisäksi nyt on siis tarkoitus lisätä automaatio, että pystyn katsomaan ja ohjaamaan valojen tiloja tietokoneelta. Vaihtovirran seuraamiseen tilasin sitten kymmenen 16-pinnistä (4-kanavaa) octocoupleria. Neljä euroa ei ole paha hinta näille (ebay URL). Näillä siis olisi tarkoitus lukea noita kaikkien releiden mahdollista 24V AC virtaa ja generoida siitä 3.3V DC signaali BeagleBone Blackin GPIO:lle. Nämä osat ovat vielä tilauksessa, joten siitä erillinen blogipostaus myöhemmin.

Signaalin ohjauspuolella minulla oli osat hankittuna jo ennestään, ja olinkin maininnut niistä edellisissä blogipostauksissa (http://omakotikotitalomme.blogspot.fi/2015/01/internet-shoppailua-tekniikkaharpakkeita.html#mcp23017 ja kolme http://omakotikotitalomme.blogspot.fi/2013/12/tekniikkaa.html#relelevy).


Nyt kun tässä on jonkin aikaa ollut mietintämyssy päässä, että miten automaation toteuttaisin. Joten eikun pistetään kolvi tulille ja katsotaan mitä saadaan aikaiseksi. I2C:n yli olisi tarkoitus 3.3V signaaleilla ohjata noita relelevyjä MCP23017:aa apuna käyttäen. Olin jo aikaisemmin testaillut tuota yhdistelmää, joten periaatteessa systeemin pitäisi toimia. Joten koputetaan puuta ja toivotaan parasta.

Aika siistin näköisen tuloksen sain kolvaillulla aikaan. 5x7cm levylle mahtui nätisti kolme MCP23017 mikrokontrolleria, jossa on yhteensä 48 GPIO:ta. Talossamme kun on tällähetkellä vain 40 kaksikärkistä relettä, niin toi riittää vallan hyvin ja on laajennusvaraakin. Nurkkaan pistin kaksi pinniä, johon voi raspberrystä pistää 3.3V ja GND. Ja I2C pinnit pistin kahteen paikkaan, jolloin voi tarvittaessa I2C läpiviennin jatkaa muihinkin laitteisiin. Levyn takapuoli ei olekaan niin valokuvauksellinen (ja mulla ei ollut SMD vastuksia hyllyssä) kun kolvikäsi vapisee ja kuumaliimalla varmistettiin kolvausvetojen toimivuus. Mutta siis pistin jokaisen GPIO pinnin perään pistin 2.2kΩ vastuksen, niin ei ole vaaraa, että Raspberrystä otettaisiin liikaa virtaa, ja relelevyt toimivat silläkin virralla. Tämän levyn osien hinnaksi tuli alle 5 euroa, ei ole kovin paha jos vertaa kaupallisiin KNX automaatiojärjestelmien tuhansien eurojen hintalappuun.

Tietenkään omalle työlle ei laske hintaa, ja vaikka laskisikin, niin paljon halvemmaksi tulee tehdä itse. Jos koko talon olisi tehnyt KNX-tekniikalla, niin sähkötöiden kokonaiskustannukset olisi olleet 10000-20000e kalliimpi kuin perinteisellä tekniikalla toteutettuna (kuten minun kaksikärkisillä releillä). Ja itse tehtynä kaikkien ohjauslaitteiden (kuten Raspberryt, Beaglebonet, äänen vahvistimet, Android tabletit yms.) yhteishinta on edelleen alle 1000e. Eli tavoitteena on saada yli 10-20ke säästöt tekemällä koko valoautomaatio itse.

Nopeasti testailin tuota ekana työhuoneen Raspberryllä ja hyvin tuntui toimivan. Seuraavaksi pitäisi sitten testata itse teknisessä tilassa oikeaa systeemiä. Jotenkin kiehtoo, että automaatio olisi myös näkyvillä, joten ajattelin, että laitteet voisi kiinnittää sähkökaappia suojaavaan muovikanteen (ja mahdollisesti suojata se sitten läpinäkyvällä muoviplexillä). Jolloin sitä voi ihailla ulkoapäin ja sitä on helppo laajentaa. Sitten olisi hyvä että sen kannen saisi myös irti, joten ajattelin että sähkökaapin liittimien läpiviennit toteutettaisiin vaikka vanhoilla kovalevykaapeleilla, kun lättäkaapeleissa on 40 pinniä ja semmoisten liittimien läpivienti kannen läpi ei ole vaikeaa ja semmoisen kaapelin kiinnitys/irroitus on helppoa.

Yllä on tilannekuva kun kolvailin 20-pinnistä rimaa signaalikaapeleille, kahdella tuommoisella saa 2x20 pinnirivin johon voi kovalevykaapelin pistää kiinni. Ja seuraavassa kuvassa sitten itse kaapeli on kiinnitetty teknisessä tilassa olevaan matalajänniteohjaustauluun. Nyt kun se on kiinnitetty, niin pitäisi olla talon jokaisen kaksikärkisen releen ohjaus mahdollista.

Ohjauksen lisäksi olisi kiva tietokoneen aina tietää, että on valo päällä tai ei. Sitä varten on kaksikärkiset releet, eli toisessa kärjessä menee 220V ja toisessa 24V AC vaihtovirta (jolla normaalisti ohjataan seinäkatkaisijan lediä). Tämän ledisignaalinen väliin olisi tarkoitus päästä ilman että ledit lakkaisivat toimimasta. Tämän ongelman ajattelin ratkaista octocouplereilla, jolloin 24V AC vaain triggeröi Raspberryn 3.3V signaalin, eikä tuhoa koko tietokonetta :-)

Eli hankin ebaysta kasan TLP521-4GB octocoupleita (ebay link). Neljällä eurolla pystyy lukemaan ja generoimaan 40 signaalia, eli aika edullinen ratkaisu. Kolvailin kasaan tommosia pikku emolevyjä, jotka voivat lukea 8 kaapelia kerralla. Viidellä tuommoisella lukee kaikki 40. Noiden viiden levyn GPIO pinnit on tarkoitus kiinnittää 40-pinniseen lattakaapeliin, jolla tehdään läpivienti sähkökaapista Raspberryn puolelle.

Kaikki ei mennyt kuin Strömsössä, kun oli postissa joku astunut optocoupler lähetyksen päälle, ja kaikki pinnit olivat vääntyneet. Vääntelin niitä suoriksi, mutta lopulta kuitenkin suurimmassa osassa oli joku pinni sisäisesti katkennut. Joten kolvailuja pitänee vielä korjailla jälkeenpäin. Kun nyt taitaa vain 30 signaalia toimia. Joten sitä joutuu odottelemaan hetken, että varaosat saapuu... Ja lopulta osat saapuivatkin, niin pääsi jatkamaan tämän postauksen kanssa näpertelyä.

Sitten itse sähkökaapin kanteen, jonne kasasin automaation, niin että koko komeutta voi ihailla ulkoapäin. Yläosaan kuumaliimasin kuusipaikkaisen jatkojohdon. Alanurkkaan liimasin 40-pinnisen kovalevykaapelin liittimen, josta menee sitten piuhoitus kolmeen 16-releen levyyn. Näillä levyillä voi lähettää valoille 24V AC ohjaussignaaleja. Relelevyjen yläpuolelle sitten MCP23017 GPIO levy, jonka vieressä on kaiken ohjauksen sydän eli Raspberry Pi 2-minitietokone. Samoin väkersin toisen MCP23017 GPIO levyn (ja 40-pinnisen liittimen), jolla voi sitten lukea kaksikärkisten releiden tilaa. Kannen sisäpuolelle pistin viisi tuommoista 8-kanavan optocoupler levyä, joilla 24V AC vaihtovirtasignaali tunnistetaan, ja josta generoidaan 3.3V DC tasavirtasignaali edellä mainitulle GPIO levylle. Tällä tavalla Raspberryllä voi ohjata 96:tta GPIO:ta, joka riitää talon jokaisen valon ohjaus- ja tilasignaalille.

Edellisillä optocoupler levyillä saa heittää vesilintua, kun Internetin ihmeellisestä maailmasta luin kolvailua seuraavana päivänä, että optocouplerit saattaa kärvähtää yli 5V signaalista (joten taittuneiten pinnien lisäksi saatoin itse kärventää muutaman piirin). Muutaman illan kolvaukset meni hukkaan, mutta aina oppii jotain uutta. Siispä avasin virtapiiri simulaattorin ja piirsin itselleni 24V AC -> 3.3V DC muuntajan, jolla pitäisi optocouplereitten toimia ilman ilman savua. Tässä suunnitelma piirrettynä ja oscillaattorin laskelma, että voltit olisi raja-arvojen sisällä ja tilavaihtumat tunnistettaisiin 4ms:n viivellä kun käyttää 100uF:n capaa.

Selitän vielä ton suunnitelman aukikin, eli neljällä 1N4001 diodilla (diodi-silta) ekana muutetaan tuo +-24V sinikäyrä niin, että negatiiviset arvot katoaa. Jolloin AC muuttuu DC muotoon, mutta GPIO:n kannalta tämä olisi hieman huonoa kun silloin arvot muuttuisivat päälle (sininen huippu alla olevassa kuvassa) ja pois (sininen nollatasossa eli vastaa sitä punaisen negatiivista virtaa jonka diodi leikkasi pois) 60 kertaa sekunnissa. Sitten laskemme 100kOhm resistansilla ekana virran minimiiin kun GPIO ei tarvitse mA:ta enempää ja 10kOhm resistanssilla (hiilikalvovastus) laskemme voltit 3.3V-2.0V:n välille, jota Rasperryn GPIO syö sisäänsä. Ja sitten ekan resistanssin jälkeen pistämme vielä 100uF:n capan maahan, jolla sitten saamme yllä olevan kuvan mukaisen sahalaitakuvioinnin. Eli kondensaattori (capasitor) tasoittaa tuon siniaaltoisen DC virran siten, että varaus ei pääse laskemaan nollaan saakka. Tästä tietenkin seuraa muutaman millisekunnin viive tunnistukseen, mutta samalla se poistaa ton on/off hyppimisongelman tunnistuksessa. Teoriassa 15kOhm:lla päästään lähemmäksi 3.3V:tä, valitsin 12kOhm, että mennään lähemmäksi 2.5V:tä, jolloin AC piiristä saa tulla isompia peak arvojakin ilman savupilveä. Tämä siksi että 24VAC joten peak-arvo DC volteille on itseasiassa 24 *  2  = 34V, jolloin 100kOhm ja 12kOhm kombinaatiolla peak arvoksi tulee 3.6V. Lisätietoa tälläisen diodisillan (aka. rectifier) toiminnasta voi lukea esim täältä: http://electronicsclub.info/powersupplies.htm#rectifier

Aika monen yrityksen ja erehdyksen kautta sain testiympäristossäni AC tunnistuksen toimimaan yhdellä lampulla. Muutamassa prototyypissä tuli savut pihalle, ihan omien lukihäiriöiden takia, mutta lopulta tuli toimiva diodisilta design valmiiksi. Nyt pitää vaan odotella, että hong kongista tulee sopivasti osia joilla voi kolvata kaikkien 40 releen AC-tilatunnistuksen.

Tässä valmistelu postauksessa valojen tilan lukeminen ja ohjaus on vielä aika komentorivipohjaista, kun käyttöliittymän koodaus on vielä vaiheessa. Mutta kunhan koodaus etenee, niin lupaan tehdä jatkopostauksen, jossa esitellään automaation integrointi käyttöliittymään, jota voi ohjata tietokoneella, kännykällä ja tabletista.

Tässä sitten 'valmis' ohjauslogiikka kuumaliimattuna sähkökaapin kanteen (vasemmalla puolella 48 relettä ja oikealla puolella diodisiltalevyt valojen tilojen lukemiseen). Aikamoinen johtoviidakko siitä tuli, mutta toimii, joten riittää minulle. Diodisiltoina käytin KBP206:sia, jotka hankin ebaystä.

Tässä on pieni demovideo jossa Raspberryllä ohjataan 48 relettä päälle ja pois i2c:n yli. Tuommoinen pulssin pitäisi riittää ohjaamaan kaksikärkisiä releita (eli talon kaikkia valoja).

lauantai 22. elokuuta 2015

Valmiin esittelyä - lastenhuone

Kappas vain, talokierros on näköjään jymähtänyt tammikuussa paikoilleen. Pitää sitä kierros saada päätökseensä, ennen kuin moni huone on jo vaihtanut paikkaakin keskenään. Seuraavat muutokset taitavat tulla makuuhuoneisiin, joten suunnataanpa niihin.

Lastenhuone.

Kolme makuuhuonetta ovat omassa siivessään ja ruokailutilan pariovet erottavat ne omaksi rauhallisemmaksi alueekseen. Näistä suurin makkari on tällä hetkelle esikoisen lastenhuoneena. Huone mietittiin lastenhuoneeksi heti alusta saakka ja jo pintoja laitettaessa siskoni kävi maalaamassa huoneeseen puun, johon muutti tammikuussa 2014 sitten pöllöperhe.


Puu on näkyvin koriste koko huoneessa ja muutenkin tilaan haluttiin sitten vähän metsän tunnelmaa. Sen ison ruotsalaisen huonekalukaupan lastenosastolta löytyi paljon teemaan sopivia pehmoleluja ja tekstiilejä kuten torkkupeitto ja matto, jotka sopivat tilaan hyvin. Sieltä löytyi myös Sundvikin pinnasänky ja Brimnesin sohvasänky, jonka saa levitettyä vieraille parisängyksi ja jossa on mukava aikuisenkin istuskella iltasatua lukien tai legoilla leikkien. Duploja muuten mahtuu aika hyvä määrä sängyn laatikoihin ja taapero saa ne itsekin sieltä ja jopa takaisin paikalleen. Sänky on myös erittäin hyvä nukkua, jos vauva tai taapero tarvitsee seuraa myös yöllä, suosittelen ehdottomasti.

Metsän karkkikauppa.

Eurokankaasta löytyi karkkipaperin väreissä olevaa raitakangasta, josta äitimummu ompeli verhot ja sohvatyynyt sängyn päälle, sohvanpäällisen ja lattiatyynyn hän ompeli Ikean verhoista. Ystäväni oli joskus ommellut hauskan viirisiiman, joka ripustettiin verhotankoon ikkunaa piristämään. Näin saatiin edulliset tekstiilit koko huoneeseen, jotka on helppo pestä vaikka viikottain ja jotka ovat iloiset ja sopivat lapsille.



Puun vastakkaiselle seinä maalattiin samalla turkoosilla, kuin kodinhoitohuonekin. Seinälle koottiin aukeavaan oveen saakka Lundiaa, johon laitettiin yksi syvempi hylly hoitotasoksi. Myöhemmin hyllyn voi laskea alemmaksi pöydäksi tai vaihtaa tavallisen syvyiseen. Lundian muuntelumahdollisuudet ovat kyllä lastenhuoneessa parhaimmillaan. Kirjahyllyn päälle mahtui kaikki meidän talouden lautapelit, joita on jo kyllä aikasta paljon ja varmasti lisää on tulossa.

Tyytyväinen taapero omassa huoneessaan, käytävän toisella puolella on ovi auki aikuisten makkariin.

Huonekalut on tarkoituksella aseteltu seinustoille, jotta keskilattialle jää paljon tilaa leikkiä. Puolitoistavuotias taapero on itse asunut huoneessa jo viime lokakuusta lähtien ja viihtyy hyvin. Yöt nukutaan aikalailla kokonaan ja päikkäritkin maittavat. Leluille on jo löytynyt tutut paikat ja niillä leikitään yllättävän hyvin omassa huoneessa, vaikka monesti myös olkkariin kulkeutuvatkin. Itselle lapsen siirtäminen omaan huoneeseensa taisi olla isompi juttu ja jotta siirto meni mahdollisimman helposti, niin siirsimme oman makkarin lastenhuonetta vastapäätä, työhuoneen tilalle. Niistä sitten seuraavaksi. 

 

Lastenhuoneen pöllöperhe nyt.

Tässä vielää siskon tekemä pöllöperhe puussaan. Näyttääkö vähän siltä, että pöllöt ihmettelevät ja odottavat jotakin? Näin taitaa ollakin, koska odotan kaksosia ja kuukauden parin sisään huoneeseen muuttaa lisää asukkaita ja ehkä pöllöjäkin.

perjantai 21. elokuuta 2015

DIY puukatos ja kasvihuoneen päivityskuvia

Kotiautomaatiopostausta odotellessa (kyllä se tulossa on edelleen) tulee taas pieni DIY projekti jonka kyhäsin kasaan. Eli puukatos, joka on siistimpi kuin ekana syksynä väsäämäni väliaikainen kuormalavoista kyhätty hökkeli.
Pihinä miehenä netistä selailin sopivan DIY katoksen ohjeita, kun ekana olin todennut, että valmiit katokset maksaa maltaita. Ja löysinkin sopivan ohjeen, jonka voi hyvin naamioida takaterassin kaiteen taakse piiloon. Ohje löytyy tästä: http://www.puuinfo.fi/sites/default/files/content/tee-se-itse/ohjeet-ja-tuotteet/pihakalusteet/pihakalusteet/polttopuukatos.pdf.

Tontilta löytyi puutavarat sopivasti rakennusjätteen muodossa (ja ylijäämämaaliakin löytyi varastosta), joten ostoslistalle minulla jäin vain neljän pilariharkon (a 1.2e), kattohuopapalojen (20e), huopanaulojen (16.9e) ja ruuvien(30e) hankkiminen. Joten katoksen kokonaishinnaksi muodostui n. 75e + omat työtunnit, jolle ei lasketa hintaa. Byggmaxin sivuilta puutavaralle olisi tullut hintaa about 100e, mutta sen säästin tontilta löytyneellä ylijäämätavaralla. Ihan vaan vinkiksi jos joku muukin rakentaa samanlaisen.

Ja sitten kuvapuoleen, eli ohjeita oli helppo seurata ja tälläinen siitä sitten tuli:


Ja tässä on muutama kuva kasvihuoneen kukoistamisesta. Vaikka sainkin kasattua kasvihuoneen suhteellisen myöhään keväällä toukokuun puolessä välissä, niin hyvin on chilipuskat yms kasvit siellä viihtyneet. Peräseinällä oli vain kolme chilipuskan alkua, ja nyt ne peittää jo koko peräseinän ja satoa on tulossa paljon. Samoin raparperi ja salaatit yms ovat viihtyneet mainiosti. Ja nurmikkokin on siemenestä kohtuu hyvin noussut.

tiistai 9. kesäkuuta 2015

100000 ja HP:n takuuhuolto loistaa

Kävijälaskurissa tuli 100000 täyteen. Kiitos kaikille lukijoille!!! Tarkoitus on kyllä jatkaa vielä seuraaviinkin virstanpylväisiin.

Kämpän verkkoinfraa olen tässä pikkuhiljaa päivittänyt. Linksysin 48-porttinen kytkin kadotti portteja aika-ajoin, eli kyllästyin sitä reboottailemaan (http://omakotikotitalomme.blogspot.fi/2013/03/linksys-srw2048-48-port-gigabit-managed.html), joten siirsin sen eläkkeelle hyllylle pölyttämään (nyt on halvalla myynnissä giganen 48 porttinen kytkin).

Eli nytten päivitettynä rautana minulla on Asus RT-AC66U uplinkissa ja teknisessä tilassa kaksi 24 porttista Zyxelin GS1900-24E:tä. Varaston puolella on sitten HP ProCurve V1910-24 kytkettynä kiinni täyskorkeaan serveriräkkiin. Sen lisäksi on neljässä huoneessa HP ProCurve 1810-8G. Näihin 1810 malleihin kun päivittelin uusimmat firmikset sisään, niin yksi yksilö noista ei millään suostunut uutta firmistä huolimaan ja heitti vain erroria.

Muistin sitten jostain foorumilta lukeneeni, että HP:n ProCurve kytkimissä on elinikäinen takuu, joten päätin kokeilla, että pitääkö se paikansa ja soitto palvelunumeroon, menut läpi suomeksi ja call center vastaa kuitenkin englanniksi. Noh onneksi en ollut ummikko, jolta ei muu kuin finska suju, joten sain asiani kyseltyä (osoitteeni pistin sähköpostilla, kun kuulemma suomalaisia kadunnimiä on vaikea englantilaisen kirjoitella) ja sieltä tuli vastauksena, että joo, pistetään lähetti tuomaan sulle uusi tilalle, pitäisi olla huomenna perillä. Joten täytyy kyllä sanoa, että on loistavaa palvelua. Pikkuisenhan noilla on normaalikuluttajavehkeitä korkeampi hinta, mutta jos on elinikäinen takuu ja vaihto uuteen laitteeseen seuraavaksi päiväksi, niin ei voi muuta kuin hymyillä. Jos noi mun Zyxelit joskus mätänee takuuajan jälkeen, niin tietää ostaa HP:t elinikäisellä takuulla tilalle.

Nytten on sitten päivitetyssä kytkinarsenaalissa 104 kappaletta gigasta ethernet porttia, kaikki on hallittavan web managementin takana, raudoissa riittää teho tiedonsiirtoon 48+Gbps per switch, IPv6 tuki ja tuulettimet ei mölyä. Vielä seuraavaksi on vuorossa WLAN puolen päivitys jossain vaiheessa. Ton Asus boxin 5GHZ ja AC puolen wlan toimii hienosti, mutta b/n/g-puolen WLAN on pikkuisen pätkinyt. Joten tarkoitus on vähän tehdä load balancea, eli custom boxit 2.4GHz nopeuksille ja vielä yksi 5Ghz AC boxi lisää, niin saadaan langattomat vehkeet toimimaan joka huoneesta ja myös pihalta. Tällä hetkellä kotiverkossa on noin 50 laitetta jotka vastaavaat pingiin, joten kytkimissä riittää vielä paljon tilaa kasvuun.

Niin olen minä leikkinyt Mikrotikin RB951G-2HND boxilla, sillä saisi tuon toisen wlanin hoidettua, ja samalla se osaisi hoitaa suoraan varayhteyden LTE:n yli (50Mbits) jos Soneran (100Mbit) valokaapeli sattuisi menemään alas. Kiva boxi nörttihenkisille ihmisille, kun boxissa on säätömenuja enemmän kuin laki sallii :)

keskiviikko 13. toukokuuta 2015

Kasvihuone ja DIY laatikot

Kevään rakennusprojektina minulla on ollut kasvihuone. Periaatteena tilataan sieltä mistä halvimmalla saadaan ja käytetään rakennusjätepuuta hyväksi.

Meidän kunnassa alle 6m2 rakennuksiin ei tarvita lupia. Joten internetistä etsimään sopivaa kasvihuonetta. Preeco:lta löytyi sopiva 5.9m2 http://preeco.fi/kasvihuoneet/50283-kasvihuone-59m2-premium.html#/automaattinen_ikkunan_avaaja-1_kpl_49_9/perustukset-perustuksien_kanssa, mutta sillä oli hintaa 490e. Suomalaisten firmojen katteet kun tietää, niin tein pikkuisen google hakuja, ja löysin saman setin Saksasta 390e kotiinkuljetettuna. Preeco merkki vaihtunut Plantiflex:ksi, mutta mainoskuvat ovat 100% samoja kukkia myöten: ebay.de. Joten semmoisen tilasin ja viikossa tuli toimitus pihalle. Paketissa oli yksi väärä osa sattunut mukaan, mutta saksalaiseen tapaan homma hoitui mallikkaasti ja kahden päivän päästä oli varaosa jo postissa odottamassa.

Rakentaminen sujui varsin sutjakkaasti, vaikkakin ohjeistus ei ole lähelläkään Ikea ohjeita. Mutta muutaman illan ahertamalla kasvihuone oli kasassa. Seuraavana yönä olikin kevään ensimmäinen myrsky ja oli kasvihuone tuhannen *kröhöm* päreinä pitkin kyliä. Tästä opimme, että kasvihuone pitää pultata hyvin maahan, ja muoviplekseihin ei riitä mukana tulevat metallikiinnikkeet. Eli vaan kiltisti kasaamaan uudestaan ja Biltemasta pari putkea multibond silikonia, jolla pleksit liimataan paikoilleen, niin myrskytuulet ei niitä vie mukanaan. Samoin metallisokkeli ruuvataan kiinni perustusharkkoihin ja lautoihin. Samoin vielä kiinnitetään koko setti kiinni multalaatikoihin. Nyt pitäisi pysyä kohtuu hyvin paikoillaan, kun on pultattu tuhanteen kiloon kiinni.

'Perustuksiin' käytin 20 leca-harkkoa http://www.kodinterra.fi/fi/terra/leca-lex-harkko-h-75-1-kpl, joten siihen meni 30 e. Sen päälle rakennusjätteestä vähän jykevämpää puuta kerros, joka ruuveilla kiinni harkkoihin ja johon sitten sokkelin pulttasin kiinni. Noilla isommilla parruilla rakensin myös kasvatuslaatikot kasvihuoneen molemmille puolille ja myös kasvihuoneen sisään. Ja Bauhaussista kävin hakemassa citylaattaa, taisi olla 1,4 e kipale, joilla sitten tein kasvihuoneen keskuskäytävän ja polun 'nurmikolta' kasvihuoneeseen. Kuvassa näkyy myös, että yritämme siemenestä kasvattaa nurmikon, joka on kohtuu hyvin tässä itänyt kun on sateita riittänyt.

Totaalikustannukset alle 500e (tai alle 600e jos lasketaan parin kuution multien hinta mukaan). En sitten tiedä onko tuo 'halpa', mutta itse olen ihan tyytyväinen ja kukkapenkkiä on enemmän kuin tällähetkellä pystyn kasvattamaan. Kymmenkunta chilipuskaa mulla on talvehtinut sisätilassa ja ne on tässä pikkuhiljaa siirtymässä kasvihuoneen puolelle. Ja kasvatuslaatikkoon saimme lahjoituksena raparperiä, saksankirveliä, basilikaa, oreganoa, minttua ja jotain salaattia. Vielä pitäisi keksiä joitan muita hyötykasveja joita tuonne voisi pistää.

PS. On minulla valoautomaatioprojektikin edennyt tässä pikkuhiljaa, joten siitä on luvassa megapostaus jossain vaiheessa videoitten kera :)

maanantai 16. maaliskuuta 2015

Saunan audion etäohjaus, osa2

Saunan audion etäohjauksesta olinkin jo aikaisemmin tehnyt blogipostauksen. Muistia voi virkistää täältä: http://omakotikotitalomme.blogspot.fi/2014/05/saunan-audion-etaohjaus.html

Vaikkakin ratkaisu on toiminut hyvin, niin tuon vastaanottimen protolevy oli aika ruman näköinen häkkyrä. Joten päätin kolvata hieman kompaktimman ja paremman näköisen ratkaisun, jonka pitäisi toimia pitkälle tulevaisuuteen. Ebaysta olin keväällä huutanut itselleni neljäkanavaisina 5V<->3.3V bidirectional level shiftereitä, jotka maksoi alle euron kipale (ebay URL).

Kuumaliimasin signaalitasonmuuttajan nätisti kiinni vastaanottimen pohjaan. Kolvasin vastaanottimesta lyhyet kaapelit 5V nastoihin ja 3.3V nastoihin kolvasin kiinni dupont-kaapelit jotka menee Raspberryyn. 3.3V input kaapeliin pistin kutistussukan sisään vielä 470Ω vastuksenkin, niin ei ole vaaraa GPIO:n hajoamiselle vaikka kytkisi väärin. Kohtuullisen nätti lupputulos varsinkin jos vertaa sitä aikaisemman postauksen protolevyyn. Hyvin toimii kake tällä uudella versiolla vähän kauempaakin, testasin 15 metrin päästä kolmen seinän läpi.

maanantai 9. maaliskuuta 2015

Danfoss-lämpöpumpun salaisuudet

Olinkin jo edellisissä postauksissa maininnut, että haluaisin automaatioprojektissani myös ohjata maalämpöpumppuani. Mutta Danfossin edustaja ei halunnut kertoa, miten heidän nelipinninen liitin ulkoisille laitteille toimii. Niinpä totesin:

Jos ei muu auta, niin TermIQ:lla tuota tulen ohjaamaan, mutta olisihan sen lisäksi kiva tietää, mitä pinnit oikeasti tekee. Joten otin yleismittarin ja ekana katsoin TermIQ:n puolelta statistiikkaa. Neljäs pinni (alin) on GND, ja kolmessa muussa pinnissa oli 2.45V kun USB-piuha on kytkettynä sisään (ilman että on Danfossissa kiinni).

Ekana luulin, että liittimessä kulkisi serial TTL liikennettä 9600 8N1, kun Talologger projektin sorsissa vähän niin annettiin ymmärtää. Joten ekana kun ThermiQ:n pistin laitteeseen kiinni, niin minulla oli signaalianalysaattorit pistetty sarjaliikenne muotoon. Ja ekana luulin että pinnit olisi tx,rx,vcc,gnd järjestyksessä, joten olin analysaattoriin pistänyt tallennuksen alkuun pulssin triggeriksi ekaan pinnin. Se olikin väärä arvaus ja sitä triggeriä ei laukaistu missään vaiheessa. Joten siirsin triggerin sitten toiseen ja kolmanteen pinniin. Johan alkoi lyyti kirjoittamaan, mutta eipä analysaattori tunnistanut sitä sarjaliikenteeksi. Joten päättelin (olammin kommentin perusteella, kiitos siitä) sitten, että talologgerin sorsien ThermiaSerial koodi käyttää "Husdata"-kaapelin StatLink.exen formaattia ja kyseistä kaapelia ei enään voi ostaa mistään uutena.

Joten tämänhetkinen arvaukseni on 5V logiikalla toimiva I2C seriaali (8-bittinen signalointi). Vaihtoehtoisesti liikenne olisi voinut olla COMLI-protokolla (eräs ruotsalainen sivusto näin väittää) joka myös on I2C:n päällä. Ja voihan se ollakin COMLI:n joku variaatio, jossa komennot on yleensä 12-bittisiä, voi olla että analysaattori pilkkoo ne vain 8-bittiseen formaattiin (COMLI:stä esimerkki c-toteutusta löytyy esim.: http://fossies.org/linux/nut/drivers/al175.c ja Java referenssi toteutus: http://www.avineas.org/index.php?page=abb-comli). Itse kyllä I2C seriaalina tuota tällähetkellä kohtelen koodissani (ja sillä myös tuntuu toimivan).

Eli nykyinen arvaukseni (tai siis tieto mittausten jälkeen kytkettynä Danfossiin) pinnien järjestyksestä on:



VCC 5V
SCL
SDA
GND

Ja totta tosiaan, tuolla oletuksella kun conffaa analysaattorin kiinni pinneihin, niin logeihin jää oikean näköistä dataa, joka matchaa ThermIQ terminaalin AT-komentojen tuottamaan dataa. Eli kuka vain voisi ottaa sopivan edullisen 5V Arduinon tai Raspberryn (kunhan käyttää 3.3V<->5V bidirectional level convertteria.) ja rakentaa I2C:n päälle oman kaapelin ihan murto-osalla kaupallisten vaihtoehtojen hinnasta. Itse asiassa normaalit Raspberryt ei tue I2C slave modea, joten Raspberry käyttö menee vaikeaksi. Uusimmissa B+ malleissa GPIO19 (CLK) on jo saatavilla, mutta edelleen se taitaa vaatia omaa I2C koodia, kun normaali I2C kirjasto tukee vain master modea. Tässä pistän mietintämyssyn päähän, että jos minulla olisi tarpeeksi vapaa-aikaa, niin voisin rakentaa ja myydä omia custom kaapeleita tuohon. Katsotaan mitä saan tämän kanssa aikaiseksi (jos haluat ostaa minulta custom Thermia/Danfoss-kaapelin, niin blogin sähköpostiosoitteeseen vain yhteydenottoja. Lupaan olla yli puolet halvempi kuin ThermIQ. Tällähetkellä työn alla on kaapeli joka emuloi suoraan ThermIQ sarjaportin AT-komentoja (jolloin voi olemassa olevia softia käyttää suoraan). Osien tilaus Kiinasta saattaa kestää muutaman viikon, jos minulla ei juuri sillähetkellä ole osia hyllyssä.).

Mutta tässä nykyinen tilanneraportti, ThermIQ toimii hienosti Danfossin lämpöpumpun kanssa, tuossa ylenpänä on piuhan pinnijärjestys kirjattuna. Ja tässä screenshotti analysaattorin maagisesta toiminnasta:

Tuon kun zoomaa auki, niin näkee, että Danfoss masterin ja I2C slaven välisessä liikenteessä kulkee neljä tavua 0x5C, 0x06, 0x18, 0x0 ([7-bittinen osoite + read|write bitti], rekisterin osoite, rekisterin arvo vähiten merkitsevät bitit, rekisterin arvo eniten merkitsevät bitit(yleensä 0x0 koska arvot on < 256)) eli tuossa tapauksessa Danfossin rekisterin nro 6 arvo on 0x18. Ja esim. Talologgerista tai googlaamalla löytää mitä eri rekisterin arvot tarkoittaa. Samantyylisiä arvauksia dataformaatissa on myös maalämpöfoorumissa, vaikkakin olettavat datan olevan 9600 serial muodossa (tai sitten ovat mitanneet ThermiQ/Husdata:n usb puolen sarjaliikennettä, joka on 9600 8n1 seriaali), vaikka oikeasti se on I2C kortin ja pumpun välillä. Tässä tapauksessa "['return line temp', 6, TYPE_INT16]," -> paluuveden lämpötila on 24C.

Avataan I2C protokollan ensimmäistä tavua vielä hieman lisää, tässä vaiheessa on hyvä olla calculaattori joka osaa näyttää hex-numerot myös binaarina.

0x5C = 0b01011100 -> I2C 7-bit osoite desimaalina on 46 (0b00101110 -> 0x2e)
0x5D = 0b01011101 -> I2C 7-bit osoite desimaalina on 46 (0b00101110 -> 0x2e)

Eli viimeinen bitti punaisella merkittynä on 1=read 0=write, ja 7 ensimmäistä bittiä on itse I2C osoite. Tuon perusteella pitäisi jo pystyä koodaamaan oma kaapeli :-)

Mutta ihan vaan akateemisessa mielessä avataanpas tätä viestiliikennettä hieman enemmänkin, ettei tule semmoista mielikuvaa, että pitäisin osan salassa omaa kaapelitoteutusta varten. Eli kun rekisterin luku on edellä käsitelty (ATR), niin pitäähän sitä varmaan rekisteriin kirjoituskin käsitellä, että voi etänä ohjata haluttuja arvoja.

Analysaattori kiinni ja katsotaan mitä write (ATW370001) pitää sisällään (Tällä kertaa ajoin analysaattoria Macissä):

0x5D = 0b01011101 Setup Read to [] (0x5D] + ACK
0xB7 = 0b10110111 Red == Write/Set Value, Blue (0x00110111 == 0x37 == 55 == ['curve +5', 55, TYPE_INT16])
0x01 = 0b00000001 Vähiten merkitsevä tavu (low byte)
0x00 = 0b00000000 Eniten merkitsevä tavu (high byte)

Joten rekisteriin kirjoitus on aika suoraviivaista; 0x5D, kohde rekisteri|0x80 ja seuraavat on vähiten merkiksevä tavu ja sitten eniten merkitsevä tavu.

Ainiin ja menee tuolla linjalla myös jotain keepalive/ping tyylisiä viestejä, 11111111(0xFF) && 11111110(0xFE), villi arvaus että noi on jotain propriatary broadcast tyylisiä pollaus viestejä read/write lipuilla (koodasin kaapelin vastaamaan pong(FF) noihin ping(FE) viesteihin, jos jonossa ei ole komentoja).

Nyt kun on read ja write komentojen salat kaivettu esille, niin seuraavaksi katsotaan ja varmistetaan, että liikenne tosiaan on I2C:tä, eli pistetään linjan perään Raspberry Pi tai Arduino ja tehdään I2C scanni ja katsotaan montako laitetta vastaa linjan perästä.... ja eikun tuumasta toimeen. Rakensin 3.3V <-> 5V bidirectional level converter piuhan ja kytkin sen Raspberryyn kiinni: i2cdetect ei löydä mitään, joten taisi sittenkin tulla väärä arvaus protokollan suhteen tai vaatii jonkun salaisen kättelyn linjan herättämiseksi. Nostan hetkeksi kädet pystyyn, kunnes ehdin taas jatkamaan debuggausta eli to be continued. Toistaiseksi ohjailen tuota ThermiQ:n läpi, kunnes keksin miten tuo ThermiQ laittaa tuon väylän I2C tilaan.

Päivän verran olin lannistuneena tuosta ekan yrityksen epäonnistumisesta, mutta sitten pistin mietintämyssyn päähän ja päätin aloittaa debuggauksen uudestaan eri näkökulmasta. Rakensin ethernet-kaapelista splitterin, jonka pistin pumpun ja näytön väliin, yleismittarilla kun mittaa signaalintasot niin 12V näyttää olevan ainakin kahdessa johtimessa, ja minun halpa signaalianalysaattori on max 5V jännitteille, joten jätin ethernet portin tutkimisen toistaiseksi jäähylle. Otin uudeksi lähestymistavaksi mitata ensimmäiset 10 sekunttia laitteen käynnistymisestä, joten pistin TermiQ:n kiinni analysaattorin ja käynnistin laitteen, kiva logi tuli. Sitten päätin vielä ottaa toisen boottilogin ilman TerhmiQ:ta, sillä oletuksella että linjan pitäisi olla hiljainen. Mutta eipä ollutkaan, joten bingo välähti mielessäni.

ThermIQ laite ei olekaan masteri vaan se toimii slavena, joten ei olekaan ihme, ettei i2cdetect suoraan portissa löytänyt mitään, kun linjassa ei olekaan muuta kuin pumppu, joka on masteri. Logia kun katsoo, niin se on itse asiassa pumppu, joka lähettää pingia väylälle ja etsii, että onko siellä laitteita. Se etsii 0x2e:tä (jota ThermiQ oikeasti emuloi, joten minun omakin koodin pitää olla 0x2e osoitteessa oleva slave. Samoin se vielä kyselee, että onko 0x2e olemassa, ekana 1.5s bootin kohdalla lähettämällä 0xFD ja 0xFE 7.3s:stä lähtien, johon ThermiQ sitten vastaa 0xFF. Pumppu myös etsii myös 0x32- ja 0x37-laitteita 0x00-viestillä, en sitten ruvennut tutkimaan, että mitä laitteita se etsii: mahdollisesti extra näyttöjä, verkkokortteja, modeemeja tms. Lähinnä akateemisessa mielessä kerron, että pumppu scannaa kolmea eri laitetta väylältä. Meitä lähinnä kiinnostaa matkia ThermiQ:n toimintaa, joten keskityn 0x2e:hen. Joku toinen voi halutessaan koittaa ihmetellä, mitä nuo muut osoitteet ovat.

Tästä sitten syntyi uusi teoria, että I2C:n päällä pumppu on masteri, joka pollaa rekisteriä 0xFE 110millisekunnin välein ja slave vastaa 0xFF, jos jonossa ei ole mitään komentoja. Eli pumppu kysyy, "hei, halutko tietoa mistään?"(0xFE) ja slave vastaa "Moro, en tarvi mitään?"(0xFF), tai sitten se voi vaikka vastata, että "Joo, annappa vaikka rekisterin 50 arvo"(0x32). Näin pollaamalla saa noin 9 rekisterin arvoa sekunnissa. Eli teorian todistaminen todeksi vaatii vain I2C slave devicen koodaamisen noilla oletuksilla. Joten se oli seuraavaksi vuorossa.

Eli otin sopivan 5V logiikalla toimivan mikrokontrollerin ja koodasin sarjapinneihin AT-modeemikomento emulaation ja I2C pinneihin sitten rekisterien luku- ja kirjoituslogiikan, ja tein syntaksin matchaamaan ThermIQ kortin komentoja, jolloin nykyisiä softia pystyy käyttämään halutessaan suoraan. RTC osuuden tein euron patterivarmistetun I2C RTC kellon avulla (Vaihtoehtoisesti voisin suoraan koodata softaemuloinnin Raspberry Pi:llä, jolloin ei tarvittaisi mitään ulkoisia kontrolleja, I2C kaapelin pituudella on vain rajoituksia, eli siinä tapauksessa pitäisi Raspberry jättää Danfossin pumpun sisäpuolelle, ja vaan pistää eetteripiuha ulospäin). Mutta siis koska Raspberry toteutuksen tekeminen on vaivalloista (koska ei ole vielä mitään valmista helppokäyttöistä i2c slave kirjastoa julkaistu), niin keskityin tekemään helpomman serial<->I2C AT modeemi-emuloinnin. Wire I2C kirjasto ei suorilta kyennyt juttelemaan pumpun kanssa, koska pumppu lähettää hieman epästandardin start-bit sequenssin. Mutta muutaman illan koodaus- ja debuggaus-session jälkeen, löytyi oikea paikka Wiren puukotukseen ja nyt näyttää tältä:

Hyvältä näyttää, mokkulani vastaa AT-komentoihin samalla tavalla kuin ThermIQ:n kanssa. Minun moduulissani nostin sarjaliikenteen nopeuden 9600:sta 115200:aan, joten vastailee kyselyihin teoriassa hieman nopeammin kuin ThermIQ. Samoin kun mikrokontrolleri nyt tarjoaa serial pinnit ulospäin, niin siihen voi liittää minkä vaan usb<->serial palikan, ja voi valita käyttöjärjestelmän perusteella sopivimman yhdistelmän (Windows, Linux ja OSX).

Ja nälkähän kasvaa syödessä, joten ajattelin, että mitähän jos pistäisin vielä muutamaan ylimääräiseen pinniin toisen sarjaportin pyörimään, että siihen pääsee käsiksi vaikka kahdella usb<->ttl tikulla, niin silloin tietokoneella olisi esim /dev/ttyUSB0 ja /dev/ttyUSB1, jolloin voi toiseen deviceen pistää kiinni esim ThermIQ:n oman softan ja toisen kiinni vaikka Talologgeri-softaan. Joten ei kun koodausmyssy päähän, ja nyt minulla on myös softaversiot kahden ja kolmen sarjaliikenneportin versiosta (että voin yhtä aikaa pitää ThermIQ:ta ja Talologgeria päällä, ja pystyn vielä kolmannella muuttelemaan arvoja ennakoivasti omasta softasta esim. viiden päivän sääennusteen mukaan, niin voi kokeilla muka säästää sähköä sääennusteilla.

Seuraavaksi kun kaikki omasta mielestäni toimii, on vuoro testata, että toimiiko se nykyisten softien kanssa yhteen. Joten sitten vaan asentelemaan ja testaamaan toimintaa... Olin kakkos-seriaalin pistänyt 9600 nopeuteen ihan vaan yhteensopivuuden vuoksi, ettei tarvi configeja muuttamaan. Asensin ThermIQ-softan Raspberry Pi:hin (asennus käyttää vielä yhtä dokumentoimatonta AT komentoa, mutta sen nopeasti koodasin) ja tämmöiseltä web-liittymä näyttää:

Näyttää toimivan ihan kivasti, vielä pitää testata kuinka kauan toi mokkula toimii ilman, että sitä tarvitsee rebootata. Eli vielä en tiedä, pysyykö toi pystyssä kuukausia ilman ongelmia. Mutta toistaiseksi olen tyytyväinen tämän haasteen lopputulokseen. ;-) Muoviläystäkkeen sain kaksipuoleisella teipillä hyvin kiinni lähelle EXT-liitintä.

PS. Tässä olen kuukauden päivät ajanut ThermIQ softaa raspberryssa tolla mun omalla arduino pohjaisella kaapelilla, ja muutaman oman koodausbugin korjaamisen jälkeen tuntuu toimivan kuin junan vessa. Hyllyssä löytyy osat viiteen kaapeliin, joten nyt on tarvittaessa kaapeleita saatavilla.
PS2. Tässä on kuva uusimmasta kaapeliversiosta, on mukavasti pienemmän kokoinen kuin ensimmäinen versio.

Nytten tuota kaapelia on testattu Raspberryn perässä TaloLoggerilla, ThermIQ ja ThermIQv2 softilla, ja hyvin tuntuu toimivan. Myyntisivu: http://omakotikotitalomme.blogspot.fi/p/myydaan-tavaraa.html
Disclaimer: I2C liikennettä ei ole salattu mitenkään, joten tämä blogipostaus ei pura mitään teknistä suojausta (laitteen valmistajan haluttomuus kertoa liittimen toiminnasta ajaa heidän omia intressejään). I2C specifikaatio on vapaasti luettavissa netissä UM10204.pdf. Samoin en ota mitään vastuuta, jos onnistut hajoittamaan oman pumppusi tämän blogipostauksen johdosta.