Help us understand the problem. What is going on with this article?

obnizの力を借りて、スポーツ後の靴を早く乾かす

obniz Advent Calendar 8日目の記事です。

ダイエットの冬

最近、ランニングをしている人を良く見かけます。
皆さんは運動した後のシューズケアしていますか?
IoTの力を借りて、シューズケアをしましょう。

できたもの

用意したもの

締めて¥8,570でした。

システム構成

Obnizと各種センサーを使って以下のような構成で作りました。
グループ 9.png

ピン接続

ピンは以下の通り接続します。

  • スピーカー
    • signal: 2, gnd: 0

10911238722523.jpg

  • フルカラーLED
    • gnd: 6, vcc: 5, din: 4

10911238731664.jpg

  • DCファン
    • vcc: 8, gnd: 7

10911238781825.jpg

10911238764264.jpg

  • 湿度センサー
    • vcc: 11, gnd: 10, din: vout: 9

10911238896730.jpg

10911238890552.jpg

全部つなぐとこんな感じになりました。
10911238668239.jpg

ソースコード

Node.jsで書きました。
ソースコード全量はGitHubからご覧いただけます。(https://github.com/mono0423/pos-shoes-care)

const Obniz = require('obniz');
const obniz = new Obniz('OBNIZ_ID_HERE');

obniz.onconnect = async function() {
  const leds = obniz.wired('WS2811', {gnd: 6, vcc: 5, din: 4}); // フルカラーLED
  const speaker = obniz.wired('Speaker', {signal: 2, gnd: 0}); // スピーカー

  obniz.io11.output(true); // 湿度センサーのvcc
  obniz.io10.output(false); // 湿度センサーのgnd

  obniz.io7.output(false); // DCファンのgnd

  while (true) {
    let ave = 0; // 湿度を1秒間におよそ100回測定して、平均を取る
    for (let i = 0; i < 100; i++) {
      const voltage = await obniz.ad9.getWait(); // 湿度センサーのvoutの値を読み取る
      const humid = voltage * 100; // 電圧->湿度の変換(%)
      ave = ave + humid;
      await obniz.wait(10);
    }
    ave = ave / 100; // 100回の平均を取る
    const humid = ave > 100 ? 100 : ave; // 湿度100%以上になる場合、100%にする
    console.log('湿度: ' + humid + ' %');

    let rgb = [0, 0, 255];
    if (humid > 90) {
      rgb = [255, 0, 0]; // LEDを赤色に変更
      obniz.io8.output(true); // DCファンを回す
      speaker.play(1000); // スピーカーを鳴らす
    } else if (humid > 60) {
      rgb = [255, 255, 0]; // LEDを黄色に変更
      obniz.io8.output(true); // DCファンを回す 
      speaker.play(800); // スピーカーを鳴らす
    } else {
      rgb = [0, 0, 255]; // LEDを青色に変更
      obniz.io8.output(false); // DCファンを止める
      speaker.play(0); // スピーカーを止める
    }

    leds.rgbs([rgb]); // LEDの色を変える
  }
};

いざ実践

上記で作成したものをシューキーパーに貼り、実際にランニングシューズの中に入れてみる。
10911509568750.jpg

わかりにくいですが、ランニング後の僕の靴は湿度90%超のようでした。
これで臭い靴とはおさらば!

振り返り

  • シューキーパーに全部の装置を収める・貼り付けるのがとても難しかった。安定感を求めるなら、ちょうど良い容器を見つけるか3Dプリントする必要があると感じた。
  • 環境を測定→制御→測定→…のループを実装出来てよかった。
  • たまに電圧をかけてもDCファンが回らないことがある。ハードのトラブルシューティングの知識を身に着けたい。
  • 小型化とか電池駆動できるようにしたい。

12/9の記事は…

@kohbisさんの「◯◯◯◯」です!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away