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

他人との距離大丈夫?近かったら通知がくるよ!

$
0
0

まずは動かしてみた

超音波距離センサーから2メートル以内であれば、obniz、LINEともに通知がいくようにしてみました。

obniz側

iOS の画像.jpg

LINE側

iOS の画像 (1).jpg

実現方法

使用したもの

・obniz Board 1Y
・超音波距離センサー HC-SR04

参考にしたサイト

下記のサイトを参考にしました。
https://blog.obniz.com/make/notify-line-mail-arrives/

ソース

constfs=require('fs');constrequest=require('request');constObniz=require('obniz');const{createCanvas}=require('canvas');constLINE_NOTIFY_URL='https://notify-api.line.me/api/notify';constTOKEN='LINE NotifyトークンID(自分で取得)';constPOSTED_THOREHOLD=2.0;constMESSAGE='ソーシャルディスタンスを守りましょう。';constHEADERS={'Content-Type':'application/x-www-form-urlencoded','Authorization':'Bearer '+TOKEN};constOPTIONS={url:LINE_NOTIFY_URL,method:'POST',headers:HEADERS,json:true,form:{message:MESSAGE}}letpassCount=8;letpassFlag=false;letobniz=newObniz('obnizのID(自分のもの)');obniz.onconnect=asyncfunction(){obniz.display.clear();constcanvas=createCanvas(128,64);constctx=canvas.getContext('2d');ctx.fillStyle='white';ctx.font='20px Avenir';letdisSensor=obniz.wired('HC-SR04',{gnd:0,echo:1,trigger:2,vcc:3});letrawDistance=0;obniz.repeat(async()=>{rawDistance=awaitdisSensor.measureWait();rawDistance=rawDistance/1000;awaitconsole.log(rawDistance);if(passFlag){awaitpassCount--;if(passCount<=0){passCount=8;passFlag=false;obniz.display.clear();}return;}if(rawDistance>POSTED_THOREHOLD){return;}awaitrequest(OPTIONS,async(error,response,body)=>{console.log(body);ctx.fillText('ソーシャルディスタンスを',0,26);ctx.fillText('守りましょう。',0,56);obniz.display.draw(ctx);passFlag=true;if(error){console.log(error);}});},300);}

最後に

ハッカソンで作ったものを忘れないようにあげてみました。
1日で作ったものにしてはだいぶいいものできたなと自画自賛。
これで会議室とかで他人との距離が近かったら通知できるようにしたらいいかも。


Viewing all articles
Browse latest Browse all 8839

Trending Articles