Vremenska postaja Krtina

46.1507 N| 14.658 E| 316 m | Prikaži na zemljevidu

O NAS

Vremenska postaja Krtina je vzorčna vremenska postaja, kjer sestavimo skupaj vremensko postajo (Froggit WH4000), Raspberry Pi 3B in spletni prostor vremenskega društva ZEVS.

Sistem zaznamujejo predvsem nizki stroški:

- Froggit WH4000 - cca. 140 €
- RPi z napajalnikom in 8GB SD kartico - cca 60 €
- prostor na ZEVS strežniku - 15 € letno

Seveda lahko postajo nadomestimo s katerokoli drugo, LaCrosse modeli ali celo z Davis Vantage postajami. Nujno pa je, da je postaja pod podprtimi postajami v Weewx programski opremi (LINK).

Vzorčna vremenska postaja Krtina se nahaja na naslovu krtina.zevs.si. Trenutno so na voljo štiri preobleke:

- prirejen Sofaskin,
- Standard skin,
- Responsive skin,
- skin v razvoju ZEVSa, s podporo Highchartsom

Strojna oprema

Vremenska postaja

Najprej je seveda potrebno imeti vremensko postajo, enostavno preko spleta se dobi poceni vremensko postajo Froggit WH4000. Dobri lastnosti WH4000 sta predvsem nizka cena in senzor sončnega obsevanja in UV indexa, med slabe lastnosti pa štejem to, da se senzorja za temperaturo ne da enostavno ločiti od senzorja za svetlobo/UV. Če hočeš senzor za temperaturo postaviti v vremensko hiško, ga moraš ločiti od zaklona in ostalih senzorjev, za to pa moraš kar dobro uporabiti klešče in biti nadvse pazljiv. Druga slaba lastnost pa upam, da je le začasna, čeprav ne kaže najbolje - gonilnik za weewx zaenkrat ne podpira pobiranja zgodovinskih zapisov s postaje, kar zna biti kar velika nerodnost.

A za vsako postajo obstajajo določena navodila in omejitve, zato je pred nakupom vedno dobro pregledati kaj in kako je podprto s strani programske opreme. Tudi pri postajah okoli 1k € zna prihajati do težav, zato previdno!

Raspberry Pi

Drugi kos strojne opreme je Raspberry Pi, mali računalnik na osnovi linuxa, ki je namenjen predvsem učenju, a je v svojih letih razvoja prešel že dolgo pot in je povsem dovolj za upravljanje podatkov vremenske postaje. Poleg tega zanj obstaja še polno dodatne programske opreme. Za RPi potrebujemo še dovolj dober napajalnik, ki naj ima vsaj 2,5 A ter microSD kartico, velikosti vsaj 8 GB. Pri velikosti nikakor ni treba pretiravati, več kot 16 GB v letu 2018 nima smisla. 

Glede napajalnika in amperov je vedno debata - pri taki vremenski postaji, ki ne napaja nobene USB naprave in dela le to, kar je tu opisano, je načeloma dovolj že napajalnik z 1 A. Vendar je vedno dobro biti na varni strani, kajne?

Druga stvar pa je microSD kartica. Tudi 8 GB je povsem dovolj, če ne celo preveč, tudi 4 GB bi bilo dovolj, a tako ali tako se takih kartic skoraj ne dobi več. 8 GB torej.

Mali RPi ima veliko prednosti, ima pa seveda tudi nekaj slabosti. Glavna slabost je predvsem ena: microSD kartica. Ta je največkrat kriva za nedelovanje ali izgubo podatkov. SD kartice niso narejene, da bi kar naprej pisali/brali z njih in imajo omejen rok trajanja. Težava lahko nastane ob izgubi napajanja ob prekinitvah z elektriko, kar velikokrat pripelje do uničenja zagonskega sektorja in do neuporabnosti kartice. 

En del rešujemo s tem, da nabavimo solidno, dovolj hitro microSD kartico in pri tem raje izbiramo v zgornji tretjini cen, kot pa v spodnjem delu. V letu 2018 tudi dobre in hitre 8 GB kartice ne stanejo več prav veliko.

Drugi del pa rešujemo z neprekinjenim napajanjem, če je le možnost. UPS bo večino najbolj zoprnih kratkotrajnih prekinitev preprečil. 

Lahko pa se poglobimo v bolj sofisticirane primere zagotavljanja delovanja RPIjev:

https://lifepo4wered.com/lifepo4wered-pi.html, https://www.nexlab.net/product/safepi/, https://www.modmypi.com/raspberry-pi/power-1051/ups-boards-1051/ups-pico, https://uk.pi-supply.com/products/pi-ups-uninterrupted-power-supply-raspberry-pi, http://raspi-ups.appspot.com/en/index.jsp, http://juice4halt.com/

