LoginSignup
6
3

obnizを使って夏を快適に過ごせるインテリアを作りたい!

Last updated at Posted at 2024-06-06

やりたいこと

最近obnizというIoTツールを使ったモノづくり体験をして、温度センサー、照度センサー、超音波センサー、いろいろな計測器を使って手軽にモノづくりができることがわかった。

そこで、実用的でおしゃれなインテリアを作ってみたいと思う。

使用環境

・Node-RED
・obniz
・温度センサー
・LEDライト

アイデア

突然ですが、皆さん「共感覚」というワードは聞いたことがありますか?
「風鈴の音を聞くと涼しく感じる。」のようなある感覚が別の感覚に結びついて感じられるというものです。

最近暖かくなってきたし、共感覚とIoTツールのobnizを使って夏を快適に過ごすためのインテリアを作りたい!

共感覚で涼しさ(や暖かさ)を演出するディスプレイ
30℃~  :    ・・・涼しい印象
20~30以上:    ・・・さわやかな印象
10~20以上:黄色   ・・・心地良い印象
~10℃  :オレンジ ・・・暖かい印象

実装①:obnizで回路を組む。

まずは、obnizに温度センサーを組み込み、温度を取得できるようにする。
この時にobnizが動き続けないように停止処理も入れておく。

実装写真①.jpg

コード

[{"id":"dbf97535b85c3daf","type":"debug","z":"2c2d5660c62f51ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":260,"wires":[]},{"id":"2e1ea09664bd1d56","type":"obniz-function","z":"2c2d5660c62f51ec","obniz":"885bd4a8566eb346","name":"","code":"msg.payload = \"finish\";\nawait obniz.wait(1000); \nobniz.close();\n\nreturn msg;","x":380,"y":260,"wires":[["dbf97535b85c3daf"]]},{"id":"8bb726363f0cc99c","type":"inject","z":"2c2d5660c62f51ec","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":160,"y":260,"wires":[["2e1ea09664bd1d56"]]},{"id":"b02da749d71e5cfd","type":"obniz-repeat","z":"2c2d5660c62f51ec","obniz":"615761087796b984","name":"Temperature sensor","interval":"10000","code":"msg.payload = await obnizParts.LM60.getWait();\n\nreturn msg;","x":170,"y":180,"wires":[["d77c4e3ad87a4acc"]]},{"id":"d77c4e3ad87a4acc","type":"debug","z":"2c2d5660c62f51ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":590,"y":180,"wires":[]},{"id":"885bd4a8566eb346","type":"obniz","obnizId":"","deviceType":"obnizboard1y","name":"","accessToken":"","autoConnectOnDeploy":true,"code":"obniz.display.clear(); // 画面を消去\r\n\r\nobnizParts.LM60 = obniz.wired(\"LM60\",{ gnd: 0, output: 1, vcc: 2 }); // 温度センサー\r\nobnizParts.WS2811 = obniz.wired('WS2811', { gnd:9, vcc:10, din:11 }); // LEDライト"},{"id":"615761087796b984","type":"obniz","obnizId":"","deviceType":"obnizboard1y","name":"","accessToken":"","autoConnectOnDeploy":true,"code":"obniz.display.clear(); // 画面を消去\r\n\r\nobnizParts.LM60 = obniz.wired(\"LM60\",{ gnd: 0, output: 1, vcc: 2 }); // 温度センサー\r\nobnizParts.WS2811 = obniz.wired('WS2811', { gnd:9, vcc:10, din:11 }); // LEDライト"}]

実行結果
image.png

ひとまず、温度センサーから温度を取得することができた。

実装②:取得した温度に合わせてLEDライトを点灯させる。

実装①で組み込んだ回路にLEDライトを付け足し、温度に合わせて発光させる。

実装写真②.jpg

コード

[{"id":"f2297e3178418ac0","type":"debug","z":"b73fc104301b9e6a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":730,"y":600,"wires":[]},{"id":"aa43f62f1c513eb6","type":"obniz-function","z":"b73fc104301b9e6a","obniz":"885bd4a8566eb346","name":"","code":"msg.payload = \"finish\";\nawait obniz.wait(1000); \nobniz.close();\n\nreturn msg;","x":480,"y":600,"wires":[["f2297e3178418ac0"]]},{"id":"76cb94038a5bfd43","type":"inject","z":"b73fc104301b9e6a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":600,"wires":[["aa43f62f1c513eb6"]]},{"id":"bc56618cd7b23fb6","type":"obniz-repeat","z":"b73fc104301b9e6a","obniz":"885bd4a8566eb346","name":"Temperature sensor","interval":"10000","code":"msg.payload = await obnizParts.LM60.getWait();\n\nreturn msg;","x":230,"y":480,"wires":[["28712bd21beda4b1","fdb96ca7793a23d5"]]},{"id":"fdb96ca7793a23d5","type":"debug","z":"b73fc104301b9e6a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":470,"y":540,"wires":[]},{"id":"28712bd21beda4b1","type":"obniz-function","z":"b73fc104301b9e6a","obniz":"885bd4a8566eb346","name":"Led light","code":"obniz.display.clear(); // 画面を消去\r\n\r\nif (msg.payload >= 30) {\r\n    // 30℃以上の時\r\n    obniz.display.print('pushed');\r\n    obnizParts.WS2811.rgb(0, 0, 255); // 青\r\n} else if (msg.payload >= 20){\r\n    // 20℃以上の時\r\n    obniz.display.print('right');\r\n    obnizParts.WS2811.rgb(0, 255, 0); // 緑\r\n} else if (msg.payload >= 10){\r\n    // 10℃以上の時\r\n    obniz.display.print('left');\r\n    obnizParts.WS2811.rgb(255, 69, 0); // オレンジ\r\n} else {\r\n    // 10℃未満の時\r\n    obniz.display.print('released');\r\n    obnizParts.WS2811.rgb(0, 0, 0); // 消灯\r\n}\r\n","x":460,"y":480,"wires":[[]]},{"id":"885bd4a8566eb346","type":"obniz","obnizId":"","deviceType":"obnizboard1y","name":"","accessToken":"","autoConnectOnDeploy":true,"code":"obniz.display.clear(); // 画面を消去\r\n\r\nobnizParts.LM60 = obniz.wired(\"LM60\",{ gnd: 0, output: 1, vcc: 2 }); // 温度センサー\r\nobnizParts.WS2811 = obniz.wired('WS2811', { gnd:9, vcc:10, din:11 }); // LEDライト"}]

実行結果
image.png
室温が30℃未満だったので、ドライヤーで温度センサーの測定温度を上げてライトの発色を確認した。
実装写真③.jpg
実装写真④.jpg

温度に合わせてLEDライトを発光させることができた。

実装③:より見栄えを可愛くインテリアっぽくする。

アクリルスタンドの背後にライトを配置すれば、きっとお洒落なインテリアになるはず!

<稼働動画>
ドライヤーで温度を30℃未満⇒30℃以上に上げた時の稼働場面

動画_圧縮版.gif

<稼働写真>
もしかして青が濃すぎた?
涼し気というより青ざめている印象になってしまった。
雪だるまのアクリルスタンドでおしゃれで涼しげな印象を演出したかった...

実装写真⑤.jpg

その他のアイデア

単なるディスプレイではなく、実用性のあるインテリアも作れそう。
僕は天気予報をこまめにチェックするタイプではないため、必ず目に付くインテリアがお天気情報を知らせてくれると嬉しい。

天気APIから降水確率を取得して、雨が降りそうだったらライトアップする傘立て

感想

実際に自分が作りたいと思ったものを形にできたのは楽しかった。
ライトアップしていない状態よりも少し暑さが和らいだ印象を受けた。
(プラシーボ効果かもしれない…)
ただ、自分が使い続けたいと思うには見栄えもよくしないといけないと感じた。

今度は今回実現できなかったアイデアや使っていないセンサーも取り入れて別のIoTツールを作ってみたい。

参考資料

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3