Innehållsförteckning:

Temperatursensor / väderstation: 9 steg (med bilder)
Temperatursensor / väderstation: 9 steg (med bilder)

Video: Temperatursensor / väderstation: 9 steg (med bilder)

Video: Temperatursensor / väderstation: 9 steg (med bilder)
Video: LDmicro 11: Serial LCD Temperature Controller (Microcontroller PLC Ladder Programming with LDmicro) 2024, November
Anonim
Temperaturgivare / Väderstation
Temperaturgivare / Väderstation
Temperaturgivare / Väderstation
Temperaturgivare / Väderstation

Skapa en väderstation eller temperaturmätare med den mycket coola digitala temperatursensorn DS1820. Jag använder den här inställningen för att övervaka ett serverrum och som en väderstation. Detta projekt består av:

  • Ett Dallas 1-Wire bussnät
  • Gränssnitt mellan RS-232 och Dallas 1-Wire-systemet
  • Digitala temperatursensorer anslutna till Dallas 1-Wire-bussen (DS1820/DS18s20)
  • Programvaruinställning för att samla och rita temperaturer

Uppdaterade 2007-11-18 för att inkludera automatiska grafskript och bilder av verkliga implementeringar av detta system.

Steg 1: Du behöver

Du behöver
Du behöver
Du behöver
Du behöver

Detta är vad du behöver för att göra en väderstation eller temperaturloggare:

  • Några Linux -färdigheter
  • Grundläggande elektronikkunskaper, lödning etc.

Komponenter

  • 1 6,2V Zenerdiod (1N5234)
  • 1 3,9V Zenerdiod (1N5228)
  • 2 Schottky -dioder (1N5818)
  • 1 1,5 k motstånd
  • 1 2 -stifts skruvterminal
  • 1 honkontakt D-sub 9 med lödpunkter
  • 1 liten bit perfboard.
  • En eller flera Dallas Semiconductor DS1820 eller DS18s20 digital temperatursensor
  • Cat5 -kablage
  • Krympslang

Steg 2: Bygg RS232 -gränssnittet

Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet
Bygg RS232 -gränssnittet

Jag gillar att bygga 1-Wire busmaster så liten att den bara kan sitta på baksidan av datorn i rs232-porten.

Steg 1) Ta reda på hur liten du kan göra det. Lägg alla komponenter på en perfbaord. Placera dem med kretsen i åtanke. Vi vill inte lägga till några ledningar till kretsens botten! Se bilden. Steg 2) Klipp ut rätt storlek perfboard. Dra bara en vass kniv några gånger över hålraden där du vill skära. Gör detta på båda sidor, bryt det sedan i två. Det går oftast sönder vid fellinjen du skapade. 3) Löd komponenterna på plats. och anslut lödpunkterna för att slutföra kretsen.

Steg 3: Testa RS232 -gränssnittet

Testar RS232 -gränssnittet
Testar RS232 -gränssnittet
Testar RS232 -gränssnittet
Testar RS232 -gränssnittet

1) Ladda ner och installera digitemp. På Debian och Ubuntu Linux görs detta genom att köra `sudo apt-get install digitemp`. 2) Anslut en DS1820 till din krets. Mittbenet går i DQ-porten, de andra två benen går i GND3) Anslut kretsen till en dator rs232 -port. Jag täcker bara att göra detta med Linux, men det är också möjligt att göra detta i windows..4) Om kommandot 'digitemp' inte fungerar beror det på att det finns flera versioner av digitemp.type digitemp, tryck sedan på fliken för att se dem alla. digitemp_DS9097 är den rätta för denna 1wire busmaster. Bara för enkelhetens skull vill vi att kommandot ska vara `digitemp`, inte` digitemp_DS9097`. typ `sudo ln -s/usr/bin/digitemp_DS9097/usr/bin/digitemp`5) Som root eller med sudo: Kör `digitemp -s/dev/ttyS0 -i`. Detta söker efter sensorer i 1wire -nätverket och skapar en konfigurationsfil för digitemp. Om du använder COM2, använd -s /dev/ttyS1. Run `digitemp -a` för att läsa temperaturen på den anslutna tempsensorn. Se skärmdumpen6) Gör detta för alla sensorer du ska använda och skriv ner adresserna När du har flera sensorer är det trevligt att veta vilken som är vilken.

Steg 4: Gör sensorerna och nätverket

Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket
Gör sensorerna och nätverket

När du kopplar upp ditt 1wire -nätverk vill du använda cat 5 -nätverkskablar.

Jag har haft några dåliga erfarenheter av att använda andra kablar och att kombinera olika typer av kablar. När du kör över cat5 kan 1wire -bussen ha ganska långa kablar. I en väderstation -installation kör jag en 30 meter cat5 från ett tekniskt rum med en Linux -dator och upp till taket. På taket delas kabeln upp i 3 5-15 meter långa kablar med en sensor i slutet av var och en. Denna inställning fungerar felfritt. 1-trådsnätet är ganska robust. Gör sensorn: Du vill göra sensorn både vattentät och styv. 1) Klipp en Cat 5 -kabel till önskad längd. 2) Avisolera sensoränden. Klipp av 3 av de 4 paren och lämna det gröna/vitgröna. 3) Skjut ett litet krymprör över den gröna tråden. 4) Löd den gröna tråden till mittstiftet på DS1820 5) Dra upp krympröret så att det täcker all metall på mittbenet och metallen i tråden som är ansluten till den. Värm den sedan med en tändare eller värmepistol för att krympa den på plats 6) Löd den vita/gröna tråden till de två andra stiften. 7) Sätt ett större krympslang över sensorn och kabeln. Se bilden. Värm den sedan försiktigt med en tändare för att krympa på plats. Du vill inte elda upp saken, håll bara lågan 4-10 mm från krympröret. 8) Sätt dina sensorer var du än vill ha dem, anslut till rs232 -gränssnittet och anslut till din dator.

