NatureRemoとMachinistで始める簡単室温記録

この記事は PMOB Advent Calendar 2018 - Adventar の14日目の記事です。

どうもいっちーです。 最近めっちゃ寒いですね。 寒くなるとエアコンの暖房を入れるんですが、エアコンのリモコンってすぐどっかにいきますよね。 そこでスマホからエアコンなどの赤外線リモコンを使う家電の操作ができるNatureRemoという製品を導入してるのですが、これがかなり便利で重宝してます。

NatureRemoって?

nature.global

赤外線リモコンを代替するいわゆるスマートリモコンというやつです。 スマートリモコンってのは家電リモコンが発するシグナルを登録しといてスマホアプリの操作でシグナルを送信してくれる類の製品です。 NatureRemoは上記の機能に加えてメジャーなエアコン製品なんかのシグナルがプリセットとして登録されていて登録が簡単っていうのが特徴です。

それだけじゃなくてですね、おまけ(?)として、いろんなセンサーが載ってるんですよ。

  • 温度センサー
  • 湿度センサー
  • 照度センサー
  • 人感センサー

これが何に使われるかというと、家電をスマホから操作するだけじゃなくてこれらのセンサーをトリガーとできるんです。

f:id:kurosanex:20181214204214p:plain
ルール設定

スマホからの操作を想定された製品設計になってるんですがAPIも用意されてます。 https://developer.nature.global/

お家の室温情報を記録したい。

エアコンって設定温度ありますよね。操作する側としてはエアコンは設定された温度になるようによしなに動いてくれてるんだと想像してますが、設定した室温になってるかどうかはエアコンだけじゃわからないですよね。 現在の室温と設定温度を鑑みて動いてくれているのであればエアコンは現在の室温をしっているわけで、それをリモコンとかに表示してくれた方がユーザフレンドリーですよね。私が知らないだけで室温表示のあるエアコンあるのかしら。

そんなわけかはわかりませんがNatureRemoのアプリではエアコン操作時に室温表示がついてます。便利。エアコンのパワーは製品ごとに違うので操作する人が室温を鑑みながら設定温度を操作できて良いです。

というような使い方をしていたらエアコンのパワーが気になり始めました。 エアコンのパワーは電源を入れてから快適な温度に近くまでの速さだと思ってるんですが、これを測る為には室温を継続的に測る必要があります。 NatureRemoのアプリで確認できるのは現時点での情報だけです。せっかくAPIも公開されてるしということで室温記録環境を整えました。

方針

ちょっと前であれば自宅サーバで動かすぞ!となってましたが最近はめっきり面倒くさがりになりました。方針としてはなるだけマネージメントサービスに頼っていく方向。

必要なコンポーネント

室温記録してグラフ表示するのに必要なコンポーネントはざっとこんな感じでしょうか。

  • 室温センサ
    • お部屋にあったNatureRemoを活用
  • 室温を表示するアプリ
    • Machinist
  • 室温を保持するDB
    • Machinist
  • 室温をDBに格納するバックエンドアプリ

室温センサ

クラウドAPIから簡単に室温が取れて、お家で稼働中のNatureRemoを使いました。

室温をDBに格納するバックエンドアプリ

NatureRemoのクラウドAPIから室温を取得して後述のMachinistにPOSTするやつを作りました。

NatureRemoからの温度取得はこれ github.com MachinistへのPOSTはこの辺りの便利なgemを使ってさっくり書きました。 github.com github.com

できたものはdocker container image にして EC2で動かしてます。

require 'sidekiq'
require 'sidekiq-cron'
require 'nature_remo'
require 'faraday'


Sidekiq.configure_client do |config|
  config.redis = { url: 'redis://redis-server:6379' }
end

Sidekiq.configure_server do |config|
  config.redis = { url: 'redis://redis-server:6379' }
end

class GetTempertureWorker
  include Sidekiq::Worker

  def perform
    p t = client.get_temp
    p h = client.get_humi
    conn = Faraday.new(:url => 'https://gw.machinist.iij.jp') do |faraday|

      faraday.adapter Faraday.default_adapter
    end

    conn.post do |req|
      req.url '/endpoint'
      req.headers['Content-Type'] = 'application/json'
      req.headers['Authorization'] = "Bearer #{ENV['MACHINIST_TOKEN']}"
      req.body = "{
  \"agent\": \"Home\",
  \"metrics\": [
    {
      \"name\": \"temperature\",
      \"namespace\": \"Environment Sensor\",
      \"data_point\": {
        \"value\": #{t}
      }
    },
    {
      \"name\": \"humidity\",
      \"namespace\": \"Environment Sensor\",
      \"data_point\": {
        \"value\": #{h}
      }
    }
  ]
}"
    end
  end

  private
  def client
    client ||= NatureRemo::Client.new
  end
