IoTを駆使してトイレの個室空き状況を検知してWEBで確認できるアプリを会社で運用してみました。PSYENCE:MEDIAPSYENCE:MEDIAカテゴリーIoTUXその他イベントインフラガジェットサーバーサイドスクラムデザインデータサイエンスフロントエンドプロジェクト・マネジメントモバイル開発ツールIoTを駆使してトイレの個室空き状況を検知してWEBで確認できるアプリを会社で運用してみました。本エントリの内容につきまして一部の方からご指摘をいただきました。リクルートライフスタイルでは業務を円滑に回すための施策として座席のレイアウト変更およびそれに伴う従業員の出入りが頻繁に発生し、また部署やフロアにより男女比もさまざまであるという背景があります。トイレブース数と従業員数とで算出しております。これにより従業員に対するトイレブース数は法令上クリアされているとの認識です。読者の皆さまならびに関係各位にご迷惑をお掛けしましたことをお詫びするとともに、ここに訂正させていただきます。こんにちは、2015年度新卒フロントエンドエンジニアの小原正大です。IoTでトイレの個室空き状況をWEBで閲覧できるサービスをつくりました。今回はリクルートライフスタイルに出向中の望月駿一氏と共同で開発を行いました。2016年2月現在、トイレの混雑に悩まされているとの声が多かったリクルートライフスタイルが入居しているオフィスに協力頂いて試験運用しています。どんな場所で運用したの?都内の某ビル35F男子トイレで運用を行いました。このビルには23~41階に弊社のオフィスが入っており、従業員は普段自席のあるフロアのトイレを使うのですが、満室で(体力的に)厳しい時は他の階の空いているトイレを探すといった運用をしています。各階に4つ男子トイレの個室が用意されており、この35Fでは全従業員約500人(うち男性は300人ほど)です。約75人につき1つのトイレ個室を使っている状態で普段とても混んでいます。モチベーション『トイレに行ったら満室』人数が多いオフィスだとこれはよくあることだと思います。僕のようなお腹虚弱体質者にとっては『別階でもいいのでとにかく空いているトイレを探したい』という事態が頻繁に発生します。いうことで今回の取り組みをしてみました。それらをRaspberryPiに接続して扉の開閉情報をAPIサーバーにリクエストを送って記録します。クライアントアプリケーションを通してAPIを叩くことで、一目でトイレの空き情報が分かるようなサービスを提供しました。APIの実装にはGo言語を使って、WEBのクライアントアプリケーションはReact.jsを使って実装しました。操作画面このような画面で現在のトイレの空き状態を確認することができます。現在は検証中なので、ひとつのフロア(35F)に対してのみ情報提供を行っていますが、他のフロアからも導入に期待する声が高まれば、正式に規模の拡大を図りたいところです。使用状況のデータが集まり、それを元にユーザ別に利用個室の推薦・誘導などを行って、各フロアの個室利用状況を最適化していくことなどもできそうです。トイレの使用状況の計測1月27日の各時間帯における空き部屋数の占める時間の変化のグラフです。4つある個室のうち各時間帯(それぞれ60分間)で、個室が0〜4つ開いていた時間が何分間あったかを棒グラフは示しています。縦軸は滞在時間、横軸は時間帯を表しています。棒グラフの色は開いている個室数に対応しており、赤の棒が全個室が閉まっていた(=満室)の時間の長さになります。これは1月27日の各時間帯における満室状態の占める時間の変化であり、上の図を満室状態を強調したものです。各時間で11:00-17:00にかけて、満室時間を示す赤い棒が30分を超えて伸びている時間があり、これはランダムなタイミングにいくと大体半分以上の確率で待ち時間が発生する状態です。タイミングを見計らうなり他の階のトイレにいくなり何か対処を打ちたいところです。1月27日の個室滞在時間のヒストグラムです。大体の人が10分以内くらいで退出していることがわかります。自分はお腹が弱い方なのでこれでいうと少し遅めの10-15分くらいいることもあるグループに含まれているかと思います。このサービスを通して満室状況が可視化されることで他にトイレが我慢できない人のためにできるだけトイレを譲り合っていけるような体制が自然と生まれてくればと思います。このアプリを使った結果このような大変な混み状況であることが分かりましたが、アプリを利用した人は比較的スムーズにトイレに入ることができました。現状個室滞在時間の短縮や空室状態をうまく運用すれば多少改善の余地はあるものの、やはり他の空いている階に人を流さないと本質的な解決になっていないことがデータからわかります。サービスを全階に導入できたら人の流れがどう変わり満席状態にどのような変化がおこるのかを今後も計測していきたいです。Piに信号を送る仕組みを作りました。4センサーの回路図センサーの写真1枚目の写真が上記の回路図通りにセンサーの回路と延長用の三芯ロボットケーブルを16ホールユニバーサル基板に半田付けしたものです。2枚目の写真はセンサー部分に保護パーツをつけてケーブルをまとめたものです。センサーは個室分の合計4つ用意しています。3枚目の写真は実際にセンサーを扉に貼り付けている写真です。扉が閉まっている時に磁石がセンサーに近づくようになっておりこの磁力を感知して扉の開閉判定を行っています。Pi側の実装センサーから送られてくる信号を処理する他に、Wi-Fi環境下で扉の開閉状態をでAPIサーバーに通信する機能があります。PiにUSB式Wi-Fiトングルを装着して利用しました。Piの接続部分の写真です。接続は半田付けが不要で便利なブレッドボードを使用しました。写真ではわかりにくいですがロボットケーブルから三線がでています。Piへのそれぞれの扉の開閉情報(磁力検知しているかどうか)を出力しています。2枚目の写真はそれぞれの部屋から天井を伝って這わせたケーブルを1つの個室へ集めています。Piへの電源供給はトイレ個室にある電源を利用しています。ソースコードセンサーからの出力(電位差)の変化を検知してPOST処理するだけなのでこれだけです。GPIOをRubyで操作するPiPiperを利用しました。10end参考Wi-Fiの設定の際に参照しました。Piに無線LANのUSBアダプタをつけるPiPiperを利用する際に参考にしました。Pi起動時に走らせるスクリプトを書く際に参考にしました。今後、他の人がクライアントアプリケーションの開発にコミットしやすいように、API用のサーバーとクライアントサイドを切り分けて実装しました。サーバーサイドはGo言語に軽量フレームワークであるEchoを使って実装しました。WEBクライアントサイドはReact.jsにフレームワークであるReduxを用いて実装しました。空き個室のあるフロアへの誘導や個室が空いてきたら通知を送るなど待ち時間緩和のための追加機能を実装していって待ち時間の負担をできるだけ取り除くこと、それによる業務改善成果がわかりやすく定量化していけるようなサービス開発を行っていきたいと考えています。感想とお礼の言葉トイレの個室待ち問題は多くの従業員の間で顕在化していた負であったので、空き情報をモニターするだけでも様々な声が聞けたのが嬉しかったです。アプリのリリース時にはメールで広報されたりなどスピード感もありました。リリース後利用ユーザーが徐々に伸びており一週間で一日のUUが200人とPVが350ほどになり35階の男性300人で計算すると約67%ほどの方が一日に1、2回利用してくれている状態で少しづつ習慣化されているのかと感じています。コスト面についてこのセンサーは数百円くらいで作ることができており、今回のにわかな実装でも全部合わせて8千円ほどで設置できています。Piやケーブルはものや実装を変えればより低いコストな運用ができます。デバイスの量産体制も立ててみたいですね。次に所感としてはデバイスをつくることでWEBオンリーでは提供できない価値を身近な人々へリアルな体験として提供することができて面白いなあと感じました。そのなかでユーザーの声がダイレクトに入ってきてはっと驚く出来事がありました。『車椅子の方がトイレ探しに困っていると切なくなる。なんとかできないものか。1)車椅子の方々にも利用できる個室があるのですが、この個室は各フロアに一つしかありません。そのため、彼らがトイレを利用する場合、その唯一の個室が空くまで待っていなければなりません。この様子を切なく思ったある方に声を頂きました。』この声を頂いて、空室の多目的トイレを見つけるのは困難なのことに気づき通常トイレとは別に空き情報が分かるアイコンを追加しました。リアルに近いからこそ聞こえる声もあって、困っている人のために手段を選ばずさまざまな方法を探求・調査していけるよう挑戦を続けていきたいと改めて強く思うきっかけになる出来事でした。許可を出していただいたビル管理主のご担当者様、その他様々な方面でサポートをしていただいた方々にこの場を借りてお礼申し上げます。車椅子の方々にも利用できる個室があるのですが、この個室は各フロアに一つしかありません。そのため、彼らがトイレを利用する場合、その唯一の個室が空くまで待っていなければなりません。この様子を切なく思ったある方に声を頂きました。2800494256小原正大Lv.7EXP.5,9852015年新卒入社、フロントエンド担当。エセ天文学生から近年エンジニアになる。ゆるふわ系エンジニアからガチエンジニアへ昇格するため頑張る。ゼクシィiOSアプリの場合2020.02.142020.02.07レガシーソフトウェアをチームで改善するためにまずしたこと2020.02.072020.01.20XcodeGenでiOSチーム開発でのストレスを軽減する2020.01.20サイト利用についてお問い合わせ採用情報リクルートグループサイトへ。