1-Wire Weather Instrument

Teknisk support för produkter som finns på http://www.m.nu. Generella diskussioner rörande hårdvara hänvisas till teknikforumet.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
isocron
Wannabe
Inlägg: 16
Blev medlem: 26 apr 2008, 19:25
Ort: Kumla
Kontakt:

1-Wire Weather Instrument

Inlägg 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
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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
larky
Moderator
Inlägg: 1166
Blev medlem: 01 feb 2008, 12:21
Ort: Skellefteå
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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"?
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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?
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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?
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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
Vindstyrka
Vindriktning
Vindriktning
Användarvisningsbild
Dowser
Hemautomation - det är mer än en hobby
Inlägg: 811
Blev medlem: 10 mar 2007, 09:44
Ort: Trosa
Kontakt:

Re: 1-Wire Weather Instrument

Inlägg 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?
noak
Gillar hemautomation
Inlägg: 40
Blev medlem: 25 dec 2011, 18:02
Ort: Västmanland

Re: 1-Wire Weather Instrument

Inlägg 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;
Skriv svar