Pemantauan Suhu Raspberry Pi Profesional dengan DS18B20
Ringkasan
Raspberry Pi adalah komputer papan tunggal (SBC) kecil yang dikembangkan oleh Yayasan Raspberry Pi di Inggris. Perangkat ini menjalankan berbagai distribusi Linux berbasis ARM dan menyediakan sejumlah pin GPIO yang memungkinkan koneksi ke berbagai komponen eksternal, seperti sensor dan aktuator. Karena Raspberry Pi tidak memiliki Konverter Analog-ke-Digital (ADC) papan atas, sensor suhu analog seperti TMP36 tidak dapat digunakan secara langsung. Sebaliknya, sensor suhu digital seperti DS18B20 adalah pilihan yang disarankan untuk pengukuran suhu akurat berbasis serial.
Komponen yang Diperlukan
- Raspberry Pi (model terbaru apa pun)
- Sensor Suhu Digital DS18B20
- Resistor 4,7 kΩ (nilai standar)
- Papan prototipe (breadboard atau Pi-Cobbler)
- Breadboard ukuran setengah (opsional untuk kabel yang lebih panjang)
- Kabel jumper (jantan-ke-jantan atau jantan-ke-betina sesuai kebutuhan)
Desain Dasar
Pengaturan Hardware
Inti pengaturan terdiri dari Raspberry Pi, DS18B20, resistor pull-up 4,7 kΩ, Pi-Cobbler (atau kabel breadboard langsung), dan kabel jumper. Semua komponen dipasang pada breadboard untuk prototipe cepat dan debugging yang mudah.
Diagram Penghubungan
DS18B20 menggunakan antarmuka serial satu kawat, yang memungkinkan beberapa sensor berbagi garis data yang sama. Untuk Raspbian Raspberry Pi (atau turunan), sensor akan muncul sebagai perangkat serial setelah modul kernel yang sesuai dimuat. Sensor harus terhubung ke pin GPIO 4 (BCM 4), satu-satunya pin yang mendukung protokol 1-Wire. Referensi visual tersedia dalam panduan pengaturan DS18B20 Adafruit.
Memilih DS18B20
DS18B20 tersedia dalam tiga varian:
- Paket DIP standar (untuk prototipe)
- Tahan air dengan kabel yang terpasang (cocok untuk pemantauan lingkungan)
- Model suhu tinggi (hingga 125 °C)
Semua varian mencakup antarmuka 1-Wire dan logika konversi suhu, memberikan bacaan digital langsung ke Raspberry Pi. Citra Raspbian modern mencakup driver yang diperlukan, memungkinkan akses langsung melalui sistem berkas.
Verifikasi Melalui Baris Perintah
Setelah penghubungan, verifikasi sensor dari terminal:
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices
ls
cd 28-xxxxxxxxxxxx # ganti dengan nomor serial sensor Anda
cat w1_slave
Keluaran akan berisi baris yang diakhiri dengan YES diikuti oleh nilai suhu dalam ribuan derajat Celsius pada baris berikutnya.
Pengperangkat Lunak – Logger Dasar
Skrip Python berikut membaca suhu setiap detik dan mencetak nilai ke keluaran standar. Simpan sebagai temp_logger_basic.py dan jalankan dengan hak akses root.
#!/usr/bin/env python3
import os
import glob
import time
# Pastikan modul 1-Wire dimuat
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)
Menjalankan skrip akan menghasilkan keluaran serupa dengan:
(18.875, 65.975)
(18.875, 65.975)
(18.875, 65.975)
…
Pastikan skrip dijalankan dengan sudo python3 temp_logger_basic.py karena berkas sensor berada di direktori sistem yang dilindungi.
Desain Lanjutan
Untuk penggunaan produksi, papan pelindung PCB yang di-solder dapat menggantikan breadboard, menyediakan solusi yang lebih tangguh dan portabel. Saya telah membuat papan pelindung kustom yang dicolok langsung ke Raspberry Pi, diletakkan dalam kotak hitam kecil. Perangkat lunak mencatat pembacaan per jam dan menyimpannya dalam database MySQL. Data kemudian divisualisasikan dengan Google Charts, menawarkan analisis tren yang jelas.
Hardware Lanjutan
Semua komponen dari pengaturan dasar dipertahankan, ditambah:
- Papan pelindung prototipe Raspberry Pi Adafruit (atau PCB kustom setara)
- Kotak dan perangkat pemasangan opsional
Untuk panduan terperinci, lihat panduan sensor suhu DS18B20 dan dokumentasi Raspberry Pi tentang dukungan 1-Wire.