MKR1000 Christmas IoTree with Cayenne Project Builder

Automate your Christmas tree and get notified when motion is detected around the tree!Temp Img

Things used in this project

Hardware components

Arduino MKR1000
Arduino MKR1000
× 2
PIR Motion Sensor (generic)
PIR Motion Sensor (generic)
× 1
Jumper wires (generic)
Jumper wires (generic)
× 1
Relay (generic)
This is a really easy relay to use, plug and play!
× 2

Software apps and online services

myDevices Cayenne
Arduino IDE
Arduino IDE


Arduino MKR1000 Automating Christmas Tree Using Cayenne

Cayenne Web Dashboard:

Scheduling Christmas Lights

MKR1000 Triggers and Notifications

Christmas IoTree Setup:


MKR1000 Cayenne Sketch File


This sketch file comes as an example when the Cayenne Arudino library is download. Just copy and paste the sketch file into the Arduino IDE and input user auth token along with WiFi credentials.
Cayenne MKR1000 Example

This sketch connects to the Cayenne server using an Arduino/Genuino MKR1000 and runs the main communication loop.

The Cayenne Library is required to run this sketch. If you have not already done so you can install it from the Arduino IDE Library Manager.

1. Install the Arduino SAMD Boards from the Arduino Boards Manager if you have not done so already.
2. Install the WiFi101 library ( from the Arduino Library Manager if you have not done so already.
3. Select the Arduino/Genuino MKR1000 board and the correct port in the Arduino IDE.
4. Set the token variable to match the Arduino token from the Dashboard.
5. Set the network name and password.
6. Compile and upload this sketch.

For Cayenne Dashboard widgets using digital or analog pins this sketch will automatically
send data on those pins to the Cayenne server. If the widgets use Virtual Pins, data
should be sent to those pins using virtualWrites. Examples for sending and receiving
Virtual Pin data are under the Basics folder.

//#define CAYENNE_DEBUG         // Uncomment to show debug messages
#define CAYENNE_PRINT Serial  // Comment this out to disable prints and save space
#include <CayenneMKR1000.h>

// Cayenne authentication token. This should be obtained from the Cayenne Dashboard.
char token[] = "AuthenticationToken";
// Your network name and password.
char ssid[] = "NetworkSSID";
char password[] = "NetworkPassword";

void setup()
	Cayenne.begin(token, ssid, password);

void loop()

About The Author

Ibrar Ayyub

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.

Follow Us:

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top