Det är jobbigt att gå ända bort till fönstret för att se vad det är för temperatur ute.
• InledningDet kan vara roligt att läsa in temperaturer i datorn från olika ställen; utomhus, i varje rum, i kylskåpet mm. Och sedan knåpa ihop någon slags statistik över klimatförändringar. Detta är möjligt med den digitala temperatursensorn DS18S20 från MAXIM integrated.
För att slippa extra strömkällor bygger man en passiv adapter till COM-porten, och kör sensorerna i parasite power-läge. De tar då sin drivspänning från dataledningen. Denna adapter är utvecklad av Dallas, och heter DS9097. De använder RJ12-kontakter och platt modularkabel som standard för att bygga upp 1-wire-nätverket, men det struntar vi i och löder ihop allt istället.
• Lödpenna och lödtenn
• Avbitare
• Skruvmejslar
• Krympslang
• Värmepistol
• Veroboard (experimentkort med kopparbanor)
• DigiTemp programvara www.digitemp.com
Artiklar från (kr) = inkl. moms Ladda hem kundvagnen |
||||
Komp. |
Benämning |
Antal |
Pris |
Artikelnr. |
D1 |
BZX55/C6V2 zenerdiod |
1 |
1,30 |
70-054-08 |
Summa |
191,28 |
(239kr) |
Schematiskt ser en DS9097 passiv adapter ut såhär inuti.
De två punkterna i den gröna fyrkanten ska kopplas till kabeln som temperatursensorerna sitter på.
Klipp bort en bit av lödkopparna 6-9 på DSUB-kontakten. Löd fast en liten bit experimentkort (5x5 hål), så att de fem banorna har kontakt med DSUB-pinnar 1-5. Pinne 1 används inte i kretsen, utan används bara som fästpunkt för kretskortet. Löd sen fast komponenterna ungefär så som jag gjort. Det går ju även att löda ihop det hela utan kretskort då det inte är så många komponenter.
Böj till benen på alla sensorer så som bilden visar, så att ben 1 och 3 sitter ihop, och ben 2 sitter för sig själv.
Koppla in dina sensorer på lämpliga ställen längs kabeln. Anslut ben 1 och 3 till GND-ledningen, och ben 2 (mitten) till DATA-ledningen. Observera att GND i det här fallet inte har något alls att göra med jord i datorn, eller någon annanstans. Det är en virtuell jord med en annan potential relativt jord.
Angående antal sensorer, så är det inga problem att dra kabeln runt hela huset och sätta minst en sensor i varje rum.
Såhär har jag fäst varje sensor längs kabeln. Isolera med krympslang.
Dags att ansluta sensorkabeln till COM-portsadaptern. GND-ledningen till pinne 2, och DATA-ledningen till pinne 4.
Har du inte laddat hem DigiTemp för DOS än, så gör det nu.
Koppla in kontakten i en av datorns COM-portar. Exempelvis COM2.
Initialisera digitemp genom att vid DOS-prompten skriva:
Digitemp läser då av de unika ID-nummer som varje sensor har, och sparar detta i en konfigurationsfil. -s2 gör så COM2 läses av. Det kommer se ut såhär på skärmen, med andra ID-nummer såklart:
För att sedan läsa av temperaturerna, skriver du
och då kommer det förhoppningsvis se ut ungefär såhär:
Om du märker att det blir helt tokiga temperaturer, kan det bero på att sensorerna behöver mer tid på sig att skicka iväg sina data. Då får man initialisera digitemp igen, med den skillnaden att man också anger read timeout-värdet. Jag var tvungen att sätta det till 600ms, istället för 500ms, som är standard.
Detta är tiden det tar att läsa av temperaturen från en enda sensor. Har man tillräckligt många sensorer, så att den sammanlagda tiden överstiger fail timeout-värdet, som är 5 sekunder som standard, får man ändra det med t.ex -f6 för att ändra det till 6 sekunder.
Alltså, initialisera digitemp för COM2, read timeout på 600ms samt fail timeout på 6 sekunder:
Läs filen readme.dos för mer information, samt skriv bara digitemp för att se möjliga kommandoväxlar.
info tillhandahållen av Biograf1001
Börja med att ladda hem källkoden till DigiTemp för Linux.
När den väl är hemma, packar du upp den genom att skriva:
Du bör nu ha en mapp som heter digitemp-3.3.2 under samma mapp där du utförde kommandot. Där i ska det nu finnas en hel hög med filer, bl.a digitemp. I sånt fall är allt ok.
Nu behöver du endast skriva följande:
där -a är för att läsa av samtliga sensorer på linan och -s definierar vilken serieport du använder. för mer information om alla växlar så kan du skriva
info tillhandahållen av Macce
En bättre mjukvara för 1-wire till Linux är OWFS.
OWFS monteras på en mapp där den visar sensorer på bussen.
T.ex. DS1820-sensorer visas som mappar vars namn börjar på 10.
DS2405-brytare visas som mappar vars namn börjar med 05.
Vad som följer efter detta är sensorns ID.
I dessa mappar finns alltid funktionerna för aktuell krets.
T.ex. för att lista alla temperatursensorer kan man skriva
För att ställa in utgången till hög på en DS2405 skriver man
Detta kan verka lite jobbigt i början, men när man väl kommit igång vill man inte byta tillbaka till Digitemp.
OWFS stöder nästan alla 1-wire-enheter.
Installationsinstruktioner m.m. finns på deras hemsida.
Det fungerar också väldigt bra i Windows, t.ex. NT, 2000 och XP.
Då plockar man hem digitemp för Windows.
Det körs via kommandotolken, så det är lätt att bygga ihop ett eget GUI i exempelvis VB, eller köra det från exempelvis PHP på Windows-servern.
Det fungerar likadant som för DOS-versionen, men läs readme-filen, för det finns vissa skillnader.
Såhär kan det då se ut i DOS efter att allt gått som planerat.
Sen får man väl hitta på något roligt med dessa temperaturer.
Jag tänkte att om jag nu måste slita ut 486an ur skåpet någon gång för att felsöka eller något sådant, så vore det ju bra att kunna koppla in sig på temperaturkabeln från annat håll med 1-wire-adaptern än i serverskåpet. Det är inte så lätt med kabeln fastlödd direkt på.
Därför köpte jag följande från Elfa:
1st 42-051-18 DC chassidon 2,1mm M8-hål
1st 42-049-54 DC-propp 2,1/5,5 mm vinkl.
Sen tog jag D-SUB-kåpan och karvade ur lite på hörnen vid de röda pilarna så chassidonets mutter gick ner i skåran. Den passar nämligen i övrigt väldigt bra där i.
Sedan skruvade jag dit själva chassidonet. Inte så hårt alls, utan bara så det inte låg löst och skramlade. Sen justerade jag muttern så chassidonet satt bra med det långa benet uppåt. Sen märkte jag på muttern och donet så jag såg hur det skulle sitta.
Chassidonet togs ur och muttern fixerades med superlim.
Sen böjde jag till benen lite så de inte tog i kretskortet någonstans, lödde dit ett par sladdstumpar, och fäste dem på D-SUB-kontakten. Det korta benet på DC-chassidonet är mittenpinnen, och där kopplade jag dataledningen.
Sen snäppte jag ihop kåpan, och se så snyggt det blev!
Sen gick jag lös på den avklippta kabeländen och monterade den vinklade proppen. Kom ihåg att dataledningen ska gå till mittenpinnen.
Sådär. Det kunde inte bli bättre. Mycket funktionellt.
Sen återstår bara att sätta en till propp på något lämpligt ställe längs kabeln. T.ex där man tänker utföra sina tänkta servicearbeten. Naturligtvis är 1-wire-nätverket draget runt hela huset, så det är ju bara att koppla in sig...