柏の葉IoTハッカソンで「技術賞」を受賞しましたー!

こんにちは!IoT女子のさきです!

LoRaWANを使った柏の葉IoTハッカソンに個人で1月22日応募致しました!
そして結果は、「技術賞」を受賞いたしましたー!

センスウェイさんのWebサイトに、結果発表のページがあるので、リンクしておきます!
柏の葉IoTハッカソン入賞者発表

発表会・表彰式

先日2月17日土曜日に行われた、「柏の葉IoTハッカソンの発表会・表彰式」にも参加しました。
場所は柏の葉キャンパスKOILさんでした!

最優秀賞、優秀賞、IoTメディアラボラトリー賞、ウフル賞、ウイングアーク1st賞の5組様
こちらは最優秀賞、優秀賞、IoTメディアラボラトリー賞、ウフル賞、ウイングアーク1st賞の5組様。

技術賞を受賞した、5組
技術賞を受賞した、5組。

ウイングアーク小竹さんとパシャリ!
ウイングアーク小竹さんとパシャリ!
ウイングアーク1st様のMortionBoard(モーションボード)を今回の私の提案において、無償でご提供いただきました。ありがとうございました!

アイディア賞を受賞した5組様
こちらはアイディア賞を受賞した5組様。

さきの挑戦

簡単に書くと、駅前タクシーの待機列解消に関する提案をさせていただきました!駐車場にタクシーが入るとタクシーに取り付けたICが、駐車場に設置してあるICリーダーに反応して、LoRaWANデバイスでIC番号を送信、用意したサーバーでJSONを受け取って適切に処理し、車輌を管理することができるシステムです。

LoRaWANデバイスからのデータはJSONがMQTTで送られてくるのですが、まずMQTTって何だろう?というところからスタートしました。右も左もわからない中、「Chromeの拡張機能のMQTT lensがいいよー!」という情報を得るも、その少し前のChromeのアップデートでMQTT lensは完全に使い物にならず…。

もうこの際きっちり勉強しよう!と思い、MQTTについてかなり調べました。結局、やりたいことをやるためにはただJSONを受信しても意味ないなーと思い、phpでMQTTクライアントをつくることに。

でも、phpでSubscribeするにはwhileをわざと無限ループさせる必要があって、レンタルサーバーだとまず停止されちゃいます。phpは常駐させることを想定していない言語なので…。

しょうがない、やるならとことん!ということで、VPSを借りて、サーバーを構築することにしました。MQTTクライアントはRubyで実装することに。phpと構文が似ているような感じがして、比較的Rubyは扱いやすかったです!

サーバーはDTI serversmanのエントリープランでレンタルして、構築しました。エントリープランはワンコイン(500円)なのでかなりリーズナブルです!お試し期間が無い代わりに、初期費用が無いのが嬉しいです!

しかしこのVPS、CentOS7と相性が悪くて、CentOS6.9を入れることに。(CentOSはサーバー用のLinuxOSでかなり有名なOSです。行政の用途だと有料ディストリビューションであるRed Hatの使用が多いみたいですが、CentOSはRed Hatをまるまるコピーしています。著作権的に問題になりそうなものですが、これがOKになっちゃうのがLinuxの世界です。その代わり、Red Hat社のサポートは受けられません。また、バグの修正などもRed Hat→CentOSの順で修正されるので、若干遅いです。そのタイムラグのせいで被害が出た、という例は今の所無いようですが。)

CentOS6系列はApache2.2が標準で、phpの7系列が使えません。php7系列は5系列の倍速で動くと言われているので、7系列が使いたい。

そこで、yumでインストールするのではなく、ソースビルドでインストールしました。(makeでものすごい時間かかりました。)ソースそのものは、理化学研究所さんの公開されているものをもらってきました。

aprというものがあって、これは、本来インストールできないソフトをOSにインストールできるようにしてくれるものです。こちらを利用しました。

サーバーを用意するのだけでも一苦労でしたが、ここからさらに、色々な言語を使用したりなど、とにかく大変でした。
でも、大変だった分勉強になり、スキルも上がったと思います!挑戦してよかったです。

システム構築で苦労した点

2月17日のプレゼン発表までに使用した言語が結構多いです。

  • html
  • css
  • Java Script
  • php
  • Ruby
  • C++
  • Python

Web関係の言語は慣れているので大丈夫でしたが、それ以外が大変!

やりたいことを実現するにはphpでは機能が不足していて、いくつかの言語を使用する必要があって、普段使ってない言語での実装がとても大変でした。特に、ArduinoはC++がベースになっていて、C系統の言語は変数の扱いがなかなか難しくて苦労しました…。char型はphpに無い型なので、難所のひとつでした。mysqlでchar型が出てくるのですが、そこで触れてなかったら完全に「なんじゃこりゃ」となるところでした!

また、ICリーダーにRC S380を使用したのですが、こちらはUSB機器なのでArduinoで普通に扱うことができず、ラズパイを間に挟んでなんとかデモを組みました。その際にPythonを使用したのですが、Pythonも普段使わないのでかなり苦労しました。でもC言語より新しいだけあって、そういう意味では扱いやすくて助かりました。

基本的にphpを使うことが多いので、「常駐プロセスを作りたい」「シリアルポートにデータを送りたい」という場面で困りました。

あとこれはシステム構築と関係ないですが、発表前日、資料を作ってる時にPCの電源アダプターが断線しちゃいました。Amazonとかですぐ買えるものの、「今必要なんだよ~!」という…。
しょうがないので、電源アダプターの断線部をニッパーで切って、中身出してハンダ付けです。ショートしたら怖いので、もうテープでガチガチに固めて、絶対に変形しないように慎重に扱って、使わない時はコンセント抜いてっていう感じでした!

プレゼン発表を終えて

発表は、めちゃくちゃ緊張し言い間違えたり、時間の関係でお伝え出来なかった内容もありました。なのでどこかで補足を兼ねて内容も少しネットで公開しようと思っています。
これからLTやピッチもたくさんやって、皆さんにとって分かりやすい発表がスムーズに行なえるよう、その辺りも頑張ろうと思いました!

IoTハッカソンに2、3ヶ月取り組んで、様々な言語やサーバーを扱い、たくさんのことが勉強になりました。LoRaWANデバイスの通信を自分で扱ってみたりもできました。
また、実用性の高いシステムを提案することが出来たと思います!

皆さんの発表もとても勉強になりました!

ありがとうございます。
またねー!さき

IoT女子を応援してね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です