Originally published at: https://blog.particle.io/2018/10/29/heres-how-to-build-a-terrifying-iot-clown-powered-by-a-particle-photon-and-dnn/
For the past few years I’ve been geeking out at Halloween creating IoT devices to scare kids in my neighborhood. This year I’ve built on some of past implementations and upped the ante a little bit. I’m leveraging the Particle platform and DNN to bring to you the 2018 IoT Clown.
I need to start out by saying that I’ve been inspired to do all this by some great guys in the Charlotte area and they are Dan Thyer, Mike Linnen, and Jay Ziobrowski… thanks for the motivation guys! I am either copying something creative I’ve seen them do or trying to imitate their passion, talent, and drive for Halloween and/or IoT projects. One day I hope to be as sharp and creative as they are.
Halloween & IOTIn 2016 I made a flame throwing pumpkin (copy-catting one of Dan’s inventions) and let’s just say some of the parents weren’t too keen on fire being near their kids and I also didn’t make any fans on the community’s HOA! Though, we all must start somewhere. In 2017 I went the safer route and made the AirGhost which is very similar to this year’s project.
The IoT Clown
We have tons of young kids in our neighborhood and moving a skeleton bone (which I debated in this early prototype) could likely hit someone, cause a toddler to fall, or trip someone up which could potentially lead to a spill on the concrete sidewalk. I don’t want to injure anyone or have some local parents mad at me, so I reverted to the compressed air, but then added a few more movements and changed the medium from a ghost to a clown.
Here’s a quick video of the end-product prototype just to show you where we’re heading… I’m going to dress it up a little more by Halloween, but you’ll get the gist.
Parts UsedHere are the main components I’m using for this project:
- Particle Photon - The microcontroller that connects to the net & drives the motors
- Batteries – An Anker outputting 5v + a discontinued 7.2 volt NiMH battery from ServoCity
- DNN - An open source content management system that runs my website
- 1 Breadboard - The grid that lets me connect motors to pins on the Photon & more
- 1 Servo - The motor that spins the clown’s head
- 2 GearBox Servos - The motor that pushes the compressed air nozzle handle & the motor to roll the head from right to left
- Actobotics - The metal structure that everything is connected to, think metal legos
- Clown Costume + Clown Head
- Air Compressor
- Wi-Fi Signal (shout outs to Comporium & ATT)
Here’s a video “talk-through” of the mechanical parts and power supplies being used.
Let’s Talk About ParticleParticle's Photon The Particle platform is awesome! Check out this video of the Particle platform to learn more. I am admittedly a little bit behind all of Particle’s new innovations. I still need to learn about their Mesh and Argon solutions. Even though I’m not 100% up to speed I know you can do tons of creative stuff with the particle platform, their multiple IoT devices, and their integrated IDE. Since I’m using the Particle Photon, we’ll start with it.
The Particle Photon is a small IoT (Internet of Things) device that makes it easy to bring real world objects online. Particle makes it easy to setup the device and to connect to Wi-Fi via a mobile app. If you want to know more about initially connecting and getting up and running with Particle they have some of the best documentation I’ve seen check out the docs, tutorials, and guides.
For this project all I really want to do is to move 3 servos… one for the head to spin, one for the head to roll, and one to push the handle on the air compressor. To do that we need to use the components I listed above + Particle’s platform + some code. I’ve listed out the components and just introduced the Photon… now let’s look at some code.
Let’s Look at Some Code!Particle’s platform is awesome, but we need some code to make things happen! I could easily copy and paste code here, but that wouldn’t help you understand the “why” and “how” behind some of the concepts. I hope to help you connect some dots here and as such I’ve cut a video walking through how I’m doing some of this stuff. The video shows code and includes videos of the device in action.
To all you senior devs… yes, the code shown in the video could be much better. I have not refactored anything yet, so the code is not nearly as efficient as it could be. And yes, I showed my handy Particle access token in the video… no worries though, by the time you read this I’ve already recycled it and created a new one.
Here are some relevant links:
So, with some disclaimers down and links shared let’s talk through the code some…
If you take the sum of all the info presented here that is how I’m making this happen!