基于 STM32F030 的無線電子溫度計(jì)(上)
60 多年過去了,盡管輝光管已經(jīng)停產(chǎn),有很多工程師仍然對(duì)它情有獨(dú)鐘。我用 8 塊液晶顯示屏制作了一個(gè)擬輝光管時(shí)鐘,感受復(fù)古元素的美感,表達(dá)對(duì)過去經(jīng)典的敬意。
這個(gè)項(xiàng)目緣起我家娃生病時(shí),總是不愿意量體溫。傳統(tǒng)的水銀溫度計(jì)測(cè)量溫度慢,孩子總是問“好了沒?”,等得著急了就把溫度計(jì)拿出來了,功虧一簣,父母更是崩潰。所以我就希望有一個(gè)便宜好用、測(cè)量精準(zhǔn)、測(cè)量速度快的溫度計(jì)。作為一名工程師的我決定自己做一款。“你的溫度,我來守護(hù)”,這是我的初心。
![]()
應(yīng)用場(chǎng)景和主要功能
溫度計(jì)應(yīng)用場(chǎng)景如下。
● 解決兒童生病時(shí)不愿意配合量體溫的問題。
● 適用于兒童體溫需要實(shí)時(shí)監(jiān)測(cè)的情況。
● 適用于兒童睡覺時(shí)測(cè)量體溫。
主要功能如下。
● 精度高,誤差小于 0.1℃。
● 帶有顯示屏。
● 支持藍(lán)牙傳輸,支持 BLE 和
SPP,既可以連接手機(jī),也可以連接
計(jì)算機(jī)。
● 運(yùn)行時(shí)間長,可以連續(xù)使用12h 以上。
● 使用便捷,不需要經(jīng)常拿出來看溫度,可直接通過手機(jī)或計(jì)算機(jī)接收溫度和電量提示。
● 可以 DIY 設(shè)置報(bào)警功能,方便看護(hù)兒童時(shí)實(shí)時(shí)了解體溫情況。
總體設(shè)計(jì)
本 設(shè) 計(jì) 使 用 3.7V 鋰 電 池 為 系統(tǒng) 供 電, 經(jīng) LDO 降 壓 到 3.3V 后 給MCU供電,MCU與OLED顯示電路、鋰電池充放電電路、溫度傳感器電路、藍(lán)牙傳輸電路進(jìn)行連接,無線溫度計(jì)系統(tǒng)框架如圖 1 所示。
![]()
圖 1 無線溫度計(jì)系統(tǒng)框架
硬件設(shè)計(jì)
這樣一個(gè)功能豐富的無線溫度計(jì)是如何設(shè)計(jì)出來的呢,接下來我將逐一介紹每個(gè)模塊。
電源
在電源的選用上,該系統(tǒng)選用3.7V 可 充 電 鋰 電 池, 通 過 TP4057芯 片 進(jìn) 行 充 電, 后 經(jīng) 過 LDO 芯 片XC6220B331MR-G 將 電 壓 轉(zhuǎn) 為3.3V,給 MCU 和外圍元器件供電。為什么要選用 TP4057 這個(gè)芯片
呢?因?yàn)檫@個(gè)芯片具有如下特點(diǎn)。
● 封裝小,節(jié)省空間。
● 充電快,最大充電電流可配置為 1A。
● 價(jià)格足夠便宜。
這 里 要 注 意 LDO 的 選 擇, 一定要選擇具有超低壓差的,因?yàn)殇囯?池 隨 著 工 作 的 時(shí) 間, 供 電 電 壓會(huì) 從 4.1V 慢 慢 降 低, 直 到 供 電 不足,導(dǎo)致系統(tǒng)無法工作。這是選擇XC6220B331MR-G 這 個(gè) 芯 片 的 原因,即使是 20mV 的壓降,也可以提供 100mA 的電流,對(duì)于這個(gè)系統(tǒng)供電電流足夠使用。
我們對(duì)電源進(jìn)行詳細(xì)分析。首先是系統(tǒng)充電接口,本項(xiàng)目通過 USB Type-C 接 口 充 電,USB Type-C接口電路如圖 2 所示。
![]()
圖 2 USB Type-C 接口電路
然后通過 USB Type-C 接口給TP5057 芯片供電,充電電路如圖 3所 示。LED1 和 LED2 是 系 統(tǒng) 充 電狀態(tài)指示燈,當(dāng)系統(tǒng)充電時(shí),LED1滅,LED2 亮;當(dāng)系統(tǒng)充電完成時(shí),LED1 亮,LED2 滅。電阻 R3 作為充電電流限制電阻,最大充電電流限制為 500mA,可以根據(jù)系統(tǒng)需求更改此阻值。
![]()
圖 3 充電電路
最后是電源的其他部分,系統(tǒng)開關(guān)、鋰電池及電量檢測(cè)電路如圖 4所示。
![]()
圖 4 系統(tǒng)開關(guān)、鋰電池及電量檢測(cè)電路
VT1、VD1 和電阻 R4 構(gòu)成了電源選通網(wǎng)絡(luò),工作具體原理如下。
● 當(dāng) USB Type-C 接 入 時(shí),VCCIN 約 為 5V 輸 入 電 壓, 此 時(shí)VT1 不導(dǎo)通,BAT 無法通過 VT1 輸出到 VOUT,但 VD1 工作并導(dǎo)通,VCCIN 經(jīng)過 VD1 輸出到 VOUT。
● 當(dāng) USB Type-C 沒有接入時(shí),VCCIN 由電阻 R4 下拉接 GND,使VCCIN 為低電平,VT1 進(jìn)行工作并導(dǎo)通,BAT 通過 VT1 輸出到 VOUT。注意此時(shí) VD1 可以防止 VOUT 反向輸入給 VCCIN。
鋰 電 池 通 過 電 阻 R11、R13、R12 和電容 C17 進(jìn)行電量采集,BAT經(jīng)過電阻 R11 和 R12 分壓,ADC 采集的電壓為 BAT 的一半。為什么要進(jìn)行分壓呢?原因是鋰電池最高電壓可以達(dá)到 4.2V,若不進(jìn)行分壓,則超過MCU 的 ADC 測(cè)量范圍(0~3.3V)。
H7 為電池的排針接口,SW1 為系統(tǒng)供電開關(guān)。
系統(tǒng)的大部分元器件工作電壓不超過 3.3V,為了保護(hù)元器件和確保元器件能正常工作,需要將工作電壓轉(zhuǎn)為 3.3V,轉(zhuǎn)換電路如圖 5 所示。
![]()
圖 5 LDO 轉(zhuǎn) 3.3V 電路
主控
系統(tǒng)主控采用STM32F030C8,我選擇該芯片的原因如下。
● 功 耗 低、ARM Cortex-M0內(nèi)核。
● 便宜 , 降低成本。
● 外設(shè)豐富,足夠本項(xiàng)目使用。
STM32F030C8 屬于 STM32F030x4/x6/x8/xC 系 列, 該 系 列 芯片集成了以 48MHz 頻率運(yùn)行的高性能 32 位 RISC 內(nèi) 核、 高 速 嵌 入 式存 儲(chǔ)器(256KB 的閃存和 32 KB 的SRAM)以及增強(qiáng)型外部設(shè)備和 I/O。所有元器件均提供標(biāo)準(zhǔn)通信接口、1 個(gè) 12 位 ADC、7 個(gè)通用 16 位定時(shí)器和 1 個(gè)高級(jí)控制 PWM 定時(shí)器。STM32F030x4/x6/x8/xC 系列芯片工作溫度為-40~+85°C,電源電壓為 2.4~3.6V。該系列微控制器包括 4 種不同封裝的元器件,從 20 個(gè)引腳到 64 個(gè)引腳。這些特性使STM32F030x4/x6/x8/xC 系 列 芯片適用于廣泛的應(yīng)用,如手持設(shè)備、A/V 接 收 器 和數(shù)字電視機(jī)、游戲和GPS平臺(tái)、逆變器、打印機(jī)、掃描儀、報(bào)警系統(tǒng)和可視對(duì)講機(jī)等。
本項(xiàng)目中該主控實(shí)現(xiàn)以下功能。
● ADC 采 集, 即 檢 測(cè) 鋰 電 池電量。
● 串口通信,控制藍(lán)牙芯片,進(jìn)行數(shù)據(jù)發(fā)送。
● I 2 C 通信,進(jìn)行溫度傳感器的配置和初始化,最重要的是讀取溫度。
● I2C 通信,控制顯示屏,顯示電量、藍(lán)牙連接狀態(tài)、測(cè)量時(shí)長等。
● 其他可擴(kuò)展功能。MCU 主控電路如圖 6 所示。
![]()
圖 6 MCU 主控電路
藍(lán)牙
本項(xiàng)目藍(lán)牙部分采用KT6368A,這是一款支持藍(lán)牙雙模的純數(shù)據(jù)芯片,選擇這款芯片最大的原因是成本低、使用簡單、生產(chǎn)簡單,大大降低了開發(fā)難度。該芯片同時(shí)支持 SPP 和 BLE ,但是只能任選其中一個(gè)協(xié)議使用。藍(lán)牙電路如圖 7 所示。
![]()
圖 7 藍(lán)牙電路
圖 7 中, 電 阻 R6、R8 串 聯(lián) 可以 防 止 漏 電, 避 免 異 常 情 況 發(fā) 生。LED 指示藍(lán)牙連接狀態(tài)。需要注意:
KT6368A 芯片開機(jī)需要初始化外部設(shè)備,其瞬間電流比較大,可達(dá) 25mA,時(shí)間維持 300ms,之后就進(jìn)入 5mA 工作狀態(tài)。芯片上電后,會(huì)自動(dòng)校準(zhǔn)時(shí)間,程序中需要設(shè)置延時(shí)后處理。
顯示屏
顯 示 屏 用 的 是 國 產(chǎn) 漢 昇 0.91英 寸 OLED 模 塊, 具 體 型 號(hào) 為HS91L02W2C01。該顯示屏分辨率為 128 像素 ×32 像素,主控芯片為SSD1306,接口類型為 I2C。整體尺寸如 8 圖所示。
![]()
圖 8 顯示屏尺寸
為什么選擇這個(gè)模塊呢?首先是價(jià)格便宜,其次是尺寸合適,剛好可以 顯 示 4 行, 能 滿 足 需 求。該 模 塊通過 I2C 接口與 MCU 連接,模塊已 內(nèi) 置 電 阻, 因 此 OLED_SDA 和OLED_SCK 網(wǎng)絡(luò)不需要添加上拉電阻。顯示屏與 MCU 連接電路如圖 9所示。
![]()
圖 9 顯示屏與 MCU 連接電路
溫度傳感器
為了驗(yàn)證效果,我選擇了兩款溫度傳感器,這兩款傳感器精度高且便宜,非常具有性價(jià)比。下面簡單介紹一下。
第一種是 T117 傳感器,具有超低溫測(cè)溫(-103℃)功能,測(cè)溫精度為 ±0.1℃,使用 I2C 和單總線數(shù)字輸出,測(cè)溫速度最快為 2.2ms,支持4路I2C 通信地址;超低功耗(電流為2μA),寬電壓供電 1.8~5.5V,大小為 2mm×2mm×0.75mm,DFN-6L封裝,內(nèi)置 112bit EEPROM。其廣泛應(yīng)用于智能穿戴設(shè)備、體溫計(jì)、動(dòng)物體溫檢測(cè)設(shè)備、醫(yī)療電子設(shè)備、熱表 /氣表 / 水表等。
第 二 種 是 MTS4 傳 感 器, 其 采用 I2C 協(xié) 議 數(shù) 字 輸 出, 可 同 時(shí) 兼 容數(shù)字單總線,測(cè)溫精度為 ±0.1℃,測(cè) 溫 速 度 可 配 置 為 15.3ms、8.5ms、5.2ms、2.2ms, 具 有 超低 功 耗( 電 流 為 3.1μA), 大 小 為1.6mm×1.2mm×0.55mm,DFN-4L封裝,內(nèi)置 112bit EEPROM,廣泛應(yīng)用于小型的智能穿戴設(shè)備、電子體溫計(jì)、動(dòng)物體溫檢測(cè)設(shè)備、醫(yī)療電子設(shè)備、冷鏈物流設(shè)備、熱表 / 氣表 / 水表等。
需要注意的是這兩款傳感器都是 DFN 封裝,手工焊接需要一定技巧和經(jīng)驗(yàn)。兩款溫度傳感器電路如圖 10 所示。
![]()
圖 10 兩款溫度傳感器電路
本 項(xiàng) 目 分 別 焊 接 了 T117 和MTS4 傳感器。經(jīng)測(cè)試,兩種傳感器性能基本一致,建議使用 T117 傳感器,一是該傳感器價(jià)格稍微便宜,二是手工焊接相對(duì)容易。
原理圖及PCB設(shè)計(jì)
原理圖設(shè)計(jì)
1. 工程創(chuàng)建
本項(xiàng)目采用嘉立創(chuàng) EDA 專業(yè)版軟件進(jìn)行設(shè)計(jì)。在設(shè)計(jì)原理圖前,需要?jiǎng)?chuàng)建工程文件夾,文件夾歸屬可以是個(gè)人,也可以是團(tuán)隊(duì)。如果使用的是學(xué)校教育版,需要在教育版工作區(qū)內(nèi)創(chuàng)建工程并保存到對(duì)應(yīng)的班級(jí)里。創(chuàng)建工程文件夾后,系統(tǒng)會(huì)自動(dòng)生成一張圖紙,需要手動(dòng)保存到工程內(nèi),按照?qǐng)D紙內(nèi)容修改文件名稱。工程創(chuàng)建參考如圖 11 所示。
![]()
圖 11 工程創(chuàng)建參考
2. 元器件選型
前文對(duì)電路方案進(jìn)行了描述,下面就可以在嘉立創(chuàng) EDA 上設(shè)計(jì)電路了。在放置元器件時(shí),我們會(huì)遇到一個(gè)元器件有不同封裝的情況,比如一個(gè) LED,有的需要 2 個(gè)引腳插到板子里焊接,有的可以直接貼到板子上焊接,而且大小間距各有不同。如圖 12所示,在設(shè)計(jì)電路時(shí)我們要考慮:需要什么規(guī)格的元器件、它在實(shí)驗(yàn)室里有沒有、是否可以買得到、選用的封裝能不能焊接等問題。
![]()
圖 12 LED 符號(hào)與封裝
在選擇元器件時(shí)可以在嘉立創(chuàng)EDA 的 基 礎(chǔ) 庫 中 選 擇 需 要 的 元 器件,基礎(chǔ)庫的每個(gè)元器件都可以選擇不同的封裝。如果你對(duì)元器件封裝不熟悉,可以在元器件庫中直接對(duì)所需元器件進(jìn)行搜索,例如將搜索引擎改為“立創(chuàng)商城”,在里面輸入“電容1μF”, 進(jìn) 行 搜 索, 在 類 目 下 選 擇“0805”后單擊“應(yīng)用篩選”(見圖13)。在搜索出來的結(jié)果內(nèi)找到自己所需的元器件,單擊元器件就可以放到原理圖進(jìn)行設(shè)計(jì)了。
![]()
圖 13 元器件庫查找元器件
立創(chuàng)商城里元器件都有唯一的商品編號(hào),使用時(shí)可以將這個(gè)編號(hào)復(fù)制到元器件庫中進(jìn)行搜索,例如該項(xiàng)目中主控 STM32F030C8T6 這款芯片的商品編號(hào)是 C23922,在元器件庫中輸入編號(hào),類型選擇“符號(hào)”,庫別選擇“立創(chuàng)商城”,單擊“搜索”,就可以在里面看到搜索結(jié)果(見圖 14)。
![]()
圖 14 指定商品編號(hào)搜索元器件
PCB設(shè)計(jì)
1. 邊框外形
設(shè)計(jì)完原理圖就可以設(shè)計(jì) PCB了。我 使 用 嘉 立 創(chuàng) EDA 里 的 邊框 層 進(jìn) 行 設(shè) 計(jì), 邊 框 大 小 控 制 在10cm×10cm 之內(nèi),這樣可以免費(fèi)打樣,而且這個(gè)大小在本項(xiàng)目中是足夠的。使用繪圖工具中的直線和圓弧工具設(shè)計(jì),也可以充分利用柵格輔助我們更加精準(zhǔn)地設(shè)計(jì)外框。無線電子溫度計(jì)邊框外形如圖 15 所示。
![]()
圖 15 無線電子溫度計(jì)邊框外形
2. PCB布局
PCB 邊框外形確定,就可以進(jìn)行元器件布局了。結(jié)合溫度計(jì)的特點(diǎn),將傳感器擺放在最左側(cè),開關(guān)與藍(lán)牙擺在上方,USB Type-C 充電接口擺放在最右側(cè),主控芯片放在中間的位置。原理圖轉(zhuǎn) PCB 后的元器件布局是無法直接使用的,需要手動(dòng)把元器件擺放在合適的位置。元器件布局時(shí)可以在嘉立創(chuàng) EDA 菜單欄中選擇“工具”→“布局傳遞”,能快速對(duì)元器件分類布局。
元器件布局需要考慮以下事項(xiàng)。
● 按電路模塊布局,每個(gè)電路的核心元器件和外圍元器件盡量集中。
● 按電路功能布局,特殊元器件布局時(shí)周邊不能放置其他元器件,避免干擾等。
● 按元器件特性布局,輸入 / 輸出接口放到 PCB 邊緣,方便操作。本項(xiàng)目 PCB 元器件布局如圖 16所示。
![]()
圖 16 無線電子溫度計(jì) PCB 元器件布局
3. PCB走線
完成元器件布局就完成了 PCB整個(gè)設(shè)計(jì)的大部分工作,接下來是在PCB 走線時(shí)進(jìn)行細(xì)節(jié)調(diào)整。PCB 走線需要注意的事項(xiàng)很多,有很多設(shè)計(jì)要點(diǎn),我們需要在設(shè)計(jì)中不斷積累經(jīng)驗(yàn),提升自己的能力。
● 電源及信號(hào)線走線需按照電流流向,嚴(yán)格按照原理圖設(shè)計(jì)布局,即使都連接了,沒有報(bào)錯(cuò),也要考慮先后順序。
● 在設(shè)計(jì) PCB 走線時(shí),要注意線寬設(shè)置,電源線應(yīng)比信號(hào)線稍微粗一些。電源線的載流要滿足項(xiàng)目功耗需求,例如本項(xiàng)目電源線寬 0.5mm即可滿足需求。線寬不能設(shè)置得過細(xì),應(yīng)考慮工廠生產(chǎn)工藝。
● 在實(shí)際走線過程中,導(dǎo)線應(yīng)優(yōu)先走直線,橫平豎直,可以通過調(diào)整元器件布局使兩個(gè)點(diǎn)間的連線最短,如果無法保持直線,應(yīng)優(yōu)先使用135°鈍角或者圓弧走線,保持設(shè)計(jì)美觀。
本項(xiàng)目的 PCB 采用 4 層設(shè)計(jì),各層設(shè)計(jì)如圖 17~ 圖 20 所示。3D 外殼設(shè)計(jì)和軟件設(shè)計(jì)將在下一期進(jìn)行介紹。
![]()
圖 17 PCB 頂層
![]()
圖 18 PCB 地層
![]()
圖 19 PCB 電源層
![]()
圖 20 PCB 底層
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.