If your plants could speak to you, what would they say?

unhappy_plant

I’m pretty sure mine would say “Hey Bozo, thanks for drowning me to death” or “Must… have… water… What is this, the Sahara?” Oh, and also “I hate it here, what’s it take to get some morning sun?”

I decided it was time to apply my inner nerd to reduce my plants suffering. That and happier plants mean a happier fiancé. Enter Splunk! The goal was:

  1. Keep track of moisture level in the soil.
  2. Determine best location for light intake.
  3. Combine current weather data, future forecasts and 1 and 2 above to create some machine learning models that predict when is best to water. (I’m still working on this part)

I shall call it… Operational Plantelligence! When first said aloud, I received a slow, sad head shake from the aforementioned fiancé. But alas, it did not deter me from the project.

I bought this kit to cultivate some technology-supported Redwood bonsais. The end result?

plantlink_splunk2

Let’s break this project apart and step through how I created this dashboard.

In this case, there are multiple IoT devices used to collect all of this machine generated data.

  • A PlantLink sensor to collect soil moisture levels
  • A Thingsee device to collect ambient light, indoor temperature, pressure and relative humidity
  • A weather feed from Weather Underground to get current, historical and future forecasts.   (Note there is an embedded iframe on the dashboard from io to display current weather, but that’s not the actual indexed weather data.)

So, why Splunk? Sure, each data source offers its own app to view and analyze their particular data. But, Splunk let’s me combine and join these disparate data sources (and more!) over time to gain additional insights. With a composite view, I can do deeper discovery on what’s happening to my precious seedlings – moment-by-moment or over any period of time.

I see this pretty commonly in the IoT world today — whether it’s energy, manufacturing, agriculture, robotics, or healthcare. Sensors are created and Apps built to analyze those sensors for a specific purpose or use case. Call it fate, fortune, luck or a combo — Splunk was built to fill this gap before we even knew it would exist and before the IoT acronym was “so hot right now”.

Our customers are starting to find their greatest value in combining data across their enterprise to create Operational Intelligence – and we are stoked to innovate with you

Ok, enough of my absolute (yet totally reasonable) infatuation with Splunk….. let’s get to the fun stuff.

Starting with the PlantLink sensor: You can purchase these little guys from Amazon or maybe even make your own and save a buck. If you get a PlantLink, you’ll be able to obtain and view moisture sensor level readings on a continual basis and get reminders for when to water your plant with the included App.   This is great, but would be better with more data!

I used the Add-On Builder from Splunkbase to create a simple Technology Add-on (TA) to pull data from PlantLink’s API at MY preferred rate.

Here is what that data looks like in Splunk:

plantlink_raw

Hooray for nice clean JSON. How about the Thingsee data?

thingsee_raw

Well it’s in JSON, but a bit cryptic. Perfect time for lookup tables to make machine data more human readable. Even better, the lookup tables were already created by the community in an App! The same app assists you with getting data in from your Thingsee device. Gotta love it when there is so much out-of-the-box content available. Thank you Splunkbase!

As you can see, the lookup table takes the machine data and adds additional context to it, in real-time, making it much more usable.  The “senses” are translated into fields such as “air_pressure”, “ambient_light”, “battery_level” and so on.  Note that these lookup tables can be .csv files or a direct connection to a database.

Last but not least, we have our weather data from another app TA-wunderground.

weather_underground_raw

Again, must be my lucky day as it’s in JSON and the fields are automatically extracted by Splunk. (See fields on the left)

Now for my favorite part – building out a dashboard. I wanted a way to visualize all of these data sources in a ‘single pane of glass’ (there I said it..) so that I could measure the individual sources AND start looking for meaningful correlations in and across the data.

Additionally, I could monitor the health of the sensor itself (such as Battery level, and wifi signal strength) to make sure it is working properly. If I had a bunch of these sensors, I could use Splunk to look for deviations between them and possibly predict failures before they happen. Multiple use cases using the same data!

And VOILA!

plantlink_splunk

I also wanted to be able to view current and historical values from the PlantLink and Thingsee over any time range and granularity (from dropdowns at the top). To visualize correlations, I created a time-chart with the ability to choose an overlay field from any source. Lastly, I used the Lookup Editor App so I could enter my own comments in a table (top right) to keep track of progress. Know that I used no code or customizations to build this dashboard. So easy even a cave man, (err.. middle school student?) could do it!

Question everything!

Now, I can start asking ANY question of my data (more so than what each individual app can offer). What is the current moisture level and how fast is it dropping? Is the plant receiving enough or too much ambient light (using the lux sensor from the thingsee)? Does pressure, temperature or humidity (inside and outside??) have any effects on moisture movement? Who knows just yet, but as more data is collected, I can look for correlations and possible predictors that are meaningful in creating models with the free Machine Learning App for Splunk. Then, I can start configuring Splunk alerts to warn me of changes and predictions I care about. I sure do love having all of these capabilities in just one platform!

I’m just getting started with this project and some of the next steps will be:

  1. Add more plant moisture sensors.
  2. Build a model to start predicting when to water given more conditions than what the commercial PlantLink App uses.
  3. Get my lawn connected.

Would love your ideas too – add comments!

Hope you enjoyed the post and as always Happy Splunking!