【初心者向け】Raspberry Piで人感センサー作ってLINEに通知してみた!
はじめに
Raspberry Piをセンサーモジュールに接続して、検知情報を自分のLINEに通知する人感センサーを作ってみました。
経緯
社内の試作アプリ作成の一環として、人感センサーの構築を担当することになりました。
ラズパイってなあに?Pythonって聞いたことあるけど何ができるの?状態からスタートして、センサーが反応したらLINEにお知らせしてくれるものを作ってみました。
自社への作業報告を兼ねて記事を投稿してますが、ラズパイを使って電子工作をしてみたい!という方の参考になれば幸いです。
作るにあたり必要なもの
・RaspBerry Pi Zero
・Ren He HC-SR501人体赤外線感応モジュール
( URL:https://www.amazon.co.jp/gp/product/B07DCKZS5S )
・SDカード
・ブレッドボード・ジャンパーワイヤー(メス-メス)
( URL:https://www.amazon.co.jp/gp/product/B01A4DDUTA )
・USBハブ
・モニター
・USBキーボード
・プラスチックハンマー
・GPIOハンマーヘッダー
( https://www.amazon.co.jp/gp/product/B0711MPHVF/ )
OSのインストール
ラズパイの公式サイトからOSをダウンロードします。
今回はNOOBS Liteを利用しました。
ダウンロードしたOSのZipファイルを解凍して、SDカードに書き込みます。
ラズパイとセンサーモジュールの接続
GPIO Hammer Header使ってGPIOピンをラズパイにプラスチックハンマーでトントンしたら、センサーモジュールと同じ役割のGPIOピンにジャンパーワイヤーで接続します。
今回使用したRaspBerry Pi Zeroではこんな感じで接続します。
センサーモジュールの検知時間と検知範囲はこのぐらいに設定しました。
初期設定
ラズパイにSDカードを挿入します。
モニター、USBキーボード、マウス、電源を接続してラズパイを起動します
こちらの記事を参考に、初期設定を行います
センサーモジュール動作確認
PythonでラズパイのGPIOの制御設定を行い、センサーモジュールの動作確認をします。
以下のプログラムを実行します
import RPi.GPIO as GPIO
GPIO_PIN = 12
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN,GPIO.IN)
while True:
if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
print("1")
break
GPIO.cleanup()
プログラム実行後、センサーモジュールに手をかざしてみて、以下の結果になれば動作確認完了です
pi@raspberrypi:~ $ python /home/pi/work/sensor_test.py
1
LINE Notifyでアクセストークンの発行
-
LINE Notifyにアクセスして、通知を送りたいLINEのアカウントでログインしマイページを開きます
3.トークン名を任意のトークン名に設定し、「1:1でLINE Notify 通知を受け取る」を選択する
人感センサーの検知情報をLINEへ通知
いよいよプログラム実装します!
センサーモジュールからの感知情報をラズパイでうけとり、LINE Notifyに向かってAPIをたたきます。
import requests
import RPi.GPIO as GPIO
import time
SLEEPTIME = 30
GPIO_PIN = 12
GPIO.setmode(GPIO.BCM)
GPIO.setup(GPIO_PIN,GPIO.IN)
def main():
url = "https://notify-api.line.me/api/notify"
token = "先ほどメモしたアクセストークン"
headers = {"Authorization" : "Bearer "+ token}
message = 'IN USE!!!!!'
payload = {"message" : message}
requests.post(url ,headers = headers ,params=payload)
try:
while True:
if(GPIO.input(GPIO_PIN) == GPIO.HIGH):
main()
time.sleep(SLEEPTIME)
finally:
GPIO.cleanup
ラズパイ起動時に自動で実行されるようにCronの設定をします。
crontab -e
cronの設定ファイルが開いたら、最終行に以下を追加します。
@reboot python /home/pi/work/detection_LINE.py
ラズパイ再起動
ラズパイを再起動して、センサーモジュールに手をかざしたら通知が来ました!
つくってみての感想
ちんぷんかんぷんな状態からスタートしましたが、GPIO取り付けるのに意外に力使ったり、センサーモジュールの検知範囲マックスにした状態+スリープタイム挟まずにスクリプト実行して爆竹のごとくLINE通知鳴りやまなかったりと、初心者ならではの周り道もたくさんしましたが、夏休みの自由研究感覚で楽しめました!
次はAWSのLambdaあたりを使って何か作れたらなあ~と思います。
Author And Source
この問題について(【初心者向け】Raspberry Piで人感センサー作ってLINEに通知してみた!), 我々は、より多くの情報をここで見つけました https://qiita.com/sakurachandayo/items/a96a8a547be80b9df5c0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .