Kotiautomaatio Arduinolla | Bluetooth, NRF24L01, lämpötila ja omia antureita.

25/11/2018

Hei! Valitettavasti kyseinen projekti on jäänyt taka-alalle, sillä en nähnyt ihan hirveästi potentiaalia kyseisellä ratkaisulla. Valitettavasti dokumentointi jäi todella vähäiseksi, mutta projektin tarkoituksena oli siis saada tehtyä kotiautomaatio, joka olisi toiminut kaikissa ratkaisuissa. Pohjana oli siis NRF24L01+ -radiomoduuli, jonka oli tarkoitus toimia ns. mesh networkkina usealle samanlaiselle laitteelle. Laitteella olisi ollut muutama perusanturi (kuten lämpötila tms.) ja sitten omia antureita ja toimilaitteita olisi voinut lisätä tarpeiden mukaan. Kyseisessä toteutuksessa ongelmaksi tuli kuitenkin moduulien huono kantama, toteutuksen monimutkaisuus ja 8-bittisien prosessoreiden muistin puute. Jos lähtisin toteuttamaan kotiautomaatiota uudelleen, käyttäisin todennäköisesti MQTT-protokollaa ja esim. ESP32-piiriä, jolla saisi yhdistettyä suoraan talon WiFi-verkkoon. Tähän vielä päälle jokin Linux -SBC, jossa pyörisi hallintasofta, ja toteutus olisi aika joustava.


Suurin osa suomalaisista ei välitä elektroniikasta harrastuksena juuri ollenkaan. Kuitenkin kun puhe on kotiautomaatiosta, ovat monet kiinnostuneita mahdollisuudesta oman järjestelmän luomisesta, joka tekisi elämästä helpompaa. Tai vaikeampaa riippuen toteutuksesta. Itse tehty kotiautomaatiojärjestelmä on huomattavasti halvempi kuin kaupallinen ja mahdollistaa täydet vapaudet laitteen toiminnan muokkaamiseen juuri omaan käyttöön.


Mihin tarvitset kotiautomaatiota?

Todellisuudessa et tarvitse sitä mihinkään. Valot voi laittaa päälle ja pois valokatkaisijasta ja lämpötilaa voi seurata lämpömittarista.

Kotiautomaatio voi kuitenkin tuoda taloon lisäpotkua: voit esimerkiksi laittaa valoihin ajastimen. Jos unohdat valot päälle, ne sammuvat automaattisesti tietyn ajan jälkeen. Voit myös laittaa samaan tilaan liiketunnistimen, joka estää valon sammumisen jos se havaitsee jonkun liikkumisen. Järjestelmän voi samalla laittaa vaikka hälyttämään, jos se havaitsee liikettä, kun ketään ei ole kotona. Kotiautomaatio antaa myös mahdollisuuden ohjata kodin elektroniikkaa vaikka puhelimestasi. Voit myös tutkia lämpötilan vaihtelua ja lisätä esimerkiksi oman termostaattisi, jos tarve vaatii. Voit myös kerätä tiedosta hienon graafin, jota voit katsella hetken ja todeta että olipa turha hanke.


Miten semmoinen kotiautomaatio sitten toteutetaan?

Kotiautomaatiolle on hyvin monia eri ratkaisuja. Voit esimerkiksi laittaa vaikka Raspberry Pi:n tai Beaglebonen pyörittämään kotiautomaatiotasi. Tai sitten käytät huomattavasti halvempaa Arduinoa. Vaihtoehtoja on paljon ja niitä tulee jatkuvasti lisää. Suosittelen kuitenkin käyttämään jotain tuntemaasi alustaa. Jos et tunne mitään alustoja, kannattaa valita sellainen, jolla on paljon käyttäjiä. Tällöin apua saa huomattavasti helpommin kuin alustalla, jota kukaan ei käytä.


Suunnittelin jo eräänlaisen kotiautomaatiopiirin. Tässä on kaikki mitä se pitää sisällään:

