あの日、自転車を撤去された私は、IoTポストの制作に取り掛かった。

公開日:2019-01-03
最終更新:2019-01-03

ある日、ひと月ぶりの東京出張から帰った私は、すぐにその異変に気づいた。

「ロードバイクが・・・ない」

誰かに盗まれたのだろうか。卒業旅行のために、パーツを組み立てて作ったロードバイク。東京から愛媛まで漕いだロードバイク。辺りを見回してもどこにもないのだ。

5年も前、箱根を死ぬ気で登った思い出がフラッシュバックした。

ひどく落胆しながらポストを開けると、葉書が入っていた

登録がされていない自転車がマンションの放置されていましたので一斉に撤去します。保管期限は二週間後、2018年8月19日です
(2018年8月5日 マンション管理会社より TEL: xxxx-xxxx-xxxx)

なるほど!原因がわかった。よかったよかった。

いいわけがない。今日は9月1日である。

葉書をみるや否や、すぐに管理会社に電話を掛ける

imaimai : あの、こんな葉書があったんですが、かくかくしかじかで、なんとかなりませんか
管理会社 : うーん、2週間前だからねぇ。ちょっと探してみます
imaimai : お願いします。まじでお願いします。

1時間後…TEL

管理会社 : 無いみたいです。
imaimai : そんなはずは…もう一回調べてください!ロードバイクですよ?黄色いやつですよ?????
管理会社 : ふぅ…もう一度調べてみます

2日後… TEL

管理会社 : やっぱり無いみたいです
imaimai : そうですかわかりました

…責任者に問いただす必要がある。責任者はどこか。

私だ。

なので、IoTポストを作ります。

管理会社にうらみつらみを吐き出したいのは山々ですが、一番悪いのは、というか100%悪いのは自転車登録シールを貼らずに放置していた私です。なので、反省し、学習しました。

そうか、遠隔でも郵便が届いたことが分かればいいんだ。

これなら簡単にできそうです。しかし、郵便物が届いたら、内容も知りたいじゃないですか。というわけで、

「ポストに郵便物が投函されたら、郵便物の内容をSlackに通知するIoTポスト」

を作ることにしました。

IoTポスト 壱号機

大まかな構成はこのような感じです。投函を自動検知して、投函回数と写真をアップロードできるようにしました。

どうやって自動的に検知するか。これはいたってシンプルです。ポスト投函時って、パカパカするところあるじゃないですか?そこに、磁気センサと磁石を配置します。磁気センサは、磁石が近づいた/離れたを検知します。だから、ポストへの投函のために開いた瞬間、磁気センサによって離れたことが検知できるという発想です。

実際に作ってみました。
試作機はこちら。フラッシュ機能付きです!

Slackはbotを使って写真送信しています。実行コードは私のgithubリポジトリにあげておきます。また、起動時に勝手にスクリプトが走るように /etc/rc.local を編集しておくと便利でした。exit (0) の前に下記のように仕込んでおきます(自分のフォルダにしましょう)

sudo python3 /home/pi/advent-calendar-2018/day23-postchecker/check.py

これで、電源を入れれば動きます。実際の家のポストに設置してみて…

試してみましょう。送られてきた画像がこちら!

もうちょっと広角のカメラが欲しいですね。けれど、ちゃんと写真を送れています!IoTポストの完成です!

  • 何回ポストに投函されたか
  • 中身の画像

がわかるので、かなり使える予感!

エッジコンピューティングしたい!! 弐号機

しかし、写真を送信すると、かなりの通信量がかかります。

投函された文書は、写真じゃなくて、文字が分かればいいだろう

ということで、文字認識をラズパイにさせて、認識結果をアップロードするように改良を試みます。構成はこちら

文字認識には、PyOCRという便利なライブラリがあったので、それをデフォルトで使っています。DynamoDBでデータを貯めることもできるので、時刻と回数・文字を貯めることにしました

ハードウェア構成は変えないので、先程の基盤を使って、テストしましょう。撮った写真(なんか入っていたチラシの一部)と認識結果がこちら。AWS IoT上にデータが上がってきます。

ううむ…認識精度が微妙ですね。一部読み取れていますが、デフォルトのOCRだと精度が悪いみたいです。これは改良の余地がありそうです。

悲劇を繰り返さぬための道のりは険し

今後も、IoTポストの改良に取り組んでいく所存です。今回のプロトタイプ作成で見つかった大きな課題は次の2つ。

  • 端末の省電力化 or 電源をどっかから引っ張ってくる
  • 文字認識の精度・ロバスト性の向上(自分でモデルを作る?)

今回こような悲劇を繰り返さぬためにも、IoTとデータ分析をもっと学び、作りこまなければなりません。もう絶対に、自転車を撤去されてはいけないのです…!!

続報を待て!ではではっ。

※IoTについて、IoTポストについてより詳しく知りたい方は、下記を参照してください!

記事が少しでもいいなと思ったらクラップを送ってみよう!
262
+1
@hokekiyooの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする