Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Professionele temperatuurbewaking met Raspberry Pi en DS18B20

Overzicht

De Raspberry Pi is een compacte single-board computer (SBC) ontwikkeld door de Raspberry Pi Foundation in het VK. Het draait diverse ARM-gebaseerde Linux-distributies en beschikt over een set GPIO-pinnen die verbinding mogelijk maken met een breed scala aan externe componenten zoals sensoren en actuatoren. Omdat de Pi geen on-board Analog-to-Digital Converter (ADC) heeft, kunnen analoge temperatuursensoren zoals de TMP36 niet direct worden gebruikt. In plaats daarvan is een digitale temperatuursensor zoals de DS18B20 de aanbevolen keuze voor accurate, seriële temperatuurmeting.

Benodigde onderdelen

  • Raspberry Pi (elk recent model)
  • DS18B20 Digitale temperatuursensor
  • 4,7 kΩ weerstand (standaardwaarde)
  • Prototyping board (breadboard of Pi-Cobbler)
  • Half-size breadboard (optioneel voor uitgebreide bedrading)
  • Jumper wires (male-to-male of male-to-female naar behoefte)

Basisontwerp

Hardware-opstelling

De kern van de opstelling bestaat uit de Raspberry Pi, DS18B20, een 4,7 kΩ pull-up weerstand, een Pi-Cobbler (of direct breadboard bedrading) en jumper wires. Alle componenten worden in het breadboard geplaatst voor snelle prototyping en eenvoudig debuggen.

Bedradingsschema

De DS18B20 gebruikt een single-wire seriële interface, waardoor meerdere sensoren dezelfde datalijn kunnen delen. Voor Raspberry Pi's Raspbian (of afgeleiden) verschijnt de sensor als een serieel apparaat zodra de juiste kernelmodules zijn geladen. De sensor moet worden aangesloten op GPIO-pin 4 (BCM 4), de enige pin die het 1-Wire protocol ondersteunt. Een visuele referentie is beschikbaar in Adafruit's DS18B20 handleiding.

Keuze van de DS18B20

De DS18B20 is beschikbaar in drie varianten:

  • Standaard DIP-behuizing (voor prototyping)
  • Waterdicht met bevestigde kabel (geschikt voor omgevingsmonitoring)
  • Hoogtemperatuurmodel (tot 125 °C)

Alle varianten bevatten de 1-Wire interface en temperatuurconversielogica, waarmee digitale metingen direct naar de Pi worden gestuurd. Moderne Raspbian-images bevatten de benodigde stuurprogramma's, wat eenvoudige toegang via het bestandssysteem mogelijk maakt.

Commandoregel-verificatie

Na de bedrading kunt u de sensor controleren via de terminal:

sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxxxxxxxxxx # vervang door het serienummer van uw sensor
cat w1_slave

De output bevat een regel die eindigt op YES, gevolgd door een temperatuurwaarde in duizendsten van een graad Celsius op de volgende regel.

Software – Basis logger

Het volgende Python-script leest de temperatuur elke seconde en print de waarden naar standaarduitvoer. Sla het op als temp_logger_basic.py en voer het uit met root-rechten.

#!/usr/bin/env python3
import os
import glob
import time

# Zorg dat de 1-Wire modules zijn geladen
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

BASE_DIR = '/sys/bus/w1/devices/'
DEVICE_FOLDER = glob.glob(BASE_DIR + '28*')[0]
DEVICE_FILE = f'{DEVICE_FOLDER}/w1_slave'

def read_temp_raw():
    with open(DEVICE_FILE, 'r') as f:
        return f.readlines()

def read_temp():
    lines = read_temp_raw()
    while lines[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lines = read_temp_raw()
    equals_pos = lines[1].find('t=')
    if equals_pos != -1:
        temp_string = lines[1][equals_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f

while True:
    print(read_temp())
    time.sleep(1)

Het uitvoeren van het script levert output op zoals:

(18.875, 65.975)
(18.875, 65.975)
(18.875, 65.975) …

Zorg ervoor dat het script wordt uitgevoerd met sudo python3 temp_logger_basic.py omdat de sensorbestanden in een beveiligde systeemmap staan.

Geavanceerd ontwerp

Voor productiegebruik kan een gesoldeerde PCB-shield het breadboard vervangen, wat een robuustere en draagbare oplossing biedt. Ik heb een aangepaste shield gefabriceerd die direct in de Pi past, in een compacte zwarte behuizing. De software logt metingen elk uur en slaat ze op in een MySQL-database. De gegevens worden gevisualiseerd met Google Charts, wat duidelijke trendanalyse mogelijk maakt.

Geavanceerde hardware

Alle componenten van de basisopstelling blijven behouden, aangevuld met:

  • Adafruit Raspberry Pi prototyping shield (of equivalente custom PCB)
  • Optionele behuizingen en montagehardware

Voor een gedetailleerde handleiding, raadpleeg de DS18B20 temperatuursensor handleiding en de Raspberry Pi documentatie over 1-Wire ondersteuning.

Productieproces

  1. Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
  2. Nauwkeurige Raspberry Pi Temperatuurprofielering Met Python, SQLite En LabVIEW
  3. Raspberry Pi Temperatuur & Vochtigheid Netwerk Monitor – DIY Setup Gids
  4. Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
  5. Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
  6. Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
  7. Naadloze temperatuur- en vochtigheidsbewaking op Raspberry Pi met EzTemp
  8. Accurate temperatuurbewaking in een serverkast met Raspberry Pi
  9. DIY thuisbrouw temperatuurcontrole: Monitoren & regelen met Arduino
  10. Raspberry Pi BMP085: Accurate temperatuur- en drukmetingen via I2C
  11. Externe weerbewaking met Raspberry Pi 3 en PubNub