Počasí nebylo nikdy jednodušší monitorovat a následně jej sledovat pomocí počítače či chytrého telefonu kdekoliv a kdykoliv.
Nejdříve začneme nákupem a zprovozněním USB meteostanice. Pro amatérské měření plně dostačuje bezdrátová meteostanice WH1080. Je možné použít jakoukoliv USB meteostanici, kde je kompatibilní výstup, např. Elecsa AstroTouch 6975, Watson W-8681, WH-1080PC, WH1080, WH1081, WH3080. Pravděpodobně bude kompatibilní jakákoliv USB meteostanice u které je dodáván software EasyWeather pro Windows. Meteostanici sestavíme, umístíme a zprovozníme dle jejího návodu.
Dále budeme potřebovat Raspberry Pi pro zpracování dat z meteostanice a odesílání grafů na internet – plně postačuje Model B+ 512 MB RAM, napájecí zdroj 5V (microUSB, min. 1A), krabičku a microSD kartu (min. 8GB).
Jako operační systém použijeme RASPBIAN WHEEZY, který si stáhneme z oficiálních stránek https://downloads.raspberrypi.org/raspbian/images/raspbian-2015-05-07/. Návod na instalaci OS najdete v samostatném článku.
Pro sběr a vyhodnocování dat z meteostanice budeme používat aplikaci pywws a pro její běh potřebujeme nainstalovat Python a knihovny pro přístup k meteostanici přes USB. Přihlaste se do Raspberry jako uživatel root.
apt-get install python-pip
apt-get install python-dev
apt-get install python-usb
cd /
cd srv
mkdir weather
cd weather
pip install pywws
Nyní již můžeme připojit meteostanici pomocí USB kabelu Raspberry Pi a provést test připojení.
python -m pywws.TestWeatherStation
Pokud vše funguje správně, měl by se vám zobrazit obdobný výpis:
00:00:27:pywws.Logger:pywws version 15.07.0
0000 55 aa 80 10 20 e4 5c 04 60 e1 0a fb 9f 1e f5 ff 05 20 02 31 09 00 00 00 00 00 00 f0 0f 00 90 20
0020 50 27 bc 25 00 00 00 00 00 00 00 15 08 17 00 00 41 23 c8 00 00 00 46 2d 2c 01 64 80 c8 00 00 00
0040 64 00 64 80 a0 28 80 25 a0 28 80 25 05 81 01 05 81 01 00 32 00 f4 01 12 00 00 00 00 00 00 00 64
0060 04 60 47 0a 63 0a 5a 01 ca 00 ac 01 17 80 ac 01 4c 80 d6 00 63 80 f2 27 4f 25 22 28 be 26 99 00
0080 d6 00 ae 00 ed 00 4a 01 22 02 c6 03 00 15 07 06 08 07 14 01 01 12 06 15 04 27 04 37 15 07 22 14
00a0 51 15 04 07 11 42 15 04 06 20 24 15 08 08 16 35 15 04 05 06 31 15 08 08 16 35 15 04 06 11 57 15
00c0 07 05 16 31 15 04 04 17 30 14 01 01 12 00 15 04 27 18 32 15 04 07 09 33 15 04 27 18 32 15 07 25
00e0 14 37 15 07 25 14 37 15 08 16 17 59 15 08 16 20 15 15 06 14 21 15 15 06 27 20 35 15 06 27 20 35
Nyní si připravíme skupinu weather aby jsme později mohli pracovat s pythonem pod uživatelem pi.
addgroup --system weather
sudo adduser pi weather
Nyní zkontrolujeme idVendor a idProduct meteostanice. Odpojte meteostanici (USB kabel) od Raspberry Pi a zedejte
tail -f -n 0 /var/log/kern.log
Nyní opět zapojte USB kabel od meteostanice do Raspberry Pi a pak stiskněte současně klávesy Ctrl a C. Mělo by se vám ukázat idVendor a idProduct asi takto:
Aug 17 00:14:37 meteostanice kernel: [ 958.223895] usb 1-1.3: New USB device found, idVendor=1941, idProduct=8021
Nyní vytvoříme pravidlo které nastaví port USB skupině weather.
nano /etc/udev/rules.d/39-weather-station.rules
Do nově vytvořeného souboru přidejte níže uvedené řádky s vašimi hodnotami idVendor a idProduct a soubor uložte (Ctrl + O) a ukončete editor nano (Ctrl + X).
ACTION!="add|change", GOTO="station_end"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1941", ATTRS{idProduct}=="8021", GROUP="weather"
LABEL="station_end"
Nyní restartujte Raspberry Pi a přihlašte se jako uživatel pi. Po restartu zopakujte test.
python -m pywws.TestWeatherStation
Než přistoupíme k vlastní konfiguraci tak si ještě nainstalujeme další knihovny pro zpracování dat z meteostanice.
cd /
sudo pip install python-twitter
sudo pip install oauth2
sudo apt-get install gnuplot
sudo apt-get install python-paramiko
sudo apt-get install python-pycryptopp
Nyní zkopírujeme šablony do složky weather a připravíme podsložky pro data.
sudo chown -R pi:weather /srv/weather
cp -R /usr/local/lib/python2.7/dist-packages/pywws/examples/* /srv/weather
mkdir /srv/weather/data
sudo mkdir /srv/webdata
sudo chown -R pi:weather /srv/webdata
mkdir /home/pi/weather
mkdir /home/pi/weather/temp
Vlastní konfigurace aplikace pywws se provádí v souboru weather.ini, který si musíme vytvořit.
python -m pywws.LogData -vvv /srv/weather/data
Nyní se můžeme pustit do vlastního nastavení aplikace pywws.
nano /srv/weather/data/weather.ini
Do otevřeného souboru nakopírujte níže uvedenou vzorovou konfiguraci:
[config]
ws type = 1080
usb activity margin = 3.0
pressure offset = 44
logdata sync = 1
day end hour = 24
rain day threshold = 0.2
frequent writes = False
template encoding = iso-8859-1
gnuplot version = 4.2
gnuplot encoding = iso_8859_1
asynchronous = False
[paths]
work = /home/pi/weather/temp
templates = /srv/weather/templates
graph_templates = /srv/weather/graph_templates
local_files = /srv/weather/results/
[ftp]
local site = False
site = adresa vašeho webhostingu
user = přihlašovací jméno webhostingu
password = přihlašovací heslo webhostingu
directory = složka pro uložení grafů na webhostingu
secure = False
port = 21
[live]
services = []
plot = []
text = []
[logged]
services = []
text = []
plot = []
[hourly]
services = []
plot = ['24hrs.png.xml', 'rose_24hrs.png.xml', '7days.png.xml']
text = ['6hrs.txt', '7days.txt']
[12 hourly]
services = []
text = []
plot = []
[daily]
services = []
plot = ['28days.png.xml']
text = []