トイレ空き状況確認システムによる業務効率化のススメ

トイレ空き状況確認システムによる業務効率化のススメ

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

2016年3月時点で我が社は、赤坂見附の一等地にあるビルの4Fと6Fに置かれています。
赤坂見附という駅は、比較的どの路線からもアクセスが良く、会社のビルも駅近で従業員の満足度も高いようです。

しかし、このビル各階にトイレが設置されているんですが、男性用個室は各階に1つずつしか存在しません。
男性従業員は日々、争奪戦に巻き込まれている事実も発覚しました。

問題を調査

会社内で男性従業員が使用できる個室は2箇所、男性従業員は50名以上いる状態。
単純計算で、仮に10分間個室を使った場合に、1日全員が使用すると

500分=8.3時間

2箇所存在するので、

8.3時間 ÷ 2箇所 = 4.15時間(1箇所あたり使用する時間)

順番通りに使用した場合は問題なさそうですが、今現在では、時間はかなり集中している事から、順番待ちが発生しているようです。

対策を考えてみた

会社ビル外のトイレを検討する。
・駅のトイレを利用してもいいが、5分近くかけて出向くのも気が引ける(急用の場合はアリかも)
・近所の会社のモノを借りる。(同じビルでは他社も同じ思いをしているに違いない。)
・別ビルのトイレを借りる。(セキュリティ問題などもあり、難しそう)

色々考えてみたが、中々いい案が浮かばないので、なんとか現状の環境で考えたい。

IoTで解決したい

今流行りのIoTを使ってトイレの扉が空いていることを確認できるだけで、わざわざ自席を離れてトイレに行って覗き込んで個室の使用を確認する手間が省けるため、全社員(男性分)のそういった作業を軽減することで会社全体での無駄作業を軽減することができますね。

色々なガジェットで考えられるのですが、王道の「Raspberry Pi」を使って進めたいと思います。

以下、設置までの手順を載せておきますので、同じことをやると結果がでますので、やってみてください。

Raspberry Piの構築

RaspberryPiのOSのインストールしてLAN構築するまでの設定は以下のページを参照
[RaspberryPi] 初期設定を高速で行う手順

ちなみに、今回使用したRaspberryPiはB+を利用しています。
ネットワークは会社のDMZ領域のwifiを利用(この環境構築はインフラに合わせて行ってください)

各種モジュールのインストール

## NodeJS
$ sudo apt-get install nodejs

## npm
$ sudo apt-get install npm

## npm-socket.io , fs , forever
$ sudo npm install -g socket.io
$ sudo npm install -g fs
$ sudo npm install -g forever

プログラムセット

表示用

index.html




  
  
  
  
  
  


  

6F-Toilet

NodeJS処理用

app.js

var http = require('http');
var socketio = require("socket.io");
var fs = require('fs');

var server = http.createServer(function(req,res){
  res.writeHead(200,{'Content-Type':'text/html'});
  res.end(fs.readFileSync('/home/pi/www/toilet/index.html','utf-8'));
}).listen(80);

var io = socketio.listen(server);
var valueCache = "-";
function checkSwitch(flg){
  var valueLocal = fs.readFileSync('/sys/class/gpio/gpio3/value', 'ascii');

 if(flg !== "start" && valueCache === valueLocal){return}

  //OFF
  if(valueLocal == 1){
    io.sockets.emit("greeting",{message:"OFF"});
  }
  //ON
  else{
    io.sockets.emit("greeting",{message:"ON"});
  }

  //cache
  valueCache = valueLocal;

  return valueLocal;
}

io.sockets.on('connection',function(socket){
  socket.on("check",function(data,fn){
    console.log("%%%"+data.value);
    checkSwitch("start");
  });
});

console.log("Running...");

//round-check
setInterval(checkSwitch,100);

外部モジュールの初期設定(OSの起動時に必要)

set.sh

echo 3 > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio3/direction
echo "high" > /sys/class/gpio/gpio3/direction

センサーのセット

今回は外部入力スイッチのON/OFFのみを判定してリアルタイムにwebSocketで更新するという方法なのですが、RaspberryPi-B+のGPIO連動を検討してGPIO3の箇所の接触を判定するようにします。

image02

IoTで重要なのが電源の確保なのですが、幸い会社のトイレなので、電源が存在する為、そこからスイッチを伸ばして判定したいと思います。

稼働

NodeJSの実行は、デーモン化するため、foreverモジュールを利用

$ forever start app.js

ブラウザで表示

NodeJSで80番ポートを利用しているため、ブラウザでそのままアクセスできます。
http://RaspberryPiのローカルIPアドレス/

image09

上記の様な画面が出ればNodeJSの設定は成功です。
あとは、センサーの接触でOFF→ONに切り替われば、完了です。

センサーの保護

最後に気を使いたいのは、現地に設置されている機器の保護です。
配線はガムテープで固定化し、切断される脅威から守ります。

image04

RaspberryPi本体も、空き箱を利用して、水やホコリから守ります。

image07

これを作成した時に、

「会議室の空き状態を確認したい」
「非常口の鍵を遠隔で開ける装置が欲しい」
「ビーコンタイムカードとして使いたい」

などという意見も出てきて非常に今後楽しみな環境構築でした。

ソフトバンク・au・ドコモの方は、公式のオンラインショップを利用すれば頭金不要で通常のショップよりお得に購入できます。

この記事を書いた人
アバター
下駄(弓削田)
Creativeに生きるRunner

【週刊bitWave】(メルマガ)始めました!

登録はこちらからメールアドレスを入力してお申込みください。

ご登録いただいたメールアドレスは 【週刊bitWave】の更新情報の配信にのみ使用します。

個人情報の取扱いに関しては、「プライバシーポリシー」をご確認ください。解除はいつでもこちらから行うことが可能です。

あなたにおすすめ