• 方案介紹
    • 一、項目名稱:
    • 二、項目概述
    • 三、實物圖
    • 四、軟件工作流程
    • 五、點亮效果圖
    • 六、代碼
    • 七、屏軟件操作界面
    • 八、計劃框架圖
    • 九、原理圖:
    • 十、視頻講解:
  • 相關推薦
申請入駐 產業(yè)圖譜

汽車座椅方向盤加熱系統

05/28 11:45
531
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
在《2024 DigiKey 汽車應用創(chuàng)意挑戰(zhàn)賽》中,設計一個創(chuàng)新的汽車座椅和方向盤加熱系統是一個非常有潛力的方向,也是我接下來需要完成的項目任務。
下面是一些創(chuàng)意設計思路和技術實現方案,詳細的介紹。

一、項目名稱:

基于樹莓派PI5汽車座椅方向盤加熱系統

二、項目概述

本項目是利用樹莓派PI5作為核心處理器,結合多種傳感器執(zhí)行器,包含多個加溫控制模塊,風扇等,,實現一個智能化的汽車座椅和方向盤加熱系統。系統通過AHT10溫濕度傳感器實時監(jiān)測環(huán)境溫濕度,利用STO21加熱片模塊進行加熱,并通過Motor Module直流電機控制風扇散熱,確保系統在舒適和安全的環(huán)境下運行。串口屏用于顯示系統狀態(tài)和用戶交互。

下面主要的功能以一組為示例進行講解與操作。

系統組成

樹莓派PI5:核心處理器,負責數據處理、邏輯控制通信
AHT10溫濕度傳感器:用于實時監(jiān)測環(huán)境溫濕度。 GPIO2(SDA,I2C1),GPIO3(SCL,I2C1)
STO21加熱片模塊:用于座椅和方向盤的加熱。GPIO4
Motor Module直流電機:用于控制風扇散熱。GPIO17
串口屏:用于顯示系統狀態(tài)和用戶交互。TX(GPIO15),RX(GPIO14)

系統功能

溫濕度監(jiān)測:通過AHT10傳感器實時監(jiān)測車內溫濕度。
加熱控制:根據用戶設置和環(huán)境溫度,控制STO21加熱片模塊進行加熱。
散熱控制:通過Motor Module直流電機控制風扇,確保系統不過熱。
用戶交互:通過串口屏顯示系統狀態(tài),用戶可以通過觸摸屏進行設置和操作。

硬件連接

AHT10傳感器:通過I2C接口連接到樹莓派PI5。
STO21加熱片模塊:通過GPIO口控制,連接到樹莓派PI5。
Motor Module直流電機:通過PWM控制,連接到樹莓派PI5。
串口屏:通過UART接口連接到樹莓派PI5。

軟件設計

系統初始化:
初始化I2C、GPIO、PWM和UART接口。
初始化AHT10傳感器、STO21加熱片模塊、Motor Module直流電機和串口屏。
溫濕度讀取:
通過I2C接口讀取AHT10傳感器的溫濕度數據。
數據存儲在變量中,用于**處理。
加熱控制:
根據用戶設置和環(huán)境溫度,控制STO21加熱片模塊的開關。
通過GPIO口輸出高低電平控制加熱片。
散熱控制:
根據系統溫度,控制Motor Module直流電機的轉速。
通過PWM信號調節(jié)電機轉速
用戶交互:
通過串口屏顯示當前溫濕度、加熱狀態(tài)和風扇狀態(tài)。
用戶可以通過觸摸屏設置加熱溫度和風扇轉速。
主循環(huán):
循環(huán)讀取溫濕度數據。
根據數據調整加熱和散熱控制。
更新串口屏顯示內容。

三、實物圖

AHT10傳感器:

AHT10 傳感器特性
測量范圍:
溫度:-40°C ~ 85°C
濕度:0% ~ 100% RH
精度:
溫度:±0.3°C
濕度:±2% RH
通信接口:I2C(默認地址:0x38)
供電電壓:2.2V ~ 5.5V
低功耗:適合電池供電設備
封裝:DFN(小型化封裝)
STO21加熱片模塊:
【品名】:加熱片模塊
【規(guī)格】:41.6x12.1x11.6mm(長x寬x高)
【顏色】:藍色
PCB 材質】:軍工級別雙面PCB 板
【工作電壓】:5V
【工作溫度】:-40~85°℃
【工作方式】:輸入低電平或接地信號,加熱片工作【產品特點】:
1、采用 5VPTC 恒溫發(fā)熱片
2、放置在容器外部進行加熱使用,切勿將加熱片置于液體之中進行使用
3、自帶電源指示燈
4、提供 3mm 固定安裝螺絲孔
Motor Module直流電機:
參數簡介
工作電壓:3.3V-5V
信號電平:0V-5V最大轉速:3500RPM
工作溫度:-20℃-80℃定位方式:M3螺絲重量:50.88g
模塊尺寸:40mm*30mm(手工測量)
串口屏:
系列&尺寸
X2 6.2時
型號
TJC3696X262_011C_l
比例1:3
分辨率360x960
亮度(nit)300
工作電壓(V)4.65-6.5
休眠電流(mA)93
flash容量(Bytes)16M
運行內存(Bytes)512K
觸摸類型 N:無觸摸/C:電容
TFT類型IPS
有效顯示尺寸(mm)147.46(L)x55.30(W)
工作電流(mA)340
工作溫度(°C)20~+70
掉電存儲容量(Bytes)1K
串口指令緩存區(qū)(Bytes)4K

四、軟件工作流程

