CoroFence-熱検出器🖖
コンポーネントと消耗品
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
アプリとオンラインサービス
> ![]() |
| |||
![]() |
|
このプロジェクトについて
現在の世界的大流行の危機
世界保健機関(WHO)が感染の拡大を防ぐために推奨しているように、「定期的な手洗い、咳やくしゃみの際の口と鼻の覆い、肉や卵の徹底的な調理。咳やくしゃみなどの呼吸器疾患の症状を示す人との密接な接触は避けてください」。
空港を旅行している間、感染した可能性のある旅行者を発見するためにサーマルスキャナーを使用するのが一般的な習慣になりました。
自家製の熱検出器
現在の状況では、保護レイヤーとしてリモートで作業を継続することが課題となっていますが、状況が制御されるまで、他の人との接触を避ける必要があります。
主なアイデアは、家の外に簡単に配置できる赤外線カメラ検出器を構築することです/ lab / office / shutdown ...安全なゾーンで保護できるようにします。
入力センサー
- グリッドアイ
「特定の接点の温度のみを測定する従来の熱センサーとは異なり、パナソニックのMEMSテクノロジーに基づくGrid-EYEは、接触なしで指定された領域全体の温度を測定できます;つまり、「非接触サーモパイルアレイセンサー」です。 64ピクセルは、シリコンレンズによって提供される60°の視野角にわたって正確な温度測定を実現します。 Grid-EYEはI²C通信インターフェースを使用しており、1または10フレーム/秒の速度で温度測定を可能にします。割り込み機能もあります。」
<図>
- 寸法:11.6 x 4.3 x 8.0mm(L x H x W)
- 動作電圧:3.3Vまたは5.0V(P / Nによって異なります)
- 測定対象物の温度範囲:-20°C〜100°C(P / Nによる)
- 視野(FoV):60°
- ピクセル数:64(垂直8 x水平8)
- 外部インターフェース:I²C(高速モード)
- フレームレート:10フレーム/秒または1フレーム/秒
このセンサーが1.5メートルからの人間の検出に最適であり、5/7メートルのターゲットを持っている理由。
- PIR
動きが検出されたときに赤外線カメラもアクティブにしたいので、トリガーも必要です。したがって、PIRセンサーは完璧な選択です。
「PIRセンサーは、センサーから約10m以内を移動する人間を検出します。実際の検出範囲は5mから12mであるため、これは平均値です。PIRは基本的に、赤外線レベルを検出できるパイロ電気センサーで構成されています。 。個人がそのエリアを出たり入ったりしたときに発見する必要のある多くの重要なプロジェクトやアイテムの場合。PIRセンサーは信じられないほど優れており、フラットな制御と最小限の労力で、レンズ範囲が広く、インターフェースが簡単です。」
<図>
以下のように物事を追加します:
<図>
接続が完了したら(下の図を参照)、次のように入力センサー用のボックスを準備します。
<図>
ビジュアル&サウンド出力
- RGB LEED
サーマルカメラで取得したときにいくつかの色を表示するようにプログラムされる基本的なRGBLEDを使用して、瞬時に温度フィードバックを取得したいと考えています。
- ブザー
温度が通常の37°Cを超えると、起こりうる危険について通知するために警報音が鳴ります。
<図>
<図>

最終テスト:
温度が正常で存在が検出されている間、緑色のライトが表示されます
<図>
//異なる色を設定できます
if(tempC <16){
setColor(0、0、255); //青
} else if(tempC <15){
setColor(80、0、80); //シアン
} else if(tempC <30){
setColor(0、255、255); // aqua
} else if(tempC <36){
setColor(0、255、0); //緑
} else if(tempC <38){
setColor(255、255、0); //黄色
} else if(tempC <39){
setColor(255、20、20); //マゼンタ
}
音のアラームと赤い色をトリガーするには、後で家事をしているときに偶然発見されたように、衣服にスチームアイロンを使用して適切にテストします。
<図>
長生きして繁栄する <図>

