Sida 1 av 1
1-Wire Weather Instrument
Postat: 11 jun 2008, 07:34
av isocron
Hej
Jag har skaffat mig en "1-Wire Weather Instrument Kit V3.0" denna kopplar jag till OpenWRT
Enheterna dyker upp som dom ska i systemet. Men hur läser man av dom? Den som visar temperatur fattar jag, den är logisk. Vindhastighet och vindriktning är lite svårare.
1D.28DD00000000 innehåller dessa:
Kod: Markera allt
address crc8 memory r_address
counters.A family mincount r_id
counters.ALL id [pages] r_locator
counters.B locator present type
20.F02C01000000 innehåller dessa:
Kod: Markera allt
PIO.A address locator r_address volt.A volt2.A
PIO.ALL [alarm] memory r_id volt.ALL volt2.ALL
PIO.B crc8 [pages] r_locator volt.B volt2.B
PIO.C family power [set_alarm] volt.C volt2.C
PIO.D id present type volt.D volt2.D
någon av volt-filerna skulle jag ha gissat på att det är vindhastighet men varför så många?
counter har jag ingen aning om vad den skulle ha för användning.
Har läst på sidorna som det länkas till om väderstationen men inte hittat någon information om detta. Måste ha missat något då det inte finns något om det här på forumet heller.
//Morgan
Edit: hur man räknar vindhastigheten hittade jag lite i denna tråd:
http://www.temperatur.nu/forum/viewtopi ... ment#p1698
men inget om vind riktning
Re: 1-Wire Weather Instrument
Postat: 29 nov 2008, 14:11
av Dowser
Fortfarande ingen som klurat ut vindriktningen?
volt.ALL innehåller följande vid okänd vindriktning:
4.69859, 4.71781, 2.42144, 4.7289
Re: 1-Wire Weather Instrument
Postat: 29 nov 2008, 23:36
av larky
Här följer en rad med gissningar...
Familjekod 20 är en DS2450, med 4 spänningsmätningar.
Vindinstrumentet verkar kunna ge "hög", "mellan" eller "låg" spänning, (5, 2.5, 0volt) för att på så sätt få fram riktningen.
Se
http://sheepdogsoftware.co.uk/sc3wmw.htm
hög, hög, mellan, hög (2212 enl.
http://sheepdogsoftware.co.uk/sc3wmw.htm) betyder alltså "sydväst"?
Re: 1-Wire Weather Instrument
Postat: 01 dec 2008, 19:53
av Dowser
Tackar!
En utomordentlig länk med gott om matnyttig information.
Ytterligare en trevare kanske kan vara värd att försöka med:
Nån som har några färdiga program/script för 1-wwi som funkar med FUSE?
Re: 1-Wire Weather Instrument
Postat: 01 dec 2008, 23:02
av elf98
Jag har i flera år tänkt hacka ihop ett sådant script, men tiden/motivationen har inte räckt... Med gemensama krafter kanske via kan fixa mjukvaran?
Re: 1-Wire Weather Instrument
Postat: 24 jan 2009, 10:31
av Dowser
Okej, jag har pulat lite nu med hjälp av det som finns tillgängligt på nätet.
Vindhastigheten tar jag i mitt "vanliga" script för övrig mätning med hjälp av följande logik:
Kod: Markera allt
vind=`cat /var/1-wire/mnt/uncached/1D.987101000000/counters.A|tr -d " "`
vind_raw=/var/http/reimer/tmp/onewire/vind_raw.txt
vind_ms=/var/http/reimer/tmp/onewire/vind_ms.txt
#Vindstyrka
vind_last=`cat $vind_raw`
echo $vind > $vind_raw
echo scale=2\; \( $vind - $vind_last \) / 120 \* 0.2453 | bc > $vind_ms
vind_mps=`cat $vind_ms`
Tyvärr får jag aldeles för låga värden med det, som nu när vägverkets stationer i området ger ett snitt på ungefär 5m/s och variationen är mellan 2 och 9m/s får jag ett max på 1.2m/s
Då är altså min station placerad strax ovanför taknocken och vinden sliter rätt bra i huset.
Vindriktningen är däremot lite enklare, om än betydligt omständigare, så det blev ett eget script:
Kod: Markera allt
#/bin/bash
vindvoltA=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.A`
vindvoltB=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.B`
vindvoltC=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.C`
vindvoltD=`cat /var/1-wire/mnt/uncached/20.CDFE00000000/volt.D`
low="2"
high="4.5"
if [ $(echo "$vindvoltA < $low"|bc) -eq 1 ]
then
vindriktningA="0"
fi
if [ $(echo "$vindvoltA > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltA < $high"|bc) -eq 1 ]
then
vindriktningA="1"
fi
if [ $(echo "$vindvoltA > $high"|bc) -eq 1 ]
then
vindriktningA="2"
fi
if [ $(echo "$vindvoltB < $low"|bc) -eq 1 ]
then
vindriktningB="0"
fi
if [ $(echo "$vindvoltB > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltB < $high"|bc) -eq 1 ]
then
vindriktningB="1"
fi
if [ $(echo "$vindvoltB > $high"|bc) -eq 1 ]
then
vindriktningB="2"
fi
if [ $(echo "$vindvoltC < $low"|bc) -eq 1 ]
then
vindriktningC="0"
fi
if [ $(echo "$vindvoltC > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltC < $high"|bc) -eq 1 ]
then
vindriktningC="1"
fi
if [ $(echo "$vindvoltC > $high"|bc) -eq 1 ]
then
vindriktningC="2"
fi
if [ $(echo "$vindvoltD < $low"|bc) -eq 1 ]
then
vindriktningD="0"
fi
if [ $(echo "$vindvoltD > $low"|bc) -eq 1 ] && [ $(echo "$vindvoltD < $high"|bc) -eq 1 ]
then
vindriktningD="1"
fi
if [ $(echo "$vindvoltD > $high"|bc) -eq 1 ]
then
vindriktningD="2"
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=0
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=1
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=2
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 0 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=3
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=4
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 0 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=5
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=6
fi
if [ $vindriktningA -eq 0 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=7
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=8
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 1 ]
then
vindriktning=9
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=10
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 1 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=11
fi
if [ $vindriktningA -eq 2 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=12
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 1 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=13
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 2 ]
then
vindriktning=14
fi
if [ $vindriktningA -eq 1 ] && [ $vindriktningB -eq 2 ] && [ $vindriktningC -eq 2 ] && [ $vindriktningD -eq 0 ]
then
vindriktning=15
fi
echo $vindriktning >/var/http/reimer/tmp/onewire/vindriktning.txt
#Graphs
time=`date +%s`
rrdvindriktning=`echo "$time:$vindriktning"`
rrdtool update /var/rrd/vind-riktning.rrd $rrdvindriktning
Den ger altså ut ett värde på 0-15 för vindriktningar från norr till nord, nord-väst. Den verkar vara helt rimlig.
(Även om grafen behöver masseras lite för att ge ett snyggt medel-värde)
De två graferna finns här:
http://reimer.nu/tmp/onewire/24-vind.png och
http://reimer.nu/tmp/onewire/24-vindriktning.png
Jag bifogar dem även, eftersom jag tydligen har något strul med min lina fortfarande. Men vindriktningen har inte hunnit få speciellt mycket data i sig ännu.

- Vindstyrka

- Vindriktning
Re: 1-Wire Weather Instrument
Postat: 29 jan 2009, 11:36
av Dowser
Finns det nån här som inte använder sig av orginal-windows programmet för att läsa av sin vindmätare?
Re: 1-Wire Weather Instrument
Postat: 04 jan 2012, 01:37
av noak
Dowser skrev:
Kod: Markera allt
vind=`cat /var/1-wire/mnt/uncached/1D.987101000000/counters.A|tr -d " "`
vind_raw=/var/http/reimer/tmp/onewire/vind_raw.txt
vind_ms=/var/http/reimer/tmp/onewire/vind_ms.txt
#Vindstyrka
vind_last=`cat $vind_raw`
echo $vind > $vind_raw
echo scale=2\; \( $vind - $vind_last \) / 120 \* 0.2453 | bc > $vind_ms
vind_mps=`cat $vind_ms`
Tyvärr får jag aldeles för låga värden med det, som nu när vägverkets stationer i området ger ett snitt på ungefär 5m/s och variationen är mellan 2 och 9m/s får jag ett max på 1.2m/s
Då är altså min station placerad strax ovanför taknocken och vinden sliter rätt bra i huset.
Hej, jag plockade fram min vindmätare som legat i garaget i många år och funderar på att ansluta den mot owfs. Har tidigare använt den mot weather-display.
Funderade på uträkningen med tanke på att du säger att den verkar för låg.
Kan det vara så att uträkningen för tidsskillnaden mellan första och andra mätningen saknas?
Referes från aag.
v := ((((NewCnt - OldCnt)*1000)/(NewTime - OldTime))/2)*SysSpeed;