リモートでクラッカーを鳴らしてみる


この記事は IoTLT Advent Calendar 2020 の9日目の記事です

ちょっとまえにクラッカーを鳴らすLTをしたので、記事にしてみます

最近の悩み

そんなちょっとした変化ですが、登壇をしていると寂しくなることが多く感じるようになりました。
でもこれって登壇以外のときはそんなに変化を感じないんですよね。LINEしててもSlackしててもそんなに感じない。

なんでかなと考えていたら、これのおかげじゃないかと思うものを見つけました

そう、絵文字コミュニケーションが、気軽でみんな使うからもしかしてそんなに寂しくないのでは??
でもリアルタイムの登壇で絵文字コミュニケーションって取りづらいですよね。というわけで、登壇中でも絵文字が来たら気付けるようにしてみたらどうでしょう。

というわけで作ったもの

登壇中にTwitterでクラッカーを見つけたら音を鳴らします

ソフトウェア


const Obniz = require("obniz")
console.log("start");
const obniz = new Obniz("xxxxxxxx");
var Twitter = require('twitter');
var client = new Twitter({
  consumer_key: 'xxxxxxxx',
  consumer_secret: 'xxxxxxxx',
  access_token_key: 'xxxxxxxx',
  access_token_secret: 'xxxxxxxx'
});

let count = 0;

obniz.onconnect = async () => {
  console.log("obniz connected");
  const motor = obniz.wired("DCMotor", {forward: 1, back: 0});
  motor.power(0);
  motor.move(true);
  obniz.repeat(async () => {
    if (count >= 10) {
      obniz.repeat(() => {
      });
      for (let p = 40; p <= 100; p += 10) {
        console.log(p);
        motor.power(p);
        await obniz.wait(2000);
      }
    }
  }, 2000)
};

client.stream('statuses/filter', {track: '🎉'},  function(stream) {
  stream.on('data', function(tweet) {
    count++;
    console.log(count);
  });
});

twitter SDKのclient.streamで検索し、🎉をみつけたらカウントアップ、
obniz側ではそのカウントをみて10個以上ならモーターを回すようにしています。

最初から全力だと風情が無いので、スロースタートするようにしています。

ハードウェア

早速チャレンジ!

・・・力が足りずに鳴らすことができませんでした。

力が足りないならばと思って2つにしたら成功です

学び

クラッカーを鳴らしたければミニ四駆モーター2つ必要です