Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9360

obnize × LINE bot で近づいたらLED&LINEでお知らせ

$
0
0

自己紹介

大学時代C言語を学んでから十数年以来のプログラミングを始めています。
本業はweb制作で、ホームページとLINE連携の需要がとても多く、LINEbotに興味を持ちました。
今回も練習した事のメモです。

やったこと

obnizeの超音波測距センサーで100cm以内に近づくとフルカラーLED WS2811で指定した色が光る。
さらにはLINE botに近づいた事を知らせます。

obnizeの超音波距離センサーで近づくとLEDが光る

という部分の動作確認です。

const obniz = new Obniz('obnizID');

obnizIDを書き換えます。

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

obniz.onconnect = async() => {
    // 超音波測距センサを利用
    const hcsr04 = obniz.wired('HC-SR04', { gnd: 11, echo: 10, trigger: 9, vcc: 8 });

    // LEDを利用
    const rgbled = obniz.wired('WS2811', { gnd: 0, vcc: 1, din: 2 });

    // obnizディスプレイ(初期表示)
    obniz.display.clear();
    obniz.display.print('obniz Ready');

    // setIntervalで定期実行
    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 < 100.0) {
            // 100mm = 10cm 未満の場合 obnizディスプレイ表示
            obniz.display.clear();
            obniz.display.print('Too close!!');
            // LEDオン
            rgbled.rgbs([
                [0xFF, 0x00, 0x00], // red
                [0x00, 0x00, 0xFF] // blue
            ])
        } else {
            // 100mmを超えるときは色が反転
            rgbled.rgbs([
                [0x00, 0x00, 0xFF],
                [0xFF, 0x00, 0x00]
            ])
        }
    }, 5000); // 5000ミリ秒 = 5秒ごとに実行
};

LINEbotと接続

ここがなかなかうまくいかず、苦労しました。

エラーが結構出まして。
どこまで動いているのか切り分ける為、細かくコードの中に

console.log('Hello2!');

を入れていきました。
そうする事で、Hello2!が表示されたかされていないのかで、どこの記述が怪しいのか判別する事が出来ました。

image.png

時間かかりましたが、ようやくエラー表示が消え距離が出力されるようになりました。
そして、ngrokを実行して、LINE botのwebhookへ入力すると

image.png

100mm以内に近づいた時だけ、LINEに通知が送られます。成功しました。

まとめ

今回は超音波測距センサーってなんか凄いな!と思い、超音波測距センサー×LINEを実装したのですが、実生活に役立つ機能を持つ開発をしていきたいなと思いました。実生活の自動化とても気になっています。


Viewing all articles
Browse latest Browse all 9360

Trending Articles