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.
Projektin ensimmäinen testailuvaihe on nyt takana, joten on hyvä aika tarkastella tähänastisia tuloksia. Listaan tavoitteet ja tulokset seuraavasti;
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)
Kahden huonekasvin kastelu koneellisesti aikataulutettuna. Automaattinen historiatallennus kastelusta ja kosteudesta => VALMIS
Lisätilaus: Lisää pumppuja, raja-antureita, virtausmittareita, letkuliitoksia jne. => VALMIS. Kaikki tarvikkeet ovat nyt kasassa
Graafisen käyttöliittymän tekeminen (GUI) kastelun ohjaukseen ja tarkkailuun => VALMIS (tosin pikku viilausta riittää)
Lisää antureita järjestelmään (kosteus, valo) ja testailuja => VALMIS
Googlen pilvipalvelun datatallennuksen testailu => VALMIS
IoT data-analyysin testailu Matlabilla/Thinkspeed => Ei aloitettu
Android-GUI:n tekeminen kännykällä ohjaukseen => Ei aloitettu, eikä ehkä tulekaan. Käytän VNC/Teamwiever yhteyttä etäohjaukseen
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:
Testi-kastelujärjestelmän purkaminen
Räkin kokoaminen ja kalusteiden asennukset
Toisen AD-muuntimen asennus ja ohjelmointi
Pumpputestit 12-v pumpuilla
Vesisäiliöiden ja kastelukaukalon raja-antureiden ohjelmointi
Räkin siirtäminen parvekkeelle
Viljelykasvien ja kukkien istutukset ja sijoitukset parvekkeelle
Letkujen, antureiden asennukset ja ohjelmointi
Langattoman osan toteuttaminen ESP32:lla
Lisätilpehöörien mahdolliset asennukset (kamerat, tuuletin, näyttö)
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:
Koronaan liittyvät sairastelut lähipiirissä
Komponenttien rikkoontuminen
Esikasvatuksen epäonnistuminen täydellisesti
Langattomien ratkaisujen virrankulutus – ja siten ESP32:n käytön järkevyys akulla.
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.
Kodinonni on hyvässä hapessa, vaikka kävikin lähellä kuolemaa alkuvaiheen kastelukokeiluissa.
Nukkumatti elää ja voi hyvin, mutta kaipaa jo kohta mullan vaihtoa.
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.
Virtalähde-setup. 230-v releet ohjaavat pistorasioita (+2 relettä varalla). Lisäksi tietokoneen virtalähde 12/5V syötöksi.
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.
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:
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. 🙂
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:
No pipe calibration at all (time based feeding)
Irrigation with calibrations that uses some correlation factors for the points I listed above
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.