日記/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に接続してみた。金属製の台の上に置いてあるため、センサーの下にダンボールを貼り付けてある。

mh_z19b.jpg

 センサーの値も問題なく取得できたので、これを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濃度 となっている(アメダスの情報は別のスクリプトで更新している)。

 まあ、自己満足以外の何物でもないが、満足満足。
 

参考


関連ページ