It is customary that when a co-worker takes off more than a week that they return to an office prank. Our latest prank is a glitter rain. Why glitter? Because glitter is the herpes of the craft world. It is the most annoying substance known to mankind.
Why the name Glitterpocalypse? Every project needs a name, and without involving marketing, this is the best we could do. Since we are an IT department, we have to use tech in our pranks to separate us from the average office prank.
The overall idea is to pollute an office cube with glitter, then slowly add more glitter over the next couple of weeks to induce a significant annoyance without achieving the victim's breaking point.
Step 1: Warnings
As with any office prank, a prank gone wrong may cause you to lose your job and/or burn down your office and/or cause loss of life. Take these into consideration and remember I'm not responsible for your actions. You should double down on your safety assumptions since our hardware project is novice at best.
Also, from a security standpoint, we set up a wireless network with absolutely no connections to the internal network. You should follow the same protocol unless you'd like to see how fast your network security can get you fired.
Step 2: Parts and Software (Required and Suggested)
- Arduino Mega 2560
- Powder Trickler
- Continuous Rotation Servo
- Jumper Wires
- Capacitor 100uF
- Wireless Router
- Extension Cord
- USB Charger
- Toilet Paper Tube
- A Co-Worker with a Good Sense of Humor (we had B.A.!)
- Ceiling Tile
- USB cables to program ESP8266 & Arduino Mega 2560
- Saw (optional)
- Hot Glue Gun
- Arduino IDE installed
- How to set up a static IP on your router
- Program a Micro Chip
- How a drop-down ceiling works
Step 3: Update the Arduino IDE for the ESP8266 Board
Add the ESP8266 device to the Arduino IDE
Let's be honest here, this is something that has been covered a thousand times before.
Step 4: Set Up a Wireless Network
This will depend on your router. Set up any SSID and password you like, just write it down as you will have to use it in the programming in the Prepare ESP8266 step. I used bobsmifi and 1234678 to make it easy to remember. Since this was in a corporate environment, we isolated the network by not connecting any LAN or WAN ports on the wireless router.
Step 5: Prepare ESP8266
If you purchased a ESP8266 with header pins attached then move on. If not, solder the pins on the board. There are a multitude of Instructables on how to solder header pins, so search away and return when you've finished.
On the Arduino IDE (see image), select the correct port and board, edit the attached script with your SSID and passphrase, and then upload sketch to the ESP8266. My code was initially sourced from http://randomnerdtutorials.com/ (give credit where credit is due!)
Places where you may want to modify the code:
// Replace with your network credentials
const char* ssid = "BobsMiFi";
const char* password = "12345678";
This line of code you can change depending on your implementation
int gpio0_pin = 0;
is line of code directs the signal to be output on pin 0 when the button is pushed on the web page.
Step 6: Give Your ESP8266 a Reserved IP Address
Give your board a static IP
This will vary depending on your router and configuration. Here's how to do it dd-wrt. We set our IP to 192.168.1.102.
Plug in your ESP8266 and verify it can picks up the IP address. You can also navigate to the board by inputting the IP address into your favorite browser as long as it's attached to the same network. You should see a very annoying Web page with some buttons.
Step 7: Prepare Arduino
Attached is the code. It's simple code and you can modify the pins based on your choice of Arduino board. If you can't understand the code you may want to check out Google again, or simply upload the sketch and you are good to go.
Step 8: Build the Circuit
Build the circuit as shown. If you chose different pins in the previous step you'll have to adjust per your changes.
We are powering the ESP8266 with the 3.3 volt pin and the servo with the 5 volt pin.
With our code, basically when the Web page button is clicked, it fires off output 0 from the ESP8266 to input 52 on the Arduino. The Arduino then fires pin 22 to the servo, telling it to spin.
Step 9: Build the Glitter Dispenser
Here's where we begin to build our device.
- Mount the trickler to a wood base board
- Mount circuit
- Measure servo height and mount servo
- Position and drill hole for funnel under trickler exit
- Attach gear to trickler and servo (I used a hot glue gun)
Step 10: Attach to the Ceiling Tile
- Obtain a spare ceiling tile
- Drill a small hole in the tile in the corner (here you want the hole to be small enough to not draw attention but large enough to permit the glitter to flow easily). See image
- Cut wood base to match up with edge of tile
- Glue wood base to ceiling tile
Step 11: Replace Ceiling Tile and Wire Up Power
- Replace original ceiling tile with modified tile
- Power the Arduino via USB
We used a very long extension cord connected to power source from across the office to keep suspicions low. We wrapped the visible portion in black electrical tape to help it blend in with the window frames. The distance plus the blending kept it hidden for the duration of the prank.
Step 12: Torture Your Co-worker
Simply attach to the network, navigate to the IP address, and wreak havoc. We decided it best to prolong the agony, so we only glittered his desk a little at a time and only when he was away from his desk. It lasted for almost 3 months until he let us know he was clearly annoyed.
The glitter was high enough above his desk and by an HVAC register it had a nice disbursement pattern so he couldn't determine the source was the ceiling. He thought it was someone lightly spreading it on his desk day after day. He couldn't pinpoint one person as the culprit because we would glitter him during team and departmental meetings.
This Instructable will serve as the way we notify him of the prank.