Langatonta kermaviiliä 5 kg

Kuten aiemmin jos suunnittelin, tulee järjestelmään myös yksi langaton etäyksikkö. Alunperin ajattelin että langaton yksikkö olisi täysin langaton, eli akkukäyttöinen, mutta ESP32:n virrankulutus on sitä luokkaa, että akulla tämä etiäinen toimisi ehkä vain puoli päivää. Joten päätin että toteutan kontrolliyhteyden etänä (BLE), mutta sähkönsyöttö tulee pistorasiasta. En pidä tätä huonona ratkaisuna, sillä pistorasioita on usein siellä täällä, mutta kontrolli-piuhan vetäminen kauas olisi vaivalloista. Nyt tämän hökötyksen voi viedä aina sinne asti mihin BLE-yhteys yltää. Eli käytännössä kymmeniä metrejä jos ei ole seiniä välissä.

Kuten kuvasta näkyy, kyseessä on siis prototyyppi. 🙂 Mutta älkääpä säikähtäkö – oli ne alkuajan puhelimetkin tiileskiven kokoisia – puhumattakaan testi-puhelimista labrassa, joiden koko saattoi olla luokkaa ”kaappi”.

Vesisäiliön virkaa protossa edustaa 5 kg kermaviilipurkki. Sain näitä töistä ilmaiseksi 5 kpl. Kierrätys kunniaan! Pleksiä sain Puuilosta pilkkahintaan, kun hyllystä löytyi joku jämäpala. Pleksiä on kätevä muotoilla ja kuumaliima tarttuu siihen hyvin. Toinen vaihtoehto olisi ollut tehdä kansi puusta, mutta pleksiä se nyt on! Asensin 3 pumppua releineen ja vielä on tilaa yhdelle pumpulle. Alkuperäinen suunnitelma oli toteuttaa pumppujen pidikkeet 3D-tulostettuna pidikkeenä, mutta korona harmittavasti hidastaa ”alihankintaketjua” (työkaveri), joten nippusiteet toimittaa nyt pidikkeen virkaa. Huomaa myös mahtava rautalankaviritys ala-anturin oikeassa kohdassa pitämiseen. Eihän tästä viritelmästä puutu enää kuin ilmastointiteippi, niin voisi alkaa patenttia hakemaan?!

Boxin ominaisuudet:

  • Langaton toiminta (poislukien virransyöttö)
  • Ohjaus millä tahansa laitteella, jossa on Bluetooth (BLE) kontrolli; läppäri, kännykkä, Raspberry jne.
  • 3 kasvin kastelu etäohjatusti (tuki neljälle)
  • Tuki useille kosteus- ja lämpötila-antureille
  • Statustietojen lähetys Bluetoothilla
  • 5 litran vesisäiliö
  • Ylä- ja ala-anturit vesisäiliön automaattitäytön ohjaukseen tai statustiedoksi
  • Akku sähkökatkojen varalle ~15h

Jos virtaa riittää ja intoa, niin seuraavasta versiosta saisi kauniimman ja ehkä jopa täysin langattoman. Asentaisi härvelit vaikka johonkin hienoon kukkaruukkuun, joka toimisi vesisäiliönä ja jossa akulle olisi myös oma tila. Mikrokontrolleri kannattaisi myös vaihtaa Nordickiin, niin virrankulutus pienenisi ja toiminta-aika kasvaisi. Myös kaikki turhat LEDit pitäisi karsia pois releistä. Mutta se on sitten joskus ehkä.. Nyt iloitsen tästä mahtavasta protosta! Nyt tarvitsee vain ohjelmoida Raspberryn päähän BLE ohjaus Pythoniin. Tällä hetkellä ohjaan Protoa gattool-ohjelmalla terminaalista.

Väliyhteenvedon aika

Projektin ensimmäinen testailuvaihe on nyt takana, joten on hyvä aika tarkastella tähänastisia tuloksia. Listaan tavoitteet ja tulokset seuraavasti;

  1. Raspberry Pi-pohjainen toteutus

Olen ollut erittäin tyytyväinen Raspiin. Raspi on ollut erittäin vakaa, vaikka minullahan siinä on pyörinyt vain kasteluohjelman Python-koodi käyttöjärjestelmän lisäksi. Yhtäjaksoinen päälläoloaika on ollut lähes 3 kuukautta ja kaikki on toiminut moitteettomasti. Luonnollisesti olen vasta pintapuolisen raapaisun tehnyt Raspiin, enkä käytä sen resursseja kuin minimaalisesti. Näiden kokemusten perusteella voin kuitenkin suositella Raspia myös pieniin projekteihin tai vaikka kevyeksi yleistietokoneeksi.

2. Kastelujärjestelmän suunnittelu

Suunnitteluvaiheen voisi jäsentää seuraavasti:

  • Joulukuu: Esisuunnitteluvaihe ja pääkomponenttien valinnat, luonnospiirustukset, kastelujärjestelmän mitoitus tarpeeseen, kesän 2020 alustava parvekekasvi-suunnitelma
  • Tammikuuu: Koekasvien valinnat, pumppujen ja kosteusantureiden mitoitus.
  • Helmi – Maaliskuu: Tarkempi suunnittelu sisältäen langattomat vaihtoehdot, vesisäiliöt, kotelot, kasteluteline ja virransyöttö. Viljeltävien kasvien valinnat parvekkeelle.

Suunnitteluvaihe on siis pääosin ohi ainakin pääkomponenttien osalta. Parvekkeelle toteutettava järjestelmä sen sijaan tarvitsee vielä käytännönläheistä tuumausta ainakin letkujen ja antureiden piuhojen sijoittamiseen. Suunnitteluun saisi kulutettua vaikka loputtomasti aikaa, mutta mielestäni suunnittelu on onnistunut tähän mennessä hyvin.

Suunntelma vs. toteutus -tilanne:

Talvi: (esitestailut sisätiloissa)

  1. Kahden huonekasvin kastelu koneellisesti aikataulutettuna. Automaattinen historiatallennus kastelusta ja kosteudesta => VALMIS
  2. Lisätilaus: Lisää pumppuja, raja-antureita, virtausmittareita, letkuliitoksia jne. => VALMIS. Kaikki tarvikkeet ovat nyt kasassa
  3. Graafisen käyttöliittymän tekeminen (GUI) kastelun ohjaukseen ja tarkkailuun => VALMIS (tosin pikku viilausta riittää)
  4. Lisää antureita järjestelmään (kosteus, valo) ja testailuja => VALMIS
  5. Googlen pilvipalvelun datatallennuksen testailu => VALMIS
  6. IoT data-analyysin testailu Matlabilla/Thinkspeed => Ei aloitettu
  7. Android-GUI:n tekeminen kännykällä ohjaukseen => Ei aloitettu, eikä ehkä tulekaan. Käytän VNC/Teamwiever yhteyttä etäohjaukseen
  8. Chilien esikasvatus ja ehkä seuranta => VALMIS

Kevät: (varsinaisen parvekepuutarhan rakentaminen)

  1. Suunnitelma kasvien sijoittelusta => VALMIS
  2. Kasvien esikasvatus sirkkalehdille (manuaalinen kastelu todennäköisesti) => Meneillään
  3. Järjestelmän asennukset parvekkeelle => Seuraavaksi

3. Testi-kastelujärjestelmän toteutus sisätiloihin parilla kasvilla

Testailu on ollut projektin mielenkiintoisin vaihe tähän mennessä. On ollut hauska seurata, kuinka kasvit reagoivat kuivuuteen tai ylikasteluun. Kodinonni lähes kuoli, kun tuijotin liikaa vain kosteusanturin lukemia ja kastelin kodinonnea aluksi muka ”vain tarpeeseen”. Totuus on että menestyäkseen kodinonni tarvitsee jatkuvasti sopivasti märän mullan, joten kosteusanturin lukema on pysyttävä vakiona. 

Nukkumatti sen sijaan tykkää, jos välillä kastuu kauttaaltaan ja välillä kuivuu kunnolla. Nukkumatin kanssa ongelmana on kasteluveden epätasainen valuminen multaan. Järjestelmähän laskee veden ainoastaan yhteen pisteeseen (keskelle kukkaa), jolloin saattaa ruukun reuna jäädä rutikuivaksi ja varret uhkaavat kaatua. Olen yrittänyt erilaisia kikkakolmosia, kuten reikäinen letku tasaisesti ruukun pinnalle tai “rei’itetty pussi”, mutta kumpikaan ei täysin ratkaissut ongelmaa.

Järjestelmä toteutus on myös vaatinut jatkuvaa opiskelua ja tutustumista uusiin asioihin. Näitä on mm. blogin perustaminen ja ylläpitäminen, sensorien ohjelmoiminen (kosteus,valo,lämpö,mullan kosteus), virransyöttö ja ohjelmointi (pumput, releet), BLE-teknologia, langattomat anturit ja niiden ohjelmointi. Linuxin käytössä olen myös tutustunut  useisiin uusiin apuohjelmiin, joista en ollut ikinä kuullutkaan.

