perjantaina, kesäkuuta 09, 2023

Älylaitteiden lisääminen Home Assistantiin

Tarkastelen tässä kirjoituksessa älykodin rakentamista prosessina. Älylaitteiden lisääminen Home Assistantiin sisältää tyypillisesti seuraavat vaiheet: 

  1. Tunnista älylaitteet: Määritä ne älylaitteet, jotka haluat integroida Home Assistenttiin. Tämä voi sisältää erilaisia älylaitteita, kuten valoja, termostaatteja, antureita, kameroita tai muitakin.Varmista, että valitsemasi laitteet ovat yhteensopivia Home Assistentin kanssa tai että niille on olemassa integraatio Home Assistenttiin. Osa olemassaolevista kodinkoneista sisältää jo älytoimintoja, joita et ehkä ole ottanut käyttöön. Haluat varmistaa nimenomaan HA-yhteensopivuuden, et esimerkiksi johonkin toiseen älykoti-ratkaisuun.
  2. (Ei-pakollinen vaihe) Määritä oma IOT-verkko: Luo älylaitteillesi erillinen verkko parantaaksesi tietoturvaa ja eristä laitteet pääverkostasi. Tämä voidaan saavuttaa lisäämällä laitteet vierasverkkoon tai dedikoidun VLAN-verkon (Virtual Local Area Networks) avulla. 
  3. Asenna Home Assistant: Ota Home Assistant käyttöön erillisessä koneessa tai palvelimessa. Voit käyttää Raspberry Pi:tä, NAS-laitetta (Network-Attached Storage) tai virtuaalikonetta. Noudata virallisia Home Assistantin ohjeita ympäristön asentamiseksi.
    Asennusohjeet https://www.home-assistant.io/installation/
  4. Määritä Home Assistant: Avaa Home Assistant -käyttöliittymä ja määritä perusasetukset. Tämä sisältää sijaintisi, kieliasetuksesi ja kodin määrittämisen. Sen jälkeen määrittele apukomponentit, joita haluat käyttää (kuten Z-Wave, Zigbee tai MQTT). 
  5. Lisää valmistaja-integraatioita: Home Assistant tukee monenlaisia integraatioita erilaisiin älylaitteisiin. Näiden integraatioiden avulla Home Assistant voi kommunikoida ja hallita kodissasi olevia älylaitteita. Katso Home Assistant -dokumentaatio kunkin laitteen integraation löytämiseksi. Määritä integraatiot antamalla tarvittavat tunnistetiedot, IP-osoitteet tai API-avaimet. Ajantasainen lista integraatioista löytyy osoitteesta https://www.home-assistant.io/integrations/ Itse suosin Zigbee-protokollaa sen laajan laitetuen ja hyvien kokemusten vuoksi. 
  6. Järjestä laitteet huoneisiin: Luo virtuaalisia huoneita tai alueita Home Assistantissa laitteidesi järjestämistä varten. Tämä vaihe helpottaa laitteiden hallintaa niiden sijainnin perusteella. 
  7. Määritä automaatiot: Luo automaatioita määrittääksesi halutut toiminnot tai käyttäytymiset älylaitteille. Voit esimerkiksi luoda automaation, joka sytyttää valot, kun liikettä havaitaan tai säätää termostaattia lämpötilan tai sähkön pörssihinnan mukaan. 
  8. Mukauta käyttöliittymää: Home Assistant tarjoaa mukautusvaihtoehtoja käyttäjäkokemuksen räätälöimiseksi mieltymystesi mukaan. Voit luoda dashboard-koontinäyttöjä, lisätä widgettejä ja suunnitella asettelun tarpeidesi mukaan. 
  9. Paranna tietoturvaa: Ota käyttöön turvatoimet Home Assistant -asennuksen suojaamiseksi ja siihen liitetyt laitteet. Tämä sisältää vahvojen salasanojen käytön, kaksivaiheisen todennuksen käyttöönoton ja Home Assistant -ohjelmiston säännöllisen päivittämisen. 
  10. Testaa ja valvo: Kun olet asentanut laitteet ja automaatiot, testaa niiden toimivuus perusteellisesti. Tarkkaile järjestelmää ongelmien tai virheiden varalta ja tee tarvittavat muutokset. 
