1-wire pod OpenWRT

Moje oblíbená Linuxová distribuce OpenWRT běží na řadě nízkopříkonových routerů jako je např. Asus 500g či Asus 500gP. Vzhledem k tomu, že zmíněné routery mají i USB porty, lze do nich snadno připojit USB 1-wire adapter DS9490R. Měření teplot a jiných veličin tak může běžet s minimálními nároky na energii, při současném zachování komfortního Linuxového prostředí
Zprovoznění pod OpenWRT je triviální díky existenci balíčků s OWFS. Na stránkách OWFS je podrobný návod na zprovoznění seriového převodníku na routeru Linksys WRT54G.
S USB převodníkem je vše ještě jednodušší. Stačí přidat repository a nainstalovat příslušné balíčky

echo "src owfs http://owfs.sourceforge.net/openwrt/packages" >> /etc/ipkg.conf
ipkg update
ipkg install owfs uhci usbcore

vytvoříme mountpoint, zavedeme jaderný modul a namountujeme OWFS

mkdir /mnt/owfs
insmod uhci
owfs -u /mnt/owfs/

a tím jsme hotovi. Můžeme třeba jednorázově vyčíst nenakešované teploty

for file in /mnt/owfs/uncached/*/temperature ; do
cat $file
echo
done

a dostaneme např.

15.5625
15.5
15.5625
15.25
15.5625

Data pak můžeme ukládat do RRD databáze např. pomocí hotové utility temploggerd, více v návodu odkazovaném výše.


kategorie: linux