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