#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
#include <LiquidCrystal_I2C.h> // LCD 1602 I2C 顯示模組(用I2C)
// LCD 1602 I2C 顯示模組(用I2C)
// Set the pins on the I2C chip used for LCD connections: addr,en,rw,rs,d4,d5,d6,d7,bl,blpol
long lTimeCurrent=0, lTimeLastClockShown=0, lTimeGap4Clock;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址
void setup()
{
Serial.begin(9600);
Serial.println("Adafruit MLX90614 test");
mlx.begin();
// LCD 1602 I2C 顯示模組(用I2C)
Serial.println("LCD Init");
lcd.begin(16, 2); // 初始化 LCD,一行 16 個字元,共 2 行
lcd.clear();
lcd.backlight(); // 開啟背光
//lcd.noBacklight(); // 關閉背光
//lcd.setCursor(0, 0); // 設定游標位置在第 1 行行首 (x,y)
//lcd.print("Hello, world!");
}
void loop()
{
Serial.print("*C\tObject = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
lcd.setCursor(0, 0);
lcd.print(mlx.readAmbientTempC());
lcd.setCursor(0, 1);
lcd.print(mlx.readObjectTempC());
delay(100);
}
發燒是指核心體溫超過38度c,平均體溫的共識是1868年用腋下的溫度計測量的37度c,目前對正常體溫的範圍共識是
腋溫:34.7度c~37.3度c,
口溫:35.5度c~37.5度c,
肛溫:36.6度c~37.9度c,
耳溫:35.7度c~37.5度c。
沒有額溫的資料,不同地方量到的溫度,不能推測另一個地方的溫度。
--------------------------------------------
彰基護理部督導長黃怡真指出:「利用額溫槍去測量,它的落差會差了3到4度左右,如果他體溫是36度5,我們測量出來就會變成32度5,就會有一點落差情形。」
醫院出入人數多,廣泛使用「額溫槍」,對著額頭照射,測的是表面溫度,如果拿太遠,或是戶外氣溫低,量出來的落差會很大。
黃怡真說:「目前有寒流情形,氣溫可能到10度、12度,我們監測到的體溫就會偏低,所以應該要在室內去作監測。」
擔心防疫漏洞,彰化基督教醫院,甚至出動「紅外線體溫偵測儀」,就連車子經過時,輪胎溫度過高,或是有人拿著熱食、熱飲料,螢幕上,就會顯示出溫度偏高的黃色、紅色。
只要有人的頭頂出現危險警戒,院方人員就會合併測量耳溫,一個都不能漏掉。
(民視新聞/李文華、張士政 彰化報導)
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
#include <LiquidCrystal_I2C.h> // LCD 1602 I2C 顯示模組(用I2C)
// LCD 1602 I2C 顯示模組(用I2C)
// Set the pins on the I2C chip used for LCD connections: addr,en,rw,rs,d4,d5,d6,d7,bl,blpol
long lTimeCurrent=0, lTimeLastClockShown=0, lTimeGap4Clock;
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // 設定 LCD I2C 位址
// 無源揚聲器
byte bTonePin=8;
double da1[50]={};
int iIdx=0;
void setup()
{
Serial.begin(9600);
Serial.println("Adafruit MLX90614 test");
mlx.begin();
// LCD 1602 I2C 顯示模組(用I2C)
Serial.println("LCD Init");
lcd.begin(16, 2); // 初始化 LCD,一行 16 個字元,共 2 行
lcd.clear();
lcd.backlight(); // 開啟背光
//lcd.noBacklight(); // 關閉背光
//lcd.setCursor(0, 0); // 設定游標位置在第 1 行行首 (x,y)
//lcd.print("Hello, world!");
pinMode(bTonePin, OUTPUT);
}
void makeSoundCore(float fFrequency, int iDuration)
{
tone(bTonePin, fFrequency);
delay(iDuration);
}
void makeSoundWithTrouble()
{
Serial.println("makeSoundWithTrouble");
// 若有狀況,發出聲音!
int iD=200;
makeSoundCore(987.77,iD*2);
makeSoundCore(698.46,iD/2);
makeSoundCore(987.77,iD*2);
makeSoundCore(698.46,iD/2);
noTone(bTonePin);
}
void makeSoundWithOkay()
{
Serial.println("makeSoundWithOkay");
// 若有狀況,發出聲音!
int iD=200;
makeSoundCore(1200,iD);
noTone(bTonePin);
}
void clearData()
{
int i;
for(i=0; i<50; i++)
{
da1[i]=0;
}
iIdx=0;
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print(mlx.readAmbientTempC());
lcd.setCursor(0, 1);
lcd.print(mlx.readObjectTempC());
delay(5);
da1[iIdx]=mlx.readObjectTempC();
iIdx=(iIdx+1) % 50;
int i=0, iCountUp=0;
double dMax=0;
for(i=0; i<50; i++)
{
if(da1[i]>=30)
{
iCountUp++;
if(da1[i]>dMax) { dMax=da1[i]; }
}
}
if(iCountUp>=40 && dMax!=0)
{
lcd.clear();
lcd.setCursor(7, 0);
lcd.print(dMax);
lcd.setCursor(7, 1);
lcd.print("EST:");
lcd.print(dMax+3.0);
if((dMax+3)>=37.5)
{
clearData();
makeSoundWithTrouble();
}
else if(dMax>0)
{
clearData();
makeSoundWithOkay();
}
}
}