#在室管理システム
## 概要
公開URL :
* https://sites.google.com/view/itoh-lab-room/ \\
構築環境・使用したサービス :
* Raspberry Pi(センサーデータ取得および送信)
* [[http://akizukidenshi.com/catalog/g/gI-00110/|CdSセル 5mmタイプ]]
* Google App Script(POSTデータ受信・サイトCSS書き換え)
* Google Spread Sheet(センサーデータの保存・閾値の設定)
##システム構成
本システムは,既存の在室管理システムをアップデートし,管理を簡単にしたものである.
具体的には,Raspberry Pi上で動作していたサーバを不要とし,センサー値やWebの表示部分をGoogleのサービス上で動作するようにした.
本システムは以下のように構成されている.
{{ :share:zaishitu_system.png?nolink&600 |}}
##構成内容詳細
### センサー部(Raspberry Pi)
ここでは,本システムの一部で使用しているRaspberry Piについて説明する.
\\
Raspberry Piは以下の動作を行うよう設定されている.
- GPIOに接続された光センサ(CdSセル 5mmタイプ)から室内の光量を測定する.
- 1で測定した光量データを時刻データとともにGoogle App Acriptへ送信する.
光センサとはブレッドボード上に実装されている.
実装の概略図を以下に示す.
上図の配線の詳細はここでは省略する.より詳しく知りたい場合は書籍[1]を参照されたい.
本システムでは,光センサとRraspberry PiはI2Cという規格でデータのやり取りを行う.以下は,光センサーから値を取得し,Google App Scriptへデータを送信するためのプログラムである.
import postData
import datetime
import getSensVal
from time import sleep
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
if __name__ == '__main__':
dt = datetime.datetime.today()
strdate = dt.strftime("%Y/%m/%d")
strtime = dt.strftime("%H:%M")
GPIO.setmode(GPIO.BCM)
SPICLK = 11
SPIMOSI = 10
SPIMISO = 9
SPICS = 8
GPIO.setup(SPICLK, GPIO.OUT)
GPIO.setup(SPIMOSI, GPIO.OUT)
GPIO.setup(SPIMISO, GPIO.IN)
GPIO.setup(SPICS, GPIO.OUT)
try:
#照度センサーの値取得
inputVal0 = getSensVal.readadc(0, SPICLK, SPIMOSI, SPIMISO, SPICS)
#jsonデータへ変換するために,配列に格納
data = [strdate, strtime, inputVal0]
print(data)
#google app scriptへ送信する
postData.postData(data)
except KeyboardInterrupt:
pass
GPIO.cleanup()
特に重要なのは24行目から33行目の部分である.この中の
getSensVal.readadc()
postData.postData(data)
は,「getSensVal.py」および「postData.py」にて定義された関数であり,これらの関数については後述する.
inputVal0 = getSensVal.readadc(0, SPICLK, SPIMOSI, SPIMISO, SPICS)
では,Raspberry Piに接続された光センサからデータを取得し, センサーの値が「inputVal0」に格納される.
関数readadc()に渡される引数は,GPIOの番号等を指定している.今回は,書籍[1]を参考に設定してある.
postData.postData(data)
### Google App Script
### Goole Spread Sheet
## コードの保存方法
## 補足(Slack コマンド)
## 参考文献・リンク