Huomio! ATmega8A-piirissä on niin vähän muistia ettei sitä kannata käyttää. ATmega328 on huomattavasti parempi vaihtoehto.

  • ATmega8A-AU -mikrokontrolleri. Tämä piiri hoitaa kaiken prosessoinnin. Kyse on siis Atmelin valmistamasta piiristä, jonka tulisi toimia Arduino IDE:n kanssa.
  • NRF24L01+ -radiomoduuli. Tällä piirillä voi yhdistää enintään kuuteen samanlaiseen levyyn. Tällöin voit laittaa vaikka yhden makuuhuoneeseen, toisen keittiöön, kolmannen olohuoneeseen ja niin edespäin.
  • AMS1117-3.3 -lineaariregulaattori. Tämä regulaattori tuottaa radiomoduulin tarvitseman 3.3 V jännitteen.
  • LM75AD -lämpöanturi. Piirin pitäisi kyetä 0.125 °C tarkkuuteen 11-bittisen A/D muuntimen avulla. Piiri on täysin digitaalinen ja sylkee dataa I2C-väylän kautta.

Kyseiseen levyyn on myös mahdollisuus lisätä Bluetooth-moduuli, jolloin sen voisi yhdistää vaikka puhelimeen. Lisäksi levyllä on piikkirimat valoanturille (valovastus), ulkoiselle lämpöanturille (tai muulle analogiselle anturille), relemoduulille, jossa on 4 relettä ja lopuksi vasemmalla kaikki loput I/O pinnit yleiseen käyttöön.

Arduino Finland -ryhmästä sai erinomaisia vinkkejä ja huomautuksia piirilevyyn liittyen. Yhdestä kondensaattorista oli jäänyt maa pois, copper fill puuttui, virta puuttui ja ohjelmointiliitin puuttui. Nyt on nekin lisättynä. Vinkkejä tuli kyllä vielä enemmänkin. Regulaattorille suositeltiin isoa kuparialuetta jäähdytykseen, rei'ille pisaranmuotoisia reittejä (jos pora menee hieman ohi niin piiri säilyisi silti toiminnallisena), isommat läpiviennit ja maskinavaukset niissä ja silkkipainoa suositeltiin pitämään yksinkertaisempana. Tuon kokoiset läpiviennit toimivat kyllä edelliselläkin kerralla, eikä levyllä ole hirveästi tilaa suurentaa niitä, joten jätän ne ennalleen.


Ainoa huono puoli tässä on se että näitä jotuu tilaamaan melko paljon, että ne tulevat kannattavaksi. Semmoinen 50 kpl on aikalailla minimi, jos haluaa tehdä näistä kannattavia. Ei ihan opiskelijan budjetti riitä taaskaan tähänkään. Näiden piirien kasaaminen ei myöskään tule onnistumaan yhdeltä ihmiseltä käsityönä. Kasaus jäisi tällöin luultavasti ostajalle. Nuo olisi kyllä kohtalaisen helppo kasata käsin, mutta se vaatii jo hieman kolvaustaitoja ja varsinkin aikaa. Kaikista vaikeimmat osat ovat luultavasti mikrokontrolleri ja 0603-kokoiset vastukset. Kaikki muu pitäisi olla ihan kohtalaisen helppoa.


Päivitys 27.11.2018

Tilasin prototyyppilevyt JLCPCB:ltä. Koko tilaus tuli maksamaan 15,43€ posteineen. (10 kpl kotiautomaatiolevyjä ja 10 kpl käsikonsolilevyjä.) Komponentteihin meni n. 16€. Olisin vielä tarvinnut lisää osia, mutta rahat alkavat olemaan tiukilla. Sain kuitenkin tilattua tuolla rahalla nämä osat:

  • 5 kpl NRF24L01-radiomoduuleja
  • 5 kpl ATmega8A-AU (todella vähän muistia, mutta ATmega328p olisi tullut vähän liian kalliiksi. No nyt ne meni ihan hukkaan kun muisti ei riitä mihinkään.)
  • 10 kpl LM75AD lämpöantureita
  • 20 kpl 16 MHz kristallioskillaattoreita
  • 200 kpl 0603 10k vastuksia (alasvetoja analogisille antureille)
  • 100 kpl 0603 22 pF kondensaattoreita (oskillaattorille)
  • 50 kpl 1206 680 nF kondensaattoreita (radiomoduulille)
  • 50 kpl AMS1117-3.3 regulaattoreita (3.3 V, maksimi 1 A)

Kaikki liittimet jäi pois, mutta pitää improvisoida.


Miten kotiautomaatiota voi hyödyntää?

