Help us understand the problem. What is going on with this article?

RaspberryPi で人感カメラを作ってみた

More than 1 year has passed since last update.

開始

IoT事業を始める前のスバイクとして、
人感カメラを作ってみました。
人が席に座ると、写真が撮られ、ブザーも鳴なります。
同時にSlackにメッセージを送ります。

事前準備

今回使った器材

・Raspberry Pi Model B+
・Raspberry Pi カメラモジュール
・Raspberry Pi Starter Kit(ブザー、抵抗)
・赤外線障害物検知センサーモジュール
・microSDカード

Raspberry Piセットアップ

  • OSを入れるためSDカードをFAT32フォーマットする。

  • Raspberry Piの公式サイトから、NOOBSと言うパックをダウンロードする。
    ダウンロードしたZIPファイルを解凍して、中身を全部SDカードにコピーする。
    公式サイト:https://www.raspberrypi.org/downloads/

  • SDカードをRaspberry Piに挿入し、HDMIと電源を繋ぐ。
    画面にガイドが出てきて、それを従ってインストールする。
    NOOBSがOSのRaspbianとLibreELECがすでに内包してるので、
    初心者でも簡単にインストールできる。

セットアップに疑問があるとき、以下の記事を参考してください。
https://raspida.com/raspixnoobs

ボード接続

QS_20181210-134141.png
- 画像の通り、部品を接続する。(赤い線は+、黒い線は-、黄色線はOutput)
- Raspberry Pi カメラモジュールは 中央辺りのカメラ口に接続する。(電源を切る状態で行ってください)

制御ファイル作成

今回のプログラムの部分はPythonで作成した。

buzzer.py
#ブザークラス

#GPIO制御ライブラリ
import wiringpi
#タイマーライブラリ
import time

Class Buzzer:
    buzzer_pin = 0
    def __init__(self,pin) :
        self.buzzer_pin = pin
        wiringpi.wiringPiSetupGpio()
        wiringpi.pinMode(self.buzzer_pin,1)  

    def buzz(self,second) :
        #鳴り始める
        wiringpi.digitalWrite(self.buzzer_pin,1)
        time.sleep(second)
        #止める
        wiringpi.digitalWrite(self.buzzer_pin,1)

watchdog.py
#GPIO制御ライブラリ
import wiringpi
#HTTPリクエストライブラリ
import requerts
from datetime import datetime
#タイマーライブラリ
import time
#RaspberryPiのカメラクラス
import picamera
#ブザークラスをインポート
from buzzer import Buzzer

sensor_pin = 24
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(sensor_pin,0)
#カメラ設定
with picamera.PiCamera() as camera:
    #カメラ解像度
    camera.resolution = (1024,768)
    #無限ロープで監視
    while True:
        signal = 0
        #センサーの信号を読み取り
        signal = wiringpi.digitalRead(sensor_pin)
        if(signal == 0):
            #ブザーが鳴る
            buzzer = Buzzer(27)
            buzzer.buzz(1)

            #写真を撮り、現在の時刻で命名して保存
            now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
            camera.capture('monitorphoto/'+now+'.jpg')

            #Slack apiを使用し、メッセージを送る
            requests.get("https:slcak.com/api/chat.postMessage?token=XXX&channel=XXX&text=XXX")

最後

複雑ではないか、センサー、Raspberry Pi、WEBAPIを
一通り結んだ機能を実現しました。
これからIoT関連調査対して、参考になれます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした