- 必要なコンポーネント
- MLX90614とRaspberryPiのインターフェース
- RaspberryPiとインターフェースするPiカメラ
- RaspberryPiを使用したSMTP電子メールの設定
- MLX90614から温度を読み取り、画像付きの電子メールを送信するPiのPythonコード
- PIによる温度測定とメールアラートの送信
コロナの発生以来、ウイルスに感染しているかどうかを特定することは非常に困難になっています。この問題を解決するために、体温を測定するために温度装置がよく使用されます。これらのデバイスには、物理的な接触なしに体温を測定できる非接触IR温度センサーがあります。
市場には多くの温度ガンがありますが、温度が特定の制限を超えたときに適切な措置を講じるために、高官に警告や電子メール通知を行うものはありません。このプロジェクトでは、IR温度センサーをインターフェースし、特定の人物の温度が設定値を超えた場合に、その人物の画像を含む電子メールアラートを送信します。
今日の世界では、モノのインターネットは、リモートで監視および制御できる多数のシステムを開発することにより、私たちの生活に革命をもたらしています。このプロジェクトでは、IoTの力を活用し、Raspberry Pi、MLX90614、およびPiCameraを使用して電子メールアラートを備えた温度監視デバイスを構築します。
以前、体温測定用に他の同様の温度計も作成しました。ここで見つけることができます。
- MAX30205を使用したArduinoベースのデジタル体温計
- RFIDとArduinoをMLX90614で使用した非接触体温スクリーニング
- Arduinoを使用した非接触赤外線温度計ガン
- Arduinoを使用したウォールマウント非接触温度計
- AndroidアプリケーションでArduinoを使用したスマート温度計
必要なコンポーネント
ここでは、Raspberry Pi 3 RaspbianOSを使用しています。すべての基本的なハードウェアとソフトウェアの要件については前に説明しましたが、必要なものを除いて、RaspberryPiの概要とRaspberryPIのLEDの点滅で調べることができます。
- Raspberry Pi 3(どのバージョンでも問題ありません)。
- パイカメラ。
- MLX90614-IR温度センサー。
- 接続線。
- ブレッドボード。
- 電源(5V、2A / 3A)
このプロジェクトは、プロジェクトをいくつかの部分に分割すれば簡単です。
- MLX90614とRaspberrypiの理解とインターフェース。
- PiCameraを使い始める。
- Raspberrypiを使用したSMTP電子メールの設定。
- 最終的なコードの開発と理解。
Raspberry Pi: Raspberry Piは、教育目的で設計されたクレジットカードサイズのコンピューターです。その価格と、オンボードWi-Fi、Bluetooth、プログラム可能なGPIOヘッダーなどの驚くべき仕様、およびアプリケーションを作成するための可能なオプションの数により、開発者や電子機器愛好家に採用されました。起動プロセスを開始するには、RaspberryPiの概要とRaspberryPILEDの点滅で確認できます。
MLX90614 IR温度センサー:市場には、温度と湿度を提供できるセンサーが多数あります。このセンサーが他のすべてのセンサーと異なる点は、オブジェクトの温度を提供し、他のセンサーが周囲温度を提供できることです。DHT11センサーとLM35は、大気の湿度や温度を測定する必要のある多くのアプリケーションに幅広く使用されています。
ただし、ここでは、物理的な接触を必要とせず、周囲温度の代わりに物体の温度を測定できる温度ガンを作成するために、IRベースのMLX90614を使用します。赤外線およびIRセンサー回路の詳細については、リンクをたどってください。
MLX90614センサーは、Melexis Microelectronics Integrated Systemsによって製造されており、温度測定用の赤外線サーモパイルセンサーの原理に基づいて動作します。これらのセンサーは、温度出力を提供するために内部に埋め込まれた2つのユニットで構成されています。最初のユニットは赤外線検出器を備えたセンシングユニットであり、その後にデジタル信号処理(DSP)を使用してデータの計算を実行する2番目のユニットが続きます。このセンサーは、黒体から放射される電力を温度で説明するシュテファン・ボルツマンの法則に基づいて動作します。簡単に言えば、どの物体もIRエネルギーを放出し、その強度はその物体の温度に正比例します。 MLX90614センサーは計算値を17ビットADCに変換しますI2C通信プロトコルを使用してアクセスできます。これらのセンサーは、0.02°Cの分解能キャリブレーションで周囲温度と物体温度を測定します。MLX90614センサーの機能の詳細については、MLX90614データシートを参照してください。
MLX90614の機能:
- 動作電圧:3.6V〜5V
- 周囲温度範囲:-40°C〜125°C
- 対象物の温度範囲:-70°C〜-382.2°C
- 分解能/キャリブレーション:0.02°C
- 17ビットADC。
- I2C通信。
MLX90614とRaspberryPiのインターフェース
まず、MLX90614とのインターフェイスを正常に行うために必要なライブラリとパッケージをダウンロードします。
ステップ1: RaspberryPi設定からI2Cを有効にします。 sudo raspi-config と
入力し、インターフェイスオプションに移動します。
I2Cオプションに移動して有効にします。
ステップ2:https: //pypi.org/project/PyMLX90614/#filesにアクセスしてMLX90614のパッケージ/ライブラリをダウンロードし、右クリックしてリンクアドレスをコピーします。
RPIターミナルに移動し、wgetと入力して、以下のようにコピーしたリンクを貼り付けます。
Wget
ライブラリをzipファイル名 「PyMLX90614-0.0.3.tar.gz」 でダウンロードします。次に、拡張子が tar -xf file nameのフォルダーを抽出するか、以下のコマンドを使用して同じ操作を行います。
tar -xf PyMLX90614-0.0.3.tar.gz
次に、以下のコマンドを使用して、いくつかの必要なパッケージをインストールする必要があります。
sudo apt-get install python-setuptools sudo apt-get install -y i2c-tools
次に、 cd PyMLX90614-0.0.3 / を使用して抽出されたフォルダーに移動し 、コマンドを実行します。
sudo python setup.py install
手順の実行が完了したら、以下の回路を使用してMLX90614センサーをRaspberrypiに接続するだけです。以下のRaspberryPi MLX90614回路は、フリッツを使用して設計されています。
接続とインストールが適切に行われている場合は、コマンド i2cdetect -y 1 を使用して、I2Cバスでセンサーアドレス値を取得しているかどうかを確認でき ます。
すべてが期待どおりに機能する場合は、端末に以下の出力が表示されます。
0x5Aは、データシートに記載されているセンサーのアドレスを表します。同じことを示すデータシートスニペットを以下に示します。
次に、make a new file name mlxread.py を実行し、センサーからのデータをチェックするサンプルプログラムを作成します。そのためのコードを以下に示します。
from smbus2 import SMBus from mlx90614 import MLX90614 bus = SMBus(1)sensor = MLX90614(bus、address = 0x5A)print "Ambient Temperature:"、sensor.get_ambient()print "Object Temperature:"、sensor.get_object_1()bus。閉じる()
ファイルが作成されたら、Python拡張子 pythonmlxread.pyで実行します。 私が受け取った出力を以下に示します。プログラムを複数回実行して、手を動かすと値が変化するかどうかを確認しました。
上の画像から確認できるように、MLX90614とRaspberryPiのインターフェイスに成功しました。
RaspberryPiとインターフェースするPiカメラ
ステップ1:RaspberryPi設定からカメラを有効にします。
sudo raspi-config と入力し、インターフェイスオプションに移動します。
カメラに移動し、カメラを有効にします。
次に、以下に示すようにカメラモジュールを接続します。
ステップ2:カメラが正しく接続されているかどうかを確認するために、テスト画像を取得してデスクトップに保存します(フルGUI Raspbian OSバージョンを使用しています)
raspistill -o Desktop / image.jpg
これにより、カメラがimageという名前の画像をクリックして、デスクトップに保存できるようになります。
RaspberryPiを使用したSMTP電子メールの設定
このセクションでは、温度が事前定義された設定値を超えたときにアラートメールを送信するようにGMAILアカウントを設定する方法を理解します。
SMTPは、TCP / IPを使用した電子メールサービスを担当するアプリケーション層プロトコルであるSMTPです。これは、電子メールメッセージを送受信する機能を提供し、インターネット技術特別調査委員会(IETF)によって管理されます。
このチュートリアルはGMAILアカウントでのみ機能します。エラーが発生しないように、新しいGmailアカウントを使用することをお勧めします。
デフォルトでは、GoogleはユーザーがPythonスクリプトを使用してメールを送信することを許可していません。これを機能させるには、アカウント設定に移動して、安全性の低いアプリを有効にする必要があります。
ステップ1:右隅に移動し、[Googleアカウントの管理]をクリックします。
ステップ2:[セキュリティ]をクリックし、[安全性の低いアプリアクセス]まで下にスクロールします。
ステップ3:安全性の低いアプリを有効にします。
ステップ4:他のメールIDでも繰り返して、Pythonスクリプトからメールを送受信します。
ステップ5:必要なパッケージをダウンロードします。
apt-getをssmtpをインストールsudoの 須藤はapt-getをインストールMailutilsにします
コピー&ペーストによるコマンドの実行でエラーが発生した場合は、手動で入力してください。
ステップ6:すべてのライブラリのインストールが完了したら、送信者の電子メールの詳細を入力する必要がある ssmtp.confファイルに 変更を加える必要があり ます
行く sudoのナノ/etc/ssmtp/ssmtp.conf
最後までスクロールして、これを貼り付けます。
mailhub = smtp.gmail.com:587 AuthUser = YourEmailAddress AuthPass = YourEmailPassword UseSTARTTLS = YES UseTLS = YES
参考までに、端末のスクリーンショットも共有しました。
ブレッドボードを使用して接続しました。MLX90614とカメラを接続すると、ハードウェアのセットアップは彼のようになります。
MLX90614から温度を読み取り、画像付きの電子メールを送信するPiのPythonコード
Pythonプログラムは、センサーデータを読み取り、それをしきい値と比較し、電子メールを承認してから、画像が添付された電子メールを送信するために必要なすべての操作を実行します。最初に、ライブラリ、送信者、および受信者の電子メール宣言が必要になります。電子メールはsmtplibで送信できますが、件名、本文、その他の添付ファイルを使用して電子メールを整理する必要があります。これは、Multipurpose Internet Mail Extensions(MIME)を使用して行われます。完全なコードは、このページの下部にあります。
import RPi.GPIO as gpio import picamera import time import smtplib from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText from email.MIMEBase import MIMEBase from email.mime.image import MIMEImage from smbus2 import SMBus from mlx90614 import MLX90614
その後、送信者の電子メールアドレス、受信者の電子メールアドレス、電子メールの件名、本文、および添付メッセージを定義します。
fromaddr = "[email protected]"#それに応じてメールアドレスを変更しますtoaddr = "[email protected]" mail = MIMEMultipart()mail = fromaddr mail = toaddr mail = "温度値がアラートを超えています" body = "添付ファイルを見つけてください画像"
次に、電子メールを送信できる関数を作成します。
def sendMail(data):mail.attach(MIMEText(body、 'plain'))print data dat = '%s.jpg'%data print dat attachment = open(dat、 'rb')image = MIMEImage(attachment.read ())attachment.close()mail.attach(image)server = smtplib.SMTP( 'smtp.gmail.com'、587)server.starttls()server.login(fromaddr、 "test12345 @")text = mail。 as_string()server.sendmail(fromaddr、toaddr、text)server.quit()
次に、電子メールで送信された画像をキャプチャし、その画像をデータと時間とともに保存する関数を作成します。
defcapture_image():data = time.strftime( "%d_%b_%Y-%H:%M:%S")camera.start_preview()time.sleep(5)print data camera.capture( '%s。 jpg '%data)camera.stop_preview()time.sleep(1)sendMail(data)
次に、PiCameraでいくつかの設定を行います。
camera = picamera.PiCamera()camera.rotation = 0 camera.awb_mode = 'auto' camera.brightness = 55
そして最後に、無限に実行されるwhile(1)ループがあります。MLX90614温度センサーからデータを読み取り、温度が設定値を超えると、 capture_image() 関数が呼び出され、 sendMail(data) 関数が呼び出されて画像キャプチャが電子メールで送信されます。
PIによる温度測定とメールアラートの送信
ハードウェアとソフトウェアの準備ができたら、piでPythonコード(以下を参照)を実行するだけです。以下に示すように、センサーから読み取った温度の値を出力します。
オブジェクトの温度がしきい値温度を超えると、Pythonプログラムがカメラから画像を取得し、ラズベリーパイに保存して、電子メールで共有します。ラズベリーパイから送信されるサンプルの電子メールを以下に示します。
プロジェクトの完全な作業は、以下にリンクされているビデオでも見ることができます。記事を楽しんでいただければ幸いです。ご不明な点がございましたら、下のコメントに残してください。または、フォーラムを使用して質問を投稿し、コミュニティに連絡することもできます。