I'm co-running the MakeRiga hackerspace. To be exact, I take care of its internals so that it has some potential to grow - register and onboard members, do cleanup and upgrades, organize events, take care of the infrastructure and so on - in return, I use the space as one of my workplaces, where hardware is concerned, at least.
One of the things I believe in is "at any moment, there should be as little powered devices as possible". There's all kinds of extension cords, power supplies and PCs plugged in permanently - the reasonable solution is to switch them on as you need them and switch them on as you go. However, people forget about it, sometimes, they don't even know about it.
Leaving appliances unattended is pretty bad in a hackerspace.
- If one of the soldering stations gets left alone for a long time while it's turned on, it might result in a fire - something that is likely to be the death of a small hackerspace.
- If someone leaves a drill battery charger for a couple of days and the battery left there heats up (for whatever reason), that's a dead battery in the making at best.
- If a powerful computer is left turned on, that's just a waste of electricity (but also, watch out for those Molex-SATA power adapters!).
- If a lasercutter is left turned on and cutting, it can escalate into a very dangerous fire quickly. Same for 3D-printers.
Can you solve this problem in an easier way? Sort of but not really. You can train people to turn everything off, but you will forget to train some people, and people will forget to turn the tools off from time to time, anyway. Moreover, accidents happen - i.e. somebody having to run out of the space to get to a shop before it closes, forgetting to flip a switch on the extension cord before they go, "just for 10 minutes".
The idea is simple - we need to have some way to monitor plugged-in devices in a hackerspace. This project is part of the solution - a small device that can let us know when something important and dangerous is plugged in and operating, networked in a way that allows for smarter integration (i.e. SMS "you forgot this!"). This kind of device can only be a part of the solution (i.e. it's really easy to identify plugged-in computers, just ping the IP), but it's a very important part, since a lot of the devices that need to be monitored are also not smart enough to let you know about their status.
What can you do with the resulting data? First and foremost, have some kind of monitor near the hackerspace exit - most likely, a panel with a hackerspace map and red LEDs, but a TFT monitor will work, too (just be more involved). Then, when you go away, you can spot all the things you've left turned on, go back, turn them of and then go on your merry way. If this fails for some reason, there could be some kind of notifications for active members - "space is empty but there's a battery charger left charging, call some people near the space and ask if they could pop in and fix that".
Attiny85 and NRF24L01, with firmware that just sends "ID of the device" beacon packets once every X seconds. Plus, there's a diode, large capacitor and a resistor divider to a GPIO pin - a really primitive circuit to try and detect a mains power fault, in other words, when the device is switched off., it's cool to send one last "ID of the device got switched off" packet, since otherwise, whatever receives these packets has to rely on timeouts to actually make "lost/not lost" decisions. Talking about "what receives the packets" - there will be a base station, to be exact, a Raspberry Pi with an NRF module connected to it - it will aggregate the data (from this and other sources) and then send data to whatever powers the LED/TFT display, aggregate the data in a database, send notifications, as well as power any future software additions.
Why not add control capabilities? (i.e. a relay)
I'm open to the option, but it would be very involved at this point => not yet, for now, this is a really simple solution to an important problem. When i.e. an ATTiny84 version can be made, I can use the spare GPIOs to actually do some more sophisticated control - i.e. "tun this soldering station off right now" and maybe add some sensors. For now, the control is human-driven, since 1) I don't want to make it more involved than it is 2) I lack the GPIOs needed, anyway 3) the "control" part needs to be thought-through and user-friendly.
I was thinking about wired vs wireless, and decided on "wireless" in the end. "Wired" could only realistically be PLC (power-line communications), and I'm not yet that well-versed at that. Instead, I'm going to use some NRF24L01 - high time to put some of my unused NRF modules to good use! As a result, this project implies having a 5V source from which the device is powered. Thankfully, there's no shortage of name-brand 220V-to-5V/0.5A mobile phone chargers, just use those that are not built to penny-pinch (i.e. those that came with name-brand mobile phones, and not those you get for 99c from eBay). If the thing you're networking is sufficiently smart (i.e. a soldering station/3D printer), that makes it even easier - there's probably a 5V source inside, anyway. It'd be cool to have just a simple two-wire solution plugging into 220V and a 220V
What does idea this not save us from?
- DIY contraptions that someone brought and plugged into the wall socket. These are inevitable at some point in time, for that, you have hackerspace rules and briefings.
- Un-monitored objects causing a fire. If you don't realise something is a safety hazard in the first place, you will not be prepared for that. If you just bought a brand name 3D-printer and don't rush outfitting it with a safety device yet, well, that's on you.