Periodično branje podatkov iz postaje

Pa si poglejmo, kako bomo avtomatizirali komunikacijo s našo postajo. Pri tem si bomo pomagali s Linuxovim sistemom za periodično zaganjanje programov.

Za začetek snamemo tale arhiv. Vsebuje skripte za komunikacijo s postajo.
Skripte so tri:
  • ws2300-data_read.sh - je glavna skripta, ki skrbi za komunikacijo. Prebere podatke iz postaje, kreira podatke za awekas, pošilja podatke na WU in ostale vremenske strani itd.
  • ws2300-test.sh - je samo zagonska skripra za ws2300-data_read.sh. Preverja če le-ta že ni zagnana ter glede na čas vklaplja različne opcije (npr.: generiranje grafov samo vsakih 15 min)
  • awekas.sh - pripravi podatke v obliki, ki jih razume "awekas"
Skripte skopiramo v "/home/vp/bin". V kolikor imamo drugega uporabnika, oziroma želimo podatke hraniti na drugih mestih, popravimo poti v skriptah.

Ustvarimo mapo "ws2300_data" z "mkdir /home/vp/ws2300_data" in poženemo skripto "ws2300-data_read.sh" z "/home/vp/bin/ws2300-data_read.sh 1". V kolikor se izvede brez napak, nadaljujemo spodaj. Vir napak so najverjetneje napačno nastavljene poti v skriptah.

Na Linux-u za periodično izvajanje programov skrbi cron daemon, njegova konfiguracijska datoteka pa je "/etc/crontab". Kot "root" jo odpremo v editorju in dopišemo naslednjo vrstico:
"* * * * * vp /home/vp/bin/ws2300-test.sh"
V primeru drugačne konfiguracije je potrebno popraviti pot in ime uporabnika ki izvaja program. Napisano cronu pove, da naj vsako minuto požene program ws2300-test.sh kot uporabnik vp (ali ws2300 kot v primeru na sliki). Datoteko posnamemo, efekt je viden takoj. Preverimo, če se /var/www/ws2300.txt generira vsako minuto na novo.
Za natančna navodila glede cron-a glej "man 5 crontab", "man crontab" in "man cron".

Postaja nam sedaj že nekako deluje. Kot naslednje si bomo pogledali prikaz trenutnih podatkov, potem pa še vpisovanje podatkov v ciklično bazo.


Nazaj