LoginSignup
2

More than 3 years have passed since last update.

posted at

updated at

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さんの「◯◯◯◯」です!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2