Tästä on siis hyvä jatkaa seuraaviin vaiheisiin, jotka ovat:

  1. Testi-kastelujärjestelmän purkaminen
  2. Räkin kokoaminen ja kalusteiden asennukset
  3. Toisen AD-muuntimen asennus ja ohjelmointi
  4. Pumpputestit 12-v pumpuilla
  5. Vesisäiliöiden ja kastelukaukalon raja-antureiden ohjelmointi
  6. Räkin siirtäminen parvekkeelle
  7. Viljelykasvien ja kukkien istutukset ja sijoitukset parvekkeelle
  8. Letkujen, antureiden asennukset ja ohjelmointi
  9. Langattoman osan toteuttaminen ESP32:lla
  10. Lisätilpehöörien mahdolliset asennukset (kamerat, tuuletin, näyttö)
  11. Testailua, testailua, testailua ja testailua…..

Kevät ja kesä on jo kohta ovella, joten listaan vielä mahdolliset riskit, jotka saattaa johtaa projektin epäonnistumiseen tai viivästymiseen:

  1. Koronaan liittyvät sairastelut lähipiirissä
  2. Komponenttien rikkoontuminen
  3. Esikasvatuksen epäonnistuminen täydellisesti
  4. Langattomien ratkaisujen virrankulutus – ja siten ESP32:n käytön järkevyys akulla.
  5. Pumppujen odottamaton heikko teho tai virtalähteiden heikkous

Blogin kävijämäärä on hiipunut sitten alkuaikojen hulinasta. Mutta minä kyllä yritän päivittää tätä joka viikko, vaikka ei kävisi ketään. Kuten sanottu, tämä on samalla päiväkirja itselleni projektin tapahtumista. 🙂 

Tässä vielä viimeiset kuvat tarinan kovaonnisista päähenkilöistä – kodinonnesta ja nukkumatista. Ne selviytyivät 3 kuukauden konekasteluajasta hengissä ja jatkavat täs’t edes elämää ihmiskastelun varassa. Seuraavat kasvikuvat tulevat toivottavasti jo parvekkeelta.

Poweria kehiin!

Viime kirjoittelusta onkin vierähtänyt jo viikko. En ole kuitenkaan levännyt laakereillani, vaan olen suunnitellut ja toteuttanut virtalähteiden sijoittelua järjestelmään. Isot vesipumput vaatii 12-v, joten kyseinen jännite ja tarpeellinen virta pitää imeä jostain. On myös fiksua laittaa 230-v releet jo tässä vaiheessa turvallisemmin omaan tilaan, joten päätin tehdä jonkinlaisen kokoonpanon olemassa olevista tykötarpeista. Kaapista löytyi sopiva levyn palanen ja 12-v tietokoneen virtalähde, jota olen aiemmin käyttänyt yleis-virtalähteenä. Otan ne hyötykäyttöön tässä projektissa. Kuva setupista löytyy alhaalta. Koko järjestelmän pääkytkin on pistorarian kytkin. Pistorasiat ja kojerasian hain Biltemasta, sillä sieltä niitä saa halvalla. Rakennan myöhemmin ympärille pölyltä ja roiskevedeltä suojaavan kotelon parveketta ajatellen.

Huom! Kuvan asennukset kuuluu sarjaan ”älä tee kotona” ellet omaa koulutusta sähkötöihin.

Chilit, paprikat ja kurkku kasvaa vauhdila! Kuulin sellaista että pieni tuuli silloin tällöin tekisi taimille vahvemmat varret. Saas nähdä, mutta siinäpä se flekti nyt tuulettaa.

Odottelua ja ihmettelyä

Eipä ole isoja tapahtunut sitten viime päivityksen. Kiinasta tilatut romppeet ovat vielä matkalla ja testi-kastelujärjestelmä toimii mukavasti. Olen tehnyt vain pieniä päivityksiä, kuten esim. GUI:n valolukema on nyt luxeina, eikä referenssilukuna. Uusi yleismittarini mittaa nimittäin myös luxeja, joten sieltäpä lukemat.

Lisäksi olen yrittänyt saada serialUSB-yhteyttä ESP32-mikrokontrolleriin, jonka siis olisi tarkoitus ohjata amppeleiden kastelua jossain vaiheessa. Linuxilla tämä ei onnistunut, sillä koko USB-porttia ei löydy. Jospa Windowsilla onnistuisi, sillä nyt ainakin USB-controlleri löytyy langan päästä. Seuraava steppi on ladata joku ledin vilkutteluohjelma opiskelumielessä. Sitten voisi testailla Bluetooth/BLE-yhteyttä Raspi-ESP-puhelin -välillä. Ja sitten viimeisenä asennan kosteusmittaus- ja releen ohjausohjelman ESP:lle. Myöhemmin – jos intoa ja aikaa riittää, saman voisi tehdä Nordikin mikrokontrollerille.

