冰楓論壇

 找回密碼
 立即註冊
ads_sugarbook
搜索
查看: 1822|回覆: 0
打印 上一主題 下一主題

[討論] Raspberry Pi製作控溫烤爐

[複製鏈接]

2609

主題

0

好友

945

積分

高級會員

Rank: 4

UID
373967
帖子
7420
主題
2609
精華
0
積分
945
楓幣
1080
威望
925
存款
26000
贊助金額
0
推廣
0
GP
1205
閱讀權限
50
在線時間
407 小時
註冊時間
2023-1-12
最後登入
2024-5-1

2023端午節紀念勳章 2023中秋節紀念勳章 2023聖誕節紀念勳章

跳轉到指定樓層
1
發表於 2023-9-2 01:38:10 |只看該作者 |倒序瀏覽

所需零件:
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()
[發帖際遇]: 洪嵐峰 雖然沒有「哈味」,但全身卻散發出「魯」味,獲得路人同情施捨 1 楓幣 幸運榜 / 衰神榜
收藏收藏0 推0 噓0


把本文推薦給朋友或其他網站上,每次被點擊增加您在本站積分: 1骰子
複製連結並發給好友,以賺取推廣點數
簡單兩步驟,註冊、分享網址,即可獲得獎勵! 一起推廣文章換商品、賺$$
高級模式
B Color Image Link Quote Code Smilies |上傳

廣告刊登意見回饋關於我們職位招聘本站規範DMCA隱私權政策

Copyright © 2011-2024 冰楓論壇, All rights reserved

免責聲明:本網站是以即時上載留言的方式運作,本站對所有留言的真實性、完整性及立場等,不負任何法律責任。

而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。

小黑屋|手機版|冰楓論壇

GMT+8, 2024-5-1 21:26

回頂部