====== Měřící systém pro průmyslové snímače ====== Pro připojení průmyslových měřících snímačů se nejčastěji používají normované analogové signály, nebo proudová smyčka 4-20mA. Výhodou použití proudové smyčky je možnost detekce chybových stavů snímače, jako je zkrat, nebo přerušení vedení. Moderní zařízení však vyžadují digitalizaci měřených hodnot, proto byla navržena konstrukce ISMS01, která umožňuje převedení analogových signálů na rozhraní [[cs:i2c|I²C]], které pak díky knihovně [[cs:pymlab|Pymlab]] a použití moderních [[cs:arm|jednodeskových počítačů]] umožňuje připojení do složitých měřících sítí a systémů. Blokové schéma měřící ústředny ISMS01A je následující. {{ :cs:designs:measuring:industrial_sensors_measurement_system.png?600 | Průmyslový měřící systém využívající jednodeskové počítače a sběrnici I2C. }} ===== Vlastnosti ===== * Připojení průmyslových čidel s rozhraním proudová smyčka 4-20mA, nopěťový výstup 0-10V, [[https://cs.wikipedia.org/wiki/Modbus|Modbus]] * Ethernet rozhraní, volitelně jiné připojení, například [[cs:gsm|GSM]] * Možnost připojení do Internetu a odesílání dat na server. ===== Popis funkce ===== Na řídícím počítači běží operační systém Linux Ubuntu, společně s utilitou pro zápis dat pracující s knihovnou [[cs:pymlab|pymlab]]. Tím vzniká datový záznam v podobě CSV sobouru. Čas souboru je v [[https://en.wikipedia.org/wiki/Unix_time|Unixtimestamp]] Formát je následující. #Time, PH1, Temp1, Conduct1, O2,,,,,,, ==== Proudová smyčka ==== Proudovou smyčku zařízení čte modulem [[cs:vcai2c|]], který má softwarový ovladač v knihovně [[cs:pymlab|]]. ==== Modbus ==== [[https://cs.wikipedia.org/wiki/Modbus|Modbus rozhraní]] je v přístroji implementováno pomocí Python knihovny [[http://minimalmodbus.readthedocs.io/en/master/index.html|MinimalModbus]]. ===== Použité moduly ===== * [[cs:inputuni|]] * [[cs:upconv|]] * [[cs:vcai2c|]] * [[cs:i2cdiff|]] * [[cs:i2chub|]] * [[cs:unipower|]] * [[cs:batpower|]] * [[cs:supercap|]] * [[cs:odroid-c1|]] * [[cs:gsm|]] ====== Instalace software ====== Instalace předpokládá staniční počítač [[cs:odroid-c1|ODROID-C1]] s běžícím systémem Ubuntu 16.04 minimal [[http://odroid.in/ubuntu_16.04lts/|od Hardkernelu]]. Musí také v sytému existovat uživatel pod jehož účtem bude celá stanice běžet. Například uživatel "geozor". Instalační postup je určen pro uživatele, který zná [[cs:sw:os|základy používání operačních systémů]]. Nejdříve nainstalujeme potřebný software, který je v repozitářích Ubuntu. sudo apt-get install build-essential cmake libusb-1.0-0-dev i2c-tools python-smbus libusb-1.0 cython python-setuptools python-numpy python-cheetah libboost-all-dev autossh pv ntp python-paramiko git libpcap-dev Pak můžeme stáhnout software, který je specifický pro MLAB měřící stanice: mkdir repos cd ~/repos git clone https://github.com/MLAB-project/python-mlab-utils.git cd python-mlab-utils sudo python setup.py install cd ~/repos git clone https://github.com/MLAB-project/station-supervisor.git cd station-supervisor/ git checkout geozor cd ~/repos git clone https://github.com/bolidozor/data-uploader.git git checkout geozor Dále potřebujeme obslužný program měřícího systému. svn co svn://svn.mlab.cz/MLAB/Designs/Measuring_instruments/ISMS01A/SW ISMS01A ===== Příprava SDkarty ===== Na staničním počítači je dobré zapisovat záznamy na SD kartu, která se připojí do složky ''~/geozor''. Toto opatření snižuje počet zápisů na eMMC kartu, ze které stanice bootuje a prodlužuje tak její životnost. Případně poškozenou SDkartu je pak i jednodušší vyměnit dílky nepoškozenému operačnímu systému stanice. Novou SDkartu naformátujeme na souborový systém [[https://en.wikipedia.org/wiki/F2FS|F2FS]]. K tomu potřebujeme do systému nainstalovat podporu souborového systému F2FS. sudo apt install f2fs-tools gparted Pak můžeme programem Gparted naformátovat SDkartu na souborový systém F2FS, který je optimalizovaný pro paměťová media s omezeným počtem zápisů. Naformátovanou SDkartu pak připojíme do adresáře ''~/geozor'' a nastavíme souborová práva pro přístup i jinými uživateli než root. sudo mount -t f2fs /dev/mmcblk1p1 ~/geozor/ sudo chgrp -R geozor geozor sudo chown -R geozor geozor Následně při namountované kartě vytvoříme složky pro data. mkdir -p ~/geozor/station/data ===== Nastavení staničního času ===== Změníme systémové časové pásmo na UT. sudo dpkg-reconfigure tzdata Někdy je také potřeba vygenerovat místní nastavení např: sudo locale-gen cs_CZ.UTF-8 ===== Vzdálený přístup na stanici ===== Pro případ, že bude potřeba servisní zásah na stanici, je vhodné aktivovat i reverzní ssh tunel, který může sloužit pro vzdálenou správu stanice. To lze udělat spuštěním těchto příkazů: wget http://space.astro.cz/bolidozor/support/scripts/setup_reverse_tunnel.sh chmod +x ./setup_reverse_tunnel.sh sudo ./setup_reverse_tunnel.sh Skript nakonec vypíše nastavené parametry. Např. Host radio-test.tunnel Port 4958 HostName space.astro.cz User testak1 Ty je potřeba zkopírovat a odeslat na stejnou adresu, jako v případě [[cs:registration|registrace stanice]]. ==== Použití vzdáleného přístupu ==== Pro vzdálený přístup je potřeba mít nahraný na serveru space.astro.cz veřejný ssh klíč počítače ze kterého se připojujeme. Pro přístup k servisnímu rozhraní je třeba mít přístupové údaje na server space.astro.cz. Z něj je pak možné přistupovat ke stanici. Postup připojení je následující: ssh uzivatel@space.astro.cz V případě že autentizace veřejným klíčem proběhne v pořádku, budete připojeni na server space.astro.cz. Na něm si můžete prohlížet svoje staniční data. Případně promazávat nehodnotná data, která byla do datového úložiště omylem zanesena. K samotné stanici se pak připojíte příkazem ssh odroid@geozor-vrty.tunnel Stanice se pak zeptá na uživatelské heslo. Následně máme k dispozici příkazový řádek stanice. Pro základní informace o použití příkazového řádku je možné si pročíst stránku [[cs:sw:os|]]. ===== Spuštění po startu ===== Protože se většina stanic instaluje na počítač zvaný Odroid, jehož výchozí uživatel se jmenuje ''odroid'', předpokládá následující, že se tak jmenuje i uživatel, pod kterým bude běžet staniční software. Dosaďte za ''odroid'' správné jméno, pokud to tak není. Do ''/etc/rc.local'' je třeba zapsat, co se má spustit po startu. Na všech stanicích by se mělo spustit ''/home/odroid/repos/station-supervisor/start.sh'', což nastartuje všechen staniční software. Protože má staniční software běžet pod uživatelem ''odroid'', bude celý příkaz ke zkopírování vypadat takto: su odroid /home/odroid/repos/station-supervisor/start.sh Pokud se mají na Odroidu zapisovat záznamy na SD kartu, mělo by se ještě před ''start.sh'' spustit také ''/home/odroid/repos/station-supervisor/mount-sd-card.sh'', což kartu připojí přes ''/home/odroid/bolidozor''. Příkazy by se do ''rc.local'' měly přidat před ''exit 0'', které tak zůstane na konci. Příklad ''/etc/rc.local'' po úpravě: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. pon gprs /home/geozor/repos/station-supervisor/mount-sd-card.sh su odroid /home/geozor/repos/station-supervisor/start.sh & exit 0 Aby fungoval příkaz "pon gprs" tak je nejdříve potřeba mít správně nastavený [[cs:gsm|GPRS modem]].