4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nature Remoで測定した室温をThingSpeakに渡して表示。

Last updated at Posted at 2018-07-05

背景

暑くなってきたので、部屋の温度や湿度を定期的に計測したいなと思い始めた。
ラズパイやESP32にセンサーつけて使ってもいいんだけど、子供が触りそうで怖い。
NatureRemo使ってて、せっかくそこで温度を測定してるんやから、それでいいんじゃないか。
最近使ってないGCPのVMインスタンスがあるので、そこからAPI叩いたらいいんじゃないか。

やったこと

  • NatureRemoのAPIをたたいて、温度をゲット
  • ThingSpeakのAPIをたたいて、温度をアップロード

データのながれはこんな感じ↓
image.png

使った環境

  • GCPのVMインスタンス。無償のやつ。
  • python3
  • Nature Remo
  • ThingSpeak

コード

Nature RemoのAPIは昔叩いたことあったので、昔のコードを流用した。
xxx, yyy, zzz, aaaはNature RemoとThingSpeakのサイト見てそれっぽい値を入力。
thingspeakはライブラリを発見したので、それを使ってみた。

import requests
import json
import thingspeak
import time

headers = {
    'accept': 'application/json',
    'Authorization': 'Bearer xxx',
}

ch = thingspeak.Channel(id=yyy, api_key='zzz', write_key='aaa', fmt='json', timeout=None)

while True:
    response = requests.get('https://api.nature.global/1/devices', headers=headers)
    data = response.json()
    temp = data[0]['newest_events']['te']['val']
    print(temp)
    humi = data[0]['newest_events']['hu']['val']
    print(humi)
    res = ch.update({1: temp, 2: humi})
    print(res)
    time.sleep(30)

nohupつけて実行すれば、ログアウトしてもずっと動く。

nohup python Remo2TS.py &

結果

30秒間隔じゃ全然温度かわらん。
image.png

最後に

そこそこ有用そうな仕組みを簡単に作れる。すばらしい。
そのうち外気温もどっかから持ってきて、比較できるようにしたい。

参考にしたとこ

Nature Remo

Nature Inc

ThingSpeak

thingspeak/examples at master · mchwalisz/thingspeak · GitHub
Python binding for ThingSpeak API — thingspeak 0.4.1 documentation

python

Python3で一定間隔で処理を行う - Qiita

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?