One of New signature’s Bethlehem, PA employees has leveraged their technology skills to bring joy and light—literally—to not only those in his neighborhood, but to anyone on Earth with an internet connection.
Chris Poplawski has engineered his own personal holiday lights to be controlled by any internet user. Visitors to the site can easily click each section of lights off and on, and even bring inflatable snowmen, reindeer, and nutcrackers to life with the simple toggle buttons.
“My wife and I love to decorate for every holiday for our daughters,” says Poplawski. “We live on a block in Easton PA which has a ton of kids, but no one really decorates for anything. The neighborhood kids love to help out with the decorating and every year we add new things. I am a tinkerer at heart and if there is a way to include my geekiness into the mix it makes it just a tiny bit more enjoyable for me. ”
Now to address the question on everyone’s mind: How?
Poplawski says, “I have been making things with Raspberry Pi’s and Arduinos for a long time and I figured with the Internet of Things becoming a more mainstream thing, there had to be a way for me to include it into my holiday decorations this year.” He wanted the pizzazz of an animated lightshow without the expense, and brought in Raspberry PIs, along with arduinos, which are open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs – light on a sensor, a finger on a button, or a Twitter message – and turn it into an output – activating a motor, turning on an LED, publishing something online, or –or Poplawski’s case–controlling his holiday display.
Here’s a technical run-down of the “how” behind the Poplawski lights:
Raspberry Pi 2 – Running the latest version of Raspbian.
Sainsmart Relay board – With 16 Relay switches to control power to the outlets.
Electrical boxes and outlets– These outlets were wired in a way that we could control the top and bottom sockets independent of each other.
Ubiquity G3 Security Camera – to provide a live video feed on the website.
Lots and Lots of extension cords.
CentOS Linux VM – Running in Windows Azure to front end and serve the website running on Apache.
Server 2012 R2 Virtual Machine in Hyper-V – Runs the Netcam studio software to stream the video from the security camera. This sits on my home network.
I created a DMZ network on my local firewall to keep this unsafe web traffic away from accessing my local LAN. The Security Camera and the Raspberry Pi sit in this network.
Raspberry Pi software
The Raspberry Pi runs python scripts which control turning each individual power outlet on or off. This also creates an API which can be called upon on the azure website. The Python scripts are polling the Azure website every second looking for a status for each online web buttons of either a 0 for off or a 1 for on. I can’t spill all the secret sauce but that is a pretty general idea of how this works.
We have been featured by the Raspberry Pi Foundation and Hackster.io and some local news channels via various social media channels and with each feature we were attacked. Either by someone writing Macros to auto click the buttons on the site or by someone attacking the API directly on the raspberry Pi. We had to do some thinking on how to stop all of these attacks. We have added human detection to the website to stop these types of attacks. This also led us to harden everything from Azure all the way down to the Raspberry Pi. We have locked it all down so only the Raspberry Pi and Windows Azure VM can talk to one another. Any outside command/control is strictly forbidden. We have enabled SSL encryption on the website to protect our users and any unnecessary ports and protocols have been locked down or disabled.
So far, the Poplawski light display has been featured by Raspberry Pi itself, along with tech blog Hackster and local news stations. Be sure to check in (more dynamic at night) and join in on the cyber holiday cheer.
New Signature would like to wish all our customers and partners a warm holiday season!