Noudattamalla näitä vaiheita, voit lisätä älylaitteita Home Assistantiin, jolloin voit ottaa sen käyttöön älykotisi keskitettyyn ohjaamiseen ja automatisointiin.

perjantaina, kesäkuuta 02, 2023

Docker ja YAML-kielen käyttäminen

Docker on suosittu avoin open source ohjelmistoalusta, jolla voidaan hallita ohjelmistoja ns. konttien avulla. Kontti kerää yhteen ohjelmiston osat ja riippuvuudet siten, että ohjelmisto voidaan siirtää sellaisenaan ympäristöstä ja alustasta toiseen ilman että sitä täytyy muokata. Esimerkiksi kehitys voi tapahtua paikallisella koneella ja tuotantoversiota ajetaan pilvessä olevalla palvelimella.

YAML 

YAML (“Yaml ain’t Markup Language”) on standardi merkintäkieli, jolla kuvataan, miten Docker käyttää erilaisia resursseja. YAML on JSON-tiedostomuodosta johdettu standardi, jota on alettu käyttämään erilaisten ohjelmistojen konfigurointiin eli sen asetusten säätämiseen.  Yksi YAML-merkintäkielen etu on se, että se voi sisältää kommenttirivejä, joka tekee siitä ihmiselle helppolukuisemman kuin JSON.

YAML-kielessä sisennys on tärkeää. Jokainen sisennys tehdään käyttäen kahta välilyöntiä, ei tabulaattoria. Määrittelylohkoja ei eroteta toisistaan tunnistemerkillä, kuten puolipiste.

Docker compose on komento, joka kääntää, käynnistää ja hallitsee tai lopulta poistaa erilaisia palveluja. Sen perusosia ovat

  • image eli asennuskuva

  • context eli ajoaikainen ympäristö

  • dockerfile eli määrittelytiedosto

  • args eli parametrit

    • volumet eli looginen levyvaraus

    • environment lei ympäristö

    • verkkoasetukset

Image eli asennuskuva on käännettävän tai ladattavan koontiversion nimi.

Context kertoo, mitä hakemistoa käytetään Docker-määrittelytiedostolle. Se voi olla myös URL-osoite git repositoryyn.

Dockerfile on tekstidokumentti, joka sisältää komennot, joiden avulla käyttäjä voisi komentoriviltä kääntää toimivan koontiversion. Käytännössä se sisältää komennot ja metatietoa, joiden avulla Docker luo ohjelman käännöksen. Oletusnimi on “Dockerfile”, mutta Dockerfile voi olla eri niminen, ja se löytyy Context-määrittelyn osoittamasta paikasta.

Parametrit

Kontin käyttämä portti määritellään docker compose tiedostossa seuraavasti listana

ports:

- ”2000:2000”

- ”3333:3333”

YAML-kielessä lista määritellään antamalla listalle nimi (”ports”) ja kaksoispiste. Sen alla sisennettynä on listan arvot.

Portit tulee kirjoittaa sulkumerkkien sisälle.

Volumet

Volume on levyvaraus (volume), jonka sisältämät tiedot säilyy myös sen jälkeen kun kontti on poistettu. Isäntäympäristön hakemisto voidaan linkittää  kontissa olevaksi hakemistoksi ja kun kontti pysäytetään, sen käsittelemät tiedot tallentuvat tähän hakemistoon.

Ympäristömuuttujat

Ympäristömuuttujat kertovat Dockerille, mitä versionumeroa tai tunnistetta tulee käyttää kun kontissa oleva ohjelma suoritetaan. Ympäristömuuttuja määritellään YAML-tiedostossa käyttäen YAML-listaa

environment:

  - VARIABLE=value

  - APP_VERSION=1.0

Määritellyt ympäristömuuttujat ovat saatavilla kontissa ajettavalle ympäristölle. Ympäristömuuttujia ei tarvitse ympäröidä lainausmerkeillä.

Jos ympäristömuuttujia on runsaasti, ne voidaan lukea tiedostosta. Tämä määritellään env_file-listana

env_file:

  - ./common_variables.env

  - ./settings.env

