FPGA Smart Watering System


As someone who agonizes over the health of my lemon tree, a system that monitors the health of my plant is a dream. My office has no natural light, so I have a system of lamps to get the right amount of light, and sometimes the heater gets left on, so predicting the amount of water my lemon tree needs can be difficult.

My multiple light set up for the lemon tree. So far its yielded five baby lemons on the tree.

Nothing is worse than coming into work and seeing that my lemon tree has dropped a bunch of yellow leaves, or even more heartbreaking, one of its baby lemons.

A baby lemon casualty! It was only a few weeks old when it fell.

Instructables user byoon posted a project created by a team of 4 students at California Polytechnic Institute. The project includes step by step instructions on creating an FPGA driven plant watering system. The system tests the soil moisture, air temperature, and light levels to water the plant when it’s needed.

The plant watering system instructable.

In the Instructable they use a Basys 3 board, Arduino board, breadboard, light sensor, moisture sensor, resistor, and temperature sensor.

The materials list from the instructable.

However this project could be done with minimal modification with less hardware, and hardware that is much more compact. The Arduino is used solely for its analog to digital converters, which can be replaced with some of our Pmods.

In addition a much smaller FPGA board can be used. One of our Cmods, such as the Cmod A7 can be placed on a breadboard for a more compact design.

The light sensor, photo-resistor, resistor, breadboard, and breadboard fires can all be found in the Analog Parts kit.

A nice selection of general electronics.

And the moisture sensor they used can be found here.

After listing the supplies they used the team then goes through the design. First they describe how the Arduino and FPGA communicate and how they communicate with the sensors. They also go through the block design on the FPGA and Arduino.

The instructable contains an in depth analysis of the system design including how the Arduino and FPGA communicate and the code in each board.

They explain the code, including the communication with the I/Os and state diagram. All parts are explained in great detail.

They also go over the state machine contained within the FPGA.

Lastly all the code is posted so that the project can be easily replicated.

They even attach the code they wrote.

Check out byoon’s project on Instructables. If you have an awesome project you’d like to share with us, comment below or post it in the project vault in the Digilent Forum. You never know, you might be featured on the Digilent blog!

Share on FacebookTweet about this on TwitterShare on Google+Pin on PinterestShare on RedditShare on TumblrShare on LinkedInShare on StumbleUponEmail this to someone

About Author

When I started school I wasn’t interested in any of things I’m passionate about now. In fact originally I started out wanting to study art. But then I decided I didn’t want to have people telling me what to create, so I changed to music. Then I decided I didn’t want to ruin a hobby by making it my career. At the same time my Physics class was teaching a unit on the physics of music, and I thought that was way interesting, so I changed to physics. Then by the time physics was over I decided that the coolest part of physics was electricity and magnetism, and I may as well get a degree that transfers directly into a career. So while all this was happening, I was attending Shoreline Community College, and during that time I found my passion, or rather presented itself repeatedly, until I realized, maybe I should take a hint from the universe. While at community college, I was asked to help at the high school by tutoring chemistry students. Then I was asked to help at the elementary school by being a math Olympiad coach. I continued both because I found I really enjoyed it. I also had an opportunity, and was hired to be a tutor in the Math Learning Center at the Community College, a job I really loved. At the same time I was working as a Nanny, which I had been doing for several years, the main reason because I could and would answer the hard questions the kids asked honestly (i.e. why is the sky blue). I then was recommended by the patrons of the MLC to the transfer tutoring center (private tutoring,) and developed a wait list of students. Through all these opportunities at some point I realized that I loved watching people go from totally lost, to masters of a subject. I was also forced to admit that having all these opportunities continually renewed, I must have been somewhat good at it. So I decided I wanted to teach, which fits with my mission oriented personality. I saw a serious lack of passionate ECE professors in the institutions I attended. At WSU I continued this trend by being ask to TA for computer science and electrical engineering, being a TA for a total of 4 semesters. This continued by getting an amazing opportunity in my first semester at Washington State University to work at Digilent, an educational company. So even if I didn’t want to teach, turns out I can’t avoid it. Luckily it is my main passion.

Leave A Reply