Project tutorial
Holiday Wreath Automation

Holiday Wreath Automation © LGPL

Automate your holiday wreath using an Arduino MKR1000, NeoPixels, and a buzzer. Get notified via SMS/email when someone is at the door.

  • 6 respects

Components and supplies

Necessary tools and machines

3D Printer (generic)
09507 01
Soldering iron (generic)

Apps and online services

About this project

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:

  • 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.

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
  • 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 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 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.


Custom parts and enclosures

Arduino MKR1000 ,Breadboard and lipo holder
Arduino MKR1000 and Breadboard holder, you will have to cut one end of the +ve and GND rail of the breadboard.
Holder closure plate
Plate that closes and snaps fit at the top of the case.
PIR sensor holder Base
PIR sensor holder Lid


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
Img 3287 dant76ooan


Similar projects you might like

Android App-Based Home Automation System Using IOT

Project tutorial by Team Autoshack

  • 179 respects

My Home1000 Holiday Things for HOME Automation & Control

Project showcase by Massimo Cestra

  • 19 respects

IR Remote Controlled Home Automation

Project tutorial by suhail jr

  • 22 respects

Home Temperature while you're on holiday ...

Project tutorial by Giovanni Gentile

  • 1 comment
  • 2 respects

School alarm automation

Project tutorial by AdelAshraf

  • 8 respects

Home Automation Using Raspberry Pi 2 And Windows 10 IoT

Project tutorial by Anurag S. Vasanwala

  • 826 respects
Add projectSign up / Login