Covid-19の発生以来、赤外線温度計は、空港、駅、その他の混雑した施設の人々をスキャンするためのスクリーニングツールとして使用されています。これらのスキャンは、Covid-19の潜在的な患者を特定するために使用されています。政府は、オフィス、学校、またはその他の混雑した場所に入る前に、全員をスキャンすることを義務付けました。
したがって、このチュートリアルでは、Arduinoで非接触温度センサーを使用してRFIDベースの非接触温度監視システムを構築します。従業員がRFIDカードをスキャンすると、非接触赤外線温度計で従業員の体温を測定し、その従業員の名前と体温をExcelシートに直接記録します。このプロジェクトの構築には、Arduino Nano、MLX90614、EM18 RFIDリーダー、および超音波センサーを使用します。超音波センサーは、体温計と人との間の距離を計算するために使用されます。温度計は、距離が25CM未満の場合にのみ温度を測定します。これはRFIDベースの出席システムのようなもので、すべての人の体温も記録します。
必要なコンポーネント
- Arduino Nano
- EM-18RFIDモジュール
- MLX90614非接触温度センサー
- 超音波センサー
- ブレッドボード
- ジャンパー線
EM18RFIDリーダーモジュール
125 kHzタグを読み取るために広く使用されているRFIDリーダーの1つは、EM-18RFIDリーダーです。この低コストのRFIDリーダーモジュールは、低消費電力、低フォームファクタ、および使いやすさを特長としています。EM-18リーダーモジュールは、RS232とWEIGAND26の2つの通信インターフェースを介して出力を提供できます。
EM18 RFIDリーダーは、無線信号を送信するトランシーバーを備えています。RFIDタグが送信機の信号範囲に入ると、この信号はカード内のトランスポンダに当たります。タグは、リーダーモジュールによって生成された電磁石フィールドから電力を引き出します。次に、トランスポンダは無線信号を使用可能な形式の電力に変換します。電力が供給されると、トランスポンダは特定のIDなどのすべての情報をRF信号の形式でRFIDモジュールに転送します。次に、このデータはUART通信を使用してマイクロコントローラーに送信されます。
RFIDとタグの詳細については、以前のRFIDベースのプロジェクトを確認してください。
MLX90614赤外線温度計
チュートリアルに進む前に、MLX90614センサーがどのように機能するかを知ることが重要です。市場には多くの温度センサーがあり、大気中の湿度や温度を測定する必要のある多くのアプリケーションで、DHT11センサーとLM35を幅広く使用しています。
以前は、このセンサーをIRサーマルガンで使用していました。このセンサーは、物体に直接接触することなく、特定の物体(周囲温度ではない)の温度を感知できます。ここでも、同じセンサーを使用してオブジェクトの温度を計算しています。MLX90614は、IRエネルギーを使用して物体の温度を検出するセンサーの1つです。赤外線およびIRセンサー回路の詳細については、リンクをたどってください。
MLX90614センサーは、Melexis Microelectronics Integratedシステムによって製造されており、2つのデバイスが組み込まれています。1つは赤外線サーモパイル検出器(センシングユニット)で、もう1つはシグナルコンディショニングDSPデバイス(計算ユニット)です。これは、すべてのオブジェクトがIRエネルギーを放出し、このエネルギーの強度がそのオブジェクトの温度に正比例するというシュテファンボルツマンの法則に 基づいて機能 します。センサー内のセンシングユニットは、対象物から放出されるIRエネルギーの量を測定し、計算ユニットは、17ビットの内蔵ADCを使用してそれを温度値に変換し、I2C通信を介してデータを出力します。 プロトコル。センサーは、物体温度と周囲温度の両方を測定して、物体温度値を較正します。MLX90614センサーの機能を以下に示します。詳細については、MLX90614データシートを参照してください。
回路図
Arduinoを使用したRFIDベースの非接触温度センサーの回路図を以下に示します。
回路図に示すように、モジュールとして使用しているため、接続は非常に簡単で、ブレッドボード上に直接構築できます。誰かがタグをスキャンすると、EM18リーダーモジュールのBUZピンに接続されているLEDがハイになります。RFIDモジュールはデータをコントローラーにシリアルに送信します。したがって、RFIDモジュールの送信機ピンはArduinoの受信機ピンに接続されます。接続は、以下の表でさらに分類されます。
Arduino Nano |
EM18RFIDモジュール |
5V |
Vcc |
GND |
GND |
5V |
SEL |
処方箋 |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
超音波センサー(HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
トリガー |
D6 |
エコー |
コードの説明
超音波センサー、MLX90614、EM18 RFIDリーダーモジュールからデータを読み取り、人の名前と体温をExcelシートに送信できるArduinoコードを作成する必要があります。このコードでは、WireライブラリとMLX90614ライブラリをダウンロードする必要があります。ライブラリをダウンロードしたら、ArduinoIDEに追加します。
この非接触体温モニタリングの完全なコードは、ページの最後に記載されています。ここでは、同じプログラムを小さなスニペットで説明します。
いつものように、必要なすべてのライブラリを含めてコードを開始します。ここでは、Wireライブラリを使用してI2Cプロトコルを使用して通信し、 Adafruit_MLX90614.h ライブラリを使用してMLX90614センサーデータを読み取ります。
#include
次に、接続した超音波センサーのピンを定義します
const int trigPin = 5; const int echoPin = 6;
その後、RFIDモジュール、超音波センサー、およびMLX90614センサーデータを保存する変数を定義します。
長期間; int距離; 文字列RfidReading; float TempReading;
void setup() 関数内で、デバッグ用のシリアルモニターとMLX90614温度センサーを初期化します。また、TrigピンとEchoピンを出力ピンと入力ピンとして設定します。
void setup(){Serial.begin(9600); //シリアルモニターを使用してシリアル通信を初期化しますpinMode(trigPin、OUTPUT); pinMode(echoPin、INPUT); mlx.begin(); Initialize_streamer(); }
void loop() 関数内で、人とセンサーの間の距離を計算し、距離が25cm以下の場合は、 reader() 関数を呼び出してタグをスキャンします。
void loop(){digitalWrite(trigPin、LOW); delayMicroseconds(2); digitalWrite(trigPin、HIGH); delayMicroseconds(10); digitalWrite(trigPin、LOW); 期間= pulseIn(echoPin、HIGH); 距離=継続時間* 0.0340 / 2; if(distance <= 25){reader(); }
void reader() 関数は、RFIDタグカードを読み取るために使用されます。カードがリーダーモジュールに近づくと、リーダーモジュールはシリアルデータを読み取り、入力変数に格納します。
void reader(){if(Serial.available()){count = 0; while(Serial.available()&& count <12){input = Serial.read(); count ++; delay(5);
次の行で、スキャンしたカードデータを事前定義されたタグIDと比較します。タグIDがスキャンしたカードと一致する場合は、その人の体温を読み取り、その人の体温と名前をExcelシートに送信します。
if(input == tag)フラグ= 1; else flag = 0; count ++; RfidReading = "Ashish"; }} if(flag == 1){temp_read(); Write_streamer(); }
temp_read() 関数内で、摂氏でMLX90614センサーデータを読み取り、それを 「TempReading」 変数に 格納し ます。
void temp_read(){TempReading = mlx.readObjectTempC();}
ハードウェアとソフトウェアの準備ができたら、プログラムをArduino NanoBoardにアップロードします。プログラムがアップロードされるとすぐに、超音波センサーが距離の計算を開始します。計算された距離が40cm未満の場合、温度とカードを読み取ります。
ArduinoコントローラーからExcelシートへのセンサーデータの保存
次に、Excelシートにデータを送信するために、PLX-DAQを使用します。これは、ArduinoからラップトップまたはPCのExcelシートに直接値を書き込むのに役立つExcelプラグインソフトウェアです。リンクを使用してファイルをダウンロードします。ダウンロード後、ファイルを解凍し、.exeファイルをクリックしてインストールします。デスクトップにPLS-DAQという名前のフォルダが作成されます。
次に、デスクトップフォルダから「PLX-DAQスプレッドシート」ファイルを開きます。Excelでマクロが無効になっている場合は、次の画像に示すようなセキュリティブロックが表示されます。
[ オプション]-> [コンテンツを有効にする]-> [完了]-> [OK] をクリックして、マクロを有効にします。この後、次の画面が表示されます。
次に、ボーレートを「9600」として選択し、Arduinoが接続されているポートを選択し、[接続]をクリックしてデータストリーミングを開始します。次の図に示すように、値がログに記録され始めるはずです。
これは、非接触温度スクリーニングデバイスを構築し、Excelシートにデータを保存する方法です。
作業ビデオと完全なコードは、ページの最後にあります。