『成果報告』2020年夏soracomインターンー混雑を可視化するだけのアプリ制作『したかった』ー

 

期間 

こんにちわ 

学部2年生でフロントエンド中心にいろいろかじってる清水です。

 この度は、8月3日から8月14日の間の2週間SORACOMさんの夏のオンラインインターンに参加させていただきました。

www.lp.soracom.jp

それとちなみにですが、参加者にはIOT機器が配られました。大好きです。

soracom.jp

soracom.jp

私はiot機器に少し興味のあったので、魅力的に感じました。

soracomさんのインターンに行こうと思ったきっかけ

学校のサークル?関係で、食堂の混雑を解消するというプロジェクトで存在を知ったことです。

しかも、先輩も参加するというのでちょっとついていこうと思って参加することにしました。

テーマ決め

現在、私が所属している学校の食堂には4つの大きな課題が存在します

  1. 席が見つからない
  2. 食事を買うときの待ち時間が長い 

  3.  レジが長い

  4.  返却口の列が長い

想定される(実際の自分の)行動として

  1. 腹が減って、とりあえず友達がいる食堂に行こうとするー12:00

  2. めっちゃ人いるし、めっちゃ列あるし、めっちゃ席ないー12:10-12:15

  3. 友達と協力して席確保してから買いに行くー12:20-12:30

  4. 飯食べる。時間が来るまで携帯とかおしゃべりして時間潰す。—12:45

  5. 大体45分ごろになったら、片付けて次の授業の場所に行く。ー12:45–12:50

という感じになっています。(害悪ですみません)

 

そして、自分が考えた解決策としては以下です。

  • 混雑レベルの提示

    あわせて日中のヒートマップ作れたら美味しい

    値段 おいしさ 快適度 でおすすめランキング作りたい

  • 整理券 

    食堂側の見込みの作り置き?をカンでなくデータで提示することで確実な調理のサポート(ボタンで商品と時間を記録する方式にしたら機械学習でできそう)

  • トレイを置くだけで取ったメニューがわかる(画像認識ゴリゴリ)

  • 快適で食堂に近くて騒げる食べた後の避難所(溜まり場)を作る

この中でとりあえず2週間でできそうなものを考えると最初の混雑度の可視化がちょうどいいかなと思い、作ることにしました。

今後、先輩が主にIotの人でデータをいじって混雑度をだしてくれるという話でもあったので、自分はフロント側だけつくればいいかなーと軽く考えていました(この時は...)

やったこと

  1. ソラコムプラットフォームの初期設定とハーベストとラグーンを触ってみた
  2. ハーベストからjsonをダウンロードして、閾値で色分けしてみた
  3. サーバー レスで動的サイトにしたかったため、AWSのドキュメントとAWSの本を読みあさった。
  4. funnelでIoTCoreにメッセージを送ったり、Kinesis経由でS3にデータをながしてみた。IAMの沼にハマった。。。lambda関数の無限ループ起こしかけた。
  5. フロントのおおまかなコーディングをした
  6. 2周目。フロントのJsonをobjectに変えて表示するロジック書いた
  7. lambdaとGlueで温度と湿度から混雑度を出そうとしたけど無理だった。というのも、どうも温度と湿度とカメラからの人数計測で線形回帰をゴリゴリにやったらできるらしいという論文みたいなのを見つけましたが、そんな技術力も数学力もないです。数式が理解できなくてマジで萎えました
  8. つかれて一休み。
  9. 動的サイトにはできなそうなので、IotCoreとSNSを外して、S3でホスティングすることにした。
  10. この記事書いてる。。。

構成

FRONT

  • framework (library):react

CLOUD SERVICE

SORACOM

  • Hervest
  • Funnel

AWS

ハーベストからfunnelを通じてキネシスに流して、S3バケツにためる感じです

 

成果物

最終的にはsoracomのGPSマルチユニットが設置されている場所と温度と湿度を表示するだけのものになってしましました。

 

app-image

次は、コードです。。(使い方が汚いですが)



感想

これまでフロントエンドを主にやっていて、クラウドサービスやAWSなどを重点的にやる機会がなかったので、セキュリティや通信やサーバーやデータベースの処理など知らないことしかなくとても大変でしたがいろいろといじっている間にちょっとづつ慣れていく実感がありました。冗長化とかオートスケーリングとかやってみたかったなぁ。

しかし、予備知識や大まかな流れがわかってないのに思い通りにサービスを組み合わせることは、AWSがどれほどGUIで簡単になっていたとしてもとてもとてもしんどいということがわかりました。

当初やりたいと思っていた課題が最終的にできていない結果になってしまったのでとても残念です。

とても自分はまだまだだと実感させられました。

ちょうどこの夏、自由な時間がかたまってあるのでいろいろと知識つけて習熟していきたいと思います。。

 

以上、成果報告でした。ありがとうございました。