Raspberry Pi Cảm Biến Nhiệt Độ

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi để đọc nhiệt độ từ cảm biến nhiệt độ DS18B20 1-wire chống thấm nước. Cảm biến này có giá thành hợp lý, dễ sử dụng và có thiết kế bắt mắt.

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×DS18B20 Temperature Sensor (CÓ Adapter)
1×DS18B20 Temperature Sensor (KHÔNG Adapter)
1×Điện trở 4.7 kΩ
1×breadboard
1×Dây Jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Nhiệt Độ One Wire - DS18B20

Sơ Đồ Chân Cảm Biến Nhiệt Độ

Cảm biến nhiệt độ DS18B20 có ba chân:

  • Chân GND: cần được kết nối với GND (0V)
  • Chân VCC: cần được kết nối với VCC (5V hoặc 3.3V)
  • Chân DATA: đây là bus dữ liệu 1-wire và cần được kết nối với một chân digital trên Raspberry Pi.

Cảm biến thường có hai dạng: gói TO-92 (trông giống như transistor) và đầu dò chống thấm nước. Trong hướng dẫn này, chúng ta sẽ sử dụng dạng đầu dò chống thấm nước.

ds18b20 cảm biến nhiệt độ sơ đồ chân

Việc kết nối cảm biến nhiệt độ DS18B20 với Raspberry Pi yêu cầu điện trở kéo lên, điều này có thể hơi phức tạp. May mắn thay, một số nhà sản xuất đã đơn giản hóa quá trình này bằng cách cung cấp adapter đi kèm có tích hợp điện trở kéo lên và khối đầu nối ốc vít.

Sơ Đồ Đấu Nối

  • Sơ đồ đấu nối sử dụng breadboard.
Raspberry Pi cảm biến nhiệt độ sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ đấu nối sử dụng adapter (khuyến khích).
Raspberry Pi ds18b20 sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Chúng tôi khuyên bạn nên mua cảm biến DS18B20 cùng với adapter đi kèm để có thể thiết lập một cách liền mạch. Adapter này có tích hợp điện trở, loại bỏ nhu cầu sử dụng thêm điện trở trong quá trình đấu nối. Chúng tôi cũng đã thử nghiệm và nó hoạt động tốt.

Code Raspberry Pi

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc hệ điều hành tương thích Raspberry Pi khác trên Pi của mình.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng nội bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH sử dụng SSH client tích hợp trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Trước khi sử dụng cảm biến nhiệt độ DS18B20 với Raspberry Pi, chúng ta cần kích hoạt giao tiếp 1-Wire trên Raspberry Pi. Xem Cách kích hoạt giao tiếp 1-Wire trên Raspberry Pi
  • Cài đặt thư viện cho cảm biến nhiệt độ DS18B20 bằng cách chạy lệnh sau:
pip install w1thermsensor
  • Tạo file script Python DS18B20.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-temperature-sensor from w1thermsensor import W1ThermSensor import time # Find the connected DS18B20 sensor def find_ds18b20_sensor(): for sensor in W1ThermSensor.get_available_sensors(): if sensor.type == W1ThermSensor.THERM_SENSOR_DS18B20: return sensor return None # Read temperature from the sensor def read_temperature(sensor): temperature_celsius = sensor.get_temperature() temperature_fahrenheit = sensor.get_temperature(W1ThermSensor.DEGREES_F) return temperature_celsius, temperature_fahrenheit # Find DS18B20 sensor ds18b20_sensor = find_ds18b20_sensor() if ds18b20_sensor is not None: print(f"DS18B20 Sensor found: {ds18b20_sensor.id}") try: while True: # Read temperature temperature_c, temperature_f = read_temperature(ds18b20_sensor) print(f"Temperature: {temperature_c:.2f}°C | {temperature_f:.2f}°F") # Wait for a moment before reading again time.sleep(2) except KeyboardInterrupt: print("Program terminated by user.") else: print("DS18B20 Sensor not found.")
  • Lưu file và chạy script Python bằng cách thực thi lệnh sau trong Terminal:
python3 sensors.py
  • Đặt cảm biến vào nước nóng và nước lạnh, hoặc cầm trong tay.
  • Kiểm tra kết quả trên Terminal.
PuTTY - Raspberry Pi
Temperature: 26.31°C | 79.36°F Temperature: 26.44°C | 79.59°F Temperature: 26.50°C | 79.70°F Temperature: 26.56°C | 79.81°F Temperature: 27.06°C | 80.71°F Temperature: 27.75°C | 81.95°F Temperature: 28.37°C | 83.07°F Temperature: 29.00°C | 84.20°F Temperature: 29.56°C | 85.21°F Temperature: 30.00°C | 86.00°F Temperature: 30.31°C | 86.56°F Temperature: 30.62°C | 87.12°F Temperature: 30.87°C | 87.57°F

Script chạy trong vòng lặp vô tận liên tục cho đến khi bạn nhấn Ctrl + C trong Terminal.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.