我状态不好
目前,我和她是半生的,但是当人类生活在一起时,就会出现各种问题。
在我们的例子中,它发生在浴室里。
我是一个很懒的人,经常忘记关马桶盖。
我自己只是说“那又怎样?”,但她似乎无法放手,她就像世界末日一样疯狂。
平时,我会向她道歉,请求她原谅我,但她并没有太大的进步,所以她终于开始“制裁”我了。
晚餐只有豆腐和泡菜。 。 。
果然,我感觉自己总有一天要死了,所以我迫切地想要做点什么。
获得灵感
就在那时我发现了这个。
它的标题是“夹头打开警报”。
它检测卡盘打开的状态并通过语音发出警报。
乍一看,似乎一点都不实用,但如果冷静思考,
如果它检测到并发出警报,则可能可以管理这次打开和关闭厕所的问题。
所以,参考这个,我决定创建一个“厕所打开警报”。
结构体
- 安装图中红色标记部分的机箱
- 如果盖子打开超过 10 分钟就会发出警报
完成演示
如果马桶盖一直开着,
通过打开 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