言語切り替え

人感センサー×SNS

StarterKitを使って、人が来たらSNSにメッセージを送ろう!

はじめに

今回は、StarterKitを使って人が来たらSNSにメッセージを送信するプログラムを作成します。

つくるもの

人感センサーで変化を検知したときにSNSでメッセージを送信するプログラムを作成します。

準備するもの

  • obniz Board* or obniz Board 1Y
  • Keyestudio PIR Motion Sensor*
  • IFTTTアカウント
  • Twitterアカウント

*Starter Kitに同梱されています。

手順

1. obnizに人感センサーを配線する

次の表のようにobnizと人感センサーを接続します。  

obniz Keyestudio PIR Motion Sensor
0 Signal
1 +
2

obniz Boardと人感センサー [参考] obniz パーツライブラリ(Keyestudio PIR)

2. IFTTTとTwitter連携をする

IFTTTを使って、Twitterと連携するのですが、その前にIFTTTがどのようなものか簡単に紹介します。 IFTTTは「もし、○○(This)が起きたら○○(That)を実行する」ということができるサービスです。 具体例で説明すると、「ツイートされたらスプレットシートに内容をまとめる」や「家に近づいたら、エアコンをつける」などといったものを作れます。 IFTTTから早速作成していきます。 まずは、もし〇〇したらの部分を設定します。「This」をクリックします。 Choose a service(Step 1 of 6 ) 検索欄に「Webhooks」と入力して、絞られたものをクリックします。 Choose trigger (Step 2 of 6 ) 「Receive a web request」をクリックします。 Complete trigger fields (Step 2 of 6 ) EventNameの欄に「obniz_sns」と入力し、[Create trigger]をクリックします。 次に「That」をクリックして、記録先を設定します。 Choose action service (Step 3 of 6 ) 検索欄に「Twitter」と入力して、絞られたものをクリックします。 (ここで使用するTwitterアカウントを選択するダイアログが開く場合があります。使用するアカウントを選択し、IFTTTからのアクセスを許可してください。) Choose action (Step 4 of 6) 「Post a tweet」をクリックします。 Complete action fields (Steo 5 of 6) Twitterに投稿する情報を設定します。 Twitterの仕様上全く同じメッセージを連続して送信できないので、後ろに時間を追加しています。

  • Tweet text : ツイートする内容を記入

Review and finish (Step 6 of 6) [Finish]をクリックすれば作成は完了です。 あと一部設定を確認しておく項目があります。 [Webhooks]の設定ページを開き、右上にある「Documentation」をクリックします。 「Your key is」と書かれている後ろの太文字をコピーしておきましょう。後ほど、プログラムのところで使用します。

プログラムを書こう

プログラムを準備します。 以下の2箇所を修正します。

  • Your KeyをIFTTTで取得したKeyに変更
  • OBNIZ_ID_HEREをobniz Boardに表示されているIDに変更
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>人感センサー×SNS</title>
    <script src="https://unpkg.com/obniz@3.4.0/obniz.js"></script>
</head>
<body>
<div id="obniz-debug"></div>
<h3>Connect From Your Browser</h3>
<script>
    const EVENT = "obniz_sns";
    const KEY = "IFTTT_WEBHOOK_KEY";

    let obniz = new Obniz("OBNIZ_ID_HEAR");
    obniz.onconnect = async () => {
        const sensor = obniz.wired("Keyestudio_PIR", {signal:0, vcc:1, gnd:2});
        sensor.onchange = async (val) =>{
            console.log(val ? 'Moving!' : 'Stopped');
            if(val) await fetch(`https://maker.ifttt.com/trigger/${EVENT}/with/key/${KEY}`);
        }
    }
</script>
</body>
</html>

 

動かしてみよう

センサーに反応があるとこのような感じでツイートされます。 (IFTTTは最大15分の遅延の可能性があるため、すぐに反応しないことがあるかもしれません。)

おわりに

obnizとIFTTTをつかって簡単にSNS連携をしました。 他のサービスとも連携できるのでうまく使用してIoTを活用してみてください!

関連記事