Tree-Pi: Raspberry Pi Christmas Tree Monitor

A Raspberry Pi-controlled water level monitor and alert system for Christmas trees

Similar projects worth following
As anyone who has had a real Christmas tree for Christmas knows, it is difficult to tell when and how much water the tree needs. If not done correctly, watering the tree can result in either a large mess to clean up or a tree without any needles. To solve this, I decided to create a Christmas tree water level monitor. with a local website to check how much water the tree has left, automatic email alerts for low water levels, as well as an LED display for filling up the base to prevent you from overfilling and causing a mess.

Using Tree-Pi

The website is accessible over the network at the Raspberry Pi's IP address and at https://treepi.home if you set up DNS host mapping on your router if it is supported. On any web browser, navigate to https://IP_ADDRESS. Note that the connection might take some time to connect, so please be patient. Also, this website is using a self-signed certificate. To disable the security warnings, download the certificate and install it on your computer (this will only work if you setup the domain name treepi.home).

The website is designed to be intuitive to use, with the a home page to display the water level and alerts, a graph page to view the log of readings (taken every 15 minutes), a settings page to adjust the minimum and maximum water levels and shutdown the Raspberry Pi, as well as a page to start/stop the filling mode (where the current water level is displayed in real time on the LEDs).

Before using the system, you will need to configure the maximum and minimum levels on the Settings page. To do this, start with min at 1 and max at 14, see how the level changes when the tree's base is empty and full, and adjust accordingly.

Portable Network Graphics (PNG) - 49.14 kB - 12/03/2020 at 20:11


Portable Network Graphics (PNG) - 30.54 kB - 12/03/2020 at 20:10


Portable Network Graphics (PNG) - 37.68 kB - 12/03/2020 at 20:10


Portable Network Graphics (PNG) - 30.00 kB - 12/03/2020 at 20:10


JPEG Image - 1.07 MB - 12/03/2020 at 17:38


View all 13 files

  • 1 × Raspberry Pi [Full sized model, such as a 1B+ (pictured)]
  • 1 × Micro SD Card
  • 1 × Micro USB Power Supply
  • 1 × WiFi dongle (if you choose a Raspberry Pi model without built in WiFi)
  • 7 × 5mm Red LEDs

View all 13 components

  • 1
    Hardware Setup

    First, print all of the STL files in the STL folder on your 3D printer. Make sure to print the Measuring Stick in very high quality, or threading the wires will be very difficult.

  • 2
    Assembling the Measuring Stick

    Strip a few inches of coating off of a piece of the single-core wire. Next, thread this into one of the holes on the Measuring Stick as shown by the red lines on the picture below. Once the end of the wire appears in the correct horizontal strip (one with the red arrows), hook it out using a skewer or metal pick and weave it in and out of the holes. Then repeat those steps for the rest of the holes, until it looks like the picture below. This is a slow and painful process, but you should hopefully not have to do it again!

  • 3
    Assembling the LED Stick

    Next, we can assemble the LED stick. First, insert the LEDs into the top part (it should be a snug fit - otherwise, add some clear glue/epoxy). After the LEDs are in or the glue has dried, solder them up as shown below (with the grounds connected together and a separate wire going to each LED's positive terminal). Thread the wires through the bottom portion of the stick, and push the top part down into the bottom part to create the finished part. (This should be another snug fit. If not, as before apply some glue.)

View all 5 instructions

Enjoy this project?



nodemcu12ecanada wrote 12/03/2020 at 20:56 point

Have you used non-contact ultrasonics with a WiFi NodeMCU?

  Are you sure? yes | no

Alex Mous wrote 12/03/2020 at 21:08 point

I have used HC-SR04 ultrasonic distance sensors before - they work with Raspberry Pi too. I didn't consider them for the first version as I was concerned that a sensor that measures distance could be affected by the branches or the trunk, but, after seeing your project, I'll definitely consider this if I do another version.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates