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.
using electrical tape at the other end of Neopixel strip to avoid shorting of the wires.
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:
0.3 mm layer height
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.
Breadboard and Lipo battery holder.
parts for the PIR sensor
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
Basic setup- Connect the NeoPixel strip to pin#6 and piezo buzzer pin#5
Advance setup – Connecting the PIR sensor 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
Add the Lipo battery to JST connector on the Arduino MRK1000
Add the Lipo and breadboard to the 3D printed part
use zip ties to hold the 3D printed part to the wreath at the back
Advance setup – add the PIR sensor to 3D printed part
Zip tie the 3D printed parts to the wreath
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
NeoPixel by Adafruit
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 ifttt_motion_detected()function, which you can find the settings for here.
IFTTT recipe for sending SMS when motion is detected
Sample SMS I received when motion was detected
Recipe to trigger an email once motion is detected
Sample email received after motion was detected and the IFTTT recipe was triggered
Connect the NeoPixel to pin #6 of the Arduino MKR1000
Connect the Piezo buzzer to pin #5And if you plan on going with the advance setup
Use the PIR sensor connected to pin #2
I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish.ACCEPTCheck Privacy Policy
Manage consent
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.