Kotiautomaatiolla pyritään usein energiasäästöihin. Tämä tapahtuu keräämällä tietoa. Normaalisti valokatkaisijasi ei ole tietoinen mistään. Se joko kytkee valon päälle tai pois, riippumatta siitä tarvitaanko sitä ollenkaan. Valokatkaisija ei myöskään osaa sammuttaa itseään, vaikka valo olisi ollut jo viikkoja päällä. Se ei myöskään ymmärrä sitä, ettei yöllä tarvitse välttämättä olla päällä. Se ei myöskään säädä kirkkauttaan ympäristön mukaan.

Kotiautomaatiolla näitä ongelmia voidaan pyrkiä ratkaisemaan. Mitä enemmän kotiautomaatio kykenee keräämään tietoa, sitä paremmin se kykenee päättämään, onko kyseiselle elekroniikkalaitteelle tarvetta olla päällä. Kotiautomaatio ei tietenkään rajoitu pelkästään elektroniikkaan, mutta suurin osa sen käyttökohteista liitty jollain tavalla siihen. Voit vaikka laittaa kotiautomaation kastelemaan kukkia jos haluat.

Tässä on esimerkkilista sensoreista, joista voisi olla hyötyä kotiautomaatiossa:

  • Lämpöanturi (sisälle ja ulos)
  • Valoanturi (jos sisällä on jo tarpeeksi kirkasta, voi valot kytkeä pois päältä)
  • RTC (reaaliaikakello, mahdollistaa valojen sammuttamisen viimeistään tiettynä kellonaikana. Valojen ei myöskään tarvi tuottaa yhtä paljon valoa yöllä, kuin päivällä!)
  • Liikeanturi (Voit laittaa esim. ajastimen valoihin: jos huoneessa ei ole ollut x minuuttiin ketään, sammuta valot.)

Kotiautomaatiossa on myös hyvä olla jokin keino kommunikoida käyttäjän ja järjestelmän välillä. Tässä mallissa on mahdollisuus kytkeä laite sarjaporttiin, jolloin voit käyttää Bluetoothia, USB:tä (vaatii USB -> rs232 -muuntimen) tai vaikka ESP8266-moduulia (vaatii toki koodausta) säätääksesi asetukset itsellesi sopivaksi.


29.11.2018

Äh, unohdin kytkeä ADC6 (A6) pinnin johonkin. Nyt jää potentiaalinen I/O pinni pois, jossa olisi ollut myös ADC-MUX kytkettynä. (Eli analogRead()-toiminnolla varustettu pinni.) Se on jännä miten tuollaisia virheitä pääsee aina prototyyppeihin. No joka tapauksessa tässä on kytkentäkaaviot kyseiselle levylle:

https://docs.google.com/document/d/1WG99izbTutkRZyyhPokwMZTT7FW-gwuy6fU-SScdibo/edit?usp=sharing


3.12.2018

Jaakko Muhonen ehdotti 3D-tulostettavaa kotelointia automaatioyksikölle. Tässä on ensimmäinen versio koteloinnista.

Koodaus on tällä hetkellä siinä vaiheessa, että moduulit pystyvät kuuntelemaan pääohjainlaitetta ja säätämään valaistusta PIR-sensorin avulla.


6.12.2018

Piirilevyt ovat yhä matkalla meidän itsenäiseen kotimaahamme Suomeen. Tein kuitenkin jo kolme prototyyppilevyä testaamista varten. Tähän mennessä olen ollut tyytyväinen tämän kokoonpanon toiminnasta, mutta työskentelyvalaistuksen ohjaamiseen sitä ei oikein voi tällä hetkellä käyttää. Jos tästä haluaisi muokata täydellisen kotiautomaation, pitäisi hankkia jonkinlainen läsnäoloanturi.


Lisäykset koodiin:

  • Tuki valoanturille, joka säätää valaistusvoimakkuutta sen saaman tiedon mukaan.
  • Tuki DS3231 reaaliaikakellolle, joka vaihtaa valot yötilasta päivätilaan. (Yötilassa valot ovat huomattavasti himmeämmät, kun taas päivätilassa ne toimivat täydellä teholla.)
After the smoke has cleared, check the wirings. Or just check the wirings.
Powered by Webnode
Create your website for free! This website was made with Webnode. Create your own for free today! Get started