end

Sidekiq::Cron::Job.create(name: 'Get Temp Worker - every minute',
                          cron: '*/5 * * * *',
                          class: 'GetTempertureWorker'
                         )

書いたのはこれだけです。

室温を表示するアプリ && DB

machinist.iij.jp

最近ベータ公開されたMachinistを使ってみました。モニタリングだとmackerelとかが有名ですが、新しい物好きなので。 登録してAPIキーつけてPOSTするだけの簡単仕様。

一週間貯めてみた

丸々一週間室温記録したのがこちら。ドラッグで拡大できます。

帰宅時と、起床前に暖房つけてるのでそこが跳ねてるのがよくわかります。 12/10から特に室温が落ちてますがこのあたりから東京の最低気温が5度を下回るようになりました。室温もそれに引っ張られてますね寒い。

エアコンの設定温度は毎度28度でONしてますが、室温の上がりはじめからピークまで3時間ほどかかってるのがわかります。エアコンはあったまらないですね。

まとめ

NatureRemoとMachinistを使って室温を記録していく雰囲気だけお伝えしました。室温を継続的に記録していくことで、よりお部屋の状態にあった暖房、冷房家電の選定に活かせそうです。 せっかくcontainerにしたのにEC2で動かしてるのは勿体無い気がするので今度はECSにあげよう。

最高の昇降式デスクを作った話

どうもいっちーです。

かなり前の話になりますが、昇降式デスクを組み立てたので紹介します。

昇降式デスクの選択肢

  1. 現在の机より広い
  2. 昇降式であること が条件でした。 快適な作業環境は欲しいがあまりコストはかけられないのでコスパ重視で以下の候補になりました。

IKEA SKARSTA

https://www.ikea.com/jp/ja/catalog/products/S79084964/ 手回し式の昇降式デスクで、120x70cm と 160x80cm の2サイズがあります。 店舗で実際に試しましたが、スタンディング位置にセットした際のぐらつきが気になりました。 昇降式デスクは基本的に足が二本なので前後どちらかに荷重が寄ると傾きやすくなりますが、この机は耐荷重が少ないこともあり、傾きやすいようです。ラップトップとモニタ一枚程度なら大丈夫そうですが、私の場合スピーカやそのた小物を置く予定なので購入は見送りました。コスパは抜群だと思います。

IKEA BEKANT 電動昇降

https://www.ikea.com/jp/ja/catalog/products/S09187748/ 同じくIKEAの昇降式デスク。こちらは電動です。電動な分お値段もお高くなってますが、耐荷重は70kgでスタンディングポジションでの揺れはかなり少ないです。一番の特徴はコーナーデスクバージョンがあること、右、左どちらのレイアウトもあるので選びやすいです。一番のネックは価格、ちょっと高くて手が出ませんでした。

その他

価格が安い昇降式デスクにも目移りしましたが、1. の条件が「利用中の机より広いこと」が満たせず。上記にあげたもの以外は候補にあがりませんでした。

ないので作る

なかなかぴったりの昇降式デスクが見つからず、ネットサーフィンしてた時に見つけたのがこちらの動画。

DIY Dream Desk Setup - Clean Modern Wood Design - YouTube

この動画を見たときにビビッときて、まんまこの机が欲しくDIYを決意しました。

買ったもの

  • IKEA KARLBY キッチンワークトップ

    KARLBY カールビー ワークトップ - 259x65x3.8 cm - IKEA

    IKEAではキッチン用天板として販売されてる木製の天板です。 キッチンワークトップは通常のデスク用として販売されている天板に比べて奥行きが浅い傾向にあるので、 横幅は欲しいけれど奥行きはいらないかたは、こちらを選ぶと良いでしょう。 奥行きはそこまで欲しくなかったのでこれにしました。

    デスク用天板とのその他の違いは、足取り付け用の穴が空いてないこと。足を取り付ける場合はドリルで穴を開ける必要があります。

    IKEAで購入し友人に手伝ってもらい車で運搬しました。パッケージは長さ5m、重さ30kgあるので二人で運ぶのがやっとでした。

  • Anthrodesk PROGRAMMABLE SINGLE MOTOR ELECTRIC STANDING DESK

    AnthroDesk Programmable Single Motor Electric Standing Desk

    昇降式デスクには欠かせない昇降足です。シングルモータの電動式。 天板の幅に応じて足の間隔を調整することができます。 公式サイトからではなく輸入家具業者さんから購入しました。

    耐荷重は100kg。

