暑くなったらクーラーをつけるよう呼びかけ熱中症予防する

#在宅医療の夏は熱中症との戦い
私は在宅医療を中心とした[クリニック](https://taro-cl.com/)を運営しています。
在宅医療の対象者は大部分が高齢者なのですが、夏はしばしば熱中症が問題となります。
夏場、診療のために訪問すると高齢者が暑い部屋にクーラーをつけず過ごされていて、そのたびに熱中症の危険性を説明しクーラーをつけるという事を繰り返していますし、熱中症となった高齢者の治療のために訪問して点滴を行うこともしばしばあります。

熱中症は[せん妄](https://note.com/naokiuc/n/nf49f68e26df8)の原因にもなり、「夫が、子どもが遊びに来たからお菓子を出せって言うけど、誰も来てない」と奥さんから電話があり、往診すると暑い部屋で二人で過ごされていて熱中症によるせん妄を起こしていた、ということもありました。

#なぜ高齢者は熱中症になるのか
高齢者の熱中症が問題になりやすい背景として、高齢者は暑さを感じる機能が鈍っていること、高齢者は元々脱水気味であること（加齢に伴って皮膚が乾燥しやすいことを自覚している人は多いと思います）、身体が脱水状態のときに喉が渇いて飲水するという機能も加齢に伴って低下していること、「クーラーはもったいない」と我慢をする人が多いこと、などがあります。
このため夏場の診療では、クーラーをつけたり飲水を促したりする張り紙を貼ったり、訪問のたびに「クーラーはつけっぱなしの方が電気代が安いですよ」と説明したりもしていますが、効果は限定的です。

#室温が一定を超えるとクーラーをつけるよう促す仕組みを作りたい
そんな中、先日obnizの使い方を学んだので、これを活用して室温が一定数を超えると「クーラーをつけてください」と話す仕組みを作ろうと考えました。
しかし、手元にあるのは[温度センサー](https://obniz.io/ja/sdk/parts/LM60/README.md)と[スピーカー](https://obniz.io/ja/sdk/parts/Speaker/README.md)のみ。
MP3の音声を再生できる[こちら]（https://obniz.com/ja/sdk/parts/Grove_MP3/README.md）を注文しましたが、地震の影響もありいつ配達されるかわからないという事で、ひとまず室温が一定数を超えるとブザーが鳴る仕組みを作りました。

#環境
**ソフトウェア**
Node.js v16.10.0

**ハードウェア**
[obniz Board 1Y](https://obniz.com/ja/products/obnizboard#areapdctSpec)
[LEDライト](https://obniz.io/ja/sdk/parts/WS2811/README.md)
[スピーカー](https://obniz.io/ja/sdk/parts/Speaker/README.md)
[温度センサー](https://obniz.io/ja/sdk/parts/LM60/README.md)

映像はこちら。

<iframe width="560" height="315" src="https://www.youtube.com/embed/wZn3E5dTctU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



コードはこちらです。

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

obniz.onconnect = async function () {
  var rgbled = obniz.wired('WS2811', { gnd: 4, vcc: 5, din: 6 });

  var speaker = obniz.wired('Speaker', { signal: 0, gnd: 1 });

  var tempsens = obniz.wired('LM60', { gnd: 9, output: 10, vcc: 11 });
  　　　　　　　　　　　
  for (let i = 0; i < 100; i++) {
    const temp = await tempsens.getWait(); // awaitを利用
          console.log(temp);
      
      if (temp > 32) {
        rgbled.rgb(0, 255, 0);
        speaker.play(500);
      } else {
        rgbled.rgb(0, 0, 0);
        speaker.stop();
      }
    };
    await obniz.wait(100);
  }
```

歳をとるに従って高い音が聞こえづらくなるのでブザー音は低音に設定しました。
また、高齢者の場合は、注意障害によって物に注意を向けていないと音が聞こえない可能性があるため音が鳴るだけでなくLEDライトが光る設定にしています。

注文した[これ](https://obniz.com/ja/sdk/parts/Grove_MP3/README.md)が届けば、こちらのコードであらかじめ録音した音声が出るはずです。

<details><summary>サンプルコード(クリックすると開きます)</summary><div>

```JavaScript:Obniz2.js
const Obniz = require('obniz');
const obniz = new Obniz('8146-7262'); // Obniz_IDに自分のIDを入れます

obniz.onconnect = async function () {
  var rgbled = obniz.wired('WS2811', { gnd: 4, vcc: 5, din: 6 });

  var mp3 = obniz.wired("Grove_MP3", { gnd: 0, vcc: 1, mp3_rx: 2, mp3_tx: 3 });
  await mp3.initWait();
  mp3.setVolume(20);

  var tempsens = obniz.wired('LM60', { gnd: 9, output: 10, vcc: 11 });
  　　　　　　　　　　　
  for (let i = 0; i < 100; i++) {
    const temp = await tempsens.getWait(); // awaitを利用
          console.log(temp);
      
      if (temp > 32) {
        rgbled.rgb(0, 255, 0);
        mp3.play(1);
      } else {
        rgbled.rgb(0, 0, 0);
      }
    };
    await obniz.wait(100);
  }
```

</div></details>

お孫さんの声などで「おじいちゃん、暑いからクーラーつけてね」などと録音しておけば、より効果があるかもしれないと考えています。
来年の夏に試してみたいと思いますが、現在[プロトアウトスタジオ](https://protoout.studio/)でプログラミングを学習中なので来年にはもっと込み入った仕組み（明るさに反応して生活リズムがわかったり、薬を飲んでないとアラームが鳴る仕組みなど）が実装できるようになっているのではないかと期待しています。

#あと書き
obnizの使い方を学び、「せっかくなら在宅医療の現場で使えるものを作りたい」と考え、温度を感知しブザーがなる仕組みを思いついたものの、Qiitaで調べたら既に同じようなものを作った方がいてびっくり。

https://qiita.com/21HideK/items/0300bb9a357a0a609110

しかも、同じ[スクール](https://moicen-forest.studio.site/)に通う方でした。
といっても、使用した道具も微妙に違ったので、そのまま記事にしてしまいました。