Indholdsfortegnelse:

Temperatursensor / vejrstation: 9 trin (med billeder)
Temperatursensor / vejrstation: 9 trin (med billeder)

Video: Temperatursensor / vejrstation: 9 trin (med billeder)

Video: Temperatursensor / vejrstation: 9 trin (med billeder)
Video: Garmin Instinct 2X Solar detaljeret gennemgang 2024, November
Anonim
Temperatursensor / vejrstation
Temperatursensor / vejrstation
Temperatursensor / vejrstation
Temperatursensor / vejrstation

Opret en vejrstation eller temperaturmonitor ved hjælp af den meget fede digitale temperatursensor DS1820. Jeg bruger denne opsætning til at overvåge et serverrum og som en vejrstation. Dette projekt består af:

  • Et Dallas 1-Wire busnetværk
  • Interface mellem RS-232 og Dallas 1-Wire-systemet
  • Digitale temperatursensorer forbundet til Dallas 1-Wire-bussen (DS1820/DS18s20)
  • Software opsætning til at indsamle og tegne temperaturer

Opdateret 2007-11-18 til at inkludere automatiske grafscripts og billeder af virkelige implementeringer af dette system.

Trin 1: Du har brug for

Du mangler
Du mangler
Du mangler
Du mangler

Dette er hvad du har brug for for at lave en vejrstation eller temperaturlogger:

  • Nogle linux -færdigheder
  • Grundlæggende elektronikfærdigheder, lodning osv.

Komponenter

  • 1 6,2V zener -diode (1N5234)
  • 1 3,9V zener -diode (1N5228)
  • 2 Schottky -dioder (1N5818)
  • 1 1,5 k modstand
  • 1 2 -polet skrueterminal
  • 1 D-sub 9 hunstik med loddepunkter
  • 1 lille stykke perfboard.
  • En eller flere Dallas Semiconductor DS1820 eller DS18s20 digital temperatursensor
  • Cat5 kabelføring
  • Krymp rør

Trin 2: Byg RS232 -grænsefladen

Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen
Byg RS232 -grænsefladen

Jeg kan godt lide at bygge 1-Wire busmaster så lille, at den bare kan sidde bag på computeren i rs232-porten.

Trin 1) Find ud af, hvor lille du kan gøre det. Sæt alle komponenterne på en perfbaord. Placer dem med kredsløbet i tankerne. Vi ønsker ikke at tilføje ledninger til bunden af kredsløbet! Se billedet. Trin 2) Klip den rigtige størrelse perfboard ud. Bare træk en skarp kniv et par gange hen over rækken af huller, hvor du vil skære. Gør dette på begge sider, og del det bare i to. Det går normalt i stykker ved den fejllinje, du har oprettet. 3) Loddet komponenterne på plads. og tilslut loddepunkterne for at fuldføre kredsløbet.

Trin 3: Test af RS232 -grænsefladen

Test af RS232 -grænsefladen
Test af RS232 -grænsefladen
Test af RS232 -grænsefladen
Test af RS232 -grænsefladen

1) Download og installer digitemp. På Debian og Ubuntu Linux gøres dette ved at køre `sudo apt-get install digitemp`. 2) Tilslut en DS1820 til dit kredsløb. Mellembenet går i DQ-porten, de to andre ben går i GND3) Tilslut kredsløbet til en computere rs232 port. Jeg dækker kun at gøre dette med Linux, men det er også muligt at gøre dette i windows..4) Hvis kommandoen 'digitemp' ikke virker, er det fordi der er flere versioner af digitemp.type digitemp, og tryk derefter på fanen for at se dem alle. digitemp_DS9097 er den rigtige for denne 1wire busmaster. Bare for enkelthedens skyld vil vi have kommandoen til at være `digitemp`, ikke` digitemp_DS9097`. type `sudo ln -s/usr/bin/digitemp_DS9097/usr/bin/digitemp`5) Som root, eller brug sudo: Kør `digitemp -s/dev/ttyS0 -i`. Dette søger i 1wire -netværket efter sensorer og opretter en konfigurationsfil til digitemp. Hvis du bruger COM2, skal du bruge -s /dev/ttyS1. Run `digitemp -a` for at aflæse temperaturen på den tilsluttede temperatursensor. Se skærmbilledet6) Gør dette for alle de sensorer, du skal bruge, og skriv adresserne ned Når du har flere sensorer, er det rart at vide, hvilken der er hvilken.

Trin 4: Lav sensorerne og netværket

Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket
Lav sensorerne og netværket

Når du tilslutter dit 1wire -netværk, vil du bruge kat 5 netværkskabler.

Jeg har haft nogle dårlige oplevelser med at bruge andre kabler og med at kombinere forskellige typer kabel. Når du kører over cat5, kan 1wire -bussen have ret lange kabler. I en vejrstationopsætning kører jeg en 30 meter cat5 fra et teknisk rum med en Linux -computer og op til taget. På taget er kablet delt op i 3 5-15 meter lange kabler med en sensor i enden af hver enkelt. Denne opsætning fungerer upåklageligt. 1-ledernetværket er ret robust. Gør sensoren: Du vil gøre sensoren både vandtæt og stiv. 1) Klip et Cat 5 -kabel til den ønskede længde. 2) Afisolér sensorenden. Skær 3 af de 4 par af, og lad det grønne/hvidgrønne blive. 3) Skub et lille krympeslange hen over den grønne ledning. 4) Lod den grønne ledning til den midterste pin på DS1820 5) Træk krympeslangen op, så den dækker alt metal af midterbenet og metallet af ledningen forbundet til det. Opvarm den derefter med en lighter eller varmepistol for at krympe den på plads 6) Lod den hvide/grønne ledning til de to andre ben. 7) Sæt et større krympeslange over sensoren og kablet. Se billedet. Opvarm det derefter forsigtigt med en lighter for at krympe på plads. Du vil ikke tænde tingen, bare hold flammen 4-10 mm væk fra krympeslangen. 8) Sæt dine sensorer, hvor du vil have dem, tilslut til rs232 interface og tilslut din computer.

