半年半泣き

知らなかったんですよ。
読み方も意味も。

ここ数年、ニュースやネットで目にするようになった
何かの略語だと思われるこれ。

IoT
顔文字にしか見えん。

ToT(涙)の片目しか泣いてないバージョン。
「目にゴミが入って痛いよー」っていう意味かな?

そんなわけない、最近知った正解はこういう意味でした。
Internet of Things(インターネット接続で動くモノ)
頭文字だけ取ってI(アイ)、o(オー)、T(ティー)。
読み方はアイオーティーです。

そんなの知ってるよ!
だから何なの?

まあ、そう言わないで聞いてください。

まさか自分がそのような難しそうな分野に手を出すことになるとは思ってもみませんでした。

ボク、作ったんですよ。
スマホに自分の顔を写すだけで、ステンレスのゲートが「ガチャ」って開く
AI顔認証+無人入場管理ゲートシステムを。

半泣きの顔文字と思ってたくらいですから、
完成まで半年かかりました。
途中何度も挫折し、諦めかけたことも1度や2度ではありませんでした。

顔認証アプリ単体は割と簡単に実装できたのですが

アプリから無線でゲートに信号を送る→ゲートが信号を受け取りゲートが開く

この工程で数ヶ月も足止めを喰らってしまいました。

具体的には、AWSのIoT Coreという技術を利用し
モノ(今回はゲート)をエンドポイントとして設定することからスタート

アプリが送った信号だけをキャッチしなくてはならないので
セキュリティーが重要になります。

アプリ側とゲート側で暗号化されたセキュリティポリシーを介してのみ通信が許可されなくてはなりません。

AWSって便利ですけど、IAMポリシーをちゃんと設定しないと
サイバー攻撃を受けて洒落にならない被害を受けちゃいますよね。

認証されないはずの人の顔でゲートが開いちゃまずいです。

なんとかしてゲートがアプリからの信号を受け取り反応するまで辿り着いたのですが
今度は、アプリを立ち上げただけで「ガチャ」って何度もゲートが開いちゃうんですよね。
アプリのプログラムには「認証オッケーの時だけ信号を送る」ってちゃんと分岐処理をしているのにです。

結論から言うと、アプリ側の言語の混在が問題でした。
アプリはバックエンドがpython、フロントをjavascriptで動かしています。
ところが、ゲートにはシェルスクリプトでMQTTを送っています。
その際のコマンドをphpでexecしていたわけです。
javascript内でif分で分岐処理を書いて
その中で認証オッケーの時だけシェルを発動

その設計が間違っていたわけなんですね。
javascriptの中でphpを動かしたいなら
コードを直接受け込むのではなく、
ajaxを使って外部phpをキックしないと想定の動きは得られません。

半年かかって完成した顔認証+IoT。
せっかくなのでLINE予約アプリと連携して

事前にLINE予約して顔登録する→その予約した日時に顔認証する→ゲートが開いて入場できる

このシステムをGW明けのビッグサイトで開催される展示会に出展することになりました。

展示会が終わっても、いつでもお見せすることができますので
ご興味のある方は是非お問合せください。

あ、システム名は

I(急いで)
o(終わらせて)
T(とっとと帰ろう)

です。

うん、半年以上も半泣き状態が続いたんだもん。
しばらく自分の顔は見たくない。