#在室管理システム ## 概要 公開URL :

構築環境・使用したサービス :

##システム構成 本システムは,既存の在室管理システムをアップデートし,管理を簡単にしたものである. 具体的には,Raspberry Pi上で動作していたサーバを不要とし,センサー値やWebの表示部分をGoogleのサービス上で動作するようにした.

本システムは以下のように構成されている.

##構成内容詳細

### センサー部(Raspberry Pi) ここでは,本システムの一部で使用しているRaspberry Piについて説明する.
Raspberry Piは以下の動作を行うよう設定されている.

  1. GPIOに接続された光センサ(CdSセル 5mmタイプ)から室内の光量を測定する.
  2. 1で測定した光量データを時刻データとともにGoogle App Acriptへ送信する.

光センサとはブレッドボード上に実装されている. 実装の概略図を以下に示す.

上図の配線の詳細はここでは省略する.より詳しく知りたい場合は書籍[1]を参照されたい. 本システムでは,光センサとRraspberry PiはI2Cという規格でデータのやり取りを行う.以下は,光センサーから値を取得し,Google App Scriptへデータを送信するためのプログラムである. <sxh python toolbar:false> 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()

</sxh>

特に重要なのは24行目から33行目の部分である.この中の <sxh python toolbar:false gutter:false> getSensVal.readadc() postData.postData(data) </sxh> は,「getSensVal.py」および「postData.py」にて定義された関数であり,これらの関数については後述する.

<sxh python toolbar:false gutter:false> inputVal0 = getSensVal.readadc(0, SPICLK, SPIMOSI, SPIMISO, SPICS) </sxh> では,Raspberry Piに接続された光センサからデータを取得し, センサーの値が「inputVal0」に格納される. 関数readadc()に渡される引数は,GPIOの番号等を指定している.今回は,書籍[1]を参考に設定してある.

<sxh python toolbar:false gutter:false> postData.postData(data) </sxh>

### Google App Script

### Goole Spread Sheet

## コードの保存方法

## 補足(Slack コマンド)

## 参考文献・リンク