#在室管理システム ## 概要 公開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 コマンド) ## 参考文献・リンク