Docker lukee kyseisen tiedoston listan ja sen sisältämät arvoparit ja ne ovat näkyvissä kontissa ajettavassa ympäristössä. Jos ohjelmisto riippuu toisesta ohjelmistosta, jota ajetaan toisessa kontissa, se voi lukea samat ympäristömuuttujat yhteisestä tiedostosta.

Verkkoasetukset

Jos ohjelmisto käyttää muita palveluita, sen pitää pystyä vaihtamaan tietoja toisten konttien välillä. Sitä varten luodaan Bridge network eli Docker siltaverkko. Määrittely tapahtuu seuraavasti

networks:

  myapp_network:

    driver: bridge

myapp_network on nimi, jonka haluat antaa verkolle, jota konttisi käyttävät.

Palvelulle pitää myös määritellä vastaava lohko

networks:

  - myapp_network

Tämä lista määrittelee, minkä verkkojen osana kyseinen palvelu toimii. Sinulla voi olla ajossa samasta sovelluksesta eri versiot omissa konteissaan, jotka käyttävät samoja asetuksia, mutta omissa verkoissaan.

Käynnistysjärjestys

Jos ohjelmistokomponentti tai palvelu edellyttää jonkin toisen palvelun olemassaoloa, se voidaan määritellä depends-lohkolla.

depends_on:

  - mongodb

Tämä tarkoittaa sitä, että kyseinen kontti käynnistetään vasta, kun mongodb niminen kontti on käynnistetty. Koska kontissa olevan palvelun käynnistäminen vie oman aikansa, täytyy sovelluksen sisältää logiikka, jolla testataan, että palvelu vastaa kyselyihin. 

perjantaina, toukokuuta 05, 2023

Miksi valitsin Home Assistantin

Home Assistant on avoin ja vapaa ohjelmisto älykodin rakentamiseksi. Se tukee tuhansia eri älykotilaitevalmistajia ja on hyvin tuettu erilaisen raudan osalta. Jos valitset jonkin toisen älykotiympäristön, esimerkiksi Samsung Smarthings, Google Home, Lidl Silvercrest tai Apple Homekit, saat todennäköisesti hyvin yhteensopivan älykoti-ympäristön, mutta olet rajoitettu vain kyseisen valmistajan ja sen kumppaneiden laitteisiin.

 

On paljon pienempiä älykoti-valmistajia, mutta jotkin niistä ovat menneet konkurssiin tai heittäneet pyyhkeen kehiin, koska eivät ole taloudellisesti onnistuneet saavuttamaan sitä markkinaosuutta, joka älykotiliiketoiminnalle oli asetettu. Tällöin käyttäjä jää huonoimmillaan ilman tukea tai toimimattomien laitteidensa kanssa yksin.

Usein älykotilaitteella on jonkinlainen matkapuhelinohjelma eli appi, jolla kyseistä laitetta voidaan käyttää. Kun hankitaan lisää laitteita, joudutaan asentamaan useita matkapuhelin appeja ja muistamaan, mitä laitetta käytetään minkäkin appin kautta. Jokainen appi vaatii oman kirjautumisen kyseisen valmistajan verkkopalveluun ja oman salasanansa. Lisäksi käyttölogiikka on erilainen eri valmistajien ohjelmissa.

Saman valmistajan laitteet voivat puhua keskenään käyttäen suljettua tai standardoitua protokollaa. Tätä varten pitää usein hankkia jokin gateway eli yhdyskäytävälaite. Se kytketään verkkoon ja sen kautta laitteet näkevät toisensa. Jos hankkii toisen valmistajan älykotilaitteita, se voi tarkoittaa eri yhdyskäytävälaitteen hankkimista, jolloin kodissa on useita jatkuvasti päällä olevia lisälaitteita. Näiden päivittäminen ja ylläpitäminen voi muuttua työlääksi ajan kuluessa.

Zigbee-yhdyskäytävälaite

 

Home Assistant tukee useita eri yhdyskäytäviä ja protokolla-standardeja, joista suosituin on Zigbee. Kun hankkii Home Assistant yhteensopivan Zigbee-yhdyskäytävän, voi käyttää kaikkia Zigbee yhteensopivia älykotilaitteita sen kautta, vaikka ne olisivat eri valmistajien tekemiä, kuten Ikea tai Lidl.

