Säätösalaojituksen automaatio-ohjelmistot, voidaan jakaa karkeasti kahteen osaan. Laiteläheiset ohjelmat, antureiden ja toimilaitteiden hallintaan sekä tiedonsiirtoon ja -käsittelyyn liittyvät ohjelmat. Tiedonsiirto ja -käsittely pitää sisällään myös ohjaustoimenpiteisiin liittyvien ehdot ja määritykset, jotka ovat säätösalaojituksessa aina tapauskohtaisia ja pellon erityispiirteet huomioivia.
Laiteläheinen ohjelmisto säätösalaojituksessa
Laiteläheistä ohjelmointia säätösalaojituksessa käsittelen Rust-ohjelmointina. Rust on melko uusi ja monelle tuntematon, joten tiedoksi Rust-kielen nimen alkuperä. Se ei tule ruostumisesta, eli hapettumisesta, vaan kasvitaudista.
Rust ohjelmointikieli mahdollistaa mm. muistiturvallisen ohjelmoinnin, joka on ehkä tärkein asia IT-ohjelmistojen kyberturvallisuuden varmistamisessa. Automaatiossa muistiturvallinen ohjelmointi on myös hyvin tärkeä ominaisuus järjestelmien toimivuudessa. Rust on myös hyvin tehokas ja toimii pienellä virrankulutuksella, joka on akkukäyttöisessä automaatiossa hyvin merkittävä.
Rust ohjelmointikieli mahdollistaa muistiturvallisuuden ja tehokkuuden lisäksi samanaikaisuuden. Rust-lainantarkastus eli omistajuudesta huolehtiminen on muistiturvallisuuden lisäksi tärkeä samanaikaisuuden näkökulmasta. Datakilpailu aiheuttaa usein ongelmia muilla ohjelmointikielillä laiteläheisessä ohjelmoinnissa, kun eri säikeet käyttävät samaa muistipaikkaa.
Rust ohjelmassa samanaikaisuus on hyvin helposti toteutettavissa, joka mahdollistaa samanaikaisten tehtävien suorittamisen vaivattomasti. Tämä on edellytys automaatiojärjestelmässä, joka ohjaa toimilaitteita, lukee tietoa antureilta ja keskustelee muiden järjestelmien kanssa samanaikaisesti käyttämällä samaa muistipaikkaa eri tehtävissä.

Raspberry Pi Pico, jossa on kaksiytiminen ARM Cortex M0+ -prosessori, sopii erittäin hyvin säätösalaojituksen Rust-automaatioon.
Tiedonsiirto ja -käsittely ohjelmisto
Automaatiossa tiedonsiirto ja käsittely liittyvät keskeisesti tiedon hallinta. MQTT-Sparkplug mahdollistaa yhtenäisen nimiavaruuden (UNS – Unified Namespace) käytön säätösalaojituksen automaatiossa. UNS:n kanssa pitkään työskennellyt Walker Reynolds, esittelee asiaa YouTube-videolla, suosittelen!
Säätösalaojituksen ohjaustoimenpiteisiin ja käyttöliittymiin liittyvässä ohjelmoinnissa toimintaympäristön huomioiminen on erityisen tärkeää. Ei ole mahdollista eikä tavoiteltavaa rakentaa ohjelmaa, joka soveltuisi kaikkien peltojen ja tilojen tarpeisiin. Lähtökohtana tulee olla ohjelman helppo pelto- ja tilakohtainen soveltaminen, jolloin toteutusvaihtoehdoksi valikoituu Node-RED.
Node-RED muistuttaa lähinnä piirtotyökalua ja on ohjelmoinnin osalta erittäin helppo omaksua. Aikaisempaa ohjelmointikokemusta ei tarvita. Joitakin lyhyitä ohjelmakoodin riviä joutuu muokkaamaan mallin mukaisesti, mutta koodausta voisi verrata excel-makrojen muokkaamiseen, joka on useimmille tuttua.
Node-RED sisältää JSON-datan käsittelyyn hyvin helppokäyttöisen JSONata kyselyn. Lisätieto YouTube -videolla