Kuten jo aiemmin blogitin tai ainakin linkitin, ovat nämä moduulit siis itsenäisiä pieniä tietokoneita, jotka voi valjastaa ”pieniin tehtäviin” kuten kosteutta mittaamaan ja relettä ohjaamaan. Muodostan näihin yhteyden langattomasti Bluetoothilla Rasperrystä. Monikin voi kyseenalaistaa että onko langattomuudessa mitän järkeä – itseni mukaanlukien – sillä aika paljon helpommalla pääsisin, jos vain vetäisin pari ylimääräistä piuhaa Raspberrystä amppeleille. Mutta tätä se on. Teknonörtteily sen itsensä, eikä välttämättä järkevyyden takia. 🙂

Alhaalla kuvat ESP32:sta, Nordikin NRF51822 ja toinen ESP32 takapuolelta. Takapuolella on akkupatterille kotelo.

ESP32, NRF51822 and ESP32 from back (it has battery holder)

Kasvien IoT-elämä alkoi!

Jee! Tänään on ollut eka päivä kun kastelujärjestelmä alkoi lähettämään sensoridataa internettiin. Nyt voi mielestäni sanoa, että tämän kyseisen ”esineen” internet-elämä alkoi, sillä mittausdata tallennetaan Googlen drivelle. Alhaalla on kuva tuntidatasta. Kenttiä tulee tietysti paljon lisää sitten kun varsinainen kastelujärjestelmä parvekkeelle tehdään. Kyseistä tiedostoa voi sitten lukea ”millä vaan” ja piirtää erilaisia käppyröitä. Itse Raspillahan minulla on jo Matplotilla toteuttamani käppyröinen visualisointiohjelma, mutta ehkä Googleltakin voisi löytyä jotain online-graph työkaluja, jolla voisi Driven dataa visualisoida. Pitääpä tutkia.

Esineiden internetistä löytyy Googlella paljon tietoa. Tässäpä esimerkiksi yhdenlainen kuvaus aiheesta:

https://www.telia.fi/yrityksille/iot/etusivu?gclid=Cj0KCQiAqNPyBRCjARIsAKA-WFz5IAWvCERTREwnQbh2URcfUHeJojC44-5qCtM84eZg8cfunrxuuWwaAsmmEALw_wcB

Toinen ilmiselvä merkki IoT-toiminnasta on etäyhteyden toimintaan saattaminen. Asensin nimittäin TeamViewerin ja nyt voin ohjata kastelua myös kotiverkon ulkopuolelta. Harmittavasti TeamViewer tökkii ikävästi VNC:hen verrattuna, joten se tuskin tulee olemaan lopullinen ratkaisu. Ehkäpä VNC VPN:n yli olisi toimivampi ratkaisu. Ja löytyyhän muitakin vaihtoehtoja kuten vaikkapa Dataplicity: https://www.dataplicity.com/subscriptions/plans/

Tulipa myös harrastettua piirto-ohjelmaa muutamana iltana ja väsäsin järjestelmäkuvauksen. Aika paljon on vielä tekemistä ja saas nähdä toteutuuko ihan kaikki, mutta kiva se on ainakin suunnitella. 🙂

Calibration

Since today I’ve been using only time based irrigation dosing. That’s perfectly fine if I just want to feed ”some amount” of water for the plants. Things get more complicated if I want to dose exactly e.g. 50 ml or some other exact amount of water. In this case following field and installation related nonlinearties affect the irrigation dosing:

  • Water pump power
    • Pump power might change due to load changes
  • Pipe diameter
    • Narrow pipe needs less pump power
    • Many sizes of pipes in a row complicates things even more
  • Pipe length
    • Longer pipe needs obviously more water. (this is linear)
  • Irrigation height from pump to plant
    • Gravity has an big effect for the throughput.
  • Water ”kickback” effect in a pipe
    • Paddle wheel of the pump leaks and allows water to flow back when the pump is off. Paddle wheel leaks also during the active mode and especially with high irrigation heights
  • Unexpected air in the pipe
    • If the pipe is pended many times or if it has many up-down routes, unwanted air can lead to the pipe causing error on dosing accuracy

These all factors affects dramatically for the dosing and if not considered during the design, desert drought and very unhappy plants might be the result. I’ve tried to figure out how to deal all these factors and I have some preliminary ideas, but they are not yet ready for publishing. They need little bit more time and cooking. Here are some preliminary ideas:

  1. No pipe calibration at all (time based feeding)
  2. Irrigation with calibrations that uses some correlation factors for the points I listed above
  3. Irrigation with auto-calibration. In this option pumped water is measured and used for calibration factors.

In addition to field/installation related nonlinearties, temperature and humidity needs to be taken in account as well. For that, I’ve already installed sensors and created preliminary algorithms. Fine tuning will be done in the summer time.