uPlant soil sensor

open source soil moisture, temperature and light sensor with Telegram bot

Similar projects worth following
Our team worked from home even before COVID, but it’s during the lockdown that we really had to take our workplace seriously. We started worrying about organizing our spaces, storage systems and... plants. Just before the pandemic, Olha and Dmitry moved to a new flat and acquired 7 different plants, initially just to fit interior design. The second part of the team decided to be trendy too and got a fern. But some time into the pandemic, the plants really, umm, grew on us and became full-fledged residents of our apartments.

At first, it seemed like it should be easy to keep track of plants when you’re at home every day. Turns out it’s not: plants are in different rooms, have different lighting, humidity, need watering at different frequencies. Checking up on them is fun, but as we get more plants, there will be a chance that we miss something, or that routine check-ups will simply take too much time. We realized we needed some technology, and uPlant soil moistu

Before starting development, of course, we looked at similar technologies: 

1. Chirp! - plant watering alarm by Catnip electronics 

2. Plant Environment Monitor - track light, humidity, temperature, soil nutrition (uS), and moisture by ALab Technology 

3. Plant Watering Alerter Soil Sensor (8861) by ICStation 

and many others. 

But each of them had different limitations for us - small amount of data, impractical design, or high price. Most importantly, we didn’t like that for these prices we couldn’t buy a bunch of them and stick in every pot. And that's considering our number of plants is relatively low (15-20) - a lot of plant parents on YouTube and instagram that we follow have literally dozens (sometimes hundreds) of plants! To track all of them, with current sensors they would have to spend hundreds (and even thousands) of dollars - and still end up with often rather bulky sensors that don’t inform them in a convenient way. Shouldn’t there be a simpler, cheaper solution for that? 

Also, it was not enough for us just to keep track of the plants - we wanted to communicate with them! Many happy plant owners already talk to plants during care process. Therefore, we decided to organize communication using a bot in the Telegram messenger - so that correspondence with plants is in the same place as family, friends and colleagues.


We changed the board design three times during development process. First prototype was based on Atmega328, resistive measurement and had only an LED as an indicator. Second one was also Atmega328-based, but had a IR LED - IR receiver pair for communication and was capacitive. In the third one we finally gave up and put our trusty BLE on it (nRF52832). It also became smaller and much more low power. 

Design considerations

Shape of the device: at some point, we realized two things:

1. uPlant probe can cut the roots of plants. Therefore, it must be made as thin and narrow as possible and without sharp corners.

2. Plant pots are of different sizes, so the soil moisture would be measured at different depths. We decided to make uPlant in two parts - main PCB and removable probes in several lengths so they could be matched individually.

Functions: we want to collect the maximum amount of data about the plant to optimize its care - this is soil moisture, indoor temperature, light ... 

Communication: we are developing communication using Telegram bot. We want to be able to give the plant a name, choose its “character” and also the ability to ask questions. We also want to set up feedback so that the plants tell you what mood they are in now - whether the soil is wet enough, whether there is enough light, and so on.

uPlant not only solves the problem of plant monitoring. Many people are afraid to start plants because they had negative past experiences or think that they will not cope, that the plants may die. Plants themselves make living in our homes comfortable and cozy, and caring for plants often becomes an inspiring and fulfilling hobby that you can do without leaving your home. Our goal is to make this process more interesting and efficient, so plants and humans can enjoy living as companions.

uPlant nRF52 firmware:
Telegram bot for ESP32:

Probes for uPlant with various sizes

Zip Archive - 39.29 kB - 07/15/2021 at 14:32


uPlant main PCB design in KiCAD