Skratka, poln nabor najrazličnejših primerov, hackov in tudi čisto profesionalnih rešitev. Cene tudi niso prav minimalne, na žalost pa o nobeni zgornjih rešitev (še) nimam izkušenj. 

Najbolje je vzeti zadnji RPi, trenutno je to različica 3B+, tu je wifi že vgrajen, zanj pa je narejena dobra verzija linuxa stretch, ki ima kar nekaj novosti, ki omogočajo lažji začetek.

Raspberryja lahko pri nas kupimo pri IC elektroniki, pri Farnellu ali pa tudi na Amazon.de. S povsod so dobri, le prej se je dobro pozanimati o celotnih stroških, skupaj s poštnino. Večje trgovine prodajajo pakete, kjer so vse potrebne zadeve - RPi, ohišje, kartica in napajalnik. Drugje lahko mogoče celo kaj prišparamo, če nakupujemo posebej, vendar pa je treba biti - kot pač vedno - pozoren in vedeti, kaj hočemo. V vsakem primeru potrebujemo RPi, microSD kartico in napajalnik. Ohišje ni obvezno, pride pa - slej ko prej - prav. Lahko pa ga seveda tudi sami 3D natisnemo (ali pa ga damo komu natisnit) - thingiverse ima kar nekaj primernih ohišij - tale je preverjeno ok.

Domače omrežje

Ja, potrebujemo internet. Dostop do spleta je lahko kakršenkoli (no, dial-up najbrž ni nikjer več, ali pač?) tudi 1 Mb/s bo povsem dovolj. In domači usmerjevalnik/modem, karkoli nam pač ponudnik da. In domače wifi omrežje (tudi sosedovo je ok) in dhcp.

RPi  lahko priključimo tudi v ethernet omrežje, tudi statični IP ni ovira. 

 

Programska oprema

Linux

Za RPija potrebujemo poseben operacijski sistem, saj ima ARM procesor, ne bo prav vsak dober - najbolje je vzeti zadnjega z njegove strani, trenutno je to Raspbian Stretch Lite.

Weewx

Weewx je program, ki bo pobiral podatke, jih obdeloval, delal statistiko in jih pošiljal sem in tja, kamor bomo hoteli. Kar veliko dela, torej, predvsem zanj. Vsekakor ga bomo pobližje spoznali, čeprav kakšne veliko potrebe po natančnem spoznavanju ne bo, programska oprema je za običajno delovanje nadvse enostavna. 

Weewx se v letu 2018 še vedno razvija in ima precej živo spletno skupnost, kar je lepa lastnost pri reševanju napak ali težav.

Vremensko društvo ZEVS

To sicer ni programska oprema, a članstvo v Vremenskem društvu ZEVS je potrebno, saj kot član pridobiš dovolj prostora za podatke ter poddomeno v domeni zevs.si. Naprimer krtina.zevs.si. Zaželjeno je, da je poddomena ime kraja v katerem je vremenska postaja, obstajajo pa tudi izjeme.

Orodja

Nekaj orodij bo potrebnih: Win32 disk imagerPutty kot ssh vmesnik ter Winscp, čeprav imajo Windows 10 že ssh in scp klienta. Ssh klient bi še šel, winscp pa je težko nadomestit s čim drugim. Ter Notepad++ za urejanje datotek.

Kako začeti?

Začnemo s sestavljanjem vremenske postaje, nadaljevali bomo s postavljanjem RPija in nato z nameščanjem weewx in nastavljanjem vseh potrebnih nastavitev.

