構建一款開源溫度槍,由定制的ESP32 C6開發(fā)板與MLX90614紅外溫度傳感器配對驅動
大家好,歡迎回來。TempGun Pro是一款手持開源紅外溫度采集槍,由ESP32 C6 1.47顯示器和定制電路供電。
這個項目背后的目的很簡單。在使用電子設備和3D打印時,我需要一個溫度計來測量不同的東西。我已經有了一個Fluke溫度槍,但當它停止工作時,我需要一個緊急的替代品,一個更便宜但性能幾乎一樣好的東西。
最好的部分是它很容易建造。我重用了我之前的Medic Mini項目,一個帶有屏幕、按鈕和電池電路的ESP32C6開發(fā)板。我只是在GPIO引腳上添加了一個MLX90614紅外溫度傳感器,寫了一個快速代碼,做了一個外殼,項目就準備好了。
本文通過幾個簡單的步驟引導您完成這個過程。
材料要求
這些是這個項目中使用的材料:
?Medic迷你定制PCB(由PCBWAY提供)
?Waveshare ESP32-C6 1.47英寸LCD開發(fā)模塊
?MLX90614紅外溫度傳感器
?IP5306
?10uf電容器
?按鈕4x4尺寸
?按鈕6x6尺寸
?連接電線
?3D打印的部分
?uh SMD電感器
?10 k電阻
?3.7V 600mAh鋰電池
?M2螺絲
Medic Mini主板
我們通過重復使用Medic Mini主板構建了TempGun Pro,只進行了一些小的修改和添加。簡而言之,Medic Mini是一款手持自我診斷工具,由ESP32 - C6和1.47英寸Waveshare顯示屏驅動,全部封裝在定制PCB和3D打印外殼中。它有三個觸覺按鈕,可以指導用戶進行癥狀檢查,并提供快速建議,而不需要應用程序或互聯網。
界面很簡單:每次一個癥狀,回答是,否,或不確定。根據這些輸入,該設備提供了一個基本的診斷建議,使健康檢查快速和方便。
我把Medic Mini設計成一個緊湊、獨立的工具,它易于使用,完全是從零開始構建的,將硬件、邏輯和設計整合到一個項目中。
MLX90614
MLX90614是由Melexis公司開發(fā)的數字紅外溫度計傳感器。與需要物理接觸的傳統(tǒng)傳感器不同,它可以探測物體發(fā)出的紅外輻射,并將其轉換為溫度讀數。這使其成為手持式溫度計、工業(yè)監(jiān)控甚至醫(yī)療設備等應用的理想選擇。
它是一個3.3V的設備,使用I2C進行通信。
MLX90614采用黑體輻射原理。每個物體發(fā)射的紅外能量與其溫度成正比。傳感器的熱電堆探測器捕獲這種輻射,內部信號處理器將其轉換為數字溫度值。
PCB設計
這是Medic Mini PCB設計的原理圖,分為兩個主要部分。首先,我們圍繞Waveshare ESP32-C6開發(fā)板構建了原理圖,該開發(fā)板連接到三個觸覺按鈕以供用戶輸入。這些按鈕連接到GPIO9, GPIO18和GPIO19,每個開關也連接到GND。當按下按鈕時,相應的GPIO引腳被拉低,注冊一個有效的輸入。我們稍后將使用GPIO18作為溫度讀取按鈕!并將使用GPIO4和GPIO5作為I2C引腳。
第二部分處理電力輸送。我們使用IP5306電源管理IC,它將鋰離子電池的3.7V提升到2A時穩(wěn)定的5V,足以可靠地為ESP32板和顯示器供電。該模塊還包括充電狀態(tài)LED;充電時它會閃爍,電池充滿后它就會保持穩(wěn)定。內置功能,如過充電保護,低電池切斷,和完全充電切斷有助于延長電池壽命,防止損壞不安全的電壓水平。
使用CAD模型的尺寸,我們準備了PCB輪廓,然后將按鈕放置在設計中指定的安裝位置。我們對Waveshare ESP32板、Type-C端口和安裝孔做了同樣的處理。剩下的組件放置在我們找到足夠空間的地方,然后我們連接軌道并最終確定電路板。
在完成PCB設計后,我們導出Gerber數據并與PCB制造商共享以制作樣品。
PCBWAY
一旦電路板設計完成,我選擇了一個紫色的錫掩膜與白色絲網,并將Gerber文件上傳到PCBWay的報價頁面進行制造。
雖然我通常使用白色或黑色阻焊罩,但這次我決定嘗試PCBWay的紫色選項,只是為了改變。訂單下得很順利,pcb在一周內就到了。
質量非常好——干凈的表面,鋒利的絲印,一切都與設計完美匹配。
在過去的十年中,PCBWay通過提供出色的PCB制造和組裝服務而脫穎而出,成為全球無數工程師和設計師值得信賴的合作伙伴。
此外,PCBWay正在組織第八屆PCBWay項目設計大賽,這是一個全球性的活動,邀請制造商,工程師和創(chuàng)新者展示他們最具創(chuàng)意的建筑。在電子,機械和AIoT類別中,這是一個分享您的工作,與社區(qū)聯系并爭奪令人興奮的獎品的絕佳機會。
Medic迷你PCB編輯
對于這個構建,我們重用了Medic Mini電路,但修改了按鈕布局。
?連接GPIO9和GPIO19的觸覺按鈕被移除,因為它們不需要。
?連接到GPIO18的中心按鈕被保留下來,并被重新用作溫度觸發(fā)按鈕。
溫度傳感器接線
在布線方面,我們使用四根連接線。
ESP32C6 (SDA和SCL)的GPIO4和GPIO5連接到MLX90614傳感器的I2C引腳。
VCC接3.3V引腳,GND接地。
這樣就完成了傳感器供電和與Medic Mini板通信所需的基本四線設置。
代碼
這是我們?yōu)門empGun Pro準備的代碼,它很簡單;讓我解釋一下。
首先,我們使用以下三個庫。
Arduino GFX處理在Waveshare ST7789顯示器上繪制圖形;Wire庫處理I2C通信,Adafruit MLX90614提供處理溫度傳感器的功能。
現在我們添加引腳定義。
本節(jié)定義了Waveshare顯示器、MLX傳感器I2C引腳和按鈕引腳的引腳。
使用上述部分,我們基本上創(chuàng)建了全局對象,其中包括MLX90614傳感器對象、SPI總線和ST7789顯示對象。
本節(jié)定義了三種狀態(tài):就緒、測量和顯示結果。這保持了代碼的組織性,避免了混亂的邏輯。
因為我們在這個項目中使用一個按鈕,所以我們必須使用脫扣邏輯,這可以防止錯誤觸發(fā)并確保只按一次干凈的按鈕。
接下來我們添加了一些繪圖功能;這些函數包括drawreadysscreen()、drawmeasuuringscreen()、drawResultScreen()和drawSensorErrorScreen()。
在設置功能中,串行與I2C,傳感器,顯示器和按鈕一起初始化。
如果沒有找到傳感器,將在屏幕上看到錯誤,并且溫度槍將停止工作。
這個循環(huán)做三件事。它檢查按鈕是否按下,如果按下,它從準備到測量。在測量中,它等待500ms,然后讀取溫度并顯示它。在Display Result中,讀數在屏幕上停留5秒,然后返回Ready并重復。
外殼設計
使用我們最初的Medic Mini的設計,我們保留了整體的想法,但簡化了前面。這三個按鈕被移除,取而代之的是一個橢圓形的按鈕,這個按鈕帶有一個執(zhí)行器,可以按下連接到GPIO18的開關。前面的外殼幾乎保持不變,而后面的外殼完全重新設計。增加了一個圓形部分來固定溫度傳感器,并使設備具有類似溫度槍的設計。
總體而言,構建包括一個前后外殼,以及兩個開關執(zhí)行器,一個用于溫度讀數,一個用于電源開/關。
兩個外殼都是在Anycubic Kobra S1上用高速PLA打印的,而開關執(zhí)行器則是用透明PLA打印的。
裝配過程
?我們通過將MLX90614傳感器添加到后外殼的位置來開始組裝過程,然后使用熱熔膠將其固定在適當的位置。
?接下來,在前面的外殼中,我們添加開關執(zhí)行器的位置。
?然后將主電路翻轉并放置在前外殼的插槽中,用兩個M2螺釘固定。
?電源開/關按鈕的開關執(zhí)行器放在后框的相應位置,然后將前后框連接在一起,關閉設備。
?最后,使用四周設計提供的四個安裝孔,我們插入M2螺釘來固定前后外殼,完成組裝過程。
測試
為了測試,我們從一杯冷的可樂開始,測量它的外表面;讀數為15.1°C。
接下來,在熱測試中,我們煮了一些黑咖啡,并從同樣的距離測量了杯子的外表面,結果是44.2°C。
有了TempGun Pro,我們可以測量各種日常用品。MLX90614傳感器在近距離下工作效果最好,理想測量距離為2-5厘米。
對于更遠距離的測量,該裝置可以升級到MLX90640,它提供了更廣泛的熱檢測能力。
結論
TempGun Pro是一款便攜式電池供電的溫度槍,易于攜帶,并提供準確的近距離讀數。它覆蓋范圍從-70?°C到+380?°C,公差約為±0.5?°C,使其在日常使用中可靠。
我現在用它來檢查電子設備、3D打印機床和其他部件,當我的Fluke出去修理時,這是一個完美的選擇。
本文編譯自hackster.io





