Raspberry Pi Zero 2 WによるGPSビーコンの消費リソース最小化

前記事でRaspberry Pi Zero 2 Wを使ったGPSビーコン(現在位置を定期的にサーバーに送信する追跡デバイス)を自作した際、ChatGPTさんのアドバイスを元にメモリや消費電力周りを最適化したので覚え書き。OSレベルというか、自作スクリプトと関係ない情報なので別記事にしておきます。

■ROM化

microSDカードのようなフラッシュメモリは書き込み回数により劣化が進むので、通常運用時は書き込みをしないようにします。現在のRaspberry OS 12系はBookwormという世代のDebianベースで、Overlay File Sytemというのを有効化するだけで、メモリ上に仮想ストレージを生成してログなどは全てそちらに書き込み、電源オフですべて消える、という形になります。電源投入毎に真っ新な状態から始まるので、ログが溢れるとかもないし、SDカードの劣化も抑えられるので長期放置運用にはもってこいです。

設定は標準設定コマンドraspi-configで簡単に行えます。

「Performance Options」→「Overlay File Systemなんちゃら」でYesで有効化、Noで無効化。続けてbootパーティションも無効化にするか聞かれ、raspi-config終了時に再起動を促されます。

色々設定を変更する時は無効化し、終わったら有効化するのを忘れずに!(有効化したまま設定変更しても再起動で戻ってしまいます)。

現在の状態確認は、

として、「overlay on / type overlay (rw,relatime,lowerdir=…,upperdir=…,workdir=…)」みたいなのが出れば有効、なにも出なければ無効です。

■リソースチェック法

諸々最適化を図る前に数値を取って効果検証します。

メモリ使用量

で現在のメモリ総量、残量、スワップ使用状況などが確認できます。

今回の場合、スタート状態はこんな感じでした。Pi Zero2はメインメモリ512MBですが、GPUメモリに初期状態で64MB割り当てられて目減りしていました。実質の残量が267Mi、スワップがわずか(2.8Mi)に使用されています。最終的にスワップ無効化までもっていきたい。

CPU温度

とするとSoC(CPU)温度が出力されます。初期状態で60℃ほどでした。公式の推奨動作温度範囲は0~ 85℃で80℃程度からサーマルスロットリング発動するぽい。まだまだ安全圏ですが、これは室内での数値なので、車内に隠蔽設置した際は夏の気温や暖房の影響で更に上がる可能性もあります。できるだけ下げておきたいところ。

■やったこと

[予習] config.txtの編集方法

以下の設定のいくつかは/boot/firmware/config.txtを編集することで行います。通常は/bootパーティションはro(read only)でマウントされているので、シェルから直接編集はできません。mountコマンドでrwで再マウントするなども可能ではあるんですが、今回はmicroSDをPCにマウントしてルートディレクトリにあるconfig.txtをエディタで編集しました。

GPUメモリ割当を減らす(64GB → 16GB)

現在の割り当ての確認は、

です。64GBでしたが、GPSロガーではXのようなGUIは使わないので余剰に割り当てされていると言えます。最低の16GBに変更しました。なお実際の使用量をリアルタイムで確認するのはGUIツールが必要っぽいので本末転倒なので断念。どのみち使わなければ発熱にはさほど影響しませんが、メモリをがっつり取り返せるので効果は大きいと思います。

config.txtの[all]セクション辺りに、

と書きます。

動作クロックを制限する(1.2GHz → 1.0GHz)

発熱を抑える施策です。config.txtの「arm_boost=1」の箇所を「arm_boost=0」に書き換えます。

不要なデバイスを無効化する