Conbee 2 -yhdyskäytävälaite USB-tikkuna

Home Assistant ohjelmiston takana on Nabu Casa -niminen yhtiö. Ohjelmiston kehitys tapahtuu kehittäjäyhteisön toimesta ja sen toiminta voi jatkua, vaikka Nabu Casa ei sitä enää sponsoroisi. Nabu Casan liiketoiminta tulee kahdesta suunnasta: he tekevät Home Assistant laitteita, esimerkiksi minitietokonetta (”Home Assistant Yellow”) , jossa voi ajaa paikallista Home Assistant ohjelmistoa ja sen lisäksi tarjoavat Nabu Casa pilvipalvelun, jonka avulla voit turvallisesti käyttää Home Assistant ohjelmistoa mistä tahansa internetistä. Pilvipalvelu tarjoaa myös tavan liittyä eri älykotipalveluihin, kuten Google Homeen.

Home Assistant -ympäristö on todella helppo pystyttää. Tarvitaan vain tietokone, joka voi olla vaatimaton Raspberry Pi korttitietokone, tai vanha pöytäkone tai kannettava tietokone.

Laitteen vanha käyttöjärjestelmä ohitetaan ja koneeseen asennetaan Home Assistant -käyttöjärjestelmä, Home Assistant Operating System eli lyhyesti HAOS. Se perustuu Debian linux -jakeluversioon, jonka päällä itse Home Assistant ohjelmisto pyörii. Kun asennus on tehty, ohjelmistoa käytetään täysin selaimella ja laite voidaan sijoittaa jonnekin, missä se voi pyöriä käynnissä jatkuvasti, mutta sen ei tarvitse olla esillä. 

Web käyttöliittymä

 

Home Assistant koneessa ei tarvitse olla näppäimistöä tai näyttöä, mutta se kannattaa kytkeä verkkoon LAN-kaapelilla, luotettavamman verkkotoiminnan varmistamiseksi.

On suorastaan ilo nähdä, miten Home Assistant toimii jopa vanhassa 1 GB keskusmuistilla varustetussa Raspberry Pi 3-korttitietokoneessa!

Raspberry Pi 4 korttitietokone

Raspberry Pi käyttää SD-muistikorttia paikallisena massamuistina. On todella tärkeää muistaa tehdä siitä säännöllisesti varmuuskopio, koska muistikortti kuluu kun sitä käytetään ja jonain päivänä sen toiminta lakkaa. Sen vuoksi Raspberry Pin kaveriksi kannattaa hankkia SSD-levy, jolta Home Assistant -ohjelmistoa käytetään ja muistikorttia käytetään vain koneen käynnistymisen yhteydessä. SSD-levy on suunniteltu jatkuvaan kirjoituskäyttöön ja sen ohjainpiiri osaa kierrättää käytettyjä muistisoluja, joten sitä voidaan käyttää palvelimen massamuistina pidempään kuin SD-muistikorttia.

Koska Raspberry Pi laitteiden hinnat ovat olleet todella korkealla tasolla erilaisten integroitujen piirien pulan takia, onkin ehkä helpointa ottaa vanha pöytäkone tai läppäri Home Assistant käyttöön.

Home Assistant voidaan asentaa myös muilla tavoilla, mutta en käsittele niitä kaikkia tässä kirjoituksessa.

Koska oma Home Assistant koneeni on kohtuullisen hyvin varusteltu, olen kuitenkin päätynyt ajamaan Home Assistant -ohjelmistoa kontissa, jolloin koneen resursseja voidaan käyttää myös muiden palveluiden ajamiseen. Yksi tällainen palvelu on verkkokameran ohjaus- ja tallennusjärjestelmä Frigate ja ajan myös Pihole-nimistä mainosten suodatusohjelmistoa samassa raudassa.

Jos kodissa on jo jonkinlainen palvelinlaite, voidaan siinä todennäköisesti ajaa myös Home Assistant ohjelmistoa sen keveyden ja hyvän yhteensopivuuden ansiosta.

sunnuntai, huhtikuuta 09, 2023

Home Assistant kokemuksia

Minulla on ollut hankittuna pari Raspberry Pi tietokonetta, joita olen käyttänyt mm. Pihole ja Unifi Controller -ohjelmiston ajamiseksi.