Steg 5: Programinstallation - datainsamling

Programvaruinstallation - datainsamling
Programvaruinstallation - datainsamling

Nu när vi har våra sensorer på plats vill vi samla in lite data från dem. Som rot på din Linux -maskin: 1) Kör `digitemp -s /dev /ttyS0 -i -c /etc/digitemp.conf`Detta skapar konfigurationen fil digitemp.conf med yoru -sensorer. Titta på utmatningen för att se vilket nummer sensorerna får. 2) Kontrollera temperaturen med `digitemp -aq -c /etc/digitemp.conf`3)Dumpa utdata i en fil. Jag dumpar till en fil i apaches wwwroot, på det sättet kan jag komma åt temperaturen var som helst. Kommandot 'digitemp -aq -c /etc/digitemp.conf>/var/www/digitemp.txt' sätter ut utmatningen av digitemp i fil digitemp.txt4) Automatisera denna process: skriv `crontab -e`, detta öppnar root -crontab. Typ` * * * * * digitemp -aq -c /etc/digitemp.conf> /tmp /digitemp; mv /tmp /digitemp /var /www /digitemp.txt 'i den filen och spara den. Kör' crontab -l 'för att bekräfta att crontab har installerats. Anledningen till att jag leder utmatningen till /tmp och sedan flyttar det till /var /www, är att digitemp använder några sekunder för att tävla sin körning. Om du försöker komma åt utdata medan digitemp körs får du en ofullständig fil. Detta kan förstöra andra skript som läser data från den här filen. (Detta ingår inte i skärmdumpen, glömde att göra det) Din väderstation är nu igång. Använd data för att göra vad du vill, grafa den, använd den för att skicka e -post vid hög/låg temperatur, etc.

Steg 6: Programvaruinställningar - grafer

Programvaruinställningar - grafer
Programvaruinställningar - grafer
Programvaruinställningar - grafer
Programvaruinställningar - grafer

Detta är den knepiga delen, många skript behövs här. 1) Gör en plats för att lägga skripten, en plats för att lagra bilderna och en plats för att lagra data.`mkdir /etc /tempsensor''mkdir /var /www /temperatur''mkdir/var/log/digitemp_rrd'2) Installera programvara: Du behöver PHP och RRDtool. 'adapt-get install rrdtool''apt-get install php` (det finns många php-paket, installera ett med en konsol körbar) 3) Ladda ner och installera skripten som är ansvariga för att göra graferna: Ladda ner tempsensor-0.1.tar.gz till din Linux-maskin.`tar xvzf tempsensor-0.1.tar.gz``cp -v tempsensor/*/etc/ tempsensor`4) Konfigurera skriptet Öppna /etc/tempsensor/config.php och följ kommentarerna i den här filen. Ändra skriptet för att läsa indata från "/var/www/digitemp.txt" om du följde exemplet i föregående steg.5) Automatisera. Lägg till en crontab -post på samma sätt som i föregående steg. Skriptet ska köras var 5: e minut. Raderna ska se ut så här: ' */5 * * * * php /etc/tempsensor/logdata.php''*/5 * * * * php /etc/tempsensor/graphdata.php `6) Kör skripten manuellt för att kontrollera om det fungerar. Php /etc/tempsensor/logdata.phpphp /etc/tempsensor/graphdata.php7)Besök https://your.ip.or.hostname/temperature eller vad du angav i konfigurationsfilen.

Steg 7: Implementering 1 - Övervakning av serverrum

Implementering 1 - Övervakning av serverrum
Implementering 1 - Övervakning av serverrum
Implementering 1 - Övervakning av serverrum
Implementering 1 - Övervakning av serverrum
Implementering 1 - Övervakning av serverrum
Implementering 1 - Övervakning av serverrum

Min första implementering av detta system var i serverrummet på studenthemmen där jag arbetar. Här är några bilder för dig.

Steg 8: Implementering 2 - Väderstation

Implementering 2 - Väderstation
Implementering 2 - Väderstation
Implementering 2 - Väderstation
Implementering 2 - Väderstation
Implementering 2 - Väderstation
Implementering 2 - Väderstation

När jag utrustade serverrummet med temperatursensorer kunde jag bara inte låta bli att lägga några på taket!

Väderstationen är lite knepigare än serverrummet. Det är mycket störningar utanför. Solen kan träffa en sensor och skicka den från -1 till 30 c på 5 minuter. Jag löste detta genom att använda tre sensorer placerade vid punkter som skulle ta emot solljus vid olika tidpunkter under dagen. Eftersom värme är det enda "bruset" i mätningen använder jag bara sensorn med den lägsta avläsningen när som helst som min "utomhustemperatur". Denna temperatur utjämnas igen genom att medelvärdet av de senaste minuterna.

Steg 9: Implementering 3 - Studentrum

Implementering 3 - Studentrum
Implementering 3 - Studentrum
Implementering 3 - Studentrum
Implementering 3 - Studentrum

En vän till mig följde detta instruerbara och utrustade sin lägenhet med temperatursensorer. I kylskåp, badrum, dator etc.:)

Rekommenderad: