Accurate temperatuurbewaking in een serverkast met Raspberry Pi
Het probleem
Na het renoveren van mijn thuiskantoor heb ik een kast ingericht voor al mijn elektronica – servers, NAS, AV-receiver, en meer. Ik installeerde een afvoerventilator om warme lucht in het aangrenzende kantoor te blazen, maar de kast blijft rond 90 °F (32 °C) zelfs met de ventilator draaiend. Hoewel dit binnen de meeste hardwarelimieten valt, is het warmer dan ik wil. Om te bepalen of extra koeling nodig is, had ik een betrouwbare manier nodig om temperatuurveranderingen over meerdere dagen te registreren.
Een Raspberry Pi voor deze taak te gebruiken is ideaal. Ik had eerder gewerkt met de analoge TMP36GZ-sensor op een Arduino, maar de GPIO-pinnen van de Pu zijn digitaal, waardoor een analoge sensor ongeschikt is zonder extra ADC. Ik wilde een eenvoudige oplossing waarmee ik direct kon beginnen met coderen.
De DS18B20 digitale temperatuursensor lost het probleem op. Hij communiceert via een single-wire bus, wat perfect past bij de Pi's BCM GPIO4 (pin 7). De sensor kan direct vanuit de Linux-terminal worden benaderd, en meerdere DS18B20-eenheden kunnen dezelfde datalijn delen.
De opbouw
- Gebruik een kort stuk CAT5e-kabel en soldeer de drie pinnen van de DS18B20: oranje = +3,3 V, bruin = GND, groen = DATA.
- Plaats een 4,7 kΩ pull-up weerstand tussen de 3,3 V- en datalijnen.
- Verpak de blootliggende bedrading in isolatietape en krimp de bundel voor bescherming.
- Bevestig female jumper connectors aan het einde van de kabel voor snelle verbindingen met een splitter.
- Maak twee 2-male-naar-1-female Y-splitters om VDD, GND en DATA van twee sensoren te combineren in de enkele pin van de Pi.
- Sluit de splitters aan op de Pi: 3,3 V op pin 1, GND op pin 6, DATA op pin 7.
- Plaats de sensoren in de kast – één aan elke kant van de afvoerventilator – om temperatuurvariatie vast te leggen.
Hieronder is een foto van de voltooide opbouw. Let op de drie splitters netjes in de GPIO-pinnen van de Pi gestoken.
De sensor uitlezen vanaf de terminal
Zodra de DS18B20's bedraad zijn, kunt u hun output direct vanuit het bestandssysteem uitlezen. De volgende commando's laden de benodigde kernelmodules, listen beschikbare apparaten en tonen de temperatuurdata voor een gekozen sensor.
# Laad de 1-Wire drivers
sudo modprobe w1-gpio
sudo modprobe w1-therm
# Lijst aangesloten apparaten (bijv. 28-0000055f311a)
ls /sys/bus/w1/devices
# Lees de temperatuur van een specifieke sensor
cat /sys/bus/w1/devices/28-0000055f311a/w1_slave
Het w1_slave bestand retourneert twee regels. De eerste regel bevat een CRC-check; de tweede regel eindigt op t=XXXXX, waar XXXXX de temperatuur is in duizendsten van een graad Celsius. Converteer naar Fahrenheit indien gewenst.
Met deze opstelling kunt u metingen loggen naar een CSV-bestand, data naar een externe server pushen, of alerts activeren als temperaturen een drempel overschrijden. De nauwkeurigheid van de DS18B20 is ±0,5 °C, meer dan voldoende voor routine hardwaremonitoring.
Voor gedetailleerde instructies en voorbeeldcode, bezoek Raspberry Pi GPIO-documentatie en Adafruit's DS18B20-gids.
Productieproces
- Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
- Nauwkeurige Raspberry Pi Temperatuurprofielering Met Python, SQLite En LabVIEW
- Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
- Efficiënt Kamertemperaturen Monitoren Met Raspberry Pi En Nagios
- Raspberry Pi Temperatuur & Vochtigheid Netwerk Monitor – DIY Setup Gids
- Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
- Professionele temperatuurbewaking met Raspberry Pi en DS18B20
- Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Home Energy Centre: Zonnepanelen, thermische panelen en kamertemperaturen monitoren met Raspberry Pi en Moteino
- Raspberry Pi BMP085: Accurate temperatuur- en drukmetingen via I2C