開始
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
ボード接続
- 画像の通り、部品を接続する。(赤い線は+、黒い線は-、黄色線はOutput)
- Raspberry Pi カメラモジュールは 中央辺りのカメラ口に接続する。(電源を切る状態で行ってください)
制御ファイル作成
今回のプログラムの部分はPythonで作成した。
#ブザークラス
#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)
#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関連調査対して、参考になれます。