Node-RED ja mariadb SQL kysely

Node-RED on graafinen ohjelmoitiympäristö jonka IBM lanseerasi vuonna 2013. Node-REDin pohja luotiin jo 1970 -luvulla J.Paul Morrisonin johdolla. Morrison kehitti tuolloin tavan kuvata sovelluksen käyttäytymistä mustien laatikoiden verkkona tai solmuina (node). Näin syntyi idea lohkopohjaisesta ohjelmoinnista.

Node-RED on asennettu valmiiksi Raspberry Pi:n Raspbian käyttöjärjestelmään, se löytyy start valikosta ohjelmointi valikon alta. Ohjelma käynnistyy automaattisesti, tämän jälkeen siirrytään selaimella Rpi laitteen IP-soitteeseen ja lisätään loppuun portti 1880. Eli esimerkiksi: http://192.168.1.123:1880.

Node-RED käyttöliittymä avautuu samassa verkossa olevilta laitteilta, eli nyt voi käyttää node ohjelmointiin vaikka omaa kannettavaa tietokonetta.

Selaimelle aukeaa kehitysympäristö, vasemmassa laidassa on lista asennetuista nodeista, nämä ovat perus nodeja, joilla voi tehdä yksinkertaisia toiminteita.
Node-REDin Manage paletten kautta voidaan asentaa tarvittavia lisäpalikoita, nodeja.

Tarvitsemme palikan joka yhdistää meidät mariadb -tietokantaan, jotta pääsemme lukemaan sinne tallentuneita lämpötiloja ja ilmankosteutta.

Manage Palette löytyy siis oikeasta kulmasta kolmen viivan -valikosta, se avautuu Nodes -välilehdelle. Tässä voi selata jo asennettuja nodeja ja poistaa niitä käytöstä. Valitaan Install -välilehti, jotta päästään asentamaan tarvittavia nodeja. Kirjoitetaan hakukenttään sql, hakua vastaavat nodet listautuvat allekkain, valitsemme node-red-node-mysql -noden asennukseen. Painetaan install -nappia, info ruutu pyytää lukemaan dokuntentaatioita ja muistuttaa, että jotkut nodet saattavat tarvita uudelleen käynnistyksen asentamisen jälkeen, valitaan install ja asentuminen alkaa. Jos todetaan ettei tämä olekaan oikea node, voidaan valita cancel ja kyseinen node ei lähde asentumaan. Kun asentuminen on tapahtunut install painikkeen status muuttuu installed muotoon. Näin ei tule vahingossa asennettua samaa useaan kertaan.

Kannattaa asentaa nyt samalla myös node-red-dashboard -nodet, jotta voidaan esittää luettuja tietoja myöhemmin web-sivulla, dashboardilla.

Manage palette ikkuna ei sulkeudu automaattisesti, se mahdollistaa useiden hakujen päällekäisyyden, ei tarvitse odottaa edellisen asentumista vaan voi hakea jo seuraavaa. Kun halutaan poistua manage palettesta painetaan Close.

Asennetut nodet ilmestyvät vasempaan valikkoon, jos asennetut komponentit eivät näy, pitää Node-RED palvelu käynnistää uudelleen Rpilla. Suljetaa Node-RED ikkuna ja avataan uudelleen, Node-RED käynnistyy uudelleen.

Node-RED toimii drag and drop periaatteella, eli haluttu node napataan hiirellä kiinni ja raahataan flow lehdelle. Kahden node solmun välille vedetään yhteydet viivoina. Harmaat pallot toimivat yhdyspisteinä node solmujen välillä. Kaksois klikkaamalla saadaan node auki ja päästään tarkastelemaan sen ominaisuuksia.

Tuplaklikkaamalla esimerkiksi mysql nodea, avautuu uusi ikkuna, kyseisen solmun ominaisuuksiin. Help – välilehdeltä löytyy yleensä lisätietoa solmun käyttöön. SQL-solmulle täytyy määrittää, mihin tietokantaan ja minkälaisilla käyttäjä tunnuksilla se yrittää yhteyttä tietokantaan.

Eli painetaan kynän kuvaketta, ja täytetään meidän oman RPi tietokoneelle asennetun mariadb tietokannan yhteysasetukset.

Nyt voidaan kokeilla tietokantayhteyttä, lisätään tätä varten pari uutta solmua Flow työalueelle. Valitaan siis common valikosta, “Inject” ja “debug” nodet ja pudotetaan ne flow ohjelmaan mukaan.

Inject solmulle voidaan määrittää käytetty SQL – kysely, joka aktivoituu, kun painetaan harmaata suorakaide nappia, timestamp solmussa. Esimerkiksi sql kysely; SELECT * FROM tietoa; hakee meidän oma_tietokanta -tietokannasta, tietoa -taulusta kaikki rivit. Debug node solmu on kätevä kehittäjän työkalu, jonka avulla nähdään, onnistuuko kysely, ja mitä tietoa saadaan haettua. SQL-node:n alapuolelle tulostuu OK, ja vihreä suorakaide osoittaa, että tietokantayhteys on onnistunut.

Seuraavaksi mietitään, miten saataisiin luetusta tiedosta piirettyä graafinen esitys. UI-table nodella saa ainakin helposti taulukon tiedoista, dashboardille, tarvittaessa. Dashboard avautuu kun kirjoitetaan selaimeen;

http://RPi:n osoite:1880/ui Eli lisätään /ui, porttinumeron 1880 perään.

Jotta saataisiin data sellaiseen muotoon, että Node Red Dashboard:n Chart node ymmärtää sitä, pitää lisätä vielä “Function – node” mukaan Flow – ohjelmaan. Eli raahataan ja pudotetaan uudet Functio node ja UI Chart nodet Flow 1 näkymään.

Sitten tuplaklikataan function nodea, jotta päästään kirjoittamaan oma javascript funktio. Eli voidaan tehdä “oma Node”, joka muokkaa dataa haluttuun muotoon.

Sitten painetaan “Done painiketta”, ja “Deploy painikketta”, näin käsketään Node-Red ottamaan nämä tehdyt muutokset käyttöön ja suorittamaan muokattu Flow 1 ohjelma.

Debug noden tulosteesta nähdään, miten meidän oma funktio node muokkaa nyt tietokannasta luettua tietoa, sopivampaan muotoon, jotta sen piirtäminen onnistuu, käyttäen UI Chart nodea. Nyt seuraavaksi voidaan taas kokeilla avata selaimella :1880/ui Dashboard websivu.

Näin voidaan Node-RED:n avulla lukea tietoa Raspberry Pi:lle asennetusta mariadb SQL – tietokannasta, ja piirtää siitä graafinen kuvaaja, Node-RED:n omalle dashboard websivulle. Tästä on hyvä jatkaa kokeiluja eteenpäin ja kehittää Flow-ohjelmaa paremmaksi. Voidaan seuraavaksi kokeilla lisätä mukaan ilmankosteuden ja ilmanpaineen kuvaajat yms.

One thought on “Node-RED ja mariadb SQL kysely

  1. Just a fast hello and also to thank you for discussing your ideas on this web page. I wound up in your blog right after researching physical fitness connected issues on Yahoo guess I lost track of what I had been performing! Anyway I’ll be back as soon as once more within the long run to verify out your blogposts down the road. Thanks!

Comments are closed.