マラソンレースとApple Watch
今回はじめてマラソンのレースにApple Watchを着けて参加しました。
過去のマラソン大会はApple Watchを持ってなかった時期ですし、Pebbleをつけてたときは1.5時間持たずに電池が切れてしまったので実用できずという感じでした。
利用したアプリですがRunkeeperなどのランニング専用アプリは使わず標準のワークアウトを利用しました。WatchOS 5から平均だけでなく直近1kmの速さが出るようになったのでこれで十分だろうという実験です。
今回着けてみて
という感じです。以下詳細です。
心拍計
今回は春先はよく走っていたのですが夏以降は走っておらずレース2週間前にやっと練習を始めるという感じだったので、練習不足感は否めませんでした。
そのため後半でどのくらいバテるかを想定できなかったため、心拍数を低めに保つことを意識しました。
そしたら過去のレースで一番余裕なレースとなりました。(記録は遅い)
目安としては下記で走りました。
- ~5km: 120bpm
- ~15km: 130bpm
- ~25km: 140bpm
- ~35km: 150bpm
- ~42km: 160bpm
結果5kmのラップタイムで一番早いのが35km〜40kmの区間でした。
心拍計、かなり便利です。
距離の計測
公認レースだと少なめに誤差が出ないように1kmを1001mとして測ってるらしいですが、それよりは大きいレベルで1km毎の標識の手前で1kmとなっていました。
横移動が計測されているからかGPSの誤差かはわかりませんが、最終的にApple Watch上で走った距離は 42.7kmでした。
電池
レース途中で電池切れが一番つらいので直前までモバイルバッテリーで充電していたのですが、走り始め96%→走り終わり56%ということで余裕でした。
結構頻繁なペース確認で画面を点灯させていてこれなので、7時間かかる人でも基本持ちそうです。
今回はほぼ新品のApple Watchですがバッテリーが多少弱ってきてもこれくらいであれば自分は大丈夫そうです。
音声でのメッセージ返信
LINEなどは通知に対して音声で返信できます。この機能いつ使うんだよと思ってましたが走ってるときに返信できそうです。
一人で走ってて時たまに寂しくなったら知り合いに相手してもらうとかできそうです。
位置情報の共有
これはApple Watch関係なくてiPhoneの方ですが、Google Mapで位置情報を共有してかつアプリ使用中以外も位置情報を共有するようにしておくと走っている場所がそれほど遅れもなくわかります。
応援をしてくれる人が時間を有効に使えるようになりました。
まとめ
もっと便利な専用の時計はあると思いますが、素人ランナーにとってはApple Watchで十分な部分も多そうです。
次はRunkeeperとかのアプリも試してみたいと思いました。
東北・みやぎ復興マラソン2018 走ってきました
4年半ぶりのフルマラソンでした。
走る前日の土曜日は石巻に。
ここは震災前には数回は行ったことがあるのと震災の翌年に一人で町を見に行ったこともあり、自分の中では震災とそこからの復興が肌で感じられる場所です。
震災の翌年移行は訪れていなかったので6年ぶりですが、当時あった瓦礫はきれいに片付けられていましたし、観光している人も多かったです。
沿岸の地区は居住禁止区域になっているため前のような町並みにはなることはないかもしれませんが、もっともっと活気のある街になっていってほしいです。
久々に行きましたがやはり石ノ森萬画館は楽しい場所で、ちょっと見るだけの予定が意外と2時間半ほどじっくり楽しんでしまいました。
最初の写真は日和山公園からの写真です。
そしてマラソン当日。
6時に起きて仙台駅から名取駅まで行ってシャトルバスで会場へ。
9:45スタートで14:14ゴールのグロスタイムでギリギリ4時間30分を切りました。
気温は最高気温17℃で待ち時間は少し寒いですが走るのには快適な温度。
沿道の声援の量は過去のレースで一番でした。
エイドは後半に畳み掛けるようにあって、全部のフードを食べる主義の自分はちょっと多すぎると感じる程。
手荷物の預かりもスムーズですし、去年は2時間も待たされた人もいるというシャトルバスは待ち時間無しで乗れました。
まだ2回目ということですがマラソン大会としても文句のないイベントだったと思います。
来年も予定があえば走りに行きたいです。
FINISHはサザエさんとハイタッチ。
初代Apple WatchからApple Watch Series 4に買い替え
iPhone8のバッテリー交換(無料)に行ってきました
あと3日で購入後1年間の保証が切れるということでバッテリー交換に行ってきました。
iOS11でバッテリーの劣化に応じてピーク性能を抑えるようになって炎上した件の対応ですね。通常5,400円が2018年末まで3,200円になって更に保証期間中なら0円になるという。
バッテリーの劣化状態は設定→バッテリー→バッテリーの状態から確認できるわけですが、自分の場合は91%ということで大して劣化はありませんでした。
とはいえこういうのは線形な劣化ではなく、あるタイミングから一気に下がっていくイメージなのでやって損はないなと。あとこれまで修理するくらいなら新しいスマホを買う派だったので、一度もAndroidもiPhoneも修理対応ということをしたことがなく修理対応に興味があったというのもあります。
店に行くまで
Appleのサイトから近くの修理対応店を予約しました。一番対応日付が近いのがApple Store表参道で5日後という感じで、どこも忙しそうです。そういえばGenius BarはApple Storeのアプリから予約できたイメージですがそういうのはなくなったみたいですね。
一応行く直前にiPhoneをバックアップしておきます。
店に行ってから
予約時間(若干遅れ)に店に行って予約してること伝えると時間が押してるので少し待ってほしいとのこと。確かに自分の他にも待たされている人が多数。
結局16:20の予約で案内があったのが16:40でそこから更に5分程待って店員さんの対応が始まりました。
簡単に説明受けて、バックアップ済みか確認され、バッテリーの状態測って、大して変わらないよと念を押され、iPhoneを探すを解除して、モバイルSuicaを一時削除して、預けて1時間半待ちという流れ。
時間通りに行くと更に15分ほど待たされて無事受け取り。Apple Watchつけて待ってるとiPhoneにきた通知を受け取れたので修理が終わってるかそれで判断するのもありかもしれない。
感想
表参道への往復1時間と待ち時間が2時間で合計3時間ほどかかったと考えると0円だからといって不要なバッテリー交換をやるほどではなかったなという。
すぐ終わると思ってPCとか持っていかなかったものの、もう一台スマホはあったのでポケモンGOで暇つぶしできたからなんとか耐えられました。ケンタロスも手に入ったし結果的にはまぁ悪くないかなという日でした。
専門職で生きるということ
エンジニアは業務外の時間に勉強すべきかどうかという話題について。
エンジニアは士業などと同じように専門職です。
専門的知識は時間の経過で陳腐化するので、ある時点で持っている知識は時間の経過と共に価値が下がります。
そのため、実務や勉強などで専門性を高める努力は人生を通して必須なのです。
専門職についたということは、"これからの人生で専門性を保ち続け、その報酬として相対的に高い金額の報酬を得る"ということを自分で決めたということです。
会社のもとで専門性を身につけられればそれも良いのですが、それは会社の当たり外れというある種博打の部分が出てきますので、自分の力で知識をアップデートできる方が安心です。
これからずっとボスの指示で動き続ける"イソ弁"のような状態でよければ勉強も不要とは思いますが、それだと自由度も報酬も高くなりませんので、せっかく専門職についたのであれば独立開業とは言わないまでも転職を自由にできたり環境を好きなように選べる状態のほうが人生は楽しいのではないかと思います。
ということで業務外での勉強はした方が良いよ〜というのが個人的な結論です。
※エンジニアの報酬は士業と比べて高くねぇよという話はあると思いますが、その他の士業の方が資格を獲得するための時間程度の量を専門性の獲得に費やした人はある程度の報酬を得ていると思っていますし、独立開業のしやすさなどの点でやはり十分に士業並みなのではないかなと思います
部屋のCO2濃度が上昇したら自動で換気扇をつける
ちょっとやりたくなったので表題のIoT的な仕組みを作ってみました。
経緯
この記事を読んだのがきっかけです。
半分以上は家で作業しているので部屋のCO2濃度のせいで作業効率が落ちるのは嫌なのでひとまず計測してみました。
結果16畳ほどある部屋でも1人で何時間か作業すると1000ppm程度までは上がってしまい、定期的に窓の開け閉めをしていましたがそれも面倒になって自動化に至りました。
構成
(webhook) Raspberry pi -----> IFTTT-------> Smart plug ----> 換気扇 | ↑ | (usb) | (「換気扇をつけて」) | | CO2測定器 Google Home
換気扇がコンセントの電源のON/OFFで操作できるという少し特殊な部屋なのでこの構成で良いのですが、スイッチのON/OFFが必要な場合はSmart plugの代わりに「Switch Bot」のような商品が必要でそれだったらやってなかっただろうなと思います。
やったこと
買ったCO2測定器は下記です。
カスタム (CUSTOM) CO2モニター CO2-mini
- 出版社/メーカー: カスタム
- メディア: Tools & Hardware
- この商品を含むブログを見る
こういう機器は安物を選んでもキャリブレーションとかがちゃんとできておらず不正確な情報を得られてしまうので慎重に選びたいところ。
前に尊敬するRailsの作者でもあるDHHがco2meter.comは大丈夫と行っていたのでそこのOEMであるらしい上記製品を購入しました。
Consumer warning: Do not trust the VOC and CO2 readings from @myfoobot devices. Here are three of them placed in the same room. Real CO2 as measured by a https://t.co/V1Rjw0qxtv device is 519ppm. Garbage. pic.twitter.com/IrRoWb9fOL
— DHH (@dhh) 2017年11月9日
情報取得するために常に動いているサーバーが欲しいが自宅には常時稼働のデバイスはなかったのでRaspberry pi 3 Model Bを購入。最近はこういう商品でAmazonでの発送元が代理店の場合ちゃんとしているところか調べるのが面倒なのでヨドバシを利用してます。
https://www.yodobashi.com/product/100000001003490456/
2AのUSB電源(2.5Aが本当は必要)とディスプレイとHDMIケーブルとキーボードは必要でしたが家にあったので購入したのはRaspberry piだけですみました。
設定は下記サイトを参考にしたら問題なく完了。
次にSmart PlugはIFTTT対応必要なのですが中国製のものばかりで少し怪しかったのですが、それ以外を探すのも面倒なので下記を購入しました。
Google Home対応しているのでGoogleの審査は入っていて怪しい動作はしないはずと信じていますが、ちょと怖いような気もします。気にする場合はamazon.comで良いのを選んで購入するのが良いかも。
届いてセットアップしてみたところ、アプリはちゃんとしていて動作は問題ありませんでした。
そしてIFTTTで下記を設定します。
- IF "Webhook" Then "Meross (Turn on)"
- IF "Webhook" Then "Meross (Turn off)"
簡単ですね。
最後にRaspberry piからwebhookを飛ばすだけです。usbデバイスから情報を取得するのはroot権限だと楽なのでrootで作業しちゃいます。
まずは必要なライブラリのインストール
apt-get install libudev-dev libusb-1.0-0-dev pip install hidapi co2meter
下記のスクリプトを /root/co2d.py とかで配置。スクリプトの内容としては毎分値を取得して1000を上回ったらつけて600を下回ったら止めています。pythonあんまり得意じゃないのでコードは適当。
#!/usr/bin/env python import co2meter as co2 import time import os import sys from datetime import datetime def main(): mon = co2.CO2monitor() triggered = False while True: try: current = mon.read_data_raw()[1] print(current) if current >= 1000 and not triggered and datetime.now().hour >= 8 and datetime.now().hour < 23: print('CO2 value is over 1000ppm!') os.system('curl https://maker.ifttt.com/trigger/co2-over/with/key/hogehoge') triggered = True if current <= 600 and triggered: print('CO2 value is under 750ppm:)') os.system('curl https://maker.ifttt.com/trigger/co2-under/with/key/fugafuga') triggered = False except Exception as inst: print(type(inst)) print(inst.args) print(inst) sys.stdout.flush() time.sleep(60) def fork(): pid = os.fork() if pid > 0: f = open('/var/run/co2d.pid','w') f.write(str(pid)+"\n") f.close() sys.exit() if pid == 0: main() if __name__=='__main__': fork()
でdaemonで動かすために下記のような /usr/lib/systemd/co2d.service 作成
[Unit] Description=CO2 Monitoring Daemon [Service] ExecStart=/root/co2d.py Restart=always Type=forking PIDFile=/var/run/co2d.pid [Install] WantedBy=multi-user.target
systemctl enable co2d.service systemctl list-unit-files | grep co2d
リブートしてps -ef
でdaemon起動を確認できればOK。
雑感
楽しいので他にもいろいろなもので試してみたくなるものの、有用なケースはなかなか思いつかないのが悲しいところです。
少しずつ部屋の明かりの音声操作とかも取り入れてきていますが、気をつけているのは一緒に暮らしている人がストレスを感じないようにするところです。
・少しの便利さのために不便を強いることにならないように ・少しずつ導入してなれてきたら次のデバイスを入れる ・Google Homeで操作するときのニックネームを工夫して操作を楽しめるようにする
などなど。
次は草木の水やりのために水の乾き具合を計測できたらいいなとか思ったりしています。