Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARM皮質ベースの人気のある開発ボードです。Raspberry Piは、処理速度とメモリを備えているため、通常のPCのように一度にさまざまな機能を実行できるため、手のひらでミニコンピューターと呼ばれます。一連のRaspberryPiチュートリアルを作成しました。最初から始めて、RaspberryPiを使用して高レベルのIoTプロジェクトを作成します。
今回は、次の興味深いプロジェクトである画像キャプチャ機能を備えた訪問者監視システムを紹介します。ここでは、PiカメラとRaspberry Piを接続して、ゲートまたはドアから入ったすべての訪問者の画像をキャプチャしています。このプロジェクトでは、誰かがゲートに到着するたびに、ボタンを押してゲートを開く必要があります。ボタンを押すとすぐに、その人の写真がキャプチャされ、日付とともにシステムに保存されます。とエントリの時間。これは、セキュリティと監視の目的で非常に役立ちます。
このシステムは、訪問者の入場記録が維持され、従業員の出席記録が維持されるオフィスや工場で非常に役立ちます。この監視システムは、訪問者のエントリと出席全体をデジタル化して自動化し、手動で維持する必要はありません。このシステムは、本人が操作することも、訪問者のためにボタンを押すオペレーターがいることもあります。これは、Piカメラの使用を開始し、RaspberryPiとインターフェイスするための優れたプロジェクトです。
必要なコンポーネント:
- ラズベリーパイ
- Piカメラ
- 16x2 LCD
- DCモーター
- IC L293D
- ブザー
- 導いた
- ブレッドボード
- 抵抗器(1k、10k)
- コンデンサ(100nF)
- ボタンを押す
- 接続線
- 10kポット
- 電源
作業説明:
このRaspberryPi モニタリングシステムの操作は簡単です。この場合、プッシュボタンが押されたとき、またはトリガーされたときに、Piカメラを使用して訪問者の画像をキャプチャします。DCモータはゲートとして使用されます。誰かがその場所に入りたいときはいつでも、彼/彼女はボタンを押す必要があります。ボタンを押すと、RaspberryPiはPiCameraにコマンドを送信して、画像をクリックして保存します。その後、ゲートはしばらく開いてから再び閉じます。ブザーはボタンが押されたときに音を生成するために使用され、LEDはRaspberry Piがプッシュボタンの押下を受け入れる準備ができていることを示すために使用されます。つまり、LEDがオンのとき、システムは操作の準備ができています。
ここでは、訪問者の写真がRaspberry Piに保存され、名前自体にエントリの日時が含まれています。撮影した写真の名前として日付と時刻を割り当てているので、他の場所で日付と時刻を別々に保存する必要がないことを意味します。下の画像を参照してください。ここでは、訪問者としてボックスの画像を撮影しました。最後のビデオでその完全なデモンストレーションを確認してください。
回路の説明:
このラズベリーパイビジター監視システムの回路は非常にシンプルです。ここでは、液晶ディスプレイ(LCD)を使用して、訪問者のエントリの日時やその他のメッセージを表示しています。 LCDは4ビットモードでRaspberryPiに接続されています。 LCDのピン、つまりRS、EN、D4、D5、D6、およびD7は、Raspberry Pi GPIOピン番号18、23、24、16、20、および21に接続されています。Piカメラモジュールは、RaspberryPiのカメラスロットに接続されています。表示のために、ブザーがRaspberryPiのGPIOピン26に接続されています。 LEDは1k抵抗を介してGPIOピン5に接続され、プッシュボタンはアースに対してGPIOピン19に接続され、カメラをトリガーしてゲートを開きます。DCモーター(ゲートとして)モータードライバーIC(L293D)を介してRaspberry PiGPIOピン17および27に接続されています。残りの接続は回路図に示されています。
Pi Cameraを接続するには、Pi Cameraのリボンケーブルをカメラスロットに挿入し、RPiボードのコネクタのタブを少し引き上げてリボンケーブルをスロットに挿入し、タブをもう一度軽く押し下げてリボンケーブルを固定します。
Raspberry Piの構成とプログラミングの説明:
ここでは、プログラムにPython言語を使用 しています。コーディングする前に、ユーザーはRaspberryPiを構成する必要があります。RaspberryPiの使用開始とPiでのRaspbianJessieOSのインストールと構成に関する2つのチュートリアルを以下に示します。
- RaspberryPi入門-はじめに
- RaspberryPi入門-構成
RaspberryPiにRaspbianOSを正常にインストールした後、このプロジェクトをRaspberrypiで実行するためにPiカメラライブラリファイルをインストールする必要があります。これを行うには、指定されたコマンドに従う必要があります。
$ sudo apt-get install python-picamera $ sudo apt-get install python3-picamera
その後、ユーザーはRaspberry Piソフトウェア構成ツール(raspi-config)を使用してRaspberryPiカメラを有効にする必要があります。
$ sudo raspi-config
次に、[カメラを有効にする]を選択して[有効にする]を選択します。
次に、ユーザーは sudo restart を発行して、Raspberry Piを再起動する必要があります。これにより、新しい設定を実行できます。これで、Piカメラを使用する準備が整いました。
$ sudo再起動
このプロジェクトのPythonプログラムは、すべての操作を実行するために非常に重要な役割を果たします。まず、必要なライブラリを含め、変数を初期化し、LCD、LED、モーター、その他のコンポーネントのピンを定義します。
import RPi.GPIO as gpio import picamera import time m11 = 17 m12 = 27 led = 5 buz = 26 button = 19 RS = 18…………..。
関数 defcapture_image() は、訪問者の画像を日時とともにキャプチャするために作成されます。
defcapture_image():lcdcmd(0x01)lcdprint( "お待ちください.."); data = time.strftime( "%d_%b_%Y \%H:%M:%S")camera.start_preview()time.sleep(5)print data camera.capture( '/ home / pi / Desktop / Visitors /%s.jpg'%data)camera.stop_preview()lcdcmd(0x01)lcdprint( "Image Captured")lcdcmd(0xc0)lcdprint( "Successfully")time.sleep(2)
ここでゲートとして使用されるDCモーターを駆動するための関数 defgate() が記述されています。
def gate():lcdcmd(0x01)lcdprint( "Welcome")gpio.output(m11、1)gpio.output(m12、0)time.sleep(1.5)gpio.output(m11、0)gpio.output(m12 、0)time.sleep(3)gpio.output(m11、0)gpio.output(m12、1)time.sleep(1.5)gpio.output(m11、0)gpio.output(m12、0)lcdcmd(0x01 ); lcdprint( "ありがとう")time.sleep(2)
以下のようないくつかの機能は、LCDのために定義されている デフ開始() 関数は、LCDを初期化するために使用され、 DEF lcdcmd(CH) 関数は、LCDにコマンドを送信するために使用される デフlcdwrite(CH) 関数はLCDとのデータ送信のために使用される DEF lcdprintを(STR ) 関数は、データ文字列をLCDに送信するために使用されます。これらの機能はすべて、後で指定するコードで確認できます。
次に、LCDとPi Cameraを初期化し、 while ループを使用 し てプッシュボタンを継続的に読み取ります。プッシュボタンを押すたびに、入場用のゲートを開くために、訪問者の画像がキャプチャされ、日付と時刻とともにRaspberry piに保存され、ゲートが開かれます。以下の完全なコードとデモンストレーションビデオを確認してください。
一方1:d = time.strftime( "%d%b%Y")t = time.strftime( "%H:%M:%S")lcdcmd(0x80)lcdprint( "Time:%s"%t) lcdcmd(0xc0)lcdprint( "Date:%s"%d)gpio.output(led、1)if gpio.input(button)== 0:gpio.output(buz、1)gpio.output(led、0) time.sleep(0.5)gpio.output(buz、0)capture_image()gate()time.sleep(0.5)
このカメラ監視システムには、アップグレードの余地がたくさんあります。たとえば、ソフトウェアをComputer VisionまたはOpenCVに組み込んで、キャプチャした訪問者の画像をすでに保存されている画像と照合し、一致するものが見つかった場合にのみ訪問者を承認できます。許可された人のためにゲートを開きます。