A few of us Many have been working on a side project that we’ve aptly named Is the Toilet Free? Its purpose to provide an at-desk indication of whether a toilet is free in an effort to remedy that laborious walk to the loo only to find that they’re all engaged. Begone queues and awkward pre-poo chit-chat. (Some of many struggles at MxM.)
It was an idea communicated simply as a website that could do this:
Fiona and Raffi began fiddling with a Raspberry Pi to see if they could come up with the bare essential hardware & software. From there (with my near-non-existent knowledge of electronics) I was able to extrapolate on what they had created to add a few more switches and LEDs. We soon had a circuit that resembled the end result. We prototyped…
And we had some software that updated the website. It worked brilliantly.
I designed a box to house the Pi and some strip LEDs that would sit on the wall outside the loo.
Thus far it had all been hacked-together prototypes so we needed to formalise what we’d done. I wrote some new software that in principle was: show a green light if there is at least one toilet free, otherwise show red. Then when a change is seen, log it and update the website. Ben and I ordered some components to create the V2 circuit, and tested it on a breadboard:
Then transferred and soldered it to some stripboard:
The circuit diagram:
We fit it all in the box, and the DIY man had come to fit some reed switches on the toilet doors. He made a pickle of it. (Sorry DIY man if you’re reading this.)
Along the way we’d thought about what we could do with the data being logged. We knew in and out times, why not make some charts out of it? To debunk any upfront data uneasiness – because you might be asking “Why am I being recorded going to the toilet?” – privacy was our core concern; the light collectively represents the toilets’ state to prevent distinguishing one toilet from another. It doesn’t know who you are, and it’s not measuring your deposits or anything similarly absurd. Refer to Peter’s excellent toilet privacy guide for more.
Moving on though, we’ve been collecting data (rather inconsistently) for about 3 weeks, and composed some (hopefully reliable) SQL queries. Thanks to Dan and Raffi we can tell:
- if the toilets are free
- the total number of visits
- minimum visit duration
- maximum visit duration
- average visit duration
- total visits by hour
- total visits by day
From which we can infer:
- the favourite toilet
- peak times
- off-peak times
- an estimated wait time
I created a command-line inspired stats page for the above:
Garold’s also made something that lives in a Mac OS menu bar:
It’s rather pointless but it’s all in the name of fun.
For now we’ll keep collecting data to see what other worthless knowledge we can assimilate. The software has gone as far as seems sensible, but it’d be brilliant to develop the hardware. The sign looks a bit pathetic (that bloody LED that won’t glue down!) and it’s all far from ideal. I’m trying to document as much of what’s been done so far however, because I’ve learnt a great deal and it makes sense to capture that and share it. The software is on GitHub should you want to look at it. There’s also a wiki that I hope will grow into a guide for making your own.
Raspberry Pis are brilliant; we were able to create Internet-connected hardware with very little. It’s empowering to say the least, and the barrier to entry seemed so small. For a project intended as a bit of fun, it’s certainly delivered. I’ve thoroughly enjoyed all of it. It’s been an excellent opportunity to explore new things that I’ll without-a-doubt pursue further. Personally I would love to see others’ attempts at something like this – you’re sure to have as much fun. We have a new project in the pipeline that you’ll be glad to know doesn’t involve fecal matter. Think solenoids and severed fingers.
I doubt we’ll ever track down the Phantom Switch Snatcher…
Big thanks to Paul S. And to our willing actors Nicki, V-Bee, Ben and Melissa.