Latasin ehkä 2 vuotta sitten Home Assistant käyttöjärjestelmän, jonka asensin Raspberryn SD-muistikortille ja käynnistin sillä laitteen. Sain kotinäkymän avattua, mutta en osannut lisätä laitteita ja kiinnostuksen laantuessa jyräsin melko pian sen jäkeen Home Assistant -asennuksen.


Nyt päätin panostaa älykotiin ja katselin aiheesta muutaman Youtube-videon.

Olin hankkinut kesällä 2021 Raspberry Pi 4 koneen 8 gb muistilla, mutta en ollut ottanut sitä käyttöön. Koska näistä on tullut kova pula, myin tämän käyttämättömän Rasberryn pois ja käytin saadut varat paremman palvelinkoneen hankkimiseen.


Hankin alustaksi Lenovo ThinkCenter Tiny minikokoisen tietokoneen käytettynä. Sen tarkka malli on M710q. Prosessorina toimii vähävirtainen Intel Core i5-7500t ja kesusmuistia on 16 gigatavua. Lisäksi koneessa on Lenovon 256gb m.2 SSD massamuistina.

Lenovo Thinkcentre M710q

Koneen detaljit

Homeassistant asennus onnistui helposti USB-tikulta, koska en halunnut säilyttää koneessa ollutta Windowsia. Pohjajärjestelmäksi asensin Proxmox-virtualisointiympäristön ja ajoin siinä kahta Debian-virtuaalikonetta.


Koska en tiennyt 100% varmaksi, millaisen ympäristön lopulta haluan ja lisäksi huomasin, että toinen virtuaalikone oli käytännössä tyhjäkäynnillä, asensin Home Assistantin kokonaan uudelleen. Käyttöjärjestelmäksi valikoitui Ubuntu Server 22.04 LTS, minimal-asennuksena.


Asensin  Ubuntuun dockerin ja ajan Home Assistantia omassa kontissaan ja sen lisäksi Mosquitto MQTT brokeria omassa kontissaan. Jos jotakuta kiinnostaa, noudatin Home Automation Guyn ohjeita ja hän perustelee Dockerin käytön videollaan.



 

Koska kone on todella järeä tässä käytössä, olen asentanut myös Pihole mainosblokkerin omaan konttiinsa ja lopulta siirsin myös Unifi Controllerin omaan konttiinsa. Näin sain korvattua Raspberry-tietokoneen kokonaan.


Hankin Zigbee radioksi Sonoffin Zigbee 3.0 Plus -tikun johon päivitin coordinator-firmwaren. Firmware-päivitys vaatii tikun avaamisen, joten takuu menetetään. Laite on toiminut täysin ongelmitta ja Zigbee-laitteet ilmestyvät Home Assistantiin lähes automaattisesti. Tikku on 120 cm mittaisen USB-jatkojohdon päässä.


Lenovo on todella hiljainen ja välillä pitää katsoa sen led-merkkivaloja, jotta varmistaa koneen olevan päällä. Prosessori on tyypillisesti 1% käyttöasteella ja prosessorin lämpötila on normaalikäytössä 34 celsius-asteen paikkeilla.


Koneen resurssit riittävät pitkälle tulevaisuuteen. Toisin sanoen, vastaava kone vaatimattomammalla prosessorilla ja 4 GB keskusmuistilla olisi tarpeeksi tehokas.



Kone kuluttaa normaalikäytössä vain 4,5 wattia, joten se kuluttaa vain 1 - 1,5 kertaa sen, mitä Raspberry Pi vei peruskäytössä.



Jos näpertely kiinnostaa ja haluat saada älykotilaitteistasi kaiken mahdollisen hyödyn irti, suosittelen Home Assistantin kokeilemista.


 

sunnuntai, maaliskuuta 26, 2023

Johdatus tietokonepeliin M.U.L.E.

Useimmat ovat lapsuudessaan tai nuoruudessaan törmänneet tietokonepeliin, joka on mullistanut heidän kokemuksensa niin, että kyseistä peliä tulee pelattua vuodesta toiseen.

