Raspberry Pi Cảm biến Nhiệt độ OLED
Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Raspberry Pi để thu thập nhiệt độ từ cảm biến một dây DS18B20 và sau đó hiển thị nó trên màn hình OLED.
Linh Kiện Cần Thiết
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | SSD1306 I2C OLED Display 128x64 | ||
| 1 | × | SSD1306 I2C OLED Display 128x32 | ||
| 1 | × | Cảm biến Nhiệt độ DS18B20 (CÓ Adapter) | ||
| 1 | × | Cảm biến Nhiệt độ DS18B20 (KHÔNG CÓ Adapter) | ||
| 1 | × | Điện trở 4.7 kΩ | ||
| 1 | × | breadboard (bo mạch thí nghiệm) | ||
| 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ề OLED và Cảm biến Nhiệt độ DS18B20
Nếu bạn chưa quen thuộc với OLED và Cảm biến Nhiệt độ DS18B20 (bao gồm pinout, cách hoạt động, lập trình, v.v.), các hướng dẫn sau có thể giúp bạn:
Sơ Đồ Kết Nối

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 kết nối đi kèm để có một thiết lập hoàn hảo. Adapter này bao gồm một điện trở tích hợp, loại bỏ nhu cầu sử dụng thêm điện trở trong quá trình kết nối.
Code Raspberry Pi - Lấy nhiệt độ từ Cảm biến DS18B20 và hiển thị trên OLED
Các Bước Nhanh
- Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích nào khác trên Raspberry Pi của bạn.
- Đả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 bạn 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 bằ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 diện 1-Wire trên Raspberry Pi. Xem Cách kích hoạt giao diện 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
- Trước khi sử dụng màn hình OLED với Raspberry Pi, chúng ta cần kích hoạt giao diện I2C trên Raspberry Pi. Xem Cách kích hoạt giao diện I2C trên Raspberry Pi
- Cài đặt thư viện OLED bằng cách chạy lệnh sau:
pip install Adafruit-SSD1306
- Tạo một file script Python DS18B20_OLED.py và thêm đoạn 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-oled
import time
from w1thermsensor import W1ThermSensor
import Adafruit_SSD1306
from PIL import Image, ImageDraw, ImageFont
# Set up the DS18B20 sensor
DS18B20 = W1ThermSensor()
# Set up the SSD1306 OLED display
RST = None
OLED = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
OLED.begin()
OLED.clear()
OLED.display()
# Set up fonts and drawing
width = OLED.width
height = OLED.height
image = Image.new('1', (width, height))
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
while True:
# Read temperature from DS18B20 sensor
temperature = DS18B20.get_temperature()
# Clear the OLED display
draw.rectangle((0, 0, width, height), outline=0, fill=0)
# Display temperature on OLED
draw.text((5, 5), f'Temperature: {temperature:.2f} C', font=font, fill=255)
# Update the OLED display
OLED.image(image)
OLED.display()
# Wait for a moment before reading again
time.sleep(2)
except KeyboardInterrupt:
# Clean up code before exiting the script
OLED.clear()
OLED.display()
print("\nExiting the script.")
- Lưu file và chạy script Python bằng cách thực thi lệnh sau trong terminal:
python3 DS18B20_OLED.py
Script chạy trong một vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.
- Đặt cảm biến trên nước nóng và nước lạnh, hoặc cầm nó trong tay.
- Kiểm tra kết quả trên màn hình OLED.