製作免持紅外線體溫器
tags: arduino
有感於新冠肺病毒的擴散,原本身在台灣感覺還算安全,但隨著時間和政策
病毒悄然在台灣擴散,大家出門的基本功就是口罩,酒精,體溫器。身為一
個小小班自研創客,當然要把自己在研究的東西用於現實生活上,堅持”不只是玩玩"的心態。
最近二個月公司一早的朝會都固定要量體溫,用手持紅外線測溫,所以我想
用3D列印個外殼,做個掛壁免持的紅外線體溫器給公司同仁使用。
因為近期網路上已經很多創客大大做出相關成品,我也看中一個”國外”不錯的專案
所以我就直接轉成中文把重點轉移過來,當個實作紀錄。
參考網址:https://www.instructables.com/DIY-Non-Contact-IR-Thermometer/
(申明:以下紀錄和圖片是基於轉貼大部份和翻為中文,方便自己學習使用
The following records are based on records and are convenient for self-learning, so use reposting most of the content and some pictures)
普通的紅外溫度計可以測量新冠患者的體溫,也可能傳播病毒。手持式溫度計的主要缺點是其性能取決於操作者和到額頭的距離。為了解決這些問題,製造了一種可以安裝在牆上的設備,無需操作員即可在公共區域進行發燒篩查。當傳感器與額頭之間的距離足夠時,硬件可以自動測量人體溫度。
所需組件
1. Arduino Nano
2. GY-906 溫度傳感器
3. OLED 顯示器
4. IR紅外傳感器
5. TP4056 充電器模塊
6. 18650 電池
7. 18650 電池座
8. 5 V DC-DC 升壓轉換器(亞馬遜)
9. 切換開關 -15 × 21 毫米
10. 5 毫米綠色 LED
11. 5 毫米紅色 LED
12. 2 x 330 歐姆電阻器
13.壓電蜂鳴器
14. Header Pins
15. 杜邦線
16. 跳線
第 1 步:它是如何工作的?
工作原理很簡單,紅外測溫傳感器MLX90614在額頭與傳感器之間的距離(由紅外傳感器測量)匹配設定值時讀取人體溫度。傳感器讀數發送到 Arduino 進行處理,處理後的值顯示在 0.96’ OLED 顯示屏上。
除了 OLED 顯示屏外,還使用了兩個 LED 和一個蜂鳴器來指示輸出。
1、當體溫正常時,綠色LED(LED1)亮,蜂鳴器鳴叫。
2. 當體溫高於 37.7攝氏度時,紅色 LED ( LED2 ) 會亮起,蜂鳴器會發出較長時間的嗶嗶聲。
第 2 步:電源
整個電路所需的電源由兩節18650電池提供。兩塊電池並聯連接以製作更高容量的電池組以獲得更長的備份時間。電池組由 TP4056 充電器模塊充電。
使用升壓轉換器模塊(MT3608)將電池組電壓升至7V。然後升壓轉換器的輸出連接到 Arduino 的 Vin 引腳。
一個切換開關放置在充電器模塊 TP4056 輸出和升壓轉換器之間。
第 3 步:準備 Arduino 和溫度傳感器板
第 4 步:MLX90614 紅外溫度傳感器
MLX90614 是一款用於非接觸式溫度測量的紅外測溫儀,能夠測量 -70 至 380°C 之間的溫度。該傳感器採用紅外敏感熱電堆探測器芯片和信號調節ASIC集成在一個芯片中。它基於 Stefan-Boltzmann 定律工作,該定律指出所有物體都會發射 IR 能量,並且該能量的強度將與該物體的溫度成正比。傳感器中的傳感單元測量目標物體發射了多少紅外能量,計算單元使用 17 位內置 ADC 將其轉換為溫度值,並通過 I2C 通信協議輸出數據。
傳感器測量物體溫度和環境溫度以校準物體溫度值。 MLX 90614 傳感器可以讀取 -40 到 125 ˚C(-40 到 257 °F)範圍內的環境溫度和 -70 到 380 ˚C(-94 到 716 °F)範圍內的物體溫度。
紅外測溫儀與 Arduino 的連接非常簡單,因為它像許多其他組件一樣使用 I2C 通信接口。
MLX90614 溫度計有 4 個引腳:VIN、GND、SCL 和 SDA。
連接應如下所示:
Arduino——MLX 90614
5V — VIN
GDN——GDN
A5 —- SCL
A4 —- SDA
步驟 5:準備電池組
我們必須將兩個 18650 電池並聯。我用過的電池槽是一個兩槽座,帶有獨立的接線端子用於連接。要進行並聯,請使用一根電線將每側的兩個端子連接在一起。
首先在端子上塗抹少量助焊劑,然後使用電線將它們短路。
接下來將紅色延長線焊接到正極端子,將黑色電線焊接到電池座的負極端子。
第 6 步:紅外接近傳感器
目前,手持體溫計在發燒篩查方面非常流行。但是,手持式溫度計的性能取決於操作者和到額頭的距離。為了克服這些問題,使用紅外線接近傳感器來測量傳感器與額頭之間的距離,當距離足夠時,將感應並顯示溫度讀數。這樣,提高了測量的準確度。
您可以通過調節傳感器模塊上的電位器來設置接近傳感器到物體的檢測距離。順時針旋轉電位器將增加檢測距離,逆時針旋轉將減少檢測距離。我已將此距離設置為大約 50 毫米。
連接應如下所示:
Arduino——紅外傳感器
3.3V — VCC
GND——GND
D9 —- OUT
第7步: OLED Display
體溫顯示採用0.96’ OLED顯示屏,分辨率為128x64,採用I2C總線與Arduino通信。Arduino Nanno中的兩個引腳SCL(A5),SDA(A4)用於通信。
我正在使用 Adafruit_SSD1306 庫來顯示參數。
首先,您必須下載 Adafruit_SSD1306。然後安裝它。
連接應如下所示:
Arduino——OLED
5V — VCC
GND——GND
A4—-SDA
A5—-SCL
第8步: LED指示燈
兩個LED用於指示體溫是正常還是異常。綠色 LED 指示體溫正常,紅色 LED 指示異常情況(當溫度高於 104 華氏度時)
綠色 LED ( LED1 ) 連接到 Arduino 數字引腳 D3,紅色 LED ( LED2 ) 連接到 D5。為了限制 LED 的電流,使用了兩個 330 Ω 電阻器。將電阻焊接到 LED 的正極端子。 LED 較長的腳指示正極端子。
如上圖所示,將 4 根跳線連接到 LED。這裡我必須使用母-
母跳線,以便於連接。
第 9 步:警報蜂鳴器
為了在人體篩查期間提供警報,使用了壓電蜂鳴器。蜂鳴器有兩個端子,較長的一端為正極,較短的腳為負極。新蜂鳴器上的貼紙也有“+”標記,表示正極端子。
您可以將電線焊接到蜂鳴器引腳上,或者您可以使用我在這裡使用的母跳線。
連接應如下所示:
Arduino——蜂鳴器
D7 – 正極端子
GND——負極
第 10 步:準備擴展板
如下圖:將5V, GND, SCL, SDA用焊接擴充
第 11 步:製作電路
首先,下載 Arduino 草圖並安裝所有庫。
下載並安裝以下庫:
1. Adafruit-MLX90614-Library:https://github.com/adafruit/Adafruit-MLX90614-Lib…
2. Adafruit_SSD1306 庫:https://github.com/adafruit/Adafruit_SSD1306
3.millisDelay:https://github.com/ansonhe97/millisDelay
使用您的筆記本電腦或台式電腦將 USB 電纜插入 Arduino Nano。
設置正確的板子和 COM 端口號並將代碼上傳到 Arduino。
這裡我先將主要的傳感器做測試,等待列印外殼再做組裝
6/27
列印外殼時長28小時,當然我是前後蓋分開印,後蓋印的還不錯,在列前蓋時剩下最後1%時噴頭給我阻塞,心都涼了!!!媽呀~~~~
7/1
當我把模組全部裝上機盒時,發現開機後的動作怪怪的,而直接使用電源接在nano上又正常,後來查到是升壓模組進電壓3.7v沒有升壓到7v,後來查一下網路,說升壓模組的調整閥一拿到最好都先逆時針轉20圈以上,再順時針調整,電壓就能往上(調整時調整閥朝自己)。
7/3
發現有個缺點,IR模組在光線強的地方會一直自己動作,調了靈敏度也是一樣,不知是傳感器有問題還是….,先買幾個換上再試。