Zip Archive - 73.02 kB - 07/15/2021 at 14:31


  • 1 × uPlant PCB (top) uPlant PCB that we made, featuring nRF52832, an LED, a VEML6040 optical sensor, a small tact button, some pogo pin contacts for uploading firmware and a CR2032 battery holder
  • 1 × uPlant PCB (probe) An attachable probe - second part of uPlant PCB that goes under the ground.
  • 1 × CR2032 battery Should last a long, long time
  • 1 × 3D printed case (green or any color you like) A simple case
  • 1 × ESP32 For running Telegram bot and communication

  • Talking to plants in Telegram!

    Ultimate Robotics07/14/2021 at 17:22 0 comments

    uPlant gave us the opportunity to master technologies that we have not used before. This new technology was a Telegram chat bot running on ESP32.

    We chose Telegram messenger because we wanted to communicate with plants not in a separate app, but as a chat in the same place as with relatives / friends / colleagues - we use Telegram a lot, for most of our messaging needs and also to read channels and news. The example bot is often used to retrieve data or control electronics. Our goal was communication with plants.

    Writing a bot is no less difficult than writing firmware (technically speaking it is a frimware as well since it runs on a MCU), so the process is not fast. At the moment, we have made it possible to connect several uPlants and can receive data on their condition (soil moisture, air temperature).

    Next, we plan to be able to choose the "character" of the plant and based on this, the plant will be able to communicate with you the way you imagine it.

    For now, plants already can respond to questions with several dozens of synthesized phrases - and of course stickers!

  • uPlant v3 is here - all green PCBs and 3D printed case

    Ultimate Robotics07/13/2021 at 15:07 0 comments

    After getting good readings from the 2nd PCB version, we decided to make a third iteration that would solve all its problems at once!

    The list of changes is quite significant:

    1. Power source. While LiPo batteries are good and more eco-friendly than disposable ones, they complicate production and shipping. We decided that if one battery can last for 2 years, then a disposable one wouldn’t be such a bad choice - and so we changed it to CR2032.

    2. Connectivity. IR LED proved to be unreliable and inconvenient - so we switched to BLE, and it looks like the only way to keep the cost low with it is to use nRF52 chip - namely, nRF52810, so that it would also handle all calculations (thus replacing atmega328). In order to keep power consumption even lower, it works as a non-connectable device, only advertising data once in a while.

    3. We reduced the size of the upper part of the board as much as possible - basically it’s the size of the battery plus a small PCB antenna (34*30.2 mm).

    4. We made the probe thinner and more rounded at the lower edge to reduce risk of damage to the plant’s roots when uPlant is inserted into the soil. They're now 6 mm wide and 1.2 mm thick (same thickness as the main PCB).

    5. We made probes removable and of several lengths for different sizes of pots (so far we have made two lengths to test them - 60 mm and 120 mm).

    Here’s some fre$h green v3 PCBs - we got them just a few days ago, and made some green 3D-printed cases to match the look:

  • uPlant v2 - capacitive sensing!

    Ultimate Robotics07/11/2021 at 21:56 0 comments

    Without thinking twice, we decided to change the design of the board. First, instead of two probes with galvanic measuring we used one with capacitive measuring. Then we made the top in the form of a leaf. And finally, we switched to the green color of the PCB - quite an obvious decision that yet took us some time! 

    Components remained mostly the same - design based around atmega328 with LiPo rechargeable battery, and IR LED for sending out measured data. Our motivation was to keep it extremely cheap in production - although when implemented, it became evident that IR data link is not really convenient for this purpose.

    The photos show that uPlant is now indistinguishable from a plant!

  • Let's start!

    Ultimate Robotics01/15/2021 at 18:22 0 comments

    We came up with a simple and rather generic PCB design, produced a prototype set - and assembled one to test the whole concept. We never dealt with this kind of sensors before, so most likely we'll change a lot as we go - possibly the whole approach - but the first step was made.

    Unfortunately we didn't have soldering paste at hand, so had to put solder on each pad, then cover them with flux again, and then place components - even without paste, hotplate is still more convenient than soldering them one by one.

    Anyway, here is a video of the process:

View all 4 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

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