Minulle tämä peli on M.U.L.E. Törmäsin peliin ystäväni kotona, jossa hänen isoveljensä oli hankkinut pelin kopion Commodore 64 kotimikrolle. Muistan, että en ensimmäisellä kerralla pelistä paljon ymärtänyt, mutta jonkinlaiset konekirjotetut ohjeet (valokopiona?) olivat levykkeen mukana ja siitä tavattiin ohjeita ja alettiin perehtyä pelin ideaan. Vuosi on varmasti kahdeksankymmentäluvun alkua, varmaankin 1984.

Miksi tämä peli on niin erityinen? Se on julkaistu jo vuonna 1983, Electronic Artsin kautta. Pelin on ohjelmoinut Ozark Softscape -niminen pelitalo, jossa Dan Bunten oli pääsuunnittelija ja sen muut jäsenet ovat Bill Bunten, Jim Rushing ja Alan Watson. Musiikin peliin on säveltänyt Roy Glover.

Peli ohjelmoitiin alun perin Atari 400 ja 800 tietokoneille, mutta se siirrettiin nopeasti Commodore 64:lle, Nintendo Entertainement Systemille, IBM PC:lle ja MSX1 ja MSX2 tietokoneille. Peli on monen pelaajan peli, jolloin saatoimme pelata sitä yhdessä ystävieni kanssa, eikä omaa pelivuoroa täytynyt odottaa, kuten usiemmissa muissa tuon ajan peleissä. Juuri monipelaaminen tekee siitä mielestäni erityisen.

Peli, jossa oli musiikit ja alkugrafiikka, oli uusinta uutta! Lisäksi se osasi käyttää peliohjainta, joka ei tuolloin ollut vielä itsestäänselvyys. Peli ei suoraan käynnistynyt high score -pistetaulukkoon tai ohjesivulle, vaan siinä on tarttuva musiikki, jonka soidessa näytölle hitaasti piirtyy teksti M.U.L.E. Tekstin alapuolella juoksee pelihahmoja, joita on kahdeksan erilaista.

M.U.L.E. alkukuva

Kun tämä alkukuva on latautunut, päästään valitsemaan, montako pelaajaa pelissä on mukana. Pelaajia on aina 4 kappaletta, mutta niistä yhdestä neljään voidaan valita ihmisen ohjattavaksi ja loput ovat tietokoneen, eräänlaisen yksinkertaisen tekoälyn ohjaamia.

Jokainen pelaaja saa myös valita, millaisella hahmolla haluaa pelata eli voi valita yhden kahdeksasta vaihtoehdosta. Näillä pelaajatyypeillä on erilaisia ominaisuuksia, jotka voivat edesauttaa pelissä.

Jokainen pelaaja saa myös itselleen värin: vihreä, punainen, sininen ja ruskea. Väri kertoo, minkä pelaajan maa on planeetan kartalla.

Peli alkaa tilanteesta, jossa avaruusalus laskeutuu asumattomalle planeetalle ja jossa pelaajat kilpailevat 6 tai 12 kierroksen (kuukauden) ajan. Joka kierroksella pelaaja voi valloittaa itselleen palan maata ja tuottaa siellä hyödykkeitä, joita sekä itse, että muut pelaajat tarvitsevat. Pelin voittaa pelaaja, joka pärjää parhaiten muita pelaajia vastaan.

Pelissä on myös aloittelijan taso, jossa pelataan vain 6 kierrosta ja siinä aika kuluu hitaammin kuin turnaus-tasolla.

Pelissä on erilaisia strategioita, mutta periaatteessa jokainen pelaajan omistama maa-alue voi tuottaa yhtä hyödykettä kerrallaan. Hyödykkeitä ovat ruoka, energia, smithore ja crystite. Smithore ja crystite ovat kauppatavaraa, joista smithorea käytetään uusien M.U.L.E. eli Multi-Use Labor Element -robottien valmistamiseen ja crystite on harvinainen malmi, jota on hankala kerätä ja vaatii oman kaivoksensa, mutta jonka hinta on tyypillisesti muita hyödykkeitä korkeampi.

Kutsuimme smithorea yksinkertaisesti kaivostuotteeksi ja crystite kääntyi muotoon timantit.