該当箇所を探してコメントアウト(行頭に#をつける)していきます。

Bluetoothの無効化

いっさい使わないので無効化します。これはコメントアウトではなく、行を追加します。

LEDを無効化

ボード上のLEDを無効化します。どうせ見えないところに隠すし、光ってない方が見付かりにくいでしょう。ただし今回装着したGPSモジュールHAT上のLEDは消えないので気休め程度です。消費電力が1~2mA(全体の1~2%程度)減らせるようです。

これもconfig.txtの[all]ブロックに追加します。

Wi-Fiのパワーセーブを無効化

これは逆に消費電力を増やす措置ですが、通信を安定かさせるためにやってみました。GPSロガーでは一定時間毎にサーバーに現在位置情報を送信しますが、システムが一定時間通信がないとWi-Fiを節電モードにしてしまい、復帰に数秒かかってしまうことがあるということで、それを無効化(=省電力しない)。

現状確認

で、「Power save: off」とか「Power save: on」とか出ます。

オフにするのは、

ですが、システム起動時に自動実行するためには少し操作が必要です。色々方法はありそうですが、とりあえずChatGPTさんに聞いたやり方。

/etc/rc.localに記述。今回は存在していなかったので新規作成しました。

最初と最後の行も必須です。ファイルを作ったら実行可能フラグつけます。

次に、/etc/systemd/system/rc-local.serviceを以下の内容で作成します。

そしてサービスとして登録。

これで起動の度に無効化されるはずなので、念のため「iw dev wlan0 get power_save」してみましょう。

■ログインメッセージを省略

システムリソースへの影響はほぼないですが、デフォルトのログインメッセージ の「The programs included with the Debian GNU/Linux system are free software;~」みたいな10行くらいの英文がうっとうしいので削除しました。/etc/motdの内容が差し込まれるので、これを空にします(削除ではなく中身を消す)。

■スワップを無効化

あれこれいじったおかげで、メモリ総量が50Miほど増えて、スワップ使用量が0にできました。

残量も300Mi以上あるのでスワップを無効化してよさそうです。

sudo nano /etc/dphys-swapfileをエディタで編集し、「CONF_SWAPSIZE=0」とします(最初は512とかだった)。その後、

とします。free -hを実行して、Swapの行がすべて0になっていれば完了です。

■成果確認

諸々の設定を施して、

  • メモリ総量: 416Mi→ 464Miに増加
  • メモリ残量: 267Mi → 308Miに増加
  • スワップ使用量: 2.8Mi → 0Miでスワップを無効化
  • 温度: 60℃超え → 48℃程度に低下

という最適化ができました。消費電力としては測れてないですが、温度が10℃以上下がったのは達成感あります。

ASSAドア用Sesame固定プレートのマグネット対応

ASSAアブロイの木製ドアに粘着両面テープを使わずにスマートロックSesameシリーズを取り付けるプレートを3Dプリンターで自作してきました。

同社製ドアをお使いで同じお悩みを持つ方からもちょくちょく頒布依頼を受けたりしてきましたが、今回ふと思いついてマグネット固定Verを製作しました。

Sesameは少し前から鉄製ドアに取り付けるためのマグネット「SESAMEマグネット」を販売しています。見た目普通の直径20mmの円形マグネットですが、Sesame本体側に影響しないよう片側は磁力を遮断するカバーがついています。つまりこのマグネットのカバー側をSesame本体につけて、ドア側の鉄板にくっつけるという構成です。

またSesame製品汎用となっており、5つのうち4つとか2つを使って自分で適当に貼って使う形です。本体底面の粘着テープを利用する想定なのか、マグネットには粘着テープはついてきません。

今回はこれを活用して固定プレートにもマグネット装着を可能にしようという試みです。ちょっとしたメンテナンスやうっかり体当たりしてもぎ取れてしまった時など、マグネットであればすぐにつけることができます。

設計としては単純に従来の固定プレートに直径20mmの凹みをつけただけです。

背面の反り防止スリットに到達して貫通してしまってますが、これはこれでもし鉄板を取り外したくなった場合に後ろからマイナスドライバーなどをつっこめて便利かなと残してあります。

用意した部材はSESAMEマグネットに加えて、以下。

まずSESAMEマグネットをSesame本体に貼るための両面テープ。

本体付属の底面全体の両面テープだとマグネット以外の部分に粘着面が露出しホコリなどが付きそうなので、SESAMEマグネットとピッタリ同サイズのものをチョイス。こちらは10mm径と20mm径がセットになってしまってますが、厚みや耐水、耐熱仕様であることを重視しました。

そして固定プレート側に埋め込む鉄板。両面テープ付き。

もっと安いものも買ってみたんですが「マグネット用」とあるくせに全然磁石がつかずに返品。信頼性が高そうなこちらにしました。

■使用方法

最初にSesame本体にマグネットをはる位置決めテンプレートとして使用します。

マグネットをカバー面を上にしてセット。

その上に両面テープを貼っていきます。

剥離紙をはがしてSesame本体を上から押さえつけます。しっかり貼り付けた後で引き抜くと本体側はできあがり。

再び凹みが空いた固定プレートに今度は鉄板4枚を貼り付けます。

完成!

鉄板が1mm厚と薄いのでしっかり吸着するか心配でしたが、普通に使う分には問題ないくらいガッチリつきます。逆に体当たりしてしまった時に外れてくれる方が安全かなと。まさにMagSafe。

穴の深さが2mm、鉄板が0.4mm厚、粘着テープが1mm厚なので、0.6mmの段差が残るので、SESAMEマグネットがバチっと固定位置にハマってズレることもありません。

壁につけた様子。

逆に一度位置決めしてしまうと動かせないのは粘着テープ固定とかわらないですが、簡単に脱着できる点は自分のようにちょいちょい付け外しして採寸したり自作アクセサリのマッチングとったりする人間には便利です。まぁ、普通の使う分にはそうそう脱着の必要はないと思いますがw。

■頒布情報

とりあえずバッテリー左配置のだけ作りましたが、他のパターンやSesame 5 Pro用も簡単に作れると思うので、希望があったのから作っていこうかなと思います。

SESAMEマグネット以外の部材(両面テープ、鉄板)も余ってるので、必要数同梱して1,500円とかでしょうか(通常版が1,000円、送料、税別)。

ご関心お持ちであればこちらのフォームからお問い合わせください。

eufy SoloCam HomeBase S380追加、カメラS340も買い増し、ポールマウントDIY

数日前に導入したばかりのeufyのセキュリティカメラSoloCam S340がなかなか良かったので、同じセール期間中に追加購入をしました。S340の記事はこちら。

追加したのはHomeBaseのS380とSoloCam S340をもう一台です。

■HomeBase S380

こちらはeufyのカメラシリーズの録画データを保存/処理する家庭用サーバーデバイスです。カメラ単体だと内蔵ストレージに保存しますが、宅内にS380を設置してペアリングしておくとS380側のストレージ(内蔵16GBまたは増設した2.5inch HDD/SSD)に保存されるようになります。万一カメラを持ち去られてもその瞬間の映像までは残る(盗まれにくい)ということになります。

またスタンドアローンのカメラでもエッジAIで「人間」「車両」といった識別はしますが、S380だと更に一歩進んで顔認識で人物を識別できます。

そして3つ目の利点として、AI処理を電源の心配がないHomeBaseが肩代わりすることで、カメラ側のバッテリー消費が抑えられるとのことです。

実際、S340をほぼ満充電にして屋外設置したところ曇天の1日だけで20%台まで残量が減ってしまいました。買ったばかりで嬉しくてちょくちょくストリーミングしたりPTZ操作をしたりしていたというのもあるかも知れませんが、いくらなんでも「ソーラー充電できなくても3ヶ月保つ」気はまったくしません。余計な部分で動体検知しないよう範囲を絞るなどしてはみたんですか。あとはまぁ録画解像度が3Kなのは電池喰いかもは知れません。でもまぁ録画解像度が高ければ後で拡大して人物の顔まで判別できたりするかもなので、ここは極力譲りたくないところです。そんな感じだったので、少しでもカメラの動作時間を延ばせればというのがHomeBase導入の大きな理由です。

カメラとHomeBaseは専用SSID接続のみ?

セッテイングして気付いたというか「ほんとに!?」と思ったのは、カメラとHomeBaseは専用SSIDでの通信になるという点。自宅Wi-Fiの設定は上書きされます。これだと例えばせっかく自宅Wi-Fiを有線バックボーンで張り巡らせていても活用できず、カメラとHomeBaseの物理距離や障害物次第で通信が不安定になってしまうということです。とても残念、というかどうしてこんな仕様にしたんでしょうね?常にHomeBase側でAI処理をするということはストリーミングしっぱなしということになるので、自宅Wi-Fiの帯域を食い潰さないようにとの配慮でしょうか?とはいえどうせ当該周波数帯が混むことには変わりない気もします。今回の設置位置は2台のS340カメラとHomeBaseの位置関係が近いので実害はなさそうですが、これが例えば家の端から端みたいな配置だったらどうなんだろ?と言うところは気になりました。

またHomeBaseとのペアリングに切り替えると、設定がリセットされたりそれまでの録画が閲覧不能になります。削除はされないようですが再び自宅Wi-Fi接続に戻すまでは閲覧ができなくなる旨のメッセージが出てました。同期くらいしてくれと思わなくもないですが、やはりこれも常時ストリーミングをする傍らで並行でできるようなものでもないのかも知れません。

ペアリング操作手順自体はこなれていてそれほどつまった箇所はなかったように思います。「いやいや既存Wi-Fi経由でつなげられないわけはないよね??」と思ってあちこちいじりまくったのはありますが。

せっかくなので2.5inch HDDどこかに転がってるはずのを発掘して入れてみようかな。

S340カメラのおかわりと円柱雨樋用マウンター作成(3Dプリント)

同居人が別のアングルも見えるようにしたいということでもう一台パンチルトのS340を買いました。カメラ自体のレビューは前記事にありますのでそちらをご覧ください。

1台目はベランダの手すり部分にマウントしましたが、今回はもう少し地上に近い位置への取り付けだったので目を付けたのが雨樋(あまどい)の縦樋部分です。薄い樹脂でできてますが、結構劣化して思い切り握ったら壊れそうな気配もありますが、そこくらいしかつけられそうにない。自分でポールを立てるのも大変だし。

こういう円柱ポールに固定する時は大概ステンレスバンドみたいなネジで締め付ける金属ベルトみたいなものが使われると思うのですが、S340には付属していませんでした(オプションにもないと思う)。そこで雨樋の径を測って例によって3DプリンターでDIYです。

ステンレスバンドは汎用品をAmazonで購入しました。雨樋の直径が5cmくらいだったので、こちらの46-70mmの範囲に対応したものをチョイス。2個で良かったんだけどまぁそう高くもないからヨシ。

全体像はこんな感じ。

わかりにくいですが、右側の少しベージュがかった部分が3Dプリント品です。前回同様インサートナットでM4のボルトを受けるようにして固定しています。ブラケットとカメラが外せるので、ボルトはつけっぱなしでカメラの脱着は可能です。

ステンレスバンド周りはこんな感じ。

三日月状の部分が我が家の雨樋にピッタリ合うようになっていて、ステンレスバンドの締め付けを半分は引き受ける感じ。もう一回り大きいリングにして全周で締め付ける方が雨樋を壊しにくいかなとも思ったんですが、まずはこんな形で。材料は白の在庫があったBambuのPETG-Basic。ちょうどPETG-HFがセールで劇安なので白も注文したところでしたが、逆に半端に残ってるのを使い切りたくて。PLAよりは熱耐性があるし白だし反りにくい箇所もないのでこれでいけるんじゃないかと期待。

あとは締め付けが甘いと下にズリ落ちていかないか心配ですが、とりあえずは雨樋側の壁に固定しているアンカーのところに載せる形でいいかな。

その出来、有料級!?

実際に取り付けた様子がこちら。

どうよ。バッチリでしょう(ご満悦)。目論見通り壁に固定するアンカー(?)に載せる形にしたので、ここよりズリ落ちてくることはないです。ステンレスバンドによる締め付けもドライバーで微調整できるので、雨樋を割ることなくいい感じに固定できてると思います。なにか滑り止めのシートでも挟んだ方がいいかとも思ってたんですが、いまんとこ回ってしまう様子もなさそう。

あとはPETG Basicの耐候性次第ではありますが、近いうちにUVカットスプレーを買って吹いておこうかなと。樹脂に吹くなら模型用のこういうのかな?どれくらい保つかわかりませんが。

いやぁこれはニヤニヤしてしまいます。3Dプリントの醍醐味ですね。

ちなみに雨樋の縦樋の規格としては直径で60mmと75mmが一般的なようです。こちらの情報によるとメーカーでコンマ何mmの誤差はあるようですが。しかし何故か我が家のは実測でΦ54.4mmでした。経年で痩せた?んなこたないか。まぁそこは簡単に調整できると思うので、雨樋以外のポールの場合も含め、他の外径のリクエストもあれば対応は可能だと思います。もしご興味ありましたらコメントにてお知らせください。

  • 金属埋め込みナット
  • M4ボルト
  • (少し余ってるのでご希望なら)ステンレスバンド

もセットでご提案できると思います。

玄関ポーチライトの制御をSwitchBotからSesameボット2へ移行

玄関ドアの外側の屋根のある部分(以下ポーチ)の照明をIoT制御したいと思って、クラウドファンディングで買って余ってたSwitchBotを使っていました。壁スイッチはPanasonicのコスモワイドシリーズ21の3ボタンタイプで、そのままだとSwitchBotと相性が悪かったので、3Dプリンターで固定具を作りました。

しかしこれがどうも安定動作にもっていけず。設置時点で大丈夫そうだと持ってもしばらくするときちんとボタンを押し込めず。基本的にオートメーション機能で日没前に点灯し、日の出で消灯みたいな自動化をしてるんですが、スイッチは1つのトグルなので、きづくと点灯消灯が逆転していたり…

そこで、ついに重い腰を上げてSesameボット2に乗り換えてみました。こちらの方がアームの稼働(回転)範囲が広いし、ボディ外側に出ているアームを交換したりカバーパーツを付けたりもできるので、最悪でもまた3Dプリンターでオリジナルアームを作ってみたりできるんじゃないかと。ソフト面ではSesameアプリ単体ではオートメーション機能がなく自動化ができませんが、Matter対応なので、Google Home/Alexa/Apple Homeに登録すればそちら経由でなんとかなるだろうという目論見。

CANDY HOUSE キャンディハウス Bot 2 ホワイト

CANDY HOUSE キャンディハウス Bot 2 ホワイト

3,163円(04/26 16:38時点)
Amazonの情報を掲載しています

(Sesame製品はAmazonoよりも公式ストアの方が安いことが多いのでご注意ください)

早速3Dプリンターで固定具を製作

CGの左がSwitchBot用、右がSesameボット2用です。Sesameボット2の方が若干フットプリントが小さく、さらに両面テープが貼ってある部分は小さいので、固定プレートは小さめ。アームの位置も異なるので位置もかなり下がります。これでも3連の一番上のスイッチの真ん中あたりを押す想定です。

実際に取り付けた様子がこちら。

レイアウト的に3つボタンそれぞれに3台のボット2を配置するのは難しそうですね。左側に配置して引っ張るアダプタをつけるとかですかね。

BOOTHにも出品しておきました。匿名配送でやりとりしたい方はご利用ください。

・セッテイングには少しクセがある

SwitchbotとSesameボット2に大きな違いは、前者がアームを倒して戻すという往復動作をするのに対し、後者(本品)はアームを360°回転する仕組みです。そのお陰でモデルカーの車輪を回すみたいな応用も効くのですが、ことスイッチを押すという目的だと逆に少しまどろっこしく感じることも。

具体的には「0.x秒正回転」「0.x秒逆回転」みたいな動作を時系列に組み合わせて「台本」というもの作ります。角度ではなく時間で指定します。例えば今回のセッティングでは試行錯誤の結果、

  • 0.3秒回し、
  • 0.2秒戻す

という台本になりました。「おなじだけ0.3秒戻す」んじゃないの?と思われるでしょう。これが本品の面倒くさいところです(^^;)。まず本体を基準にした絶対角度で指定できません。あくまで今のアーム位置から相対的にn秒間回すことしかできないのです。回転速度は一定時間の通電である程度一定の角度を得られそうなものなんですが、それでもなんらかの外的要因でアームの角度が変わってしまうとアームがきちんとボタンを押しきらない、ということも起こりえます。手で回しても簡単には回りはしないのですが、ボタンをグっと押し込んだ後とかにノックバック(反動)で大きめに戻ったりしがち。そんなこんなで綺麗に毎回同じ動作を繰り返すということがそもそも苦手な製品だと感じました。

そんな中でどうにかやりくりをして見出したポイントが、

  1. 長めに回して確実に押す
  2. 押す力を緩めるくらいの意味でほんの少し戻すステップを入れてやると、あとは勝手に反動で戻る
  3. 本体の固定をしっかりする

という3つ。アームがどんな角度からスタートしても確実にボタンまで到達するように長めにします。すると当然早くタッチしてしまった場合も続けてグイグイ押し続けることになります。でもそうするしかない。この時、本体が負けて滑落しないよう3.のしっかり固定しておくというのが大事になります。そして充分な時間をかけてボタンを押したあとで、同じだけ戻すとまたアーム位置が不確定になります。その代わりに0.1秒という極短時間戻す動作を入れると押す力がふっと抜けて、ボタンのバネの力でいい感じに跳ね返されて、概ね一定の位置に戻ることを発見しました。

跳ね返って戻るという不確定な動作に頼るのは甚だ気持ち悪いのですが、現状上手くいきそうなのはこのパターンのみでした。

ちなみに公式も含めてググると「回転モード」みたいなのが選べる設定画面が出てきますが、これは初代ボットにあったもので、ボット2からは削除されているぽいです。あくまで、正回転、逆回転、止めるの組み合わせに秒数を組み合わせて「台本」を組むのがボット2です。

なおこの台本は0番から9番まで10本作っておけます(0番始まりなのがエンジニア脳な人が作ってるなという感じで微笑ましい)。後述のSesameリモートをペアリングした場合、解錠ボタンを施錠ボタンが0番と1番に紐付く様です(逆かも)。コスモ21の場合、ONとOFFの動作は同じなので、台本0と台本1には同じ設定を入れました。そして微妙な位置調整が必要になった時のために、台本2は「0.1秒(最小単位)戻す」だけのセッティングをしました。どうしてもボタンを押し込んだままの位置で止まってしまった、といった時に使うようです。台本2~9はスマホアプリからのみ実行可能ということになります。あと台本に名前がつけられずにあくまで0~9のどれがなんだったかはユーザが覚えておかないとならないのが残念。

とまぁ、いままで色々使って来たSesame製品の中ではちょっと設定回りが惜しい気がしています。それでもSwitchbotよりは確実にボタンを押して照明をON/OFFできてるので、今の時点では替えて正解だったかなと思っています。操作の反応もSwitchbotよりクイックな印象。あっちは「あれ?反応しなかった?もう一回押すか?」ってなるレベルで待たされることありました。

ともあれ、これから長期的に安定して稼働するかどうかは見て行きたいと思います。

外での点灯にはSesameリモートnano

玄関ポーチの照明をスマート化する動機その1は、「ドアの外からも点けたり消したりしたい」です。

SwitchBotにはリモートボタンという別売りアクセサリがありましたが、Sesameではリモートやリモートnanoが使えます。今回は小さくて安いリモートnanoを買ってみました。nanoは標準でストラップもついており、キーホルダー的に鍵束やランドセルにぶら下げて使うモバイル用の位置づけなんですが、ストラップは取り外せるようになっています。

CANDY HOUSE キャンディハウス Remote nano ブラック

CANDY HOUSE キャンディハウス Remote nano ブラック

2,180円(04/26 16:38時点)
Amazonの情報を掲載しています

Switchbotリモートボタンの時と同じように玄関にある置き配棚(ルミナスラック)に固定する治具をこれまた3Dプリントで作りました。nanoの背面はフラットなので両面テープで貼り付けるだけの簡単なものです。背面パネルはスライドできる電池ブタになっていますが、これを貼り付けたままでも問題なく開けられます。

取り付けた様子がこちら。

モバイル用ということでフルサイズのリモートよりバッテリーが小さいため、普段はスリープしているようで、ボタンを押してからボット2が反応するまで若干待たされる感じはあります。こういう固定の使い方ならフルサイズ版の方が良かったかなと思います。まぁ今回はまだ持っていないnanoを買って採寸して色々なアクセサリを作ってみたいなという意味合いがあったので。そのうち耐えきれなくなったらフルサイズに替えるかもですが、今のところ耐えられないほどの遅延ではない気がします。

本来的な用途で、例えばスマホをまだ持たせてない子ども用とかには良い製品かなと思います。バッテリーは3~10年保つとのこと。電池はやや馴染みの薄いCR1632というサイズ。

難点としては、初期設定時以外に設定画面に入れないということ。一度設定をして画面を抜けると、次にまた設定画面に行くには、裏面のリセットボタンを細いピンで長押しして再度アプリで新規デバイス追加フローをしなければなりません。省電力との兼ね合いなのかアプリ側から設定を呼びだせないのです。名前を付け替えることすらできません。そして、このリセットのピン穴がまた小さくて刺さるものを探すのが大変、、安定運用が始まればそうそういじることではないとはいえ、初日だけでなんやかんや3回くらいリセットしました。

オートメーション機能が標準アプリにはない

玄関ポーチの照明をスマート化する動機その1は、「朝晩に自動点灯/消灯したい」です。

しかしSesameはもともとスマートロック製品なせいか、現時点で標準アプリ単体ではオートメーション機能がありません。やろうと思ったら、

  • Sesameハブ3経由で、Appleホーム/Google Home/AlexaにMatter連携する
  • Nature Remoと連携する

といった座組が必要になります。Nature RemoはSesameスマートロックやSesameボットの共有キー(QRコード)を使って直接紐付けするので、ハブ3を設置してなくても使えます。一方でたぶんBluetoothを使って通信なので、物理的にSesameボット2とNature Remoが離れている場合不安定になる場合があります(ウチでは警告が出た)。Sesameハブ3を設置して経由する場合、ハブ3とSesameデバイスがBluetooth通信して、ハブ3と他のスマートデバイスはIP通信になるので、Wi-Fiは有線LANを介して家中で安定通信が見込める、という違いがありそう(ハブ3の位置だけは留意が必要)。

我が家では全てあるんですが、なぜかGoogle Homeだけはエラーになって連携できず。今回はAppleホーム(HomeKit)がレスポンスも良かったので「ホーム」アプリでオートメーションを組みました。

ただいずれにせよSesameボット2は照明の物理ボタン(コスモ21)のON/OFFを識別できないので、各アプリが認識するON/OFFを実際の点灯状態は必ずしも一致しないという制約があります。人が手動でスイッチ操作したり、ボットによる押下に失敗したりするとアプリ上のステータスと反転してしまう必要があります。日の出や日の入りでオートメーションをしたら、極力人力で操作しないようにするなどの運用が必要です。またGPSなどと連携して「帰宅したら点灯」みたいなことももし最初から点灯していたら消灯させてしまう結果になるので、あまり上手くないでしょう。これはSwitchbotも同じなんですが。きちんと物理のON/OFFを連動させたければ、壁スイッチ自体をPanasonicのリンクプラスとかに置き換えるか、トグル式ではなくシーソー式のスイッチにするしかないですね。

リンクプラスは無線ブリッジまで含めると高いし、2スイッチモデルまでしかないのでちょっと我が家にはそぐわないんですよね、、

なおシーソースイッチにする場合は、アームセットに含まれるスイッチレゴアームを使う必要がありそうです。シールを貼って引っ張ってオフ動作をする感じ。あれ、でもこれアームの絶対位置を検知しないボット2の仕様だと、連続でONとか連続でOFFしたら簡単にアーム位置がズレでおかしくなるような??公式の動作イメージに載せてくくらいだけど本当に実現できる(実用になる)のかな?

いずれにせよ電気工事士の資格がないと触れない工事内容になってしまうので断念。

■まとめ

重い腰をあげて(オリジナルマウントが)動作不安定なSwitchbotからSesameボット2に移行して、とりあえずは安定して動作するようになりました。これで毎日定時にON/OFFされてくれれば毎日の手動操作からは解放されそうです。ただ日の出と日の入りトリガーだと少しタイミングとして不満があるので、季節毎に時刻を調整しつつ使って行く感じになるのかな?と思っています。

Vブレーキ用(Panasonicハリヤ)用Sesameサイクル2アダプタを改良(Ver.3)

以前、ママチャリ用であるSesameサイクル2(自転車用スマートロック)をVブレーキであるPanasonicの電動アシスト自転車ハリヤ(2016年モデル)に取り付けるアダプタを製作しました。かこの経緯は以下の2記事に。

初期バージョン(Ver.1)

Sesame Touch対応バージョン(Ver.2)

ぶっちゃけ最近は自転車自体パンクを放置して乗ってなかったんですが、コメントで使ってみたいというご要望をいただき、改めて製作してみることに。せっかくなのでこれを機会にいくつか気になっていた課題も改善してみようと。

課題1: 埋め込みナットの強度問題

以前のバージョンではSesameサイクル2を固定するボルトの受け側として、埋め込み金属ナットを使っていました。下の写真のような部品を熱した半田ゴテでプラスチックを溶かしながらグニュっとインサートする手法です。

これでしっかりと金属ボルトを固定できるはずだったのですが、しばらくつかっていると、このナット自体が抜けてきてしまいました。アダプター側のインフィル(密度)が低かったのかも知れません。できるだけ強い力を掛けないようにしてましたが、振動のせいかわかりませんが、だんだんと緩んできて抜けてしまいます。

そこでブログには載せていませんでしたが改良版として下の写真のように受け部分(黒)をアダプター本体(青)と別体パーツにしました。意図としては積層方向をかえること。このアダプターは寝かせるように 造形するのでレイヤーが水平にできるため、ボルト方向に力が入ると剥がれやすいかなと。そこで黒い部分だけ別体でレイヤー方向が垂直になるように作っていました。

一応これにしてから破損することなく使えていたんですが、アイデアとしては「そもそも埋め込みナットやめて、長いボルトを貫通させて裏側にナットつけて両側から締め付ければいいんじゃね?」というのを思いついて、モデルまでは作ってありました。

今度破損したらこれで作り直そう、と思ったまま寝かせてあったので、今回あらためてこちらを試そうと。造形的には1パーツで作れる方が楽ですし。

課題2: 材質と耐候性

3Dプリンターでもっともメジャーなフィラメント素材はPLAですが、難点として熱に弱いというのがあります。60℃くらいでかつ荷重がかかっていると割と簡単に変形してしまいます。上記の青いのはPLA-CFというカーボンフィバーを練り込んで強化した素材だったんですが、今回あらためて外して眺めると軽く歪みが出てきました。

耐熱、耐紫外線などの耐候性の面ではABSやASAがあります。ABSは造形が大変で匂いがキツいというので我が家では未導入。それよりは匂いがマシというASAは使ってるんですが、これが調整が難しく、どうしても表面が綺麗にならずにダマができてしまいがち。ペーパーでヤスって平らにするも今度は黒い色がしらっちゃけてしまい、更に塗装したりと仕上げにかなり手間。

そこで今回は同じく屋外に向いているという高速PETGを採用。曰く、

「高速 PETG は、通常の PETG が持つ強度を維持し、水、紫外線、極端な温度に対する優れた耐性を提供します。PLA よりも丈夫で耐久性に優れており、プランター ポット、鳥かご、水やり缶、自動車部品などの屋外用アイテムの印刷に最適です。さらに、フリスビーやブーメランなど、長期間の屋外使用や衝撃、衝突、落下に耐える必要がある屋外用玩具にも適しています。」

とのこと。実際表面はかなり綺麗に仕上がりました。PLAには及びませんが、ヤスリ掛けまではギリギリ必要無いかなくらい。

課題3: Sesame Touch固定のラッチ機構

上部にSesame Touch(指紋センサー)をとりつける部分があるのですが、上記の青い世代のものはレールの固さだけで固定してました。それがしばらく時間をおいたらガチガチに固着していて外すのに苦労しました。ハンマーで叩いたレベル。

本来はハンドルベース側に小さな突起がついていて少しだけ引っ込むバネ構造になっていてカチっと固定するようになっているので、その構造の再現にチャレンジ。もちろん金属バネを組み込むのは部品管理上手間なので、3Dプリントできる樹脂だけで実現すべく挑戦。

下の白っぽい部分がそれです。別パーツとして造形し差し込んで接着剤で固定しています。

Sesame Touch固定ラッチ
断面図

一応パチっと鳴ってはまるようにはなりましたが、正直強度とか保持力みたいなところは今後モニタリングが必要です。走行してるうちにTouchが緩んで落ちてしまわないかは不安です。

ちなみにSesame Touch単体だけでなく、別売りのタッチホルダー(自転車用)が必要になります。

完成したVer.3

そんなこんなで完成したのがこちらのVer.3です。

ボルトとナットはちょうど手頃なセットがなくて別々に買って組み合わせています。M5で30mmで六角4mmが使えるモノ(自転車いじる人ならHEXレンチの方が都合が良いですよね?)。ナットは別のボルトナットワッシャーのセット商品から取り出しています。

このマウントアダプターにSesameサイクル2をとりつけた状態がこちら。

裏のナット穴側はこんなです。

ボルトの長さが足りなくてナット穴を深めにしてしまったので、締め付けがちょっと大変になりました。この向きにしてナットを先に入れ込んで、下からボルトを差し込んで締め付ける形。

たぶん先にこの2つを合体させておかないと、Sesameサイクル2を最後にとりつける形だと、ナットが重力で落ちてしまうので大変だと思います。もっと長いボルトが調達できるなら、ナット穴をもっと浅くして指で押さえながら締め付けられるようにすればいいかもなんですが、手近なホームセンターでは30mmまでしか売っておらず。

今回は先にこの2つを組み付けたあとでまとめて自転車に取り付けます。なお、このアダプタを自転車のVブレーキ部分に取り付けるのは元からついているボルトで共締めにします。こちらは六角5mmレンチ。同じレンチが使えると楽なんですが、Sesameサイクル側のボルト頭が大きくなると干渉しそうだったので、、

取付時にはマッドガードに若干干渉しますが一度通過してしまえばギリギリ触れないで済むと思います。この辺りは自転車のモデルや年式によっても違うと思うので、今は自分の2016年式ハリヤ基準です。ご要望いただいた方の年式が微妙に違うので、実際にマッチングしてもらって必要なら調整していこうと思います。

今後、長期的に

  • 解錠/施錠がきちんと機能するか
  • ブレーキの動作に支障がないか
  • Sesame Touchの固定が緩んでこないか
  • アダプター全体が屋外放置で変形や劣化していかないか

などをモニタリングしていきたいと思います。ASAで作った試作品もあるので、どちらも日当たりの良いところに吊しておこうかな。

ハリヤ2017年モデル対応

ウチの2016年式とは違う2017年モデルにお乗りの方からご要望いただいたのでお送りしたところ、そのままでは合わず、Sesame受け部分を2cmズラして欲しいとのことでしたので、以下のバリエーションを作ってみました。

これで取付できたとのことです。やはり年式で結構違うものですね。ちなみに写真左のようにSesame受け部分を接合せずバラで造形してお送りし、どの位置が適正化探ってもらうようにもしたのですが、今回は不要でした。

今後また別モデルでお問い合わせがあった際にはこういう検証用バラモデルもお送りしようかなというところです。これで理想の位置を割り出していただきその数値を元に改めて一体版を作るという感じ。またSesame Touch取付部分も写真のように簡単に有無を選べるので、不要な方はスッキリデザインでお使いいただくことも可能です。

バラモデルに目盛りも刻んでみました。ボルト受け具の下端を計測位置とし、0目盛りのところが現在の(ハリヤ2016年モデルでの)基準位置となります。そこから何mmズラせば良さそうかお手元の自転車で調べていただきご連絡いただいた後、本番用を製作するという想定です。

ハリヤ以外のVブレーキ搭載車でもカスタマイズ承りますので、Sesameサイクル2買ってみたけどつかなかった…とお困りの方はコメントにてご相談ください。