Trin 5: Softwareopsætning - dataindsamling

Softwareopsætning - dataindsamling
Softwareopsætning - dataindsamling

Nu hvor vi har vores sensorer på plads, vil vi indsamle nogle data fra dem. Som root på din linux -maskine: 1) Kør `digitemp -s /dev /ttyS0 -i -c /etc/digitemp.conf`Dette opretter konfigurationen fil digitemp.conf med yoru -sensorer. Se output for at se, hvilket nummer sensorerne får. 2) Kontroller temperaturen med `digitemp -aq -c /etc/digitemp.conf`3)Dump outputdataene i en fil. Jeg dumper til en fil i apaches wwwroot, på den måde kan jeg få adgang til temperaturen hvor som helst. Kommandoen 'digitemp -aq -c /etc/digitemp.conf>/var/www/digitemp.txt' sætter output fra digitemp i fil digitemp.txt4) Automatiser denne proces: skriv `crontab -e`, dette åbner rødder crontab. Type` * * * * * digitemp -aq -c /etc/digitemp.conf> /tmp /digitemp; mv /tmp /digitemp /var /www /digitemp.txt` i den fil, og gem den. Kør `crontab -l` for at bekræfte, at crontab er installeret. Grunden til, at jeg leder output til /tmp og derefter flytter det til /var /www, er, at digitemp bruger et par sekunder til at konkurrere sit løb. Hvis du prøver at få adgang til output mens digitemp kører, får du en ufuldstændig fil. Dette kan ødelægge andre scripts, der læser data fra denne fil. (Dette er ikke inkluderet i skærmbilledet, glemte at gøre det) Din vejrstation er nu i gang. Brug dataene til at gøre hvad du vil, graf det, brug det til at e -maile i tilfælde af høj/lav temp osv.

Trin 6: Softwareopsætning - graftegning

Softwareopsætning - graftegning
Softwareopsætning - graftegning
Softwareopsætning - graftegning
Softwareopsætning - graftegning

Dette er den vanskelige del, mange scripting er nødvendige her. 1) Lav et sted at placere scripts, et sted at gemme billederne og et sted at gemme dataene. `Mkdir /etc /tempsensor``mkdir /var /www /temperatur''mkdir/var/log/digitemp_rrd'2) Installer software: Du skal bruge PHP og RRDtool. 'adapt-get install rrdtool''apt-get install php` (der er mange php-pakker, installer en med en konsol eksekverbar) 3) Download og installer de scripts, der er ansvarlige for at lave graferne: Download tempsensor-0.1.tar.gz til din linux-maskine.`tar xvzf tempsensor-0.1.tar.gz``cp -v tempsensor/*/etc/ tempsensor`4) Konfigurer scripts Åbn /etc/tempsensor/config.php og følg kommentarerne i denne fil. Skift scriptet for at læse inputdata fra "/var/www/digitemp.txt", hvis du fulgte eksemplet i det foregående trin.5) Automatiser. Tilføj en crontab -post på samme måde som i det foregående trin. Scriptet skal køre hvert 5. minut. Linjerne skal se sådan ud: `` */5 * * * * php /etc/tempsensor/logdata.php``*/5 * * * * php /etc/tempsensor/graphdata.php `6) Kør scripts manuelt for at kontrollere, om det virker. Php /etc/tempsensor/logdata.phpphp /etc/tempsensor/graphdata.php7)Besøg https://your.ip.or.hostname/temperature eller hvad du angiver i konfigurationsfilen.

Trin 7: Implementering 1 - Monitorering af serverrum

Implementering 1 - Overvågning af serverrum
Implementering 1 - Overvågning af serverrum
Implementering 1 - Overvågning af serverrum
Implementering 1 - Overvågning af serverrum
Implementering 1 - Overvågning af serverrum
Implementering 1 - Overvågning af serverrum

Min første implementering af dette system var i serverrummet på de studerendes sovesale, hvor jeg arbejder. Her er nogle billeder til dig.

Trin 8: Implementering 2 - Vejrstation

Implementering 2 - Vejrstation
Implementering 2 - Vejrstation
Implementering 2 - Vejrstation
Implementering 2 - Vejrstation
Implementering 2 - Vejrstation
Implementering 2 - Vejrstation

Da jeg udstyrede serverrummet med temperatursensorer, kunne jeg bare ikke lade være med at lægge nogle på taget!

Vejrstationen er lidt vanskeligere end serverrummet. Der er meget interferens udenfor. Solen kan ramme en sensor og sende den fra -1 til 30 c på 5 minutter. Jeg løste dette ved at bruge tre sensorer placeret på punkter, der ville modtage sollys på forskellige tidspunkter i løbet af dagen. Da varme er den eneste "støj" i målingen, bruger jeg bare sensoren med den laveste aflæsning til enhver tid som min "udetemperatur". Denne temperatur udjævnes igen ved et gennemsnit af de sidste par minutter.

Trin 9: Implementering 3 - Student Dorm Room

Implementering 3 - Student Dorm Room
Implementering 3 - Student Dorm Room
Implementering 3 - Student Dorm Room
Implementering 3 - Student Dorm Room

En af mine venner fulgte dette instruktive og udstyrede sin lejlighed med temperatursensorer. I køleskab, badeværelse, computer osv.:)

Anbefalede: