モノのインターネット(IoT)の世界では、私たちの生活に革命を起こすためのすべてのテクノロジーが揃っているので、どこからでも制御および監視できるシステムを開発することは素晴らしいアイデアです。ホームセキュリティのための優れたセキュリティシステムやカメラはたくさんありますが、それらは非常に高価なので、今日は低コストのシンプルなRaspberry Piベースの侵入者アラートシステムを構築します。これは、電子メールで警告するだけでなく、侵入者が何かを検出した場合。
このIoTベースのプロジェクトでは、PIRセンサーとPIカメラを使用してホームセキュリティシステムを構築します。このシステムは、侵入者の存在を検出し、警告メールを送信することでユーザーにすばやく警告します。このメールには、Piカメラで撮影された侵入者の写真も含まれます。Raspberry Piは、システム全体を制御するために使用されます。このシステムは、自宅やオフィスの正面玄関に設置でき、インターネット経由の電子メールを使用して、世界中のどこからでも監視できます。
必要なコンポーネント:
- ラズベリーパイ
- Piカメラ
- PIRセンサー
- 導いた
- ブレッドボード
- 抵抗器(1k)
- 接続線
- 電源
このプロジェクトで使用されるすべてのコンポーネントは、ここから購入できます。
作業説明:
このプロジェクトの作業は非常に簡単です。PIRセンサーは人の存在を検出するために使用され、Piカメラは存在を検出したときに画像をキャプチャするために使用されます。
誰かまたは侵入者がPIRセンサーの範囲内に入ると、PIRセンサーはRaspberryPiを介してPiカメラをトリガーします。Raspberry piは、画像をクリックして保存するコマンドをPiカメラに送信します。その後、Raspberry Piはメールを作成し、最近クリックされた画像とともに定義されたメールアドレスに送信します。メールには、侵入者のメッセージと写真が添付されています。ここでは「添付ファイルを見つけてください」というメッセージを使用しました。これは、最後に記載されているコードで適宜変更できます。
ここで、写真はRaspberry Piに保存され、名前にはエントリの日時が含まれています。写真名を見ただけで侵入者の侵入日時を確認できるように、下の画像を確認してください。Pi Cameraを初めて使用する場合は、PiCameraを使用した訪問者監視システムに関する以前のチュートリアルを確認してください。
PIRセンサーのポテンショメーターを使用して、このシステムの検出範囲または距離を調整することもできます。範囲を調整するには、ここでPIRセンサーの詳細を確認し、PIRセンサーベースの盗難警報も確認してください。
回路の説明:
この侵入者アラートシステムでは、PiカメラモジュールとPIRセンサーをRaspberry Pi3に接続するだけで済みます。PiCameraはRaspberryPiのカメラスロットに接続され、PIRはGPIOピン18に接続されます。LEDも1k抵抗を介してGPIOピン17に接続されます。
Raspberry Piの構成とプログラミングの説明:
ここでは、プログラムにPython言語を使用 しています。コーディングする前に、ユーザーはRaspberryPiを構成する必要があります。RaspberryPiの使用開始とPiでのRaspbianJessieOSのインストールと構成に関する2つのチュートリアルを以下に示します。
- RaspberryPi入門-はじめに
- RaspberryPi入門-構成
RaspberryPiにRaspbianOSを正常にインストールした後、このプロジェクトをRaspberrypiで実行するためにPiカメラライブラリファイルをインストールする必要があり ます。これを行うには、指定されたコマンドに従う必要があります。
$ sudo apt-get install python-picamera $ sudo apt-get installpython3-picamera
その後、ユーザーは Raspberry Piソフトウェア構成ツール(raspi-config)を使用してRaspberryPiカメラを有効にする必要があります 。
$ sudo raspi-config
次に、[カメラ を有効にする]を選択して[有効にする]を選択します 。
次に、ユーザーは sudo restart を発行して、 Raspberry Piを再起動する必要 があります。これにより、新しい設定を実行できます。これで、Piカメラを使用する準備が整いました。
Pi Cameraをセットアップしたら、メールを送信するためのソフトウェアをインストールします。ここでは、コマンドラインまたはPythonスクリプトを使用してメールを送信するための簡単で優れたソリューションである ssmtp を使用しています。SMTPを使用してメールを送信するには、次の2つのライブラリをインストールする必要があります。
sudoapt-get install ssmtp sudo apt-get installmailutils
ライブラリをインストールした後、ユーザーは ssmtp.conf ファイルを開き、下の図に示すようにこの構成ファイルを編集してから、ファイルを保存する必要があります。ファイルを保存して終了するには、「CTRL + x」、「y」、「Enter」の順に押します。
sudo nano /etc/ssmtp/ssmtp.conf
root = YourEmailAddress mailhub = smtp.gmail.com:587 hostname = raspberrypi AuthUser = YourEmailAddress AuthPass = YourEmailPassword FromLineOverride = YES UseSTARTTLS = YES UseTLS = YES
以下のコマンドを発行してテストメールを送信することでテストすることもできます。すべてが正常に機能している場合は、上記のメールアドレスにメールが届きます。
echo "Hello saddam" --mail -s "Testing…" [email protected]
このプロジェクトのPythonプログラムは、すべての操作を実行するために非常に重要な役割を果たします。まず、電子メールに必要なライブラリを含め、変数を初期化し、PIR、LED、その他のコンポーネントのピンを定義します。単純な電子メールを送信するには、smtplibで十分ですが、件名や添付ファイルなどを使用してよりクリーンな方法でメールを送信する場合は、MIME(Multipurpose Internet Mail Extensions)を使用する必要があります。
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 importエンコーダーfromemail.mime.image import MIMEImage
その後、メールを初期化し、メールアドレスとメッセージを定義します。
fromaddr = "[email protected]" toaddr = "[email protected]" mail = MIMEMultipart()mail = fromaddr mail = toaddr mail = "Attachment" body = "添付ファイルを見つけてください"
次に、メールを送信するための def sendMail(data) 関数を作成しました。
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、 "your password")text = mail。 as_string()server.sendmail(fromaddr、toaddr、text)server.quit()
関数 defcapture_image() は、侵入者の画像 を時間と日付でキャプチャするために作成され ます。
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 = 180 camera.awb_mode = 'auto' camera.brightness = 55
そして最後に、PIRセンサーの出力を読み取り、それが高くなると、Raspberry Piは capture_image() 関数を呼び出して侵入者の画像をキャプチャし、侵入者の画像を添付したアラートメッセージを送信します。私たちは、使用している のsendmail() insdie capture_image() メールを送信する機能を。
while 1:if gpio.input(pir)== 1:gpio.output(led、HIGH)capture_image()while(gpio.input(pir)== 1):time.sleep(1)else:gpio.output(導かれた、低い)time.sleep(0.01)
したがって、このRaspberry Piセキュリティシステムの仕組みとして、超音波センサーまたはIRセンサーを使用して泥棒や侵入者の存在を検出することもできます。以下の完全なコードとデモビデオをさらに確認してください。