Here is a great way to modify and add that extra wow factor to your holiday wreath that hangs outside your front door! This your cousins and neighbors will appreciate and admire when they visit you for the holidays.
For this project, you can keep it simple or go all in implementing all the features:
- Add Neopixels to the wreath, which are going to be controlled by a web app hosted on the Arduino MKR1000.
- Then add a Piezo buzzer to play your favorite holiday tune.
- Add a PIR sensor to detect motion in front of the door; this will trigger the NeoPixels on the wreath and play a tune.
- Send yourself an email/SMS, so that you can get to the door as soon as possible and not miss out on a group of carol singers.
Follow the steps below to automate your holiday wreath.
Add the Neopixel strip to the Wreath
Using zip ties, secure the Neopixel strip to the back of the wreath as shown in the pictures below.
3D print the STL files attached
3D print the STL files attached below. In my case, I am using a Flashforge Creator Pro. Here are some suggested 3D printer settings:
- Fill density of at-least 25%
- Temperature -205 (in my case I am using Hatchbox 1.75mm Green PLA)
3D printing should take about 2 hours depending on you printer settings.
This is an optional step, but remember to build some kind of DIY enclosure for the breadboard to prevent short circuits.
Build the circuit
Add the Arduino MKR1000 to the breadboard. You may also have to solder breadboard wiring to the end of the NeoPixel strip to make the ends breadboard-friendly.
- Connect the NeoPixel to pin 6 of the Arduino MKR1000
- Connect the Piezo buzzer to pin 5
And if you plan on going with the advance setup:
- Use the PIR sensor connected to pin 2
Add circuit to 3D-printed parts
Connect the LiPo battery to the MKR1000 JST holder and cut the top +Ve and GND rail of the breadboard.
Re-connect Neopixel wires to the breadboard. Then add the breadboard and LiPo to the 3D-printed holder.
Then zip tie the 3D-printed part to the wreath as shown in the third picture below.
Upload the code
Before you upload the code to the Arduino MKR1000 using the Arduino IDE, you will have to download the following libraries as part of the Arduino IDE:
- Arduino SAMD Board(32-bits ARM Cortex-MO+) by Arduino
As the code is uploaded to Github, you have multiple options for the basic setup.
For the code, update your WIFI router name and password, and make a note of the IP address from the serial monitor of the Arduino IDE. To control the Neopixel, use the IP address in your browser from your laptop/mobile device as shown in the picture below.
- If you want to add a Piezo buzzer to trigger a tone and change the color via the web app (as shown in the first section of video above when the "Red" button is clicked), use the file HolidayWreath_NeoPixel_Piezo.ino.
- If you want to trigger the tone automatically when someone is in front of the door/wreath, use a PIR sensor to play a tune while folks wait at the door to keep them entertained. Use the code: HolidayWreath_addedPIR.ino.
- In addition, if you want to receive an email or SMS to be notified when you have someone at the door, follow the section below to set up recipes on IFTTT.com using the maker service. And upload the code file: HolidayWreath_NotificationIFTTT.ino to the Arduino MKR1000.
Setting up Email/SMS notification using IFTTT
Login/create an account with IFTTT.com and then create a new applet.
In the IF section, select Maker - which basically receives a web request from the Arduino MKR1000. For the process, you will be asked for an event name here. Type "motion_detected".
And then in the THAT section, if you want to send a SMS, select SMS and add your phone number. Here a code will be sent to you to confirm your number and, once done, hit the create action button.
And if you want to send your send yourself an email, in the That section select email (in my case gmail). Here you will have to enter your email, and you can edit the subject and body sections if you want to.
For the code, change the key section for the
function, which you can find the settings for here.