106 064 läst · 236 svar
106k läst
236 svar
Mätning med 1-wire
Hmmm
på DS2760 kretsen finns följande 5 anslutningar:
SNS, Vss, -, +, D.
Jag kopplar in + 5V på +, och - minus på -.
temperatur probens röda på SNS och den blå på Vss.
1 wire data på D och 1 wire gnd på - (samma som - från 5v)
då Logtemp endast ser tempgivaren som finns internt på sd2760, jag kan således inte registrera temperaturer med proben.
Jag har provat att aktivera dels "DS 2670 Temperature" vilket jag får det interna resultatet med som stämmer med rumstemperaturen, och
"DS 2670 Thermocouple" vilket jag tror det är jag skall använda ,men någon sådan hittar Logtemp inte
kopplar jag fel? eller är något trasigt
på DS2760 kretsen finns följande 5 anslutningar:
SNS, Vss, -, +, D.
Jag kopplar in + 5V på +, och - minus på -.
temperatur probens röda på SNS och den blå på Vss.
1 wire data på D och 1 wire gnd på - (samma som - från 5v)
då Logtemp endast ser tempgivaren som finns internt på sd2760, jag kan således inte registrera temperaturer med proben.
Jag har provat att aktivera dels "DS 2670 Temperature" vilket jag får det interna resultatet med som stämmer med rumstemperaturen, och
"DS 2670 Thermocouple" vilket jag tror det är jag skall använda ,men någon sådan hittar Logtemp inte
kopplar jag fel? eller är något trasigt
Nu har jag lyckats få in rrdtool på min debian burk..samt skapa en databas, men nu e det stop.
hur ska ett skript som uppdaterar databasen med ds2760 mätvärden se ut, samt hur ser skripen som dels, hämtar värdena från databasen, och dels presenterar dem i en snygg graf.
Kan inte någon visa exempel, snälla.
hur ska ett skript som uppdaterar databasen med ds2760 mätvärden se ut, samt hur ser skripen som dels, hämtar värdena från databasen, och dels presenterar dem i en snygg graf.
Kan inte någon visa exempel, snälla.
Jag kör med följande bash script varje minut m.h.a. cron för att få in värden till databasen. Kör med en fil per givare.
/Dag
#!/bin/bash
SENSORS="
uncached/1F.0AB304000000/main/10.148F0E010800/temperature:tempfram1.rrd
uncached/1F.0AB304000000/main/10.EE510E010800/temperature:tempretur1.rrd
uncached/1F.0AB304000000/main/1D.39EC09000000/counters.A:countA.rrd
uncached/1F.0AB304000000/main/1D.39EC09000000/counters.B:countB.rrd
uncached/1F.F3B504000000/main/30.1F7D09110000/temperatureannrum.rrd
uncached/1F.F3B504000000/main/30.1F7D09110000/typeK/temperature:rokgas.rrd
uncached/1F.F3B504000000/main/10.5D980E010800/temperature:verkstad.rrd
"
RRDBASE=/var/owdata/
OWREAD="/opt/owfs/bin/owread -s 3001"
for SENSOR_INFO in $SENSORS
do
SENSOR=`expr $SENSOR_INFO : '\(.*\):'`
RRDFILE=`expr $SENSOR_INFO : '.*:\(.*\)'`
if [ "$SENSOR" != "" ]; then
VALUE=""
echo -n "Reading $SENSOR "
i=0
while [ $i -lt 4 ]
do
VALUE=`$OWREAD $SENSOR | tr -d ' '`
if [ "$VALUE" != "85" ]; then
break
else
echo -n "r"
fi
let i+=1
sleep 1
done
VALUE_OK=""
echo -n "got '$VALUE'"
if [ "$VALUE" == "85" ]; then
echo -n " Bad value"
else
if [ "$VALUE" == "" ]; then
echo -n " Empty value"
else
VALUE_OK=$VALUE
fi
fi
if [ "$RRDFILE" != "" ]; then
if [ "$VALUE_OK" != "" ]; then
echo -n " Adding to RRD file $RRDFILE"
rrdtool update $RRDBASE/$RRDFILE N:$VALUE_OK
fi
fi
else
echo -n "Unable to extract SENSOR from $SENSOR_INFO"
fi
echo
done
/Dag
#!/bin/bash
SENSORS="
uncached/1F.0AB304000000/main/10.148F0E010800/temperature:tempfram1.rrd
uncached/1F.0AB304000000/main/10.EE510E010800/temperature:tempretur1.rrd
uncached/1F.0AB304000000/main/1D.39EC09000000/counters.A:countA.rrd
uncached/1F.0AB304000000/main/1D.39EC09000000/counters.B:countB.rrd
uncached/1F.F3B504000000/main/30.1F7D09110000/temperatureannrum.rrd
uncached/1F.F3B504000000/main/30.1F7D09110000/typeK/temperature:rokgas.rrd
uncached/1F.F3B504000000/main/10.5D980E010800/temperature:verkstad.rrd
"
RRDBASE=/var/owdata/
OWREAD="/opt/owfs/bin/owread -s 3001"
for SENSOR_INFO in $SENSORS
do
SENSOR=`expr $SENSOR_INFO : '\(.*\):'`
RRDFILE=`expr $SENSOR_INFO : '.*:\(.*\)'`
if [ "$SENSOR" != "" ]; then
VALUE=""
echo -n "Reading $SENSOR "
i=0
while [ $i -lt 4 ]
do
VALUE=`$OWREAD $SENSOR | tr -d ' '`
if [ "$VALUE" != "85" ]; then
break
else
echo -n "r"
fi
let i+=1
sleep 1
done
VALUE_OK=""
echo -n "got '$VALUE'"
if [ "$VALUE" == "85" ]; then
echo -n " Bad value"
else
if [ "$VALUE" == "" ]; then
echo -n " Empty value"
else
VALUE_OK=$VALUE
fi
fi
if [ "$RRDFILE" != "" ]; then
if [ "$VALUE_OK" != "" ]; then
echo -n " Adding to RRD file $RRDFILE"
rrdtool update $RRDBASE/$RRDFILE N:$VALUE_OK
fi
fi
else
echo -n "Unable to extract SENSOR from $SENSOR_INFO"
fi
echo
done
då får väl jag bidra med mitt script som använder php och sparar värdena i mysql:
<?php
include("config.php");
$filename = "/mnt/1wire/10.0ADEBC000800/temperature";
$fileToOpen = fopen($filename,"r");
$content = fread($fileToOpen, filesize($filename));
fclose($fileToOpen);
mysql_query("INSERT INTO `temperatur` (`sensorId`,`timeSlot`,`temp`) VALUES ('1',now(),$content)") or die(mysql_error());
mysql_close();
?>
<?php
include("config.php");
$filename = "/mnt/1wire/10.0ADEBC000800/temperature";
$fileToOpen = fopen($filename,"r");
$content = fread($fileToOpen, filesize($filename));
fclose($fileToOpen);
mysql_query("INSERT INTO `temperatur` (`sensorId`,`timeSlot`,`temp`) VALUES ('1',now(),$content)") or die(mysql_error());
mysql_close();
?>
OJOJOJ
daer:
Detta hade jag aldrig kunnat tänka ut själv, är det detta som kallas bash skript?
Här kommer jag att tillbringa några kvällar med att reda ut variabler syntax m.m.
Vad menar du med 1 fil per gvare? är det en *.rrd fil per givare du menar?
daer:
Detta hade jag aldrig kunnat tänka ut själv, är det detta som kallas bash skript?
Här kommer jag att tillbringa några kvällar med att reda ut variabler syntax m.m.
Vad menar du med 1 fil per gvare? är det en *.rrd fil per givare du menar?
Ja, jag kör med en rrd fil per givare. Detta för att jag enklare skall kunna ta bort/lägga till givare.
Kanske också skulle förklara syntaxen på "givar" raderna:
uncached/1F.0AB304000000/main/10.148F0E010800/temperature:tempfram1.rrd
uncached för att OW skall verkligen läsa givaren och inte läsa från cachen.
1F.0AB304000000/main jag kör med en lite hup från hobbyboards, detta adresserar en viss utgång på hubben
10.148F0E010800/temperature temperaturen på en ds18s20 givare
tempfram1.rrd vilken rrd fil som värdet skall läggas in i, filen skall ligga i RRDBASE biblioteket
Kanske också skulle förklara syntaxen på "givar" raderna:
uncached/1F.0AB304000000/main/10.148F0E010800/temperature:tempfram1.rrd
uncached för att OW skall verkligen läsa givaren och inte läsa från cachen.
1F.0AB304000000/main jag kör med en lite hup från hobbyboards, detta adresserar en viss utgång på hubben
10.148F0E010800/temperature temperaturen på en ds18s20 givare
tempfram1.rrd vilken rrd fil som värdet skall läggas in i, filen skall ligga i RRDBASE biblioteket
OK!!
scriptet som skapar databaserna, hur ser det ut?
Nu, har jag lyckats mäta rökgaserna med min ds2760 (max temp var ca 210 grader), jag dumpade ut dem 1 gång i minuten till en text fil, lite klumpigt men vad gör man när man inte lyckats skripta allt ÄN.
scriptet som skapar databaserna, hur ser det ut?
Nu, har jag lyckats mäta rökgaserna med min ds2760 (max temp var ca 210 grader), jag dumpade ut dem 1 gång i minuten till en text fil, lite klumpigt men vad gör man när man inte lyckats skripta allt ÄN.
Jag skapar mina rrd filer med följande script.
#!/bin/bash
# 1min interval, if no data for 600sec set to unknown
# 10080 * 1 min = 7 dagar med minutvärden
# 4680 * 10 min = 32 dagar med 10min värden AVERAGE
# 8760 * 1h = 365 dagar med 1h värden AVERAGE, MIN and MAX
# 3650 * 1d = 10 år med 1 dagsvärden AVERAGE, MIN, MAX
RRDs="rokgas temp0 temp1"
for i in $RRDs
do
echo Creating $i.rrd
rrdtool create $i.rrd --step 60 DS:temp:GAUGE:600:-270:1370 RRA:AVERAGE:0.5:1:10080 RRA:AVERAGE:0.5:10:4680 RA:AVER RRA:MIN:0.5:60:8760 RRA:MAX:0.5:60:8760 RRA:AVERAGE:0.5:1440:3650 RRA:MIN:0.5:1440:3650 RA:MAX:0.5:1440:3650
chmod 644 $i.rrd
done
#!/bin/bash
# 1min interval, if no data for 600sec set to unknown
# 10080 * 1 min = 7 dagar med minutvärden
# 4680 * 10 min = 32 dagar med 10min värden AVERAGE
# 8760 * 1h = 365 dagar med 1h värden AVERAGE, MIN and MAX
# 3650 * 1d = 10 år med 1 dagsvärden AVERAGE, MIN, MAX
RRDs="rokgas temp0 temp1"
for i in $RRDs
do
echo Creating $i.rrd
rrdtool create $i.rrd --step 60 DS:temp:GAUGE:600:-270:1370 RRA:AVERAGE:0.5:1:10080 RRA:AVERAGE:0.5:10:4680 RA:AVER RRA:MIN:0.5:60:8760 RRA:MAX:0.5:60:8760 RRA:AVERAGE:0.5:1440:3650 RRA:MIN:0.5:1440:3650 RA:MAX:0.5:1440:3650
chmod 644 $i.rrd
done
Någon som har läst av en ds2760 och har använt OneWireAPI.NET eller liknande?
Jag har sedan tidigare redan en app som läser mina tempgivare & räknare, där jag använder mig av C# och vill bara lägga till rökgasmätningen i den. Känner att jag inte har koll på hela beräkningsmodellen när det gäller omvandling från V till temp. Jag har kollat lite på aagelectronicas "TAI8560 1-Wire Thermocouple Module" och dess java-klasser men reder inte ut det riktigt...
/Fredric
Jag har sedan tidigare redan en app som läser mina tempgivare & räknare, där jag använder mig av C# och vill bara lägga till rökgasmätningen i den. Känner att jag inte har koll på hela beräkningsmodellen när det gäller omvandling från V till temp. Jag har kollat lite på aagelectronicas "TAI8560 1-Wire Thermocouple Module" och dess java-klasser men reder inte ut det riktigt...
/Fredric
Ville bara meddela att jag har löst mitt problem med OneWireAPI.NET med en del hjälp från folket på "Elektronikforum". Det tog en del tid innan jag fattade att det var strömmen som jag läste ut
Allt är nu ialla fall i drift. Ganska najs att kunna hålla koll på rökgastempen och få lite grafer.
Tack alla för hjälpen
Om någon behöver hjälp med omvandlingen av ds2760-data till temp med OneWireAPI.NET, hör av er...
/Fredric
Allt är nu ialla fall i drift. Ganska najs att kunna hålla koll på rökgastempen och få lite grafer.
Tack alla för hjälpen
Om någon behöver hjälp med omvandlingen av ds2760-data till temp med OneWireAPI.NET, hör av er...
/Fredric
Nu behöver jag lite hjälp.
Köpte en 2760 från temperatur.nu, provade koppla in till en egen DS9490R och LogTemp. Fungerade fint.
Jag satte ihop en adapter för att koppla in den till mitt riktiga 1-wire nät, en rj11 hona till 2x rj45 hanar.
Det dyker upp en ny device med familjekod 30 i owfs, så långt allt väl.
Börjar elda, men jag får inte ut några värden alls som är någonting att ha.
"t0" är chippets interna temp, "temp" är den höga temperaturen tagen från uncashed/30.XXX/typeK/temperature, "Vis" ska vara uppmätt spänning.
Date, t0, temp, Volt, Vis
ons maj 14 18:43:55 CEST 2008 , 23.375 , 22.7893 , 4.52864 , 0.033375
ons maj 14 18:44:56 CEST 2008 , 23.375 , 22.9175 , 4.53352 , 0.035375
ons maj 14 18:45:56 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.03725
ons maj 14 18:46:56 CEST 2008 , 23.375 , 22.7893 , 4.52864 , 0.03925
ons maj 14 18:47:56 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.04125
ons maj 14 18:48:57 CEST 2008 , 23.5 , 22.9175 , 4.52864 , 0.042875
ons maj 14 18:49:57 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.044875
Jag har bara en sensor, och den sitter begravd under en timme med isolering men kontakten kommer jag åt lätt.
Vad har jag gjort för fel? Hur kan jag felsöka?
Köpte en 2760 från temperatur.nu, provade koppla in till en egen DS9490R och LogTemp. Fungerade fint.
Jag satte ihop en adapter för att koppla in den till mitt riktiga 1-wire nät, en rj11 hona till 2x rj45 hanar.
Det dyker upp en ny device med familjekod 30 i owfs, så långt allt väl.
Börjar elda, men jag får inte ut några värden alls som är någonting att ha.
"t0" är chippets interna temp, "temp" är den höga temperaturen tagen från uncashed/30.XXX/typeK/temperature, "Vis" ska vara uppmätt spänning.
Date, t0, temp, Volt, Vis
ons maj 14 18:43:55 CEST 2008 , 23.375 , 22.7893 , 4.52864 , 0.033375
ons maj 14 18:44:56 CEST 2008 , 23.375 , 22.9175 , 4.53352 , 0.035375
ons maj 14 18:45:56 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.03725
ons maj 14 18:46:56 CEST 2008 , 23.375 , 22.7893 , 4.52864 , 0.03925
ons maj 14 18:47:56 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.04125
ons maj 14 18:48:57 CEST 2008 , 23.5 , 22.9175 , 4.52864 , 0.042875
ons maj 14 18:49:57 CEST 2008 , 23.375 , 22.7893 , 4.54816 , 0.044875
Jag har bara en sensor, och den sitter begravd under en timme med isolering men kontakten kommer jag åt lätt.
Vad har jag gjort för fel? Hur kan jag felsöka?
Ännu en fråga om 1-wire, är det någon som har tips på lämplig programvara för windows x64? I mitt fall windows 2003 server x64.
drivrutiner osv är ju inga problem men sedan vill man ju kanske ha något som loggar ner värdena osv.
//Unigas
drivrutiner osv är ju inga problem men sedan vill man ju kanske ha något som loggar ner värdena osv.
//Unigas