パーツ 金額
天板 18,000
昇降足 50,000ぐらい
その他ネジなど 2,000ほど
合計 70,000程度

組み立て

組み立ては友人に手伝ってもらい二人で作業しました。ワークトップが約30kg、昇降足も30kg程度あるので一人での組み立ては厳しそうです。

組み立て時の写真を撮ってなかったので割愛

できたもの

f:id:kurosanex:20181004010824j:plain

机の高さを変えるにはこのリモコンを使います。 f:id:kurosanex:20181004011144j:plain 右側に高さが表示されて左2つのボタンで高さを変更します。 右側4つのマクロボタンは長押しすることで好みの長さを登録できて便利です。

f:id:kurosanex:20181004012630j:plain

昇降の様子はこちら。

youtu.be

昇降デスクの弱点である、前後の揺れはどうしても発生してしまい、スタンディング時が特に顕著です。 天板に重量があることもあって、手でわざと押さない限り特に揺れは気になりません。

電動昇降デスクは天板別調達がお勧め

電動昇降デスクの完成品は世の中に出ている商品が少ないこともあり、部屋にマッチしたサイズがなかなかないものです。 電動昇降足に天板をくっつければこの問題を解決できます。お勧めです。

参考

DIY Dream Desk Setup - Clean Modern Wood Design - YouTube

黒川紀章の名建築 中銀カプセルタワービル見学へ行ってきました。

f:id:kurosanex:20180702221653j:plain

カプセルタワービルとは

f:id:kurosanex:20180702222128j:plain カフセルタワーヒル

名建築家、黒川紀章が設計したマンション。各部屋が取り外し可能なカプセルになっていて、老朽化したら交換して建物自体が新陳代謝を行うという建築 思想 メタボリズム を体現している。

建物はエレベータとそれを囲む螺旋階段を備える2本の塔に居住カプセルが階段に沿って設置されている。

その見た目はどことなく Aperture Science 感。

見学会

中銀カプセルタワービル保存・再生プロジェクト が実施する見学会に参加。 正面玄関外で簡単な説明ののち見学開始。

共用部

f:id:kurosanex:20180702224502j:plain

年季の入ったエレベータで12階へ

f:id:kurosanex:20180702225254j:plain

f:id:kurosanex:20180702225548j:plain

廊下の電気メータ。カプセルの窓と同じ丸窓。

f:id:kurosanex:20180703224354j:plain

階段のランプ。蛍光灯と電球が一つ。 下の丸いのはスピーカだろうか。

外観

f:id:kurosanex:20180703224719j:plain

カプセルから生えてるのはエアコン室外機へのホース。 竣工当時はエアコンは無く、すべて住民の後付けとのこと。
カプセル自体に室外機の設置場所は無く、設置可能な共用部までホースを伸ばす。カプセルの場所によっては設置不可能なことも。施工費は10万を超えるという。

f:id:kurosanex:20180703224742j:plain

f:id:kurosanex:20180703230433j:plain

カプセルは4本のボルトで塔に固定されている。つまり上下左右の隣接するカプセル間には隙間がある。

f:id:kurosanex:20180703233058j:plain

カプセル内

当時の内装が最もよく残るカプセルへ。 f:id:kurosanex:20180703230551j:plain カプセル内は10m2ほどの広さで左手に木製の棚が備え付けられている。 棚にはブラウン管テレビとオーディオが備え付けられている。 f:id:kurosanex:20180703230630j:plain 左がラジオ、右がオープンリールデッキ(初めて見た)。 当時人気だったらしいSONY製で揃えてある。 このデッキの前あたり、窓下にベッドが備え付けてあったらしい。

入って右手はユニットバス f:id:kurosanex:20180703233402j:plain

まとめ

非常に有名な建築物なので住宅なのでこんな機会でも無ければ入ることはないでしょう。 無機質なカプセルが長い年月を経て老朽化、改造によって見た目を変えていく様は弐瓶勉作品に登場するような雰囲気を感じました。 やはり建築は人が長年利用して変化した姿トータルで見て魅力を感じます。

カプセルタワービル 見学ツアーは下記リンクより申し込みできます。

参考

www.nakagincapsuletower.com

KISHO KUROKAWA

自作キーボード

キーボードを作りました。 f:id:kurosanex:20180428144250j:plain

