ファーストロジックについて

2023.03.09

IoTで課題解決! 開発部による社内改善

開発部では『楽待』の開発と並行して、社内にある様々な課題、要望をエンジニア視点で解決する取り組みも行っています。今回は、そんな取り組みの中から、開発部で作成した「会議室の利用状況可視化ツール」について紹介します。

会議室にあった課題

今回の要望の内容は、「各会議室の利用状況をリアルタイムで知りたい」というものでした。

当社では会議室を予約する際、各自がGoogleカレンダーに予定を入れる形で対応していました。しかし、カレンダーには予定が入っていないのに、会議室が使用中になっている、という事がよくありました。当社のオフィスは構造上、普段仕事をしている席から会議室の様子を確認することができません。そのため、その都度会議室まで行き、利用状況を確認する必要がありました。

当社の会議室

解決策を検討した結果、「開閉センサー」を使用することにしました。

具体的には、市販のセンサーを会議室の扉に設置し、扉が開いているか閉まっているかの情報を取得します。そして、その情報を反映したスプレッドシートを作成することで、席を立たずに会議室の利用状況を確認できるようにしました。

センサーの設置

まずはセンサーを購入する申請を行いました。

今回使用したのはSwitch Bot社の開閉センサーです。Switch Bot社は開閉センサーのほかにも、カーテンの電動化デバイスやスマートキーなど、様々なIoTデバイスを提供しています。Switch Bot開閉センサーにはAPIがあり、機能の拡張がしやすいため、このセンサーを選びました。

購入申請は社内SNSを使って部長に提出し、すぐに許可をもらうことができました。センサーが届いたので設置します。

センサーをなるべく目立たない場所に設置するために、脚立を使ってドアの高い位置に設置しました。

実装

開閉センサーの情報はGoogle Apps Script(GAS)を使って取得することにしました。

GASはGoogleが提供するアプリケーション開発プラットフォームで、Googleが提供する各種サービス上で処理を自動化したり、複数のサービスを連携させたりできます。今回は、Googleスプレッドシートの自動更新のためにGASを使いました。その仕組みについて、紹介させていただきます。

各センサーには一意のIDが振られており、情報をサーバに送っています。クライアントはIDを指定してAPIを呼び出す事で、サーバーに送られているセンサーの情報を取得できます。GASを1分ごとに定期実行させて、IDをパラメータにサーバーのAPIを呼び出し、取得した開閉情報をスプレッドシートのセルに反映させます。

苦労した点

GASを使うのが初めてだったので、定期実行のためのトリガーの設定に戸惑いましたが、先輩の説明もあり、理解して実装することができました。

また、センサーは対となるマグネットの磁力を感知しており、通常は付属のマグネットをセンサーの反対側に設置します。今回は設置物をできるだけ目立たせたくないということで、別のマグネットを購入したのですが、そのマグネットの磁力が弱いため、センサーとの距離が少し離れると、なかなか検知してくれないという問題も起きました。そのためセンサーとマグネットの設置位置を細かく調整する必要があり、脚立の上で試行錯誤していました。

完成

そんな苦労もありましたが、なんとか完成させることができました。

完成後、社内SNSで周知したところ、スプレッドシートに多くの人がアクセスしているのがわかりました。最初はバグがないかと不安でしたが、周知した際に反応やコメントが寄せられ、作ったものが役に立っているという実感を得られました。

完成から一か月ほど経過した今でも、心配していたバグはなく、問題なく動いてくれています。Googleスプレッドシートだけでなく、Googleカレンダーにも利用状況を反映してほしいとの要望もあるため、今後もアップデートを続けていく予定です。

今回の社内改善では、他部署からの要望の受け付け、センサーやマグネットの購入、フィードバックなど、部署内外問わずやり取りがありましたが、それらすべてが社内SNSやスプレッドシート上で行われ、スムーズに実施する事ができました。また、社内改善を通して、通常の開発とは少し違った技術を学ぶ機会を得られたと感じています。

今回は、開発部における社内改善について紹介しました。開発部では一緒に楽待の開発や社内改善をしていただける方を募集しています。当社の開発職に少しでも興味を持たれた方はぜひご応募ください。

>>新卒採用<<
>>中途採用<<