【乾燥蕁麻疹バイバイ！】makeとobnizを使って直ちに保湿せよ！

## 乾燥状態！直ちに保湿せよ！ ##
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/1fdb45dd-fd2f-b573-ab96-47c5d35033c8.png" width=70%>


私は頻繁に、乾燥が原因で蕁麻疹が起こります。
写真のようなかわいいものではありません。

ボリボリボリボリ・・・

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/fd8dae49-0229-247f-7ebe-53bbfead667d.png" width=70%>


自分が砕けていくような感覚で・・・
KASABUTAになんてしょっちゅうです。

:::note info
**保湿大切ですよね！！**
:::

:::note warn

肌が乾燥すると皮膚のバリア機能が衰えてしまいます。

:::

私の場合は
何時間かおきに保湿剤を塗らないと
十分な効果得られません。

重い腰が上がりません・・・。
**保湿のために、、動くことが面倒な方いませんか？？**
**一緒に解決しましょう！**

この際！私もいい大人ですが
保湿を促してくれるものを作りました！！⇩

https://x.com/riyu___11/status/1805211119943897347


**ちなみに！最近の蕁麻疹でハートの形が出ました！♡**
↓ここから見られます！笑（NG集もあるよ）

https://zenn.dev/riyu/scraps/9cebad4a9fb30e



## 保湿ミッション一緒にしよ？ ##

### 準備するもの ###


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/18d54702-451c-ff8d-f157-d51edab7a170.png" width=70%>

<br>

### 作り方 ###


①　makeでLINE Botのおうむ返しを作る
　make：https://eu2.make.com/organization/1535714/dashboard

<img src="https://storage.googleapis.com/zenn-user-upload/e0a6a64442da-20240623.png" width=70%>

<br>

② obnizに圧電スピーカーを挿入する（obniz0,1番）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/9167dccf-2294-380b-e0c1-42f4ad25eb33.png" width=70%>

<br>

③開発者コンソールで音階周波数を使ってシャトルランの曲を作る

<details><summary>コードはこちら</summary>

```html


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Obniz LED Control</title>
  <script src="https://unpkg.com/obniz@3.30.0/obniz.js"></script>
</head>
<body>
  <div id="obniz-debug"></div>
  <h1>好きなタイトルを入力</h1>

  <script>
    const obniz = new Obniz('Obniz_ID'); // Obniz_IDに自分のIDを入れます

    // obnizがオンラインであることが確認されたら、以下の関数内が自動で実行されます
    obniz.onconnect = async function () {   

    //*******ここから下にコードを入力*******

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

// メロディの周波数と長さを定義する
var melody = [
  { frequency: 130.813, duration: 1000 },   // ド（C）を１000ms再生
  { frequency: 146.832, duration: 1000 },   // レ（D）を１000ms再生
  { frequency: 164.814, duration: 1000 },   // ミ（E）を１000ms再生
  { frequency: 174.614, duration: 1000 },   // ファ（F）を１000ms再生
  { frequency: 195.998, duration: 1000 },   // ソ（G）を１000ms再生
  { frequency: 220.000, duration: 1000 },   // ラ（A）を1000ms再生
  { frequency: 246.942, duration: 1000 },   // シ（B）を1000ms再生
　　 { frequency: 261.626, duration: 1000 },   // ド（B）を1000ms再生
  { frequency: 130.813, duration: 1000 },   // ド（C）を１000ms再生

　　 { frequency: 261.626, duration: 1000 },   // ド（B）を1000ms再生
  { frequency: 246.942, duration: 1000 },   // シ（B）を1000ms再生
  { frequency: 220.000, duration: 1000 },   // ラ（A）を1000ms再生
  { frequency: 195.998, duration: 1000 },   // ソ（G）を１000ms再生
  { frequency: 174.614, duration: 1000 },   // ファ（F）を１000ms再生
  { frequency: 164.814, duration: 1000 },   // ミ（E）を１000ms再生
  { frequency: 146.832, duration: 1000 },   // レ（D）を１000ms再生
  { frequency: 130.813, duration: 1000 },   // ド（C）を１000ms再生

];

// メロディを再生する関数
function playMelody() {
  var index = 0;

  function playNextNote() {
    if (index < melody.length) {
      var note = melody[index];
      speaker.play(note.frequency);
      setTimeout(function() {
        speaker.stop();  // 次の音符の再生前に停止する
        index++;
        playNextNote();
      }, note.duration);
    }
  }

  playNextNote();
}

// メロディを再生する
playMelody();




    //*******ここまでの間にコードを入力*******
    }
  </script>
</body>
</html>


```
</details>

