我状态不好

目前,我和她是半生的,但是当人类生活在一起时,就会出现各种问题。
在我们的例子中,它发生在浴室里。
我是一个很懒的人,经常忘记关马桶盖。
我自己只是说“那又怎样?”,但她似乎无法放手,她就像世界末日一样疯狂。

平时,我会向她道歉,请求她原谅我,但她并没有太大的进步,所以她终于开始“制裁”我了。
晚餐只有豆腐和泡菜。 。 。
果然,我感觉自己总有一天要死了,所以我迫切地想要做点什么。

获得灵感

就在那时我发现了这个。

它的标题是“夹头打开警报”。
它检测卡盘打开的状态并通过语音发出警报。
乍一看,似乎一点都不实用,但如果冷静思考,
如果它检测到并发出警报,则可能可以管理这次打开和关闭厕所的问题。
所以,参考这个,我决定创建一个“厕所打开警报”。

结构体

  • 安装图中红色标记部分的机箱
  • 如果盖子打开超过 10 分钟就会发出警报
    【緊急】トイレの蓋を閉め忘れ彼女にブチギレられたので、obnizを使って解決しにいった話

完成演示

如果马桶盖一直开着,
通过打开 LED 并发出警报声,它吸引了视觉和听觉。
(懒得贴我家厕所的照片,所以只贴房屋...)

做到了!我想

实际使用的时候,有一个问题,就是上班的时候没注意到马桶的警报声。
平时工作的时候,我戴着耳机,用降噪,所以不管闹铃再响,我都听不见。

作为对此的回应,我创建了一个 LINE 机器人,它会在触发警报时发送推送消息。如果你有这个,即使在你工作的时候,你也可以用你的智能手机或电脑来掌握它

(我有一种紧迫感,因为我非常警觉)

生产环境

节点 v18.8.0
Visual Studio 代码 v1.71.0
axios 0.27.2

生产:准备

①obniz设置

  • obniz 板 1Y
  • 5mm 红色 LED 带内置电阻器(用于 5V) 640nm OSR6LU5B64A-5
  • 压电扬声器(压电发声器)(13mm)PKM13EPYH4000-A0
  • 超声波距离传感器 HC-SR04 [101-60-142 / 20-019-100-A]
  • 迷你面包板BB-601(白色)

预配置和连接obniz 官方文档(启动和 Wi-Fi 设置)被用作参考。

②准备LINEBot
要准备机器人帐户,请参阅本文。

源代码

厕所警报
const Obniz = require('obniz');
const obniz = new Obniz('**********');

'use strict';

const line = require('@line/bot-sdk');

const config = {
    channelSecret: '***********',
    channelAccessToken: '************'
};
const client = new line.Client(config);


const main = async () => {

    const messages = [{
        type: 'text',
        text: 'お前、トイレ開けっぱなしやで!!!'
    }];

    try {
        const res = await client.broadcast(messages);
        console.log(res);        
    } catch (error) {
        console.log(`エラー: ${error.statusMessage}`);
        console.log(error.originalError.response.data);
    }
}

obniz.onconnect = async () => {
    // 超音波距離センサを利用
    const hcsr04 = obniz.wired('HC-SR04', {
        gnd: 3,
        echo: 2,
        trigger: 1,
        vcc: 0,
    });

    // LEDを利用
    const led = obniz.wired('LED', { anode: 10, cathode: 11 });

    //スピーカーを利用
    const speaker = obniz.wired('Speaker', { signal: 6, gnd: 7 });

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

    //カウント用意
    let count = 0;

    // 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');

        //10cm以下になった回数をカウント
        if (distance < 100.0) {
            count += 1;
        }else {
            count = 0;
        }

        //カウントが10以上(10分間トイレがあきっぱなしの時)アラートをかける
        if (count >= 10) {
            //obnizの画面で警告
            obniz.display.clear();
            obniz.display.print('Close the toilet!!!');
            // LEDオン
            led.on();
            // 音を鳴らす
            speaker.play(1000); 
            //LINE botにプッシュメッセージ
            main();
        }else{
            //カウントが0に戻る(蓋が閉じる)タイミングでアラートを消す
            led.off();
            speaker.stop();
        }

        //console.log(count);
       
    }, 60000); // 60000ミリ秒 = 1分ごとに実行
};

■成果与未来展望
盖上马桶盖的习惯并没有改善,但是当我向她展示我做了这样的事情时,她能够接受我的诚意(我很高兴)

将来,我正在考虑创建一种自动关闭盖子而不是发出警报的机制。
我将一个球杆连接到微伺服器上并试图推动盖子,但最终没有足够的体力来关闭盖子。
我将替换更强大的东西,看看我是否可以解决它。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308629104.html

相关文章:

  • 2021-11-04
  • 2021-11-12
  • 2021-12-08
  • 2021-08-31
  • 2021-11-28
  • 2021-12-15
  • 2021-12-15
猜你喜欢
  • 2021-08-10
  • 2018-09-02
  • 2021-06-06
  • 2021-06-09
  • 2021-12-25
  • 2021-11-07
  • 2020-10-26
  • 2021-04-06
相关资源
相似解决方案