Early in my engineering career, I tried to solve problems with data because at that time in software development there were a huge number of important and useful things that couldn’t happen because engineers were bottlenecked at the data layer.
I wasn’t the only person working on that problem. It was a movement of people and projects that collectively combined to streamline modern software development, greatly improving the productivity of developers across a broad landscape of use cases and applications.
Having made some progress on that with MongoDB, and ready to move on and find new challenges, I wasn’t specifically looking for another big bottleneck to tackle. As I’ve written about before, all I really wanted to do was program a robot arm to play chess with me during the height of the pandemic – but I found a new bottleneck regardless.
And once I encountered it, I couldn’t unsee the problem. It’s massive – literally all around us. It’s so omnipresent it’s hard for me to even get people to understand just how significant it is. We assume it can’t be fixed, but it can be. In fact, to solve the most pressing issues of our time, it’s imperative that we unclog this new bottleneck.
As with the data software bottleneck, I know we’ll need a lot of people joining me in getting this new bottleneck unstuck, so these posts are a call to action to help me encourage more people to bring their creativity and ideas to it.
But we won’t start today with the really big things (climate change, green energy, transportation, etc) that are being prevented from being solved by this bottleneck; we’ll start with something small. Lawn care.
A starting point: lawn care
Lawn care fits broadly inside a problem set that is pretty well-defined, and that you’ve probably heard about. You’ll hear this space described as “smart home.” It’s a virtuous-sounding idea, a smart home, and it has some promise. In fact, one of my primary motivations in creating Viam was just to make the everyday things around me work better.
There hasn’t been a lot of progress, despite the hype around smart homes, because of the bottleneck, which in this instance boils down to this: my sprinkler is stupid. It doesn’t listen. It doesn’t talk. And it needs me to tell it what to do, instead of it telling me what it should do.
The concept of a smart home has been around since at least the Jetsons, and there are many, many products out there that are trying to be part of the solution in the problem space, but whatever the marketing might say, most things available for your house, even if you could afford the ‘expensive version’, just aren’t smart.
Part of the issue is that many companies have tried to go automatically to a fully connected “smart home.” These efforts inevitably fall short, as each piece of the house needs to be enabled first, and the bottleneck I mentioned at the top of the post prevents that. There is no common software to connect them.
Until everything is running software that can be easily worked with and interconnected, building a nice voice interface doesn’t help. That software to connect, configure, and control devices didn’t exist before. It does now. So let's see it in action. (For an earlier example of just one device onboarding project check out the automatic cat food feeder I’ve written about, which I rely on every day.)
So: can my stupid sprinkler system become a smart(er) sprinkler system?
The problem
My sprinkler system can do some basic things and is similar to most so-called high-end sprinkler systems. With it, I can program an amount of time to water each zone and tell it what time to start and stop. Some of the newer ones I’ve seen start to “think” about local rainfall, but that functionality is early and slow-moving. And the reasons are the same as everything else in smart home: too much time to get the basics working and apps built, leaving no time for the actual “smarts” and interesting features. So what would make it actually smart and not stupid?
The solution
I want a sprinkler system that knows how much it rained and can also see predictions of how much it will rain. It should know what the temperature is and what it will be. It should measure the moisture in the soil, use cameras or sensors to tell if a part of the lawn is turning brown and needs more – or less – water. It can detect and monitor any leaks and alert me if something is wrong. The software side of all of the above isn’t that hard. Connecting it is. And that’s the bottleneck that you will find literally everywhere you look, and that is where Viam can change the game.
So here’s the sprinkler project I implemented. If it seems pretty basic and even ‘easy,’ this is just a reminder that simple and easy is exactly what Viam is designed to do: to make it simple and easy to make stupid things smarter.
Like the cat food feeder, the hardware for sprinkler systems is very straightforward. Each zone typically has a valve of some sort, and if you send power to it, it opens, letting water through. So you need one relay per zone.
For my system, I connected a Raspberry Pi to an array of relays, each connected to one zone. Each relay is connected to a GPIO pin on the Pi. Set a pin high, and that zone starts watering.
Now to connect it: I started with a very simple software solution, simply setting an amount of time per zone and a start time. I was then able to add rain monitoring and heat adjustments.
Join the challenge
I am happier with my sprinkler system already now that it is a little smarter. But I am betting that with input from Viam users, we can make a better, more efficient, less wasteful watering system.
How to join the fun:
- Build and deploy the sprinkler system.
- Help me make the instructions better.
- Then help me add features we will all benefit from.
Here are some areas we could explore with this project:
- Support for multiple waterings per day
- Moisture sensors
- Camera-enabled brown spot detection
- A rover that can go around and check moisture everywhere
- And a crazy idea: cameras or a rover that automatically map out the lawn so you don’t have to figure out which wire goes to which zone :)
I’m going to keep looking around the house and finding easy ways to connect some of the currently unconnected devices and systems. With these small projects, I’m hoping to demonstrate what can happen when we uncork the bottleneck – and turn a disconnected problem set into a connected solution by making the devices around us smarter with a simple and intuitive universal software platform.