Hyödykkeitä tulee hankkia mahdollisimman halvalla ja myydä mahdollisimman kalliilla. Joka kierros päättyy yhteenvetoon, jossa nähdään, miten jokainen on pärjännyt tähän mennessä. Tyypillisesti johdossa olevalle pelaajalle tapahtuu enemmän ikäviä sattumia ja heikoimmin pärjänneelle pelaajalle suotuisia sattumia, joka tasaa pelaajien välisiä eroja.

Pelissä on myös mahdollista liittoutua toisia pelaajia vastaan tai niiden tueksi, joka tuo peliin vielä oman ulottuvuutensa.

Pelissä on myös hauskana lisänä se, että kun pelaajan pelivuoro päättyy, hän voi mennä paikalliseen pubiin, jossa kierrokselta ylijääneen ajan aikana voidaan pelata uhkapelejä, joista pelaaja saa lisää pääomaa. Valuuttana toimii galaktinen dollari.

Pelin ainoa negatiivinen asia on sen pituus, koska yksi kierros vie noin viisi minuuttia, joten 12 kierrosta vie tunnin. Toinen haaste on kynnys opetella kaupankäyntisysteemi, joka vie aikansa.

Jos tämäntyyppinen pelaaminen kiinnostaa, suosittelen kokeilemaan M.U.L.E. peliä ja tavoittelemaan arvostettua “First founder” palkintoa, jonka pelin voittaja saa.

sunnuntai, marraskuuta 27, 2022

Ruuvitag-anturi

Hankin Black Friday -kampanjasta pari Ruuvitag-anturia. Ne olivat Black Friday -kampanjassa 15% tarjouksessa. Olen ostanut anturit omalla rahallani ja tämä artikkeli ei ole kaupallinen yhteistyö.

Ruuvitag-anturi

Ruuvitag on pieni paristokäyttöinen langaton anturi, joka mittaa lämpötilaa, ilmankosteutta, ilmanpainetta ja liikettä. Dataa voi tarkastella mobiilisovelluksen avulla, joka kerää Bluetooth-yhteydellä anturin lähettämät tiedot.

Pakkauksen sisältö

Pakkauksessa tuli itse anturin lisäksi kaksi tarraa, pikaohje ja vähän pidempi esitteen kaltainen ohje Ruuvi-anturin käyttämisestä.

Ohjeet

Tarra 1

Tarra 2

Ohjeissa vahvasti suositellaan Ruuvi Gateway-ohjaimen hankkimista. Se kerää anturin tiedot ja jakaa ne WiFi-yhteyden kautta automaattisesti Ruuvin pilvipalveluun, josta mittatietoa voi käyttää haluamaansa tarkoitukseen. Laitteessa on tagien radiotaajuudelle optimoitu anntenni, jonka avulla se voi kerätä antureiden tietoa laajalta alueelta.

Myyntipakkauksen sisältö
Anturin
suojakansi

Anturin sisällä on muoviliuska, josta vetämällä paristo kytkeytyy piirikortin kontaktiin ja laite alkaa toimia. Kotelo on tiivis ja varustettu ohuella tiivisterenkaalla. Lisäksi kannen ja kuoren välissä on pieni rako, josta sen voi tarvittaessa avata. Kannessa on myös jonkinlaisella suodattimella varustettu aukko, josta ilmankosteutta mitataan.


Anturi kotelon sisältä

Asensin Ruuvi Station puhelinsovelluksen Android-version. Sovellus pyyytää kirjautumaan Ruuvi-palveluun ja lähettää annettuun sähköpostiin 4-merkkisen koodin, jolla luodaan Ruuvi-tili, jonne anturin tietoja kerätään.

Ruuvi Station -puhelinsovellus

Sovellus päivittää tietoja lähes reaaliajassa ja siinä voi lisätä anturista otetun valokuvann ja nimetä sen, jos käytössä on useita antureita. Mittaustiedoille voidaan asettaa hälytyksiä, jos annettu mitttaraja ylittyy tai alittuu. Sovelluksesta voi myös tilata suoraan lisää antureita tai Ruuvi Gateway-ohjaimen.

Mittausdatan visualisointi

Ruuvitag-anturi tallettaa tietoja 5 minuutin välein. Jos puhelinsovellus ei ole Bluetooth-kantaman sisällä, se osaa kerätä anturin tallettamat tiedot 10 päivän ajalta.