Vremensko postajo je treba seveda sestaviti, najbolje po navodilih, ki so vedno priložena. Za vremensko postajo je potrebno izbrati tudi dovolj dober prostor, ni čisto vsak dober. O tem, kje naj bi postaja stala se že leta krešejo mnenja, kljub temu, da obstajajo jasna merila kako in kaj - zelo dobro jih povzame WUHU (https://www.wunderground.com/weatherstation/installationguide.asp). Seveda to pomeni kar precej prostora, nima vsak 500 kvadratnih metrov travnika, nekateri živijo tudi v bloku. Nekateri nimajo sence, nekateri nimajo tega, drugi onega. Taki ne bi smeli imeti vremenskih postaj? Zato je ob vsaki vremenski postaji vedno dobro pripisati kje in kako je postavljena ter objaviti par slik. S tem naj bi si lahko vsak ustvaril sliko, kako položaj postaje vpliva na meritve.

Najtežje je torej izbrati prostor in pripraviti vse, da se postajo montira. Vse ostalo je potem lažje, danes so vremenske postaje enostavno sestavljive, v škatlah skoraj vedno dobiš vse, kar potrebuješ, še celo vezice.

Na koncu umerimo še smer vetra in nastavimo pravilni položaj vetrnice - skoraj vse so označene z smermi vetra, da se ne matramo preveč, le prej moramo vedeti, kje je sever.

Pozor tudi na težke kovinske drogove - več ali manj so vsaj malo magnetni in vsak poskus merjenja s kompasom se konča s severom direktno v drogu.

RPi

Predpostavljamo, da vse te korake izvajamo na Windows operacijskem sistemu. Če delamo na Linuxu, pa smatramo, da so potrebe za takšnimi navodili precej manjše - beri počez.

Raspbian Stretch Lite imamo torej kot sliko microSD kartice (img) na disku, poženemo Win32 Disk Imager, izberemo Stretch Lite in pravi pogon(!!!), v katerem je microSD kartica ter zapišemo image na kartico. Image (slika kartice) je v dveh delih (dve particiji), en del vidimo, ker je v FAT32, drugega pa ne, ker je v formatu, ki ga Windowsi ne poznajo (EXT4). Zato tudi nekaj običajnega javljanja, da je treba disk formatirati in podobno. Nikar!

Odpremo pogon kartice, ki nam je dostopen. V glavni imenik postavimo novo datoteko ssh (brez končnice). S tem bomo poskrbeli, da se bo ssh samodejno zagnal. Nato vstavimo še eno datoteko wpa_supplicant.conf. Vanjo vpišemo:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=SI

network={
  ssid="insert_your_SSID_here"
  scan_ssid=1
  psk="insert_your_wifi_password_here"
  key_mgmt=WPA-PSK
}

S tem poskrbimo, da se bo wifi samodejno povezal, ko se bo zagnal operacijski sistem. Seveda se tu podrazumeva, da imamo v omrežju DHCP strežnik - večina domačih usmerjevalnikov ga ima.

microSD kartica je s tem pripravljena. Vtaknemo jo v RPija.

RPi mora biti kolikor toliko blizu vremenske postaje, saj je USB kabel precej kratek, podaljševanje pa ni priporočljivo, morda z res dobrim (dragim) kablom še kak meter, dva, kaj več pa ne. Skrijemo ga nekam za konzolo vremenske postaje, če pa ima svoje fancy ohišje, potem pa ga sploh ni treba skrivati!

Poženemo RPi, nato pa čez par minut skušamo ugotoviti, kakšen IP naslov je napravica pridobila. Lahko se zgodi, da vam že ping raspberry.local v cmd okencu vrne ip številko, če pa ne, je treba iskati naprej. Najlažje je to najti nekje na usmerjevalniku. Druge rešitve pa več ali manj obsegajo ročni ali avtomatski ping po vseh IP številkah domačega omrežja. Več je napisano tukaj.

Nato pa začnemo - odpremo putty in vpišemo naš IP ter vzpostavimo povezavo. Začetni username je "pi", geslo "raspberry".

sudo raspi-config in v uporabniškem vmesniku nastavimo vse potrebne stvari - zamenjamo geslo, enable ssh, expand filesystem, lokalizacija jezika, tipkovnice, časovni pas. Na koncu ne restartamo, bomo naredili prej še par stvari.

Za daljši rok SD kartice nekateri predlagajo, da se uporaba prek sistema minimalizira. Najmanj, kar lahko naredimo je:

sudo swapoff --all

sudo dphys-swapfile swapoff

Če pa hočemo še več - dati vse loge in reporte na začasni prostor (v memorijo) pa naredimo naslednje:

sudo mkdir -p /var/weewx/reports

sudo nano /etc/fstab

kamor nato vpišemo:

weewx_reports /var/weewx/reports tmpfs size=100M,noexec,nosuid,nodev 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=20M 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100M 0 0

Zadnji korak vpisovanje v fstab ni nujno potreben, pravzaprav malo celo zakomplicira vse skupaj, saj ob vsakem restartu ni več ne logov ne reportov. Mogoče to lahko naredimo, ko enkrat vse lepo teče in ni več nikakršnih problemov.

Instaliramo še sqlite3, da bomo lahko izvažali bazo:

sudo apt-get install sqlite3

in restartamo:

sudo shutdown -r now

Spet se s putty-em prijavimo v RPi, tokrat najbrž že z novim geslom! Gremo instalirat še ostale potrebne stvari - astronomske zadeve in backup baze.

sudo crontab -e

odpre se pravzaprav datoteka, v katero z nano urejevalnikom vpišemo

23 0 * * * sudo sqlite3 /var/lib/weewx/weewx.sdb .dump | gzip -9c >/var/weewx/reports/Archive/weewx.sql.gz

Shranimo in zapremo (ctrl-x in y in enter).

S tem stavkom se bo vsak dan ob 0:23 h naredil dump weewx baze in se shranil med reporte v Archive folder. 

Ti trije ukazi so za astronomske podatke, potrebno je instalirat prave knjižnice:

sudo apt-get install python-dev
sudo apt-get install python-pip
sudo pip install pyephem

In končno še weewx - preden naredimo zadnjo vrstico je dobro vedeti, koordinate vremenske postaje v decimalni notaciji (naprimer 14.563673, 45.838383) in ime postaje. Če bomo uporabljali Froggit WH4000 postajo,  izberemo Simluator, drugače pa lahko kar izberemo strojno opremo iz menija.

wget -qO - http://weewx.com/keys.html | sudo apt-key add -
wget -qO - http://weewx.com/apt/weewx.list | sudo tee /etc/apt/sources.list.d/weewx.list
sudo apt-get update
sudo apt-get install weewx

Če imamo Froggit WH400 postajo, moramo narediti še naslednje:

wget -O weewx-wh23xx.zip https://github.com/matthewwall/weewx-wh23xx/archive/master.zip
sudo wee_extension --install weewx-wh23xx.zip
sudo wee_config --reconfigure

Zadnji ukaz nas spet sprašuje podatke o postaji, večino kar potrdimo z Enter, razen pri izbiri strojne opreme, tu izberemo 0!

Skini

Na Windowsih v nek nov folder odpakiramo našo obleko/skin Sofaskin-SI. Nato zaženemo WinSCP, ki je kot nekakšen stari Norton commander, z njim kopiramo datoteke gor in dol z RPija. Prekopirati moramo Sofaskin-SI folder na RPija, na /etc/weewx/skins/IME_SKINa, najbolje, da kar naredimo folder /etc/weewx/skins/Sofaskin-SI in vanj prekopiramo vse iz razpakiranega folderja na PCju.

Prekopiramo še posebej iz folderja FONTS/Droid fonte na /usr/share/fonts/truetype/droid folder ter iz folderja bin/user/historygenerator.py v usr/share/weewx/user/historygenerator.py.

Z RPija, iz folderja /etc/weewx, prekopiramo weewx.conf na windowse, datoteko bomo morali urejati. Za urejanje takih datotek je najbolj prikladen Notepad++.

V weewx.conf moramo vpisati naslednje, pod sekcijo [StdReport]:

#Če smo dali v tmpfs reporte, je treba to nastaviti
HTML_ROOT = /var/weewx/reports

ter dodamo naslednjo sekcijo, medtem ko lahko sekcijo [[StandardReport]] zbrišemo.

[[StandardReport-SI]]
  skin = Sofaskin-SI
  # Where the generated reports should go, relative to WEEWX_ROOT
  HTML_ROOT = /var/www/html/Sofaskin-SI
  report_timing = */15 * * * *
  [[[Units]]]
  [[[[Groups]]]]
   group_altitude = meter
   group_speed2 = km_per_hour2
   group_pressure = mbar
   group_rain = mm
   group_rainrate = mm_per_hour
   group_temperature = degree_C
   group_degree_day = degree_C_day
   group_speed = km_per_hour

  V sekciji [[FTP]] popravimo naslednje stvari:

   user = uporabnik@zevs.si
   password = geslogeslogeslo
   server = www.zevs.si
   path = /

Ostalih zadev ni dobro spreminjati, če ne vemo zakaj jih spreminjati. Tako, kot vedno.

V urejevalniku Notepad++ odpremo še datoteko skin.conf, ki je v tistem folderju, kamor smo razpakirali naš skin. Tu bo treba več popravljati, k sreči pa so navodila pred zapisi več ali manj dovolj in se ve, kaj naj bi človek vpisal. 

Največ moramo vpisati v sekciji [Extras], radarske slike, linke za te slike, napovedi in podobno. Tudi sliko spletne kamere lahko dodamo. Čisto na koncu extras je še google analytics šifra, ki jo tudi vpišemo, če jo le imamo.

Ostalo se seveda da vse popravljati, a tu velja enako pravilo: če vemo, potem ja, drugače pa raje pustimo. Načeloma je vse ok in pripravljeno za naše kraje.

Ko zaključimo z urejanjem, z Winscp prekopiramo weewx.conf in skin.conf nazaj na RPi, na njuni mesti. weewx.conf na /etc/weewx, skin.conf pa na /etc/weewx/skins/Sofaskin-SI.

Spet gremo v Putty-a in restartamo RPi.