我背疼。
我知道原因。这是因为你在家工作时姿势不好。
我用 obniz 做了一个设备,如果你的姿势不好,它会警告你,所以我将介绍它。

成品设备介绍

不良姿势是通过眼睛和屏幕之间的距离来衡量的。
一般来说,建议眼睛与屏幕之间的距离至少为 40 厘米。

因此,如果您的眼睛与屏幕之间的距离小于 30 厘米,红色 LED 会亮起,并且 obniz 显示屏会显示“您的姿势太糟糕了!!”
当眼睛与屏幕的距离为30到40厘米时,黄色LED灯亮,obniz显示屏显示“你的姿势不好!!”
当眼睛距离屏幕40厘米以上时,蓝色LED亮起,obniz显示屏显示“你的姿势真棒!!”。

此外,它旨在根据姿势向LINE发送有关姿势的消息。
作为奖励,如果您的姿势不好,您将收到一条鼓励您拉伸的消息和一个使用各种拉伸方法的网页的 URL。

当眼睛与屏幕之间的距离小于 30 厘米时
obnizを使って良い姿勢を保とうとしてみたobnizを使って良い姿勢を保とうとしてみた
◆ 眼睛与屏幕距离为 30 至 40 厘米时
obnizを使って良い姿勢を保とうとしてみたobnizを使って良い姿勢を保とうとしてみた
当眼睛与屏幕之间的距离为 40 厘米或以上时
obnizを使って良い姿勢を保とうとしてみたobnizを使って良い姿勢を保とうとしてみた

环境等

环境
在 Heroku 上使用 Node-RED
蜜蜂
LINE 消息 API
难的
obniz 板 1Y
全彩LED
超声波距离传感器 (HC-SR04)

流程介绍

obnizを使って良い姿勢を保とうとしてみた

json在这里

[{"id":"e390e8213c12e7f5","type":"tab","label":"フロー 10","disabled":false,"info":"","env":[]},{"id":"e42d3d96.12046","type":"obniz-repeat","z":"e390e8213c12e7f5","obniz":"8c71456dbacf1732","name":"","interval":"5000","code":"msg.payload = await obnizParts.hcsr04.measureWait();

return msg;","x":270,"y":240,"wires":[["3184cf38a35bfd6e"]]},{"id":"3184cf38a35bfd6e","type":"obniz-function","z":"e390e8213c12e7f5","obniz":"8c71456dbacf1732","name":"","code":"obniz.display.print('mesure your posture');

// 距離を取得
let distance = msg.payload;
// そのままだと小数点以下の桁数がやたら多いので整数に丸めてもよい
distance = Math.floor(distance);

// 距離がある程度未満かどうかの判定
if (distance < 300) { // 300mm = 30cm 以下の場合
    // obnizディスプレイに姿勢が悪くなっていることを表示
    obniz.display.clear();
    obniz.display.print('your posture is too bad!!'); 
    obnizParts.WS2811.rgb(255, 0, 0); // 赤    
} else if (distance < 400){ // 400mm = 40cm以下の場合
    // obnizディスプレイに少し姿勢が悪いことを表示
    obniz.display.clear();
    obniz.display.print('your posture is bad')
    obnizParts.WS2811.rgb(255, 255, 0); // 黄    
} else {
    //obnizディスプレイに姿勢がいいことを表示
    obniz.display.clear();
    obniz.display.print('your posutre is greate')
    obnizParts.WS2811.rgb(0, 0, 255); // 青    
}
return msg;","x":440,"y":240,"wires":[["10162bdcd649cf93"]]},{"id":"10162bdcd649cf93","type":"switch","z":"e390e8213c12e7f5","name":"","property":"payload","propertyType":"msg","rules":[{"t":"lt","v":"300","vt":"str"},{"t":"btwn","v":"300","vt":"num","v2":"400","v2t":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":3,"x":350,"y":460,"wires":[["87960e60c26ba072","2f63cbc5e9482159"],["4c9e4307f02eb754"],["8a4bcf705c43eb17"]]},{"id":"1219e919a0c945e8","type":"PushMessage","z":"e390e8213c12e7f5","name":"","credentials":{"channelSecret":"ChannelSecret","channelAccessToken":"AccessToken","targetId":"UserID"},"x":700,"y":340,"wires":[]},{"id":"d857f50ec5f72096","type":"PushMessage","z":"e390e8213c12e7f5","name":"","credentials":{"channelSecret":"ChannelSecret","channelAccessToken":"Accesstoken","targetId":"UserId"},"x":720,"y":460,"wires":[]},{"id":"08245c791116c57c","type":"PushMessage","z":"e390e8213c12e7f5","name":"","credentials":{"channelSecret":"ChannelSecret","channelAccessToken":"AccessToken","targetId":"UserId"},"x":720,"y":540,"wires":[]},{"id":"87960e60c26ba072","type":"template","z":"e390e8213c12e7f5","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"姿勢が悪くなってるよ!","output":"str","x":540,"y":340,"wires":[["1219e919a0c945e8"]]},{"id":"4c9e4307f02eb754","type":"template","z":"e390e8213c12e7f5","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"まずまずの姿勢だね !","output":"str","x":520,"y":460,"wires":[["d857f50ec5f72096"]]},{"id":"8a4bcf705c43eb17","type":"template","z":"e390e8213c12e7f5","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"良い姿勢です!キープしよう!","output":"str","x":520,"y":540,"wires":[["08245c791116c57c"]]},{"id":"f1083f24865317a2","type":"PushMessage","z":"e390e8213c12e7f5","name":"","credentials":{"channelSecret":"ChannelSecret","channelAccessToken":"AccessToken","targetId":"UserId"},"x":880,"y":380,"wires":[]},{"id":"2f63cbc5e9482159","type":"delay","z":"e390e8213c12e7f5","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":540,"y":380,"wires":[["5ee287f5f4e867fc"]]},{"id":"5ee287f5f4e867fc","type":"template","z":"e390e8213c12e7f5","name":"","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"これみてストレッチでもしよう!
https://www.health-net.or.jp/tairyoku_up/undo/stretch/t02_02_06.html","output":"str","x":700,"y":380,"wires":[["f1083f24865317a2"]]},{"id":"8c71456dbacf1732","type":"obniz","obnizId":"","deviceType":"obnizboard1y","name":"","accessToken":"","code":"obnizParts.hcsr04 = obniz.wired("HC-SR04",{ gnd:0, echo:1, trigger:2, vcc:3 });
obnizParts.WS2811 = obniz.wired('WS2811', { gnd:9, vcc:10, din:11 });"}]

重复

代码
msg.payload = await obnizParts.hcsr04.measureWait();
return msg;

obniz 函数

初始化过程
obnizParts.hcsr04 = obniz.wired("HC-SR04",{ gnd:0, echo:1, trigger:2, vcc:3 });
obnizParts.WS2811 = obniz.wired('WS2811', { gnd:9, vcc:10, din:11 });
代码
obniz.display.print('mesure your posture');

// 距離を取得
let distance = msg.payload;
// そのままだと小数点以下の桁数がやたら多いので整数に丸めてもよい
distance = Math.floor(distance);

// 距離がある程度未満かどうかの判定
if (distance < 300) { // 300mm = 30cm 以下の場合
    // obnizディスプレイに姿勢が悪くなっていることを表示
    obniz.display.clear();
    obniz.display.print('your posture is too bad!!'); 
    obnizParts.WS2811.rgb(255, 0, 0); // 赤    
} else if (distance < 400){ // 400mm = 40cm以下の場合
    // obnizディスプレイに少し姿勢が悪いことを表示
    obniz.display.clear();
    obniz.display.print('your posture is bad')
    obnizParts.WS2811.rgb(255, 255, 0); // 黄    
} else {
    //obnizディスプレイに姿勢がいいことを表示
    obniz.display.clear();
    obniz.display.print('your posutre is greate')
    obnizParts.WS2811.rgb(0, 0, 255); // 青    
}
return msg;

转变

obnizを使って良い姿勢を保とうとしてみた

开关分为30cm以内、30~40cm、40cm以上的情况。在这种情况下,根据翻译,LINEbot 会向您发送有关您的姿势的消息。
之后,在模板中用LINEbot写出你想输出的文字,就大功告成了。

概括

它曾是怎样的?
它非常容易创建,因此请作为参考。

在这个流程中,LINE 频繁到达。我们认为,如果每 30 分钟随机测量一次眼睛与屏幕之间的距离,并通过 LINE 通知结果,将会更加实用。


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

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

相关文章: