Inhoudsopgave:

Temperatuursensor / weerstation: 9 stappen (met afbeeldingen)
Temperatuursensor / weerstation: 9 stappen (met afbeeldingen)

Video: Temperatuursensor / weerstation: 9 stappen (met afbeeldingen)

Video: Temperatuursensor / weerstation: 9 stappen (met afbeeldingen)
Video: Master GPIO with Raspberry Pi Pico & MicroPython - Part 2 2024, November
Anonim
Temperatuursensor / Weerstation
Temperatuursensor / Weerstation
Temperatuursensor / Weerstation
Temperatuursensor / Weerstation

Maak een weerstation of temperatuurmonitor met behulp van de zeer coole digitale temperatuursensor DS1820. Ik gebruik deze opstelling om een serverruimte te bewaken, en als weerstation. Dit project bestaat uit:

  • Een Dallas 1-Wire busnetwerk
  • Interface tussen RS-232 en het Dallas 1-Wire-systeem
  • Digitale temperatuursensoren aangesloten op de Dallas 1-Wire bus (DS1820/DS18s20)
  • Software-setup om temperaturen te verzamelen en in een grafiek te zetten

Bijgewerkt 18-11-2007 met automatische grafische scripts en afbeeldingen van real-life implementaties van dit systeem.

Stap 1: Je hebt nodig

Jij hebt nodig
Jij hebt nodig
Jij hebt nodig
Jij hebt nodig

Dit heb je nodig om een weerstation of temperatuurlogger te maken:

  • Enkele linux-vaardigheden
  • Basis elektronica vaardigheden, solderen etc..

Componenten

  • 1 6.2V Zenerdiode (1N5234)
  • 1 3.9V Zenerdiode (1N5228)
  • 2 Schottky-diodes (1N5818)
  • 1 1,5 k weerstand
  • 1 2-pins schroefaansluiting
  • 1 D-sub 9 vrouwelijke connector met soldeerpunten
  • 1 klein stukje perfboard.
  • Een of meer Dallas Semiconductor DS1820 of DS18s20 digitale temperatuursensoren
  • Cat5-bekabeling
  • Krimpkous

Stap 2: Bouw de RS232-interface

Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface
Bouw de RS232-interface

Ik wil de 1-Wire busmaster zo klein bouwen dat hij gewoon achter in de computer in de rs232-poort kan zitten.

Stap 1) Zoek uit hoe klein je het kunt maken. Zet alle componenten op een perfbaord. Plaats ze met het circuit in gedachten. We willen geen draden toevoegen aan de onderkant van het circuit! Zie afbeelding. Stap 2) Knip de juiste maat perfboard uit. Sleep gewoon een paar keer een scherp mes over de rij gaten waar je wilt snijden. Doe dit aan beide kanten en breek het dan in tweeën. Het breekt meestal op de breuklijn die u hebt gemaakt. 3) Soldeer de componenten op hun plaats. en sluit de soldeerpunten aan om het circuit te voltooien.

Stap 3: De RS232-interface testen

De RS232-interface testen
De RS232-interface testen
De RS232-interface testen
De RS232-interface testen

1)Download en installeer digitemp. Op Debian en Ubuntu Linux wordt dit gedaan door `sudo apt-get install digitemp` uit te voeren. 2) Sluit een DS1820 aan op uw circuit. Het middelste been gaat in de DQ-poort, de andere twee benen gaan in GND3) Sluit de schakeling aan op een rs232-poort van een computer. Ik dekken dit alleen met Linux, maar het is ook mogelijk om dit in Windows te doen. 4) Als het commando `digitemp` niet werkt, is dat omdat er meerdere versies van zijn digitemp.type digitemp, druk dan op tab om ze allemaal te zien.. digitemp_DS9097 is de juiste keuze voor deze 1-draads busmaster. Voor de eenvoud willen we dat het commando `digitemp` is, niet `digitemp_DS9097`.type `sudo ln -s /usr/bin/digitemp_DS9097 /usr/bin/digitemp`5)Als root, of gebruik sudo:Run `digitemp -s /dev/ttyS0 -i`. Dit zoekt in het 1wire-netwerk naar sensoren en creëert een configuratiebestand voor digitemp. Als je COM2 gebruikt, gebruik dan -s /dev/ttyS1. Voer `digitemp -a` uit om de temperatuur van de aangesloten tempsensor af te lezen. Zie de screenshot6) Doe dit voor alle sensoren die je gaat gebruiken, en noteer de adressen voor elk. Als je meerdere sensoren hebt, is het fijn om te weten welke welke is.

Stap 4: Maak de sensoren en het netwerk

Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk
Maak de sensoren en het netwerk

Bij het bekabelen van uw 1wire netwerk wilt u cat 5 netwerkkabels gebruiken.

Ik heb slechte ervaringen met het gebruik van andere kabels en met het combineren van verschillende soorten kabels. Bij het rijden over cat5 kan de 1-draads bus behoorlijk lange kabels hebben. In één weerstationopstelling laat ik een cat5 van 30 meter lopen vanuit een technische ruimte met een Linux-computer en tot aan het dak. Op het dak is de kabel opgesplitst in 3 5-15 meter lange kabels met aan het uiteinde een sensor. Deze opstelling werkt feilloos. Het 1-draads netwerk is behoorlijk robuust. De sensor maken: u wilt de sensor zowel waterdicht als stevig maken. 1) Knip een Cat 5-kabel op de gewenste lengte. 2) Isoleer het sensoruiteinde. Knip 3 van de 4 paren af en laat de groen/witgroene over. 3) Schuif een kleine krimpkous over de groene draad. 4) Soldeer de groene draad aan de middelste pin van de DS1820. 5) Trek de krimpkous omhoog, zodat deze al het metaal van het middelste been en het metaal van de draad die ermee verbonden is bedekt. Verwarm het vervolgens met een aansteker of heteluchtpistool om het op zijn plaats te laten krimpen. 6) Soldeer de wit/groene draad aan de twee andere pinnen. 7) Plaats een grotere krimpkous over de sensor en de kabel. Zie de foto. Verwarm het vervolgens voorzichtig met een aansteker om het op zijn plaats te laten krimpen. Je wilt het ding niet in brand steken, houd de vlam gewoon op 4-10 mm afstand van de krimpkous. 8) Plaats uw sensoren waar u ze wilt hebben, maak verbinding met de RS232-interface en steek de stekker in uw computer.

Stap 5: Software-installatie - Gegevensverzameling

Software-setup - Gegevensverzameling
Software-setup - Gegevensverzameling

Nu we onze sensoren op hun plaats hebben, willen we er wat gegevens van verzamelen. Als root op je linux-machine:1) Voer `digitemp -s /dev/ttyS0 -i -c /etc/digitemp.conf` bestand digitemp.conf met je sensoren. Bekijk de uitvoer om te zien welk nummer de sensoren krijgen.2) Controleer de temperatuur met `digitemp -aq -c /etc/digitemp.conf`3)Dump de uitvoergegevens in een bestand. Ik dump naar een bestand in apache wwwroot, op die manier heb ik overal toegang tot de temperatuur. Het commando `digitemp -aq -c /etc/digitemp.conf > /var/www/digitemp.txt` zet de uitvoer van digitemp in de bestand digitemp.txt4)Automatiseer dit proces: typ `crontab -e`, dit opent root crontab. Type `* * * * * digitemp -aq -c /etc/digitemp.conf > /tmp/digitemp; mv /tmp/digitemp /var/www/digitemp.txt` in dat bestand en sla het op. Voer `crontab -l` uit om te bevestigen dat de crontab is geïnstalleerd. De reden dat ik de uitvoer naar /tmp stuur en dan verplaats het naar /var/www, is dat digitemp een paar seconden gebruikt om zijn run te voltooien. Als u probeert toegang te krijgen tot de uitvoer terwijl digitemp actief is, krijgt u een onvolledig bestand. Dit kan andere scripts die gegevens uit dit bestand lezen in de war brengen. (Dit is niet opgenomen in de schermafbeelding, vergeten te doen) Je weerstation is nu in gebruik. Gebruik de gegevens om te doen wat je wilt, maak er een grafiek van, gebruik het om te e-mailen in geval van hoge/lage temperaturen, enz..

