ravelll の日記

よしなに

Raspberry Pi + Netatmo で二酸化炭素濃度モニターを作る

部屋に Netatmo の Smart Home Weather Station を設置して気温や湿度、二酸化炭素濃度などを測定している。

測定値は Web 上の Dashboard ごしに見ることができるのだけど、PC を開いていないが値が気になるとき、具体的には集中を要するゲームをしているときにサッと値を見づらく少し不便していた。ちなみになぜ値を見たいかというと、集中力の持続と部屋の二酸化炭素濃度との関係が気になったため。

これを解決すべく、まず iOS のショートカット機能で Netatmo の API を叩いてワンタップで測定値を見れるようにしてみた。

ショートカットを使うのは初めてで思った以上に色々できて面白かったのだけど、iPhone を手に取りワンタップして数秒待って測定値を見る、というのが面倒で全然活用しなかった。

何かを操作することなしに値を見るには、と考えたときに棚で眠っている Raspberry Pi に小さなディスプレイを付ければ CO2 モニターを作れるのでは?と至り、作ってみた。

機材は Raspberry Pi 3 (Model B) と 1602 の LCD ディスプレイ。

Raspberry Pi 3 MODEL B

Raspberry Pi 3 MODEL B

  • 発売日: 2016/05/31
  • メディア: Personal Computers

Netatmo の API を叩いて結果をディスプレイに出す部分は atmo gem と i2c-ss1602 gem を使って ruby でシュッと。コードはこちら。

GitHub - ravelll/pi-co2-monitor

成果物はこんな感じ。1分ごとに値を更新してくれる。

f:id:ravelll:20210517214347j:plain
raspberry pi co2 monitor

そんなこんなで、無事要求が満たせるものが作れて良かった。早速活用してみたところ、ゲーム中の部屋の二酸化炭素濃度は 1500ppm 前後と高めの値を維持する事がわかった。今度は上手く換気をしつつプレイして感覚に差があるか確認したい。多分差はないと思う。

リモート会議用のイヤホンを Aftershokz Aeropex に乗り換えた

フルリモートで仕事をするようになって1年と少し、日々のミーティングに使うイヤホンとして SONY の WF-1000XM3 を愛用してきた。

音楽を聴くにもそこそこ好みの音を鳴らしてくれるし概ね満足していたのだけど、数少ない不満点として時々 MacBook Pro との Bluetooth 接続が切れてしまうことがあった。接続が切れたあとは10〜20秒程度で自動的に再接続されるのだけど、議論の進行を妨げたり大事な議論を聞き逃してしまうことがあった。また困ったことに問題が起きる頻度が徐々に高まり、最近では1時間ミーティングをすれば1回は切れるような状況で、完全に参ってしまった。

といったことがあり、Twitter で何度も見かけていた Aftershokz Aeropex を2週間ほど前から使い始めた。

問題の原因を特定せずエイッと乗り換えてしまったのでやや不安だったのだけど、15時間ほど使ってみた限りでは幸い接続は安定している。
数時間つけっぱなしでいるとモノを載せている耳介の付け根あたりが痛くなるが、日に日に痛みは小さくなっている気がする。音は音楽を楽しむには厳しいがミーティングをするには十分といった感じ。

接続に関して何が変わったのか気になり先程新旧それぞれの機器の Bluetooth の仕様を見比べて見たところ違いはほとんどなさそうで、問題解消の要因は未だ分からず。

もしまた同じような問題が起きることがあったら、またその時 Twitter で話題の何かを買おうと思う。

タブを uniq する Google Chrome extension を作った

ブラウザのタブを開きまくっていると同じページを複数タブで開いてたみたいなことが容易に起きる。開いているタブ群から特定のタブを探すときに同じページが無駄に複数のタブで開かれているとその分見つけづらくなるし少しだけイラッとする。タブを uniq したくなる。

という背景があり、それを実現する Google Chrome extension を作った。というか、何年も前に作ろうとして放置していたのをふと思い立ち動くようにして Chrome Web Store に公開した。

chrome.google.com

やっていることはただ開いている全タブの URL を取得して各 URL について重複して開いているタブを閉じているだけ。最低限動くようにだけしたという感じで、例えばパラメータやフラグメントについて何も考慮していなかったり、Manifest のバージョンが V2 だったり、Chrome Web Store の説明画像が雑だったりする。気が向いた時にちょいちょい手を入れていこうと思う。