#!/usr/bin/env python3
# ブラウザが定期的に読み込み、環境データをリアルタイムに表示する
import datetime
import math
# データ域
ssnum = 5
loc = ["屋 外", "乾燥庫", "鉄骨2F", "ハウス1", "ハウス2"]
sid = ["00B0xxxA", "00B0xxx6", "00B0xxx5", "00B0xxx4", "00B0xxx1"]
temp = [""] * ssnum # 温度データ
humid = [""] * ssnum # 湿度データ
signal = [0] * ssnum # 信号強度(0?255)
# HTMLフォーマット1 先頭部 (1分毎にリロードさせる)
html_body1= """
伝兵衛農園 {0.year:d}/{0.month:d}/{0.day:d} {0.hour:d}:{0.minute:d}:{0.second:d}
|
温 度 |
湿 度 |
センサID |
S |
"""
# HTMLフォーマット2 データ部
html_body2= """
%s |
%s ℃ |
%s % |
%s |
%d |
"""
# HTMLフォーマット3 末尾部
html_body3= """
"""
# 更新データの作成
now=datetime.datetime.now() # 現在日時取得
for i in range(ssnum): # データ初期化
temp[i] = "--.-"
humid[i] = "--"
signal[i] = 0
f = open("/home/pi/web/cgi-bin/env_dat.txt", "r", encoding="UTF-8") # データ受け渡し用ファイルをオープン
for line in f: # 全受信データについて繰り返し処理
rdt = (line.strip()).split(',') # 空白を削除し、リスト形式に変換
for i in range(ssnum): # ブラウザに表示する全センサーについて繰り返す
if rdt[0] == sid[i]: # 受信データのセンサーIDをチェックし表示すべきセンサーか確認
temp[i] = rdt[1].strip() # 温度データを保存
humid[i] = rdt[2].strip() # 湿度データを保存
signal[i] = float(rdt[3].strip()) / 20 # 信号強度を保存
break;
f.close()
# ブラウザへの送信
print(html_body1.format(now)) # 先頭部送信
for i in range(ssnum): # データー部送信
print(html_body2 % (loc[i], temp[i], humid[i], sid[i][-6:], signal[i]))
print(html_body3) # 末尾部送信