LoginSignup
6
5

More than 5 years have 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関連調査対して、参考になれます。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5