軟件控制說明:
初始化
開始
初始化串口通信(/dev/ttyAMA0, 9600波特率
初始化控制器(CONTROLLER類)
初始化風扇(GPIO17,默認關閉)
初始化加熱板(GPIO4,默認關閉)
初始化AHT10傳感器
讀取當前溫度
向串口屏發(fā)送初始溫度顯示值(t2.txt="20")
設置目標溫度(aim = 20)
主循環(huán)
循環(huán)開始
讀取串口屏數據
從串口屏讀取目標溫度值(target)
如果讀取到新數據:
更新目標溫度(aim = target[-4])
讀取當前溫度
調用AHT10.read_data()獲取當前溫度(temp)
顯示當前溫度
格式化溫度值為字符串(temp_str = "{0:.2f}".format(temp))
向串口屏發(fā)送當前溫度值(t2.txt="temp_str")
溫度控制邏輯
如果當前溫度 < 目標溫度
進入加熱模式:
關閉風扇(fan.off())
打開加熱板(heat_board.off())
更新串口屏顯示加熱圖標(p3.pic=1)
如果當前溫度 > 目標溫度
進入散熱模式:
打開風扇(fan.on())
關閉加熱板(heat_board.on())
更新串口屏顯示散熱圖標(p3.pic=2)
如果當前溫度 = 目標溫度
進入待機模式:
保持當前狀態(tài)(device.init())
更新串口屏顯示待機圖標(p3.pic=3)
延時
短暫延時(time.sleep(0.05)
主循環(huán)延時(time.sleep(0.9)
循環(huán)結束

五、點亮效果圖

屏點亮效果
PI5控制軟件代碼:

連接圖:

六、代碼

class AHT10:
    def __init__(self, bus=1, address=0x38):
        self.bus = smbus2.SMBus(bus)
        self.address = address

    def read_data(self):
        self.bus.write_i2c_block_data(self.address, 0xAC, [0x33, 0x00])
        time.sleep(0.1)
        data = self.bus.read_i2c_block_data(self.address, 0x00, 6)
        if not (data[0] & 0x80):
            raise RuntimeError("Device not ready")
        raw_temp = ((data[3] & 0x0F) << 16) | (data[4] << 8) | data[5]
        temperature = (raw_temp * 200.0 / 1048576) - 50
        return temperature


class CONTROLLER:
    def __init__(self):
        self.temp = 0
        # 正向控制 on是開 off是關
        self.fan = LED(17)
        # 反向控制 off是開  on是關  是否加熱從硬件外觀是看不出的 加熱比較慢 耐心等待
        self.heat_board = LED(4)
        self.aht10 = AHT10()
        self.init()

    def init(self):
        self.fan.off()
        self.heat_board.on()
        self.temp = self.aht10.read_data()

    def heat(self):
        self.fan.off()
        self.heat_board.off()
        self.temp = self.aht10.read_data()

    def cool(self):
        self.fan.on()
        self.heat_board.on()
        self.temp = self.aht10.read_data()


ser = serial.Serial("/dev/ttyAMA0", 9600)
device = CONTROLLER()
device.init()
ser.write('t2.txt="20"'.encode("GB2312"))
ser.write(bytes.fromhex("ff ff ff"))
aim = 20
while 1:
    target = ser.read_all()
    print("---------------")
    if target != b"":
        aim = target[-4]
        print(aim)
    temp = device.temp
    print(temp, aim)
    temp_str = "{0:.2f}".format(temp)
    if int(temp) < aim:
        device.heat()
        ser.write("p3.pic=1".encode("GB2312"))
        ser.write(bytes.fromhex("ff ff ff"))
    elif int(temp) > aim:
        device.cool()
        ser.write("p3.pic=2".encode("GB2312"))
        ser.write(bytes.fromhex("ff ff ff"))
    else:
        device.init()
        ser.write("p3.pic=3".encode("GB2312"))
        ser.write(bytes.fromhex("ff ff ff"))
    time.sleep(0.05)
    ser.write('t2.txt="{}"'.format(temp_str).encode("GB2312"))
    ser.write(bytes.fromhex("ff ff ff"))

    time.sleep(0.9)

七、屏軟件操作界面

整體界面

多組選擇菜單:

模塊圖:

八、計劃框架圖

主要是多級控制時的一個架構圖:

軟件控制操作圖:

九、原理圖:

十、視頻講解:

DigiKey得捷

DigiKey得捷

DigiKey 總部位于美國明尼蘇達州錫夫里弗福爾斯市,是一家獲得原廠授權的全球性、全類目電子元器件和自動化產品分銷商。我們通過分銷來自 2,300 多家優(yōu)質品牌制造商的 1,020 多萬種元器件獲得了強大的技術優(yōu)勢。DigiKey 還為工程師、設計師、開發(fā)者和采購專業(yè)人員提供豐富的數字解決方案、無障礙互動和工具支持,以幫助他們提升工作效率。在中國,客戶可以通過電子郵件、電話和客服獲得全方位技術支持。如需了解更多信息和獲取 DigiKey 廣泛的產品,請訪問 www.digikey.cn 并關注我們的微信、微博、騰訊視頻和 BiliBili 賬號。

DigiKey 總部位于美國明尼蘇達州錫夫里弗福爾斯市,是一家獲得原廠授權的全球性、全類目電子元器件和自動化產品分銷商。我們通過分銷來自 2,300 多家優(yōu)質品牌制造商的 1,020 多萬種元器件獲得了強大的技術優(yōu)勢。DigiKey 還為工程師、設計師、開發(fā)者和采購專業(yè)人員提供豐富的數字解決方案、無障礙互動和工具支持,以幫助他們提升工作效率。在中國,客戶可以通過電子郵件、電話和客服獲得全方位技術支持。如需了解更多信息和獲取 DigiKey 廣泛的產品,請訪問 www.digikey.cn 并關注我們的微信、微博、騰訊視頻和 BiliBili 賬號。收起

查看更多

相關推薦