編集履歴一覧に戻る
kanekoのアイコン画像

kaneko が 2021年05月04日00時01分08秒 に編集

初版

タイトルの変更

+

お風呂の水位通知システム

タグの変更

+

obnizBoard1Y

+

Grove_WaterLevelSensor

+

Nodejs

本文の変更

+

## ■ 概要 子供用のお風呂を入れているときによく忘れて溢れ出ることが多いのである一定の水位になったらLINE通知を行うシステムを作りました。 ## 部品 | 部品 | 備考 | |:---:|:---| | obniz Board 1Y | | | Grove_WaterLevelSensor | 水位計 | | RaspberryPi Zero WH | Nodeサーバー | ![キャプションを入力できます](https://camo.elchika.com/3837eb6596c35f7c231a2854a57bfbf4eb1077ed/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65356435643865392d633164382d346131622d393262342d6666313961373534386632382f62343939346561622d636139382d346564312d623064342d666363303164353931386462/) ## ソースコード `RaspberryPi Zero WH`をNode.jsサーバーとして使用しております。 通知は[LINE Notify](https://notify-bot.line.me/ja/)を使用。 ```javascript:app.js import Obniz from "obniz"; import qs from "querystring"; import axios from "axios" import {LINE_NOTIFY_API_URL,LINE_NOTIFY_TOKEN,OBNIZ_ID} from "./const.js" const obniz = new Obniz(OBNIZ_ID); const config = { url: LINE_NOTIFY_API_URL, method: 'post', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ' + LINE_NOTIFY_TOKEN }, data:qs.stringify( {message:"お湯がいっぱいだよ"} ) } // called on online obniz.onconnect = async ()=> { const waterLevelSensor = obniz.wired("Grove_WaterLevelSensor", { gnd:0 , vcc:1 , sda:2 , scl:3 }); waterLevelSensor.onchange = (value)=> { console.log(value); // 0 mm - 100 mm if (value > 10) { axios.request(config).then(res=>console.log("success")) } } }; ``` ## デモ動画 @[youtube](https://youtu.be/cFKvfbwQz_g) ![LINE画像](https://camo.elchika.com/ea95844624801c0f656148b94433c19de5ddb8b5/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f65356435643865392d633164382d346131622d393262342d6666313961373534386632382f30636337346233652d313032622d343863322d613130352d626462323038396539336262/)