または、NodeJSインターフェースで温度を表示し、このターミナルアプリケーションとのシリアル接続でArduinoからデータを取得することもできます。
今後の計画は、dasプラットフォームとのデータ統合を拡張し、モデリングを開始することです。
@dasDataでライブストリームをフォロー
https://dasdata.co/camera/
<図>
銀河系のこの時期にどこにいても安全であることを願っています!
コード
- コロナフェンス
コロナフェンス C / C ++
#include#include GridEYE grideye; String heatData; int ledState; unsigned long Meetime; uint16_t秒=3142; // max ==65535int bluePin =8; int greenPin =9; int redPin =10; int buzzPin =11; // LEDintのピンを選択しますinputPin =12; //入力ピンを選択します(PIRセンサー用)int pirState =LOW; //動きが検出されないと仮定して開始しますintval =0; //ピンstatusfloattempCを読み取るための変数; void setup(){pinMode(redPin、OUTPUT); pinMode(greenPin、OUTPUT); pinMode(bluePin、OUTPUT); pinMode(buzzPin、OUTPUT); // LEDを出力として宣言しますpinMode(inputPin、INPUT); //センサーを入力として宣言します//優先I2Cオブジェクトを開始しますWire.begin(); //ライブラリはI2Cの「ワイヤー」を想定していますが、grideye.begin();が好きな場合は、begin()で他のものを渡すことができます。 Serial.begin(115200); } void loop(){char receiveVal; if(Serial.available()> 0){receiveVal =Serial.read(); if(receiveVal =='1'){ledState =1; } else ledState =0; } val =digitalRead(inputPin); //入力値を読み取りますif(val ==HIGH){//入力がHIGHかどうかを確認します// digitalWrite(ledPin、HIGH); // LEDをオンにするif(pirState ==LOW){meetime =millis(); Serial.println( "モーションが検出されました!"); //出力の変更のみを出力し、状態はpirState =HIGHではありません。 getHeatmap(); if(tempC <16){setColor(0、0、255); //青} else if(tempC <16){setColor(80、0、80); //シアン} else if(tempC <20){setColor(0、255、255); //アクア} else if(tempC <24){setColor(0、255、0); //緑} else if(tempC <28){setColor(255、255、0); //黄色} else if(tempC <37){setColor(255、20、20); //マゼンタ} //クライアントから着信するバイトを読み取ります:// char thisChar =client.read(); //バイトをクライアントにエコーバックします:// char msg [10] =""; Serial.println(heatData); delay(1500); }} else {// digitalWrite(ledPin、LOW); // LEDをオフにするif(pirState ==HIGH){// noTone(buzzPin);をオフにしました//サウンドを停止します... Serial.println( "モーションが終了しました!"); setColor(0、0、0); //なしmeetime =0; //出力の変更のみを出力し、状態はpirState =LOWではありません。 }}} void getHeatmap(){//各ピクセルの温度値を浮動小数点の摂氏で出力します//コンマで区切りますheatData =""; float previousVal =0; for(unsigned char i =0; i <64; i ++){if(previousVal> 37){// Serial.println( "高温!");をオンにしました。 setColor(255、0、0); //赤いトーン(buzzPin、1000); // 1KHzの音声信号を送信します...} tempC =grideye.getPixelTemperature(i); heatData + =tempC + String( "、"); previousVal =tempC; } //各フレームを改行Serial.println();で終了します。 //処理に噛む時間を与えます} void setColor(int red、int green、int blue){#ifdef COMMON_ANODE red =255 --red;緑=255-緑;青=255-青; #endif analogWrite(redPin、red); analogWrite(greenPin、green); analogWrite(bluePin、blue); }
コロナフェンス
Arduino IDE、Visual Studio 2019、NodeJSのコードhttps://github.com/dasdata/coronafence 回路図

製造プロセス