Stap 6: Software-instelling - grafieken

Software-instelling - Grafische weergave
Software-instelling - Grafische weergave
Software-instelling - Grafische weergave
Software-instelling - Grafische weergave

Dit is het lastige deel, hier is veel scripting voor nodig.1) Maak een plek om de scripts te plaatsen, een plek om de afbeeldingen op te slaan en een plek om de gegevens op te slaan.`mkdir /etc/tempsensor``mkdir /var/www /temperature``mkdir /var/log/digitemp_rrd`2)Installeer software: je hebt PHP en RRDtool nodig.`apt-get install rrdtool``apt-get install php` (er zijn veel php-pakketten, installeer er een met een uitvoerbare console)3) Download en installeer de scripts die verantwoordelijk zijn voor het maken van de grafieken: Download tempsensor-0.1.tar.gz naar uw linux-machine.`tar xvzf tempsensor-0.1.tar.gz``cp -v tempsensor/* /etc/ tempsensor`4) Configureer de scripts Open /etc/tempsensor/config.php en volg de opmerkingen in dit bestand. Wijzig het script om invoergegevens te lezen van "/var/www/digitemp.txt" als u het voorbeeld in de vorige stap hebt gevolgd.5)Automatiseren. Voeg een crontab-item toe op dezelfde manier als in de vorige stap. Het script moet elke 5e minuut worden uitgevoerd. De regels moeten er als volgt uitzien:`*/5 * * * * php /etc/tempsensor/logdata.php``*/5 * * * * php /etc/tempsensor/graphdata.php `6) Voer de scripts handmatig uit om te controleren of het werkt.php /etc/tempsensor/logdata.phpphp /etc/tempsensor/graphdata.php7)Ga naar https://your.ip.or.hostname/temperature of wat je ook hebt opgegeven in het configuratiebestand.

Stap 7: Implementatie 1 - Serverruimtebewaking

Implementatie 1 - Serverruimtebewaking
Implementatie 1 - Serverruimtebewaking
Implementatie 1 - Serverruimtebewaking
Implementatie 1 - Serverruimtebewaking
Implementatie 1 - Serverruimtebewaking
Implementatie 1 - Serverruimtebewaking

Mijn eerste implementatie van dit systeem was in de serverruimte van de studentenkamers waar ik werk. Hier zijn enkele foto's voor u.

Stap 8: Implementatie 2 - Weerstation

Implementatie 2 - Weerstation
Implementatie 2 - Weerstation
Implementatie 2 - Weerstation
Implementatie 2 - Weerstation
Implementatie 2 - Weerstation
Implementatie 2 - Weerstation

Toen ik de serverruimte uitrustte met temperatuursensoren, kon ik het gewoon niet laten om er ook een paar op het dak te zetten!

Het weerstation is wat lastiger dan de serverruimte. Er is veel interferentie buiten. De zon kan een sensor raken en deze in 5 minuten van -1 naar 30 c sturen. Ik loste dit op door drie sensoren te gebruiken die op punten waren geplaatst die op verschillende tijdstippen van de dag zonlicht zouden ontvangen. Aangezien warmte de enige "ruis" is in de meting, gebruik ik altijd de sensor met de laagste waarde als mijn "buitentemperatuur". Deze temperatuur wordt weer afgevlakt door de laatste minuten te middelen.

Stap 9: Implementatie 3 - Studentenslaapzaal

Implementatie 3 - Studentenslaapzaal
Implementatie 3 - Studentenslaapzaal
Implementatie 3 - Studentenslaapzaal
Implementatie 3 - Studentenslaapzaal

Een vriend van mij volgde deze instructable en rustte zijn appartement uit met temperatuursensoren. In de koelkast, badkamer, computer etc.:)

Aanbevolen: