Teploměr Papouch TMU v Linuxu a plugin do Munin

Potřebujete měřit teplotu a sledovat její průběh v čase ? Není nic jednoduššího než mít teplotní čidlo, nějaký ten interface kam jej zapojit a program na sběr hodnot a kreslení grafů. Proto jste-li šťastným majitelem čidla TMU od fy. Papouch, máte Linux a běží vám na něm monitorovací server Munin, čtěte dále.

Ovladače netřeba hledat, pokud máte Linuxové jádro verze 2.6 a vyšší. Systém nám jej detekuje bez potíží:

ftdi_sio 1-3:1.0: FTDI USB Serial Device converter detected
ftdi_sio: Detected FT232BM
usb 1-3: FTDI USB Serial Device converter now attached to ttyUSB0
usb 1-3: New USB device found, idVendor=0403, idProduct=6001
usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-3: Product: Papouch TMU Thermometer
usb 1-3: Manufacturer: Papouch s.r.o.
usb 1-3: SerialNumber: CENSORED

Otestovat funkčnost čidla lze přes cat /dev/ttyUSB0, který začne vypisovat podobně vypadající hlášky.

*B1E1+026.2
*B1E1+026.2
*B1E1+026.3
Teplotní čidlo USB - TMU

Teplotní čidlo USB - TMU

Posledních 6 znaků jak je vidno ukazuje teplotu ve stupních celsia. Jak tedy tyto hodnoty dostat do Munina ? Nejsem programátor, tak jsem hledal na google skript, který by dokázal přečíst hodnotu z portu a ukončit se. Myslel jsem že toho lze dosáhnout pouhým cat /dev/ttyUSB0 , ale bohužel tato cesta nefunguje. Narazil jsem na logger.pl , který splňuje všechny moje požadavky ( s pomocí tweaků v komentářích 🙂 a modifikací vstupních proměnných )

To by jsme měli výstup z loggeru na STDOUT, což nám stačí. Teď plugin do Munina. Velice jednoduchý bash skript, který mě naučil pracovat s proměnnými,a podmínkám.

#!/bin/sh

if [ "$1" = "config" ]; then
echo graph_title Teplotni Cidlo Papouch TMU # Nadpis Grafu
echo graph_vlabel Teplota ve stupnich # Popis osy Y
echo graph_category temp # Umístění v Kategoriích munina
echo graph_scale no # Graf nechceme škálovat
echo temp.label Cidlo # Popisek hodnoty
echo temp.info Teplota Cidla # Informace v "zapati"
exit 0
fi

read_temp=$(/usr/share/munin/plugins/logger.pl | tail -n 1 | cut -c6-11 | tr -d "[:alpha:,\n,\r]")
without_signum=$(echo $read_temp | cut -c3-6)
signum=$(echo $read_temp | cut -c1-2)

if   [ "$signum" == "+0" ]; then echo -n "temp.value $without_signum"
elif [ "$signum" == "+1" ]; then echo -n "temp.value 1$without_signum"
elif [ "$signum" == "-0" ]; then echo -n "temp.value -$without_signum"
fi

Soubor logger.pl je třeba umístit do složky k pluginu ( standartně /usr/share/munin/plugins/ ), případně kamkoliv jinam, ale poté je samozřejmé že bude třeba změnit cestu k souboru. Dále je třeba nastavit vlastníka souboru na roota. Pokud se vše zadaří, je možno vidět takovéto pěkné grafy.

Zde najdete všechny soubory v jednom balíčku.
tmu_munin.tar

Teplotní čidlo TMU v Munin

Teplotní čidlo TMU v Munin

Chcete-li ušetřit, je vhodnější si sestavit teploměr sám. Návod jak si postavit teploměr do sériového portu RS232 lze najít například na adrese http://trifid2.sweb.cz/teplomer/
Další pluginy pro Munin

Štítky .Záložka pro permanentní odkaz.

Jedna reakce na Teploměr Papouch TMU v Linuxu a plugin do Munin

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *