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

汽車(chē)座椅方向盤(pán)加熱系統(tǒng)

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

一、項(xiàng)目名稱(chēng):

基于樹(shù)莓派PI5汽車(chē)座椅方向盤(pán)加熱系統(tǒng)

二、項(xiàng)目概述

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

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

系統(tǒng)組成

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

系統(tǒng)功能

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

硬件連接

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

軟件設(shè)計(jì)

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

三、實(shí)物圖

AHT10傳感器:

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

四、軟件工作流程

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

五、點(diǎn)亮效果圖

屏點(diǎ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是開(kāi) off是關(guān)
        self.fan = LED(17)
        # 反向控制 off是開(kāi)  on是關(guān)  是否加熱從硬件外觀是看不出的 加熱比較慢 耐心等待
        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)

七、屏軟件操作界面

整體界面

多組選擇菜單:

模塊圖:

八、計(jì)劃框架圖

主要是多級(jí)控制時(shí)的一個(gè)架構(gòu)圖:

軟件控制操作圖:

九、原理圖:

十、視頻講解:

DigiKey得捷

DigiKey得捷

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

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

查看更多

相關(guān)推薦