###以前、Raspコストを抑えてCo2濃度が測定できるようになったところで、さらにGoogleスプレットシートで見える化しました!
今回はGatewayにビズライト・テクノロジー社のBH3を使います。
###主な作業手順
1)Co2センサーユニット(Raspberry Pi Pico + MH-19B)での作業
・Co2濃度をシリアルデータとして送信
2)Googleスプレットシートでの作業①
・GAS(Google Apps Script)プログラミング
・ウェブアプリのURL取得(デプロイID)
3)BH3での作業
・センサーユニットからのデータの取り出し
・ウェブアプリのURLを送る仕組みを作る
4)Googleスプレットシートでの作業②
・グラフの作成
・ウェブ公開用をインタラクティブなURLを取得
###1)Co2センサーユニット
こちらをご覧ください。
###2) Googleスプレットシートでの作業①
まずスプレットシートを開いて、ツール→スクリプトエディタを選択してGASエディタを開きます。
下記のようにプログラミングし、”新しいデプロイ”でデプロイし表示されたウェブアプリのURLを取得します。
function doPost(e) {
// パラメータCO2の値を取得
var co2 = e.parameter.co2;
var date = new Date();
// 保存先のシートを取得:シート名:log
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('log');
// シートにデータを追記
sheet.appendRow([date.getHours()+":"+date.getMinutes()+":"+date.getSeconds(), co2]);
}
###3)BH3での作業
Co2センサーのデータを取得するためのpythonスクリプトとCo2センサーのデータをPOSTするためのシェルスクリプトを作成します。
####pythonスクリプト
#!/usr/bin/python3import serial
import timedef main():
con=serial.Serial('/dev/ttyACM0', 9600)
print (int(str))
if __name__ == '__main__':
main()
####シェルスクリプト
#/bin/bsah -f
while true
do
result=`./[上記pythonスクリプト]`
curl -X POST -d "co2=${result}" -o /dev/null [ウェブアプリのURL]
sleep 10
done
###4)Googleスプレットシートでの作業②
もう一度、スプレットシートで今度は取得したデータのグラフを作成します。[挿入]→[グラフ]からグラフを作成し、お好みでタイトルや凡例、目盛りなどを設定します。グラフを公開するために右上で[個別シートに移動]を選択します。
最後に[グラフを公開]ボタンを押してインタラクティブなリンク情報を取得すれば完了です!
###最後に
今後は、Co2センサーとBH3間の有線シリアル通信を無線化したいと思います。そのときセンサー側は電池駆動になるので、消費電流を考えたり、複数のセンサーに対応したり、ハードルは一気に上がります。