Har köpt en CO2 mätare och spänningsmatar denna via en 5v stabiliserad trafo och en stor kondensator.
Funkar bra för de mesta men verkar då och då ge helt fel mätvärden


Som ni ser är det väldigt skakigt.
Använder NSLU2 med UNSLUNG, OWFS och RDTOOL.
Är den trasig eller beter sig denna modell så här och man måste jämna till det mjukvarumässigt?
Skulle även vilja ha tips på hur man multiplicerar volt värdet med 500 som jag förstått man måste göra.
Skulle helst göra detta direkt med värden i bash scriptet och inte i rdtool.
get_ad.sh
Kod: Markera allt
#!/bin/bash
Sensor=$1
RRDDataFile=$3
sh /usr/rdtool/script/create_rrd.sh $RRDDataFile
SensorValue=`cat /tmp/1wire/uncached/$Sensor/volt.$6|sed -e s/" "//g|gawk '{$1=$1 + 0.005;printf "%.2f", $1}'`
rrdtool update $RRDDataFile N:$SensorValue
export && /usr/rdtool/script/graph_temp.pl $2 $3 $4 $5
echo Sensor $6 värde $4 $SensorValue
sh /usr/rdtool/script/get_ad.sh "20.98720D000000" "/usr/rdtool/script/co2" "/usr/rdtool/rrddata/co2.rrd" "CO2"
graph_temp.pl
Kod: Markera allt
#!/usr/bin/perl
# Scriptet måste anropas med fyra linje argument
# Tex. export && /usr/rdtool/script/graph_temp.pl "/usr/rdtool/script/vardagsrum" "/usr/rdtool/rrddata/vardagsrum_temp.rrd" "Vardagsrum" 86400
# "/usr/rdtool/script/vardagsrum" = Filnamn på grafen som skall skapas
# "/usr/rdtool/rrddata/vardagsrum_temp.rrd" = Databasens namn
# "Vardagsrum" = Överskrift på grafen
# 86400 = Antal sekunder från nu som grafen skall visa
print "\nBörjar skapa graf för $ARGV[2]. \n";
use POSIX;
my $datetime = strftime( '%Y-%m-%d %H:%M:%S', localtime );
print "Tid $datetime\n";
use RRDs;
my $file_graf = $ARGV[0];
my $file_database = $ARGV[1];
my $rubrik = $ARGV[2];
my $cur_time = time();
my $start_time = $cur_time - $ARGV[3];
RRDs::graph "$file_graf.png",
"--start= $start_time",
"--end= $cur_time",
"--title= $rubrik",
"--height= 300",
"--width= 500",
"--vertical-label= °C",
"--watermark= WWW.DANIELOLSSON.SE | Graf genererad\: $datetime",
"DEF:OutsideTemp=$file_database:outsidetemp:AVERAGE",
"VDEF:mintime=OutsideTemp,MINIMUM",
"VDEF:maxtime=OutsideTemp,MAXIMUM",
"HRULE:0#0000FF",
"LINE2:OutsideTemp#0000FF:$rubrik\t\t\t\\n",
"COMMENT:Nu\\: ",
"GPRINT:OutsideTemp:LAST:%6.2lf\\n",
"COMMENT:Medel\\:",
"GPRINT:OutsideTemp:AVERAGE:%6.2lf\\n",
"COMMENT:Lägst\\: ",
"GPRINT:OutsideTemp:MIN:%3.2lf%s",
"GPRINT:mintime:%Y-%m-%d %H\\:%M:strftime",
"COMMENT:\\n",
"COMMENT:Högst\\: ",
"GPRINT:OutsideTemp:MAX:%3.2lf%s",
"GPRINT:maxtime:%Y-%m-%d %H\\:%M:strftime";
# "--alt-autoscale",
# "--slope-mode",
my $err=RRDs::error;
if ($err) {print "Problem med att skapa grafen för $ARGV[2]: $err\n";}
print "Grafen för $ARGV[2] skapad!\n";