Дата: 2010-04-06 11:45:06
Комментариев: 0
В свое время, году так 2005, купил такой термометр. В винде с помощью Temp. Keeper отображался график температуры, но так как программа платная, то были ограничения по функционалу, которые малость напрягали, а морочиться с оплатой тогда не было желания и датчик был заброшен на полку, где и пылился до недавнего времени.
В какой-то статье узнал, что датчик в моем термометре поддерживается в программе digitemp и вот что из этого вышло.
Первым делом устанавливаем:

sudo apt-get install digitemp

Далее подключаем датчик к com порту, а так как у меня на ноутбуке его нет, пришлось использовать переходник com2usb.
Проверяем наш термометр:

/usr/bin/digitemp_DS9097 -i -s /dev/ttyUSB0

DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Turning off all DS2409 Couplers
.
Searching the 1-Wire LAN
2896F966000000D1 : DS18B20 Temperature Sensor
ROM #0 : 2896F966000000D1
Wrote .digitemprc


Датчик найден и работает! Получаем температуру первого датчика:
/usr/bin/digitemp_DS9097 -c /home/user/.digitemprc -t $1 -s /dev/ttyUSB0 -q -o "%.2C"

Теперь настроим построение графиков с помощью rrdtool. Устанавливаем его:
sudo apt-get install rrdtool

Создаем базу rrd:
rrdtool create temp.rrd --step 300 DS:in:GAUGE:600:U:U RRA:AVERAGE:0.5:1:432

Создаем файл digitemp.sh с таким содержимым:
#!/bin/bash
/usr/bin/digitemp_DS9097 -c /home/user/.digitemprc -t $1 -s /dev/ttyUSB0 -q -o "%.2C"

Делаем его исполняемым:
chmod +x digitemp.sh

Добавляем в cron две новые задачи:
$crontab -u username -e
*/1 * * * * /usr/bin/rrdtool update /путь/до/файла/temp.rrd N:`/путь/до/файла/digitemp.sh` > /dev/null 2>&1

*/1 * * * * /путь/до/файла/graph >/dev/null 2>&1

Теперь каждую минуту будут заноситься данные в базу rrd и строиться на их основе график. Осталось создать сам график.
$nano graph.sh
#!/bin/bash
/usr/bin/rrdtool graph /путь/до/файла/temp.png \
-a PNG -h 175 -v "Данные о Температуре" --color BACK#000000 --color CANVAS#000000 --color FONT#007700 --color GRID#ccee00 --color FRAME#ffffff --color ARROW#ff0000 --slope-mode \
'DEF:in=/путь/до/файла/temp.rrd:in:AVERAGE' \
'AREA:in#00AA00:Датчик' \
'GPRINT:in:LAST:Последнее значение \: %3.2lf °C' \

Ну и последний штрих, создадим веб-страничку с нашим графиком:
temp.html

 
<html>
<head>
	<title>Температура</title>
<META http-equiv="refresh" content="30">
<META HTTP-EQUIV = "pragma" CONTENT="no-cache">
</head>
 
<body bgcolor="black" ONLOAD="startClock()">
<CENTER>
<TABLE><TR><TD VALIGN="TOP">
<IMG WIDTH=497 HEIGHT=238 SRC="http://127.0.0.1/temp.png">
</TD>
</TR></TABLE>
</center>
</body>
</html>
 

Если вы используете Avant Window Navigator, то для большей наглядности можно добавить в него Web Applet и в нем настроить отображение нашего temp.html


теги: digitemp, rrdtool, DS1820

0 комментариев

Оставить комментарий: