日記/2020-7-11
最終更新時間:2020年07月11日 16時58分40秒
室内のCO2濃度が見たい・続
先日書いた「室内のCO2濃度が見たい」の続き。
2020/06/20にBanggood.comに発注したCO2濃度センサー「MH-Z19」だが、
昨日(2020/07/10)届いた。発注から到着まで20日間かかったことになる(納期は10日から30日となっていた)。
なお、届いたのは「MH-Z19B」だった。
早速、こちらのページを参考に、もともと近所のアメダスの情報やNature Remoの内蔵センサーの値をLametric Timeへ表示するために使っていたRaspberry Pi 3Bに接続してみた。金属製の台の上に置いてあるため、センサーの下にダンボールを貼り付けてある。
センサーの値も問題なく取得できたので、これをLametric Timeに表示してみた。
#!/usr/local/bin/python3 import requests import json import datetime import subprocess url = 'https://api.nature.global/1/devices' headers = { 'contentType': 'application/json', 'Authorization': 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' } res = requests.get(url, headers=headers) data = res.json() hum = str(data[0]['newest_events']['hu']['val']) temp = str(round(data[0]['newest_events']['te']['val'], 1)) mh = subprocess.check_output(['sudo', 'python3', '-m', 'mh_z19']).decode('utf-8') mh = json.loads(mh) co2 = str(mh['co2']) print(f"{datetime.datetime.today().strftime('%Y-%m-%d %H:%M')},{temp},{hum},{co2}") hum = hum + '%' temp = temp + '°C' co2 = co2 + 'ppm' disp = { 'frames': [ { 'index' : 0, 'text' : temp, 'icon' : '12464' }, { 'index' : 1, 'text' : hum, 'icon' : '12184' }, { 'index' : 2, 'text' : co2, 'icon' : '32936' } ] } disp = json.dumps(disp) headers = { 'X-Access-Token': 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy', 'Cache-Control': 'no-cache', 'Accept': 'application/json' } url = "https://developer.lametric.com/api/V1/dev/widget/update/com.lametric.zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/1" res = requests.post(url, disp, headers=headers)
上記のスクリプトをcronで5分おきに実行し、表示する情報を更新している。
表示は順に、時刻 -> 日付 -> 近所のアメダスの気温 -> 天気と降水量 -> 風速 -> 室温 -> 湿度 -> CO2濃度 となっている(アメダスの情報は別のスクリプトで更新している)。
まあ、自己満足以外の何物でもないが、満足満足。
参考
関連ページ