・obniz：https://docs.obniz.com/ja/sdk/parts/Speaker/README.md
　↑コードの参考

・開発者コンソール：https://console.obniz.com/ja/

・音階周波数：https://tomari.org/main/java/oto.html

<br>

④makeでおうむ返しBotの間にHTTPモジュールを追加する

<img src="https://storage.googleapis.com/zenn-user-upload/dcc732544ce2-20240624.png" width=70%>

<br>

⑤超音波距離センサーをobnizに繋ぐ（gnd:5,echo:6,trigger:7,vcc:8）

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/2f2c0254-bc2f-de30-f9be-5f6a0fd659e9.png" width=70%>


⑥ スプレッドシートを作成

距離の値を更新できるようにsteinを使ってコード作成

スプレッドシート
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3720831/06723297-4de7-5e5e-d8c3-5f47844702eb.png" width=70%>

・stein：https://steinhq.com/

⑦ makeでGooglesheetモジュールを使って
 　LINEで距離の値が返ってくるようにする

<details><summary>コードはこちら</summary>

```html


<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Obniz LED Control</title>
  <script src="https://unpkg.com/obniz@3.30.0/obniz.js"></script>
</head>
<body>
  <div id="obniz-debug"></div>
  <h1>好きなタイトルを入力</h1>

  <script>
    const obniz = new Obniz('Obniz_ID'); // 自分のObnizのIDに置き換える

    obniz.onconnect = async function () {
      // 超音波距離センサーの設定
      const hcsr04 = obniz.wired('HC-SR04', {
        gnd: 5,
        echo: 6,
        trigger: 7,
        vcc: 8,
      });

      // Obnizディスプレイの初期化
      obniz.display.clear();
      obniz.display.print('Obniz Ready');

      // 定期的に距離を測定し、表示する
      setInterval(async () => {
        let distance = await hcsr04.measureWait();
        distance = Math.floor(distance); // 小数点以下を切り捨てて整数にする
        console.log(distance + ' mm'); // コンソールに距離を表示

        // Obnizディスプレイに距離を表示
        obniz.display.clear();
        obniz.display.print(distance + ' mm');

        // 距離によって判定
        if (distance < 50.0) {
          obniz.display.clear();
          obniz.display.print('Too close!!');
        }
      }, 1000); // 1秒ごとに測定
    };
  </script>
</body>
</html>

```
</details>

完成系はこちら⇩
<img src="https://storage.googleapis.com/zenn-user-upload/1f8be1b93057-20240624.png" width=70%>

<br>

💡現在：LINEから返ってくる値が距離の値になっているのですが
　保湿ミッションにかかった秒数にアップデートできるよう
 　また実装に挑戦したいと思います。

  ## 思考の幅を広げた！！ ##

今回、実は課題解決に注目して実装してみました。（デザイン思考）

今までの考え方とは逆にの視点で考えることの
難しさを感じましたがやりがいがあり、
どちらとも魅力がありますね☺️

今までの考え方⇩（アート思考）

  https://qiita.com/riyu_11/items/41b238eed2ae00158f5b
  

  https://qiita.com/riyu_11/items/98d648c5f6c1580dc9c6

### 思考を二刀流できる人になるぞ！！ ###