- UID
- 373967
- 帖子
- 8867
- 主題
- 2609
- 精華
- 0
- 積分
- 1000
- 楓幣
- 0
- 威望
- 977
- 存款
- 34822
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 455 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-21
|
所需零件:
Raspberry Pi(建議使用Raspberry Pi 4或更新版本)
溫度感測器(例如DS18B20)
紅外線溫度感測器(非接觸式溫度感測器)
電磁繼電器模塊(用於控制烤箱加熱元件)
電線和連接器
5V電源供應器(適用於Raspberry Pi)
烤箱加熱元件(加熱棒或發熱線圈)
烤箱風扇(可選,用於均勻溫度分佈)
連接腳位:
將DS18B20感測器連接到Raspberry Pi的GPIO引腳。您可以使用3.3V電源、地(GND)和GPIO引腳,然後將感測器的數據引腳連接到Raspberry Pi的一個GPIO引腳(例如GPIO4)。
使用紅外線溫度感測器測量烤箱內部的溫度。
將繼電器模塊連接到Raspberry Pi的GPIO引腳,以便控制烤箱加熱元件。繼電器通常需要一個GPIO引腳來開啟/關閉,以及一個用於供電的GPIO引腳。
將烤箱加熱元件連接到繼電器模塊上。
如果您使用烤箱風扇,將其連接到一個額外的GPIO引腳。
程式碼:
以下是一個Python示例程式碼,用於讀取DS18B20感測器的溫度數據,並根據目標溫度控制烤箱加熱元件:
python
import os
import glob
import time
import RPi.GPIO as GPIO
# 設定GPIO引腳模式
GPIO.setmode(GPIO.BCM)
# 設定DS18B20感測器的數據引腳
ds18b20_sensor = "Your_DS18B20_Sensor_ID"
# 設定繼電器的GPIO引腳
relay_pin = 17
# 設定目標溫度
target_temperature = 180 # 改成您需要的溫度
# 初始化繼電器
GPIO.setup(relay_pin, GPIO.OUT)
GPIO.output(relay_pin, GPIO.LOW) # 初始狀態為關閉加熱元件
# 函數:讀取DS18B20溫度
def read_temperature():
try:
# 讀取DS18B20感測器的數據
sensor_file = glob.glob("/sys/bus/w1/devices/" + ds18b20_sensor + "/w1_slave")[0]
with open(sensor_file, "r") as file:
lines = file.readlines()
temperature_data = lines[1].split(" ")[9]
temperature = float(temperature_data[2:]) / 1000.0
return temperature
except Exception as e:
print("Error reading temperature:", str(e))
return None
try:
while True:
current_temperature = read_temperature()
if current_temperature is not None:
print("Current Temperature: {:.2f} °C".format(current_temperature))
# 根據溫度控制繼電器(加熱元件)
if current_temperature < target_temperature:
GPIO.output(relay_pin, GPIO.HIGH) # 打開加熱元件
else:
GPIO.output(relay_pin, GPIO.LOW) # 關閉加熱元件
time.sleep(5) # 5秒間隔讀取溫度
except KeyboardInterrupt:
print("程式已停止")
GPIO.cleanup() |
|