obnizでビールの飲み頃温度を教えてくれるIoTを完成させたい！

**させたい！**という願望含む、現状<font color="red">**未完成**</font>の投稿で恐縮です。
絶賛**迷走中**ですので、**お力添えいただければ幸いです！**

プログラミングを習い始めて半月が経ち、obnizを使ってIoT入門しました。
天敵のプリン体を避けビールを絶っていますが、時には飲みたくなり、
そんな特別な時には**最高の状態のビールを飲みたい！**私利私欲のためのIoT製作です。

ビールの飲み頃温度は夏なら4～6℃、冬なら6～8℃とされています（喉越しはさておいて）。
冷蔵庫で長く缶ビールを冷やしておくと冷えすぎて、本来のビールの美味しさが半減されてしまいます。
出典：[サントリー](https://www.suntory.co.jp/customer/faq/001711.html)
そこで、<font color="blue">**冷蔵庫から出して温度を測りながら、飲み頃と言われている4℃以上になったら
飲み頃サインをLEDが光って教えてくれるもの**</font>を目指して作っています。

##現状
<img width="500" alt="収納.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/fd1cf97a-9e38-5ad2-a36e-e79474f7aa4c.jpeg">

:::note warn
・温度センサ（LM60BIZ）はobniz0~2番へ繋ぐ
・LEDはobniz10~11番へ繋ぐ
・其々ブレッドボードをジャンパワイヤで繋ぐ
・さらにジャンパワイヤを使って逆サイドに通電させる
・温度センサと缶ビールをアルミホイルで巻き、温度を測る
・測定開始時は4℃より下で、LEDは温度が4℃より上回ったら点灯する
:::
がしかし、<font color="red">**現状は出力される温度が常に高く、求めるものとは程遠い状態**</font>です。

https://youtu.be/aFpcPt5u3MQ

##環境
Visual Studio Code v1.60.2
Node.js v16.10.0
obniz Board 1Y

##以下、これまで行ってきた流れです
<details><summary>サンプルコード</summary><div>

```js
const Obniz = require('obniz');
const obniz = new Obniz('0000-0000'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
    var led = obniz.wired("LED", {anode:10, cathode:11});
    led.output(true);

    const tempsens = obniz.wired('LM60', { gnd: 0, output: 1, vcc: 2 });
    // setIntervalで間隔を作る
    setInterval(async function () {
        // 同期で取得
        const temp = await tempsens.getWait();
        // 温度をコンソールに表示
        console.log(temp);
        // displayに反映
        obniz.display.clear();
        obniz.display.print(temp + 'C');  // 英語が出力できる
    }, 1000); // 1000ミリ秒 = 1秒  

  for (let i = 0; i < 100; i++) {
    tempsens.onchange = (function(temp){
        console.log(temp);
      
      if (temp < 24) {
        led.on();
      } else {
        led.off();
      }
    });
    await obniz.wait(100);
  }
}
```
</div></details>

https://youtu.be/GyAKRR3Ekok

テストでは1秒毎に温度をディスプレイに表示させるようにしました。
途中で扇風機の風を当て、24℃を下回ったらLEDが点灯しているので、
コードに間違いはなさそうです。

その後、**「24℃を下回ったら」を「4℃を上回ったら」に変更**し、
<details><summary>サンプルコード</summary><div>

```js
const Obniz = require('obniz');
const obniz = new Obniz('0000-0000'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
    var led = obniz.wired("LED", {anode:10, cathode:11});
    led.output(true);

    const tempsens = obniz.wired('LM60', { gnd: 0, output: 1, vcc: 2 });
    // setIntervalで間隔を作る
    setInterval(async function () {
        // 同期で取得
        const temp = await tempsens.getWait();
        // 温度をコンソールに表示
        console.log(temp);
        // displayに反映
        obniz.display.clear();
        obniz.display.print(temp + 'C');  // 英語が出力できる
    }, 1000); // 1000ミリ秒 = 1秒  

  for (let i = 0; i < 100; i++) {
    tempsens.onchange = (function(temp){
        console.log(temp);
      
      if (temp > 4) {
        led.on();
      } else {
        led.off();
      }
    });
    await obniz.wait(100);
  }
}
```
</div></details>


<img width="500" alt="ブレッドボード1.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/a5e06ff0-5492-debe-9732-fb13999a65fa.jpeg">
▲ブレッドボードをジャンパワイヤで繋ぐ
<img width="500" alt="ブレッドボード2.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/99c95551-4766-c9c8-e172-fd78de35a166.jpeg">
▲さらにジャンパワイヤを使って逆サイドに通電させる
<img width="500" alt="アルミホイル1.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/881cb69b-c0f3-23ec-7ace-5b7306730853.jpeg">
▲温度センサと缶ビールをアルミホイルで巻き、温度を測る
<img width="500" alt="収納.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/2301d48b-d625-86f0-63e1-a2b4ed9d5963.jpeg">
▲あまりにも剥き出しなので、ケースに入れてみました
<img width="500" alt="セリア.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/f378d291-72c7-daed-972b-9e5838c6bde6.jpeg">
▲ちなみに、ケースと配線用の穴を開けるのに使ったニッパーは両方セリアで計220円です！

##温度センサの代わりになるものは、、、
一応正常に動いた結果と思いますが、**温度センサで缶ビールの温度を測るには限界**がある結論に達しました。理由としては、

:::note alert
・缶は熱伝導が良いとはいえ、外気に左右される
・ビールに直に触れさせられない
:::
といったところを解決しなければ、、、

##改善案
<font color="red">**缶ビールに直に触れることなく測れるもの**</font>があれば解決すると思い、秋葉原に行ってみました。
（余談ですが、電気街口に初めていきましたが、種類がありすぎて、本当に奥深い世界と実感しました）

探り探り探していると、<font color="red">**非接触温度センサ（サーモパイル）**</font>とやらに出会いました。
<img width="500" alt="非接触温度センサ.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/eda01619-b30b-d020-5a53-18d5341cd35e.jpeg">
どうやって使うかも調べずに商品名のみを信じて買ってみました！！
[obniz Parts Library](https://obniz.com/ja/sdk/parts)にあるだろうと信じて買いましたが、
なかったため**詰み**の状態です（次からはちゃんと調べてから買います）。


<font color="red">**・非接触温度センサ（サーモパイル）はこうすれば使えるよ！**</font>
<font color="red">**・こんなセンサ使えばいいんじゃない？**</font>
等々、アドバイスありましたら是非お願いします。。。

##追記（2021/10/19）
[Qiita QA](https://qiita.com/tanakahiroki/questions/5816b8f8a55b82a51faf)にて質問投稿したところ、アドバイスいただくことが出来ました。
今ぶち当たっている壁を乗り越えるにあたり、[Thermal Camera Sensor - AMG8833](https://obniz.com/ja/sdk/parts/AMG8833/README.md)をご紹介していただきました。
>赤外線アレイセンサAMG8833を使用しています。
>測定範囲は0~80℃です。
>8x8画素で温度分布を測定することができます。
![サーモグラフィサンプル.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049267/5682db3a-4269-f6ce-a8fc-549e18cfead3.gif)
出典：[obniz Parts Library AMG8833](https://obniz.com/ja/sdk/parts/AMG8833/README.md)

obniz Parts Libraryにありますので、使い勝手良さそうです！（私にもできそう！）

また、Twitterでは、
>直接のセンサーに関する提案ではないですが、水温計で水温を測りながら、4度になるときのセンサー温度を実験して算出してみるのはいかがでしょうか。水温が1度、2度、3度、4度、・・・となるときにセンサーが21度、22度、23度、24度、・・・となれば24度以上でLEDを点灯等。

といったコメントもいただき、**アイデア次第でやりようはいくらでもあるんだ！**と再認識しました。

**ベストな状態のビールを追い求めて**、挑戦し続けたいと思います。

長々と失礼しました！＆読んでいただき、ありがとうございました！