Laitteesta tulee todella laadukas mielikuva ja käyttöönotto on tehty helpoksi.

Aion sijoittaa toisen anturin joko parvekkeellemme tai autokatokseen, mutta lopullista paikkaa en ole vielä päättänyt. Toinen anturi saattaa päätyä saunaan.

Tarkoitus on myöhemmin kerätä anturin tiedot omalla ympäristöllä, ilman Ruuvi-pilvipalvelua. Siitä kirjoitan myöhemmin.

 



lauantaina, marraskuuta 12, 2022

Vic-20 moduulin rakentaminen

Olen opetellut juottamista ja halusin kokeilla tehdä jotain hyödyllistä. Olen etsinyt sopivaa projektia ja sellainen löytyi PCBWay-palvelun jaetuista projekteista. Moduulin nimi on DYI COMMODORE VIC-20 GAME CARTRIDGE for 8x 8KB ROMs.

Kyseessä on yksinkertainen piirikortti, jonne pitää juottaa kolme vastusta, yksi kondensaattori, yksi IC-kanta, kaksi jumpperiliitintä ja kolmen dippikytkimen moduuli. Lisäksi moduulissa on paikka reset-painikkeelle, mutta sen lisääminen on valinnaista, eli moduuli toimii myös ilman sitä. Ideana on, että otetaan 8 kappaletta erilaisia Vic-20 ohjelmia ja poltetaan niistä eprom muistille kokoelma, josta voi kortin dipeillä ja jumpperilla valita, mikä ohjelma käynnistyy. Eprom on siis uudelleenkirjoitettava muistipiiri, joka säilyttää muistinsa kun laitteesta sammutetaan virta.

Piirikortti edestä ja takaa

 

Tilasin PCBWayltä 5 samanlaista moduulin piirikorttia ja Mouserilta muut komponentit. Piirikortit tulivat kiinasta vajaassa viikossa, joten kun sain muut komponentit, pääsin kokeilemaan moduulin kasaamista.

Aluksi pudistin piirikortin isopropanolilla. Aloitin juottamalla vastukset, jotka ovat samanlaisia 10K perusvastuksia. Sen jälkeen juotin 100 nf keraamisen kondensaattorin paikoilleen. Sitten eprom-piirin IC-kannan. Sitten jumpperiliittimet ja lopuksi dippikytkimen. Minulla ei ole sopivaa painonappia, joten se jäi moduulista pois.

Juottaminen alkamassa

Vastukset paikoillaan

IC kanta juotettu paikoilleen

Kanta ja keraaminen kondensaattori lisätty

Piirikortti on valmis

Kun itse piirikortti oli valmis, oli aika polttaa eprom. Latasin projektisivun tarjoaman esimerkki-koosteen ja poltin sen ST Microelectronicsin M27C512-piirille. 


 

Eprom-piirille kirjoitetaan

 

En ole ennen käyttänyt XGecu Pro TL 866II-Plus ohjelmointilaitetta, joten sekin tuli testattua samalla. Minirpo halusi että laitteen varusohjelmisto (firmware) päivitetään ensimmäisellä käynnistyksellä uudempaan versioon, jonka sallin ja sen jälkeen se oli käyttövalmis.


Kun Eprom on poltettu, verifioin, että piiriltä luettava ohjelma vastaa sinne poltettua ja minipro-ohjausohjelman mukaan näin olikin.

Lopuksi kortti piti testata asentamalla se Vic-20 koneeseen. Kun koneeseen kytki virran, käynnistyi sen ensimmäisessä muistipaikassa oleva peliohjelma Raid on Fort Knox (1982). Kun koneen sammutti ja vaihtoi ensimmäisen dip-kytkimen päälle asentoon, käynnistyi toinen peliohjelma Galaxian (1983) ja niin edelleen.

Moduuli Vicin portissa

Sehän toimii!



 

Koska tähän koneeseen on entinen omistaja asentanut reset-painikkeen, ei moduulilla olevalle reset-painikkeelle ole juurikaan tarvetta.

Koska eprom on omalla kannallaan, ei eri ohjelmien käyttämiseksi ole pakko tehdä lisää moduuleita. Riittää, että vaihtaa kortilla olevan eprom-piirin.