Help us understand the problem. What is going on with this article?

スマートロックが壊れたのでobnizを使ってハックしてみた

こんにちは、わみです!

ギークハウス新宿では住民の入れ替わりの季節で住民減です!
こういうハック的な事に興味がある人いたら私のTwitterにメッセージしてくれると!

なにをしたのか

壊れてしまったスマートロックからモータの制御や現在のポジションを取得するために制御を乗っ取り、obnizから指示を出すプログラムを作ってみました。

2019-08-26_21h17_04.png

Sesameを導入した話:https://speakerdeck.com/wamisnet/sieahausunisumatorotukuwotuketemita

きっかけ

開発合宿にてSuicaで鍵を開けるシステムを作ったときにSesameのAPIを使ったのですが待ち時間が少々長く、実際に使うときにストレスになりそうだと思いました。

10秒ぐらいかかってましたね…
かかるタイミングだと気持ち1分ぐらい待ったような…

玄関で待ちぼうけ(´・ω・`)

API以外は不満がなかったのでSesameをハックできないかと思い、Sesameを開けてみることにしました。

BLEモジュールやモータドライバーなどが取り付けられていることを確認したのち元に戻そうとしたとき…

「じゅっ」というどこかが壊れた音がしました

慌てて、電源を外しましたが時すでに遅し

もう動かなくなってしまいました

普通ならあきらめて新しいのをもう一つ買うところですが、せっかくだから思いっきりハックすることにしました!

技術構成

上の図のように連携しています。

  • ハードウエア(Sesame)
  • obniz (おすすめ記事)
  • Node.js(別のサービスと連携するのでAPIを作成)

obnizを使うと何がいいのかというとわざわざハードウエアのコードを別に書かなくてもよくて、今回であればAPIとして使うためのNode.js一つだけでハードウエアの制御ができるところですね!

せっかくなのでちょっとづつ深堀りしていきましょう。

ハードウエア

obnizにモータドライバーついているので回路はすごくシンプルでモータとソレノイドを制御する部分+鍵のポジションを取得するためのアナログ入力をそれぞれ繋いでいます。

(はんだ付けが汚いのはご愛嬌)

IMG_20190826_224135.jpg

obniz

モータとソレノイドの制御、アナログ入力を変換してくれます。
これがあるから、Node.jsで書くことができます。

Node.js

とりあえずで作ったコードなのでダメな部分ありますが、ご容赦を!

https://github.com/wamisnet/key_controller/

鍵を開ける処理(APIでリクエストがあるとき)

  1. 現在位置を取得して、平均値をとる
  2. 現在位置から目的の角度に近い方にモータを回す
  3. ソレノイドを出す
  4. 目的の角度になるまで現在位置を取得し続ける
  5. 目標角度になったら、モータを止める
  6. ソレノイドを引く

といった処理を行ってます。

まとめ

こんな感じでハックしてみました。

動画で分かるようにボタンを押してすぐ動作するようになって目標は達成しました!!

obnizだったので回路もコードもシンプルに作ることができて便利だなと思いました。

ただ玄関で使用するときには、無線LANが不安定過ぎてobnizに向いていなかったので実際に使うことはできなかったです( ;∀;)

とっても悲しい

3日ぐらいずっとこれやってたので買った方が安かった気がする…

とはいえ自分で作れるのは楽しいですね!

今回バラしてしまいましたがSesame優秀なので、使うときはぜひ!

AkerunやQrio、Sesameと使ってきましたが、さらにいいデバイスがあれば教えてもらえるとうれしいです!

ここまで読んでくれた方へ

ここまで読んでくださりありがとうございます。

いいねやコメント、SNSでの共有等をしてくださると、今後の励みになります。よろしくお願いします。

良かったらTwitterもフォローしてね

ぎーじゅくの別記事

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away