2023年2月11日 JAWS-UG 東海道 ”IoT ボタンハンズオン” https://jaws-ug-tokaido.connpass.com/event/271449/
SORACOM LTE-M Button Powerd byAWSを使ってSwitchBotを動かしてみたKMiura(@k_miura_io)
View Slide
自己紹介• 三浦 耕生(こうき)• JAWS UG名古屋運営• 三次元地図技術のスタートアップのエンジニア・社内のAWSの管理人• SORACOMを社内に布教した男@k_miura_io koki.miura05
注意:このLTは以前SORACOM UGのLTで話したネタのリバイバル+αです。見たことある方はあしからずm(_ _)m
Switch botを手に入れた• Amazonのブラックフライデーで手に入れた• BLEのAPIもオープンになっていてハックし放題• OSS万歳!
https://qiita.com/ma2shita/items/d620bb09ba001b66593b
どうやってやろう🤔?
調べてみた• SORACOMのプラットフォームでMQTTをするならSORACOM Beam• 他のMQTTブローカー(AWS、Shifter.ioなど)の接続情報を設定することでデバイス側のMQTT接続が楽になる(らしい)• なんかよくわからんけど凄そう(小並感)
入力どうしよう・・・
こいつの出番だ!
SORACOMを知るきっかけ• 4年前にここでやったハンズオンで「あのボタン」に出会う• ボタンを押すことでLambdaを使えたり、メール送信ができるのは面白い• ビルの高層階からボタンの電波が届かなくて送信失敗しまくったのはいい思い出w
システム構成※AWS IoT 1-Clickの連携先はLambdaしかない
実装のポイント:Raspberry Pi• AWS IoTのSDKではなく汎用的なMQTTライブラリを使っている• 接続時に使うトピックの中にIMSIをプレースホルダーにしておくとSORACOM Beamが転送するときに置き換えてくれる→SIMが変わったり複数のデバイスが来ても安心
実装のポイント:Lambda• AWS IoT 1-Clickのプレイスメントでボタンを押したときのコマンドだけではなく、IMSIを受け取れるようにすることでLambdaで環境変数を設定しなくて良くなる• LambdaでテストするときもJSONを設定するだけなので楽(詳しくは記事にて!)
DEMO
実際に設置してみた(+α要素)• Raspberry Pi zeroWで意外と安定して稼働している• SORACOM Arcの仮想SIMを交換するだけで移行が簡単だったのは気持ちいい• 適度にボタンから再起動できるのは助かる• モニター用になにかディスプレイつけても良さそう
まとめ• SORACOM側でAWS IoTの接続情報を登録することでデバイス側のコードがとてもシンプルになる• IMSIをプレースホルダーにするとデバイス単位でも同じコードを使い回せる• Switchbotを使ったハックは楽しい• コーディングに自身ある方はAWS IoT 1-Clickを検討するのもありSORACOM × AWSは相性抜群!
今日紹介した内容https://zenn.dev/kmiura55/articles/soracom-beam-switch-bot
宣伝https://jawsug-nagoya.doorkeeper.jp/events/150228
END