夏休み 電子工作 Raspberry PiとThermal cameraを使ってNature Remoを操作する

# TL;DR

Raspberry PiとAdafruit_AMG88xxモジュールをつかって睡眠中の温度を計測し、
Nature Remoのエアコンをコントロールするものを作りました。ついでに取ったサーモグラフィーをGoogle Driveにアップします。
プログラムは[ここ](https://github.com/t10471/raspi-thermal-py)にあります。
エアコンがどの機種でも出来るのかは試していないので分かりません...

# 完成品

ブレッドボードを直接使用しているのは多分よくありません...試す方は自己責任でお願いします。

<table>
<tr>
<th>
<img src="https://qiita-image-store.s3.amazonaws.com/0/7123/10272bd3-ffc1-b5f5-3dc8-11c2a0bb819b.png" height="250px" width="150px"> 
</th>
<th>
<img src="https://qiita-image-store.s3.amazonaws.com/0/7123/c75609ec-168e-1dde-9bf5-d1e9c8ec1fa1.png"  height="250px" width="150px">
</th>
</tr>
</table>
# きっかけ

夏の間、明け方くらいに寒くて目を覚ましてしまうことが、ほぼ毎日あった為、何の気なしに社内の人に話したら、
Raspberry PiとNature Remoを使ってなんか作って見れば？という話になり、なんとなくやってみた。

# 調査
## 赤外線カメラって何?
よく見かける温度によって色が変わっている画像ってどうやって取るの？というのでとりあえず赤外線カメラで検索してみると、赤外線カメラというのは温度によって色が変わる画像のことでは無いことに気づく、それはサーモグラフィーというやつであり、赤外線カメラでも出来るやつと出来ないやつがあることに気づく。(いわゆる暗視カメラというのも赤外線カメラになる)。

購入するに当たって検討したもの

* [FLiR開発キット](https://www.switch-science.com/catalog/2107/) 37,692円(80×60)
* [Pimoroni - MLX90640](https://www.amazon.co.jp/dp/B07FF45134) 18,000円(32x24)
* [Conta™ サーモグラフィー AMG8833搭載](https://www.switch-science.com/catalog/3395/) 
 4,860円(8x8)

え、、、その解像度でそんなに値段するの...と最初は驚きました。
いろんな記事を読んでいると少し前まで10万くらいするのが、最近安くなってきたらしい（用出典）とのことで、これでも大分安くなっているらしいですね。

今回が電子工作の最初ということもあり一番安い`Conta™ サーモグラフィー AMG8833搭載`を使用することにしました。

# 買ったもの
東急ハンズで買ったものがなんだったのか忘れてしまいました...

* [小さいブレッドボード](https://www.amazon.co.jp/gp/product/B00ZFRDGF4/)
* [Conta™ サーモグラフィー AMG8833搭載](https://www.amazon.co.jp/gp/product/B079BMKRW7/)
* [NOUVCOO 3本セット Arduino用キット ブレッドボード ジャンパーワイヤー ジャンパー線 / ケーブル オス/オス オス-メス メス/メス ArduinoとRaspberry piに適用](https://www.amazon.co.jp/gp/product/B07459QNCC/)
* [Raspberry Pi3 B+ コンプリートスターターキット (Standard, 16G)](https://www.amazon.co.jp/gp/product/B07CRY1JC1/)
* アクリル板(東急ハンズで購入)
* L字 金具(東急ハンズで購入)
* 両面テープ(東急ハンズで購入)
* テープ(東急ハンズで購入)
* SDカードライター(ドンキで購入)

コンプリートスターターキットである必要はないです。SDカードと本体とケーブルを買う方がお得です。
また、コンプリートスターターキットに付属してあるSDカードは既にOSが入っているのですが、
ネットの設定やGUIが要らなかったので[iotit](https://camp.isaax.io/ja/tips-ja/raspberry-pi/iotit-news-release)を使ってセットアップしました。

# Thermal Camera
Thermal Cameraの使い方は[この記事](https://learn.adafruit.com/adafruit-amg8833-8x8-thermal-camera-sensor/raspberry-pi-thermal-camera)と[この記事](https://qiita.com/nobuyukioishi/items/499cb694b2d9286afdc3)を参考にして作成しました。

撮った画像か下記のような感じです。丸っぽいのが頭でその左側にボヤっとなっているのが体です。
(夏場に取るともっとはっきりとなるのですが、、、10月に取るとあんまりはっきりとしないですね...)

![image.png](https://qiita-image-store.s3.amazonaws.com/0/7123/93d86ab1-50fd-6dc0-0482-b5e952ab1f88.png)


# Remo
RemoのAPIは[ここから](http://swagger.nature.global/)雰囲気で
`https://api.nature.global/1/appliances`で現在の設定を取得して
`/1/appliances/{appliance}/aircon_settings`で更新する感じです。
`{appliance}`は`https://api.nature.global/1/appliances`で取得したjsonから見付け出してください。
(最初Local APIなのかと思い、そっちを見てましたが、どうやら違いみたいです。)

#　Google Drive
せっかくサーモグラフィーを作ったので、見てみたいと思い。
Google Driveにアップするようにしました。
使用したライブラリは[PyDrive](https://pythonhosted.org/PyDrive/)です。
使い方は、公式ドキュメントと[この記事](https://qiita.com/soup01/items/670107d8454274297b5d)を見ると分かると思います。
最初に`credentials.json`を作成する為に下記だけのprogramを実行する必要があるのと、`setting.yaml`の書き方がよく分からずはまりました...

```python
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
import json
import datetime

gauth = GoogleAuth()
gauth.CommandLineAuth()
drive = GoogleDrive(gauth)
```

# まとめ

そんなに難しくなく・そんなに高くなく出来るのですが、夏が終わり、用が無くなりました orz...