In today's world, many of us are working from home or remotely, and it can be difficult to know when someone is in a meeting. To solve this problem, I created an "On Air" sign that lights up to indicate when a meeting is taking place.
The sign is designed to be placed practically anywhere, but this one is mounted outside my office door. It is made up of two main parts: a 3D-printed base and a circuit board. The base is designed to hold the components, and was printed using PLA filament.
The circuit board is where the magic happens. It contains a Raspberry Pi Zero W, addressable RGB LEDs, and a few simple electronic components. When the Raspberry Pi receives a signal indicating that a meeting has started, it lights the sign red. When the meeting is over, the sign changes to green.
web.py library - example below. If you want to see other examples on how to wire / code the LEDs, please have a look at my earlier "Kid Wake Up Light" post.
import web urls = ( '/', 'index' ) class index: def GET(self): # This is the script that will run when the user visits the webpage print("Script running!") return "Script ran successfully" if __name__ == "__main__": app = web.application(urls, globals()) app.run()
3D printers typically take a while to complete. This one was finished in ~6 hours, and it was assembled with some M3 20mm screws. It wasn't until after all this was done did I realize adding a camera would be a neat bonus. I'd certainly like to see who was walking up to the door throughout the day. That's much more convenient than constructing a window above my computer monitors.
Thankfully, the Raspberry Pi has low cost cameras that connect directly to the board. I unfortunately purchased the v2 model a few days before the v3 was announced. This will eventually need an upgrade since this one performs poorly in low light.
Motion software package is quick to get up and running, has a lot of configuration options, and can get someone streaming video within a few minutes. It listens on port 8081 by default and is visible through any web browser. It can be installed, setup, and ran by typing the following on your command line.
$ sudo apt install motion
$ nano /etc/motion/motion.conf
$ sudo motion
After all that was done, it needed a place to stream to. Having a browser tab always open on my PC would be a terrible option. I would always need to remember to open it, and flipping back and forth between tabs to view the stream would be tedious. A better option would be a dedicated screen. Thankfully, my Magic Dashboard is a perfect spot. I "simply" moved some widgets out of the way and added a module for an iframe. Now the video stream sits pretty on the bottom right of the screen 24/7!
This sign wasn't "easy-to-make" or "simple" for beginners, but it is a great way to let others know when you're in a meeting without having to rely on calendar invites or email. It also makes it easy to see when I'm available to play video games or if I'm stuck in another boring meeting.