/DAREKA_IMASUKA

Detect people presence by using Bluetooth signal/ Bluetoothの信号から在室状況を把握する

Primary LanguagePythonMIT LicenseMIT

DAREKA_IMASUKA

Bluetoothの電波から在室状況を把握できます.
This system makes it possible to know who is in the room by the Bluetooth signal
*使用によって被った損害に対して一切の責任を負いません.

Description

📶 DAREKA_IMASUKA.py

一定時間間隔で人の存在を検出することができます.

Raspberry Piから事前に登録された端末に送信したPingに対する応答の有無によって在室判定を行います.
端末の登録情報や在室状況はデータベース上に管理・保存されます.
テーブル例です.ID,BluetoothのMACアドレス,在室状況を記録するカラムは動作に必要です.
IDはAUTO_INCREMENTを設定するなどして,1~の連番にする必要があります.

*ROOM_Xは各部屋の在室状況を示します.
ID NAME BT_ADDRESS ROOM_X ROOM_Y ROOM_Z
1 山田太郎 XX:XX:XX:XX:XX:XX 在室

🖥️ Status.php

在室状況を表示させるページです.

Requirements

  • ネットにつながったRaspberry pi × 部屋数
  • MySQLデータベース(詳細は前項に記載)

以下のライブラリを使用しています.(Python)

  • paramiko(sshtunnelの使用に必要)
  • sshtunnel
  • pymysql
  • subprocess

sshtunnelをインストールしたうえで実行しても,「sshtunnelが存在しない」とエラーが返ってくることがありました.
以下をターミナルで実行し,sshtunnelを再度インストールすると解消するかもしれません.

$ update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
$ update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2

また,定期的に在室状況を得るためにcron等を使用します.

Useage

一度実行すれば,登録された全メンバーの在室状況を1回ずつ取得します.
定期的に実行すれば,定期的に情報を収集します.
cronの設定例
$ cron -eでエディタに入り,以下のような記述をすれば,7~23時の間に2分間隔で実行されます.

*/2 7-23 * * * python3 /hoge/DAREKA_IMASUKA.py

実行頻度を上げすぎると,一部の端末からrefuseが返ってくることがあります.このときは不在として判定されます.
cronが走っているかは$ chkconfig cronで確認できます.
走っていなければ,$ systemctl enable cronで起動できます.