なぜキーボードを作るのか

市販のキーボードにはいくつかの課題がある。

  • 自由度の低いkeymap
    keymap は固定であることが多い。 DIPスイッチでいくつかの Mod key を変更できるキーボードも存在するが限定的。

  • 不必要なキーとサイズ
    押さないキーが無駄である。

  • 画一化された物理キーレイアウト
    一段ごとにキーの配置が横にずらしてあるけどこれって本当に打ちやすいのか疑問。

これらの課題を自作キーボードで解決する。

方針

  1. 格子配列であること
  2. 左右分割
  3. なるだけ手間をかけない

必要なパーツ

  • PCB
    こいつにダイオードとかキースイッチとか半田付けしていく。キーの配置はこいつのレイアウト依存。

  • Pro micro
    スイッチの入力を読み取ったりするのに使うArduino互換開発ボード。

  • Key Caps
    キースイッチの上につけるやつ。コンピュータの一番人間に近い部分であるキーボードの中で一番人間に近いパーツ。

  • Key Switches
    いわゆる軸。これで打鍵感が決まる。

  • ケース
    キーボードの安定性、見た目を決めるもの。

作る

キーボードの組み立ては各キーボードのビルドガイドを参照。

Let's Split

6x4 格子配列分割キーボード

github.com

パーツリスト

パーツ 個数 ショップ
Let's Split PCBs 1 mehkee.com
Let's Split アクリルケース 1 mehkee.com
Kailh Speed Switch Silver 50 mehkee.com
XDA Blank Keycap set 1 TALP KEYBOARD
Pro Micro 2
TRRS ケーブル 1
TRRS ジャック 2 秋月電子
1N4148 ダイオード 50 秋月電子

組み立て

keymap

OSS のキーボード用 Firmware を利用する。 github.com

https://github.com/ichi-t/qmk_firmware/blob/master/keyboards/lets_split/keymaps/ichi-t/keymap.c

所感

分割は肩が開いて楽。
格子配列はホーポジションが矯正される。C とか人差し指で押してしまってたのとか矯正される。
アクリルケースキットに付属していたスペーサが長くかなり背が高くなってしまった。
背の高さ、kailhのスピードスイッチとあいまって誤入力が非常に出てしまう。

Ergo42

7x4 格子配列分割キーボード

github.com

パーツリスト

パーツ 個数 ショップ
Ergo42 キット 1 booth.pm
Gateron MX Switch Yellow 60 TALP KEYBOARD
DSA PBT Blank Key * pimpmykeyboard.com
Pro Micro 2
TRRS ケーブル 1
TRRS ジャック 2 秋月電子
1N4148 ダイオード 60 秋月電子

組み立て

  • PCB f:id:kurosanex:20180428144207j:plain

  • 一通りはんだ付けが完了 f:id:kurosanex:20180428144225j:plain

  • keycap を取り付けて完成 f:id:kurosanex:20180428144236j:plain

keymap

https://github.com/ichi-t/qmk_firmware/blob/master/keyboards/ergo42/keymaps/ichi-t/keymap.c

所感

実装するダイオードの向きが全て同じだったり、タクトスイッチが押しやすい場所にあったり非常に作りやすい、使いやすい。

  • Let's Split と比べて
    • 薄くパームレスト無しでも楽に入力できる。
    • キーが一行多いので Let's Split では窮屈だった親指周りが快適。

まとめ

格子配列分割キーボードの Let's Split と Ergo42 を組み立てた。
左右分割キーボードで入力が楽になった。
自分が一番よく使う道具を作るのは楽しい。

ワイヤレスイヤホン難民

この記事は PMOB Advent Calendar 2016 の17日目の記事です。

こんにちは。いっちーです。 最近はめっきりApple信者です。

西に製品発表イベントがあれば
徹夜してそれを見
東に新製品あれば
ストアに触りに行く
自宅に製品届けば 化粧箱の匂いを嗅ぐ

そんな信者になってしまったのです。

iPhone7の購入

10月にiPhone7を買いました。 32GB のブラックです。
動作もサクサクで快適そのもの
ただ一つの問題はオーディオ環境でした。

ご存知の通りiPhone7はイヤホンジャックが廃止されており、充電中はlightningイヤホンも使えないため、 ワイヤレスイヤホンの購入が急務でした。

AirPodsの発売延期

発売延期という表現は間違っているかもしれません。
なぜならAppleの公式ストアでは延期のアナウンスもなく、12月に入っても この秋登場 の文字が消えなかったからです。 AirPodsが発売されていればここまで悩む必要はありませんでした。

イヤホンの購入

1. Skullcandy ink'd wireless

まず初めに買ったのはこれです。 jp.skullcandy.com お手頃で流行りのネックカラータイプのワイヤレスイヤホン。
結論から言うといい製品でした。
バッテリーは8時間 低音が太めでダンスミュージックを聴く私には良い音に感じられました。

しかし、対応コーデックはsbcのみ 待機中のノイズが気になりました。

2. Beats solo3

次に買ったのはこれ

jp.beatsbydre.com

Appleに買収されたBeatsのヘッドフォンです。
AirPodsに搭載されるW1チップが載っています。 このW1のおかげでAppleバイスとのペアリングは3秒で完了し、デバイス間の切り替えも シームレスです。

f:id:kurosanex:20161218033252j:plain
バッテリーウィジェットが便利

iCloudアカウントで紐つけられた自分のデバイス一つとペアリングすれば、全てのデバイスで使えるんです。 すごい
AAC対応でノイズも聞こえず音もだいぶ好みでした。

しかし、オンイヤーヘッドフォン。耳の上にイヤーカップが押し付けられる形になるのでメガネとの相性は良くありません。 付属ケースはカラビナ付きで便利ですが、イヤホンと比べて持ち運ぶにはかさばります。

AirPodsへの溢れる期待

W1が載ってて、最高にコンパクトでクールなAirPods。ついに12/14(?)にオンラインでの注文が可能になりました。 確認してすぐに注文しましたが発送までに2週間との表示。ただいま確認したところ6週だそうです。今すぐ買おう。

pebble買いました

この記事はPMOB Advent Calendar 2015 - Adventar

14日目の記事です。 前:ぷよぐやみんぐしたぽよ~☆ - Zodiacの黙示録


どうも、いっちーです。
前回のお散歩記事は楽しんでいただけたでしょうか。

さて、今回は時計の購入レビューです。

Pebbleとは

PebbleとはKickstarterで1000万ドルもの資金調達に成功して話題になったスマートウォッチです。 Android wearでもApple watchでもない第三の勢力といえるでしょう。

www.pebble.com

さて、このPebble 一番の特徴はなんといっても電池持ちです。 初代Pebble, Pebble Timeで1週間近くも充電をする必要がありません。
スマートウォッチカテゴリの中で最も電池持ちが良い製品と言えるでしょう。

こちらがパッケージf:id:kurosanex:20151215040852p:plain

スマートウォッチのパッケージとしては小さい方ではないでしょうか。 かなりシンプルな作りになっています。

二週間使ってみて

購入から今日で二週間ほど経ちましたが、充電した回数は3,4回ほどで、3,4日に一度30%を下回ったら充電しています。スマートウォッチを使ってみて初めてわかったのですが、意外と充電は面倒臭いです。常に身につけているものを一度外して充電ケーブルにつなぐ行為は思った以上でした。ただPebbleの場合は4,5日に一度のペースなので、他のスマートウォッチに比べて実用的です。他のスマートウォッチを使ったことがないのですが、毎日充電するのはかなりストレスではないでしょうか。

この電池持ちを支えているのがディスプレイになるのですが、公式ではE-ink displayとの表記があります。e-inkってkindle paperみたいに動作のたびに画面がリフレッシュされるものかと想像していたのですが、実際はシャープ製のメモリ液晶らしく表示はかなり滑らかでした。

私の用途としては時刻の確認とスマートフォンの通知を受けるのがメインになります。これまで取り逃がしていたSlack,Twitterなんかの通知を見逃すことがないのでかなり便利です。スマートフォンバイブレータでは気づかないことが多いですよね。

オススメapp

Pebbleは専用のスマートフォン用アプリケーションからPebble watch用のwatch face, watch appを8つまで追加することができます。 f:id:kurosanex:20151215042610p:plain

ここで私が普段からよく使っているアプリをご紹介します。

Spoon

f:id:kurosanex:20151215042947p:plain Swarmのチェックイン用アプリです。 Swarmチェックイン用アプリは公式のものもありますが、チェックイン対象のリストが見易いSpoonをよく利用しています。

Twebble

f:id:kurosanex:20151215043259p:plain Pebble watch用のtwitterクライアントです。 タイムラインの閲覧、RT,fav,ツイートの投稿を行うことができます。

アプリ開発

Pebble.jsなるPebble watch appをJavascriptで記述できるフレームワークがあるようです。 触ることがあったら次回以降、記事にしていきたいと思います。

developer.getpebble.com