#在室管理システム ## 概要 公開URL :
構築環境・使用したサービス :
##システム構成 本システムは,既存の在室管理システムをアップデートし,管理を簡単にしたものである. 具体的には,Raspberry Pi上で動作していたサーバを不要とし,センサー値やWebの表示部分をGoogleのサービス上で動作するようにした.
本システムは以下のように構成されている.
##構成内容詳細
### センサー部(Raspberry Pi)
ここでは,本システムの一部で使用しているRaspberry Piについて説明する.
Raspberry Piは以下の動作を行うよう設定されている.
光センサとはブレッドボード上に実装されている. 実装の概略図を以下に示す.
上図の配線の詳細はここでは省略する.より詳しく知りたい場合は書籍[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 コマンド)
## 参考文献・リンク