導入
家に帰ってきて玄関のドアを開けた時、暗い中で電気のスイッチを探すのは少し面倒ですよね。また、「留守中に誰か家の前に来たかな?」と気になったことはありませんか?
今回は、そんな日常のちょっとした不便を解決する、Raspberry Pi(ラズパイ)を使った楽しい電子工作プロジェクトをご紹介します。
この記事では、私自身のWikiメモを元に、人感センサーで人の動きを検知し、自動でLINEに通知を送り、USBライトを点灯させる、お手軽なスマート玄関システムを自作する手順を解説します。
なぜ作るのか? 小さな「不便」を技術で解決する楽しさ
市販のスマートホーム製品もたくさんありますが、自分で作るメリットは、機能的でコストパフォーマンスの高いシステムを自由に設計できる点です。
- 目的
- 帰宅時に暗い玄関を自動で照らし、快適にする。
- 留守中の人の出入りを検知し、簡易的な防犯対策とする。
- 何より、モノづくりのプロセスを楽しむ!
「人の役に立つこと」が好きなので、今回は未来の自分や家族の役に立つシステムを作ってみました。
システムの仕組みと必要なもの
全体の仕組みは非常にシンプルです。
- 人感センサーが人の動きを検知する。
- Raspberry Piが検知信号を受け取る。
- Pythonスクリプトが作動し、LINEに通知を送り、USBポートに電力を供給してライトを点灯させる。
主な材料:
- Raspberry Pi本体
- 人感センサー(HC-SR501など、安価なものでOK)
- USB接続のLEDライト
- ジャンパワイヤ(センサーとラズパイを繋ぐ線)
中心となるPythonコードの解説
このシステムの頭脳となるのが、Pythonスクリプトです。センサーからの信号を読み取り、LINEへの通知やUSBライトの制御を行います。
センサーの信号を読み取る
RPi.GPIO
というライブラリを使って、人感センサーが接続されたGPIOピンの状態を監視します。センサーが人を検知すると、ピンの状態が HIGH
(オン) になります。
import RPi.GPIO as GPIO
import time
SENSOR_PIN = 18 # センサーを接続したピン番号
# GPIOの初期設定
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)
try:
while True:
if GPIO.input(SENSOR_PIN) == GPIO.HIGH:
print("人を検知しました!")
# ここにライト点灯やLINE通知の処理を書く
time.sleep(10) # 10秒間は再検知しない
time.sleep(0.5)
finally:
GPIO.cleanup() # 終了時にGPIOをクリーンアップ
LINEに通知を送る
LINEが提供する「LINE Notify」というサービスを使えば、簡単なコマンドでLINEにメッセージを送れます。
import os
# LINE Notifyのアクセストークン(事前に取得しておく)
TOKEN = "YOUR_LINE_NOTIFY_ACCESS_TOKEN"
MESSAGE = "センサーが人を感知しました。"
# curlコマンドを組み立てて実行
command = f"curl -X POST -H 'Authorization: Bearer {TOKEN}' -F 'message={MESSAGE}' https://notify-api.line.me/api/notify"
os.system(command)
USBライトを点灯させる
hub-ctrl
というツールを使うと、USBポートへの電力供給をコマンドでオン・オフできます。これをPythonから呼び出してライトを制御します。
# USBポート2番の電源をオンにする
os.system("sudo hub-ctrl -h 0 -P 2 -p 1")
# 120秒(2分)待つ
time.sleep(120)
# USBポート2番の電源をオフにする
os.system("sudo hub-ctrl -h 0 -P 2 -p 0")
このシステムの応用アイデア
この基本的な仕組みを応用すれば、さらに色々なことができます。
- カメラを接続: 人を検知した瞬間の写真を撮影し、LINEに画像を送る。
- スピーカーを接続: 「おかえりなさい」などの音声メッセージを再生する。
- 時間帯で動作を変更: 夜間だけライトを点灯させ、昼間は通知だけ送るようにする。
まとめ
今回は、Raspberry Piと人感センサーを使った、実用的で楽しいDIYプロジェクトをご紹介しました。
電子工作やプログラミングと聞くと難しく感じるかもしれませんが、このように身の回りの「ちょっとした不便」を解決する目的があれば、楽しみながら学ぶことができます。
この記事が、あなたの「何か作ってみたい」という気持ちの「ヒント」になれば幸いです。ぜひ、オリジナルのスマートホーム機器作りに挑戦してみてください。
コメント