Smart Agriculture OG 2

This was for Makerfaire bay area and other presentations at events.


I wanted to solve the three main problems which I discovered in some farms and parks :
notion image
notion image
  1. The plants are not properly and timely watered, or sometimes there is over watering. And lot of water is wasted.
  1. Many plants are affected by diseases which destroy the plants before they can be identified and treated.
  1. In huge farms where extensive arming is done it is a big necessity that each crop is monitored. When they see the disease on the crop from top the bacteria/fungi has already spread to other crops and that particular crop is destroyed.
  1. There is no central monitoring of the fields for the owner as well as governing body.
So, the solution is a robot connected network for the field. The robot moves around in the field and takes pictures with the camera and identify if the plant is healthy or diseases( and if diseased then which disease). It also has sensors with which it can measure local weather conditions. All the data that is collects is either sent to cloud server or displayed locally. There are also some nodes that have soil moisture sensors that measure soil moisture and temperature levels and control the watering system to water the crops accordingly preventing wastage of water.
notion image
The latest project prototype video

The !dea

Objective: Make Agriculture Smart.
Smart Agriculture is a project to make farming and gardening more smart and effective. When I was out for a vacation in Thailand last summer. I was disappointed as my lemon, mango and other plants at home had drooped down due to improper watering. The other thing I observed was over watering of plants in some gardens. One of the two mango trees died, which may be due to an unidentified disease at that time. There are not only issues of field watering but also of monitoring of the farm. This struck my mind to make a project which could solve these problems.
Across the globe, fires destroy large tracts of lands. Detecting these fires is also another goal which can be met with my robot.
To make an All-In-One product which can solve all these problems I thought of making a Robot which can move around and collect data, detect plant diseases and monitor the farms. The alerts will be immediately notified.
There is a lack of an effective and economical solution in this field:
This motivated me to make an Agro-bot mesh network which can:
  • Detect Plant diseases in real-time by the robot moving around and applying filters using machine learning. Suggest which fertilizer/pesticide should be used.
  • Report all the data about the weather and the soil condition on the owner's smartphone and a local display system.
  • Analyze the soil conditions and irrigate according to its requirements.


Plant Disease Detection

For detecting diseases the robot has camera and a Single Board Computer which has a trained machine learning model to identify diseases. The robot uses the natural way that plants are planted in a field to navigate in the field. In a field there are rows, but if we modify the rows as shown then the crop alignment will make sort of a natural pathway through which the robot moves and scans for diseases. This way when it goes comes to the end and starts returning the direction of camera turns so it can detect diseases of both sides in just one round.
notion image
Very soon, I plan to add a proper GPS system, with support for multiple robots to cover extensive fields.

Automatic Plant Watering

notion image

App: View the Stats

For automatically watering of plants there are various nodes which are connected to the robot creating a mesh network. Each node has a soil moisture and temperature sensor. Maximum of 3 nodes are required for covering 1 acre land because the moisture content in a field almost remains the same.
These nodes report the data after every every time interval and then the robot(server) can command the pump to start watering. If the farmer does not want the robot then the nodes themselves communicate with each other to water the plants accurately.
For watering the new sensors based on capacitance of the soil are used (which do not rust like resistance based ones). They measure the dielectric constant of the soil to calculate the moisture level.

The server / robot

The robot basically comprises of temperature, air pressure, CO2 and various other sensors that help in analysis of fields and crops giving the internal conditions. The CO2 levels especially help along with humidity readings to accurately predict the conditions of crops and the yield they will give. It acts as central node and also does disease inference as mentioned.
I plan to use solar panels on top of robot or on a location in field higher up above canopy of crops to charge the robot. This solar panels or existing that can / are run the irrigation system also.
notion image


These are the results of the main problems (solved) :
  • The robot could easily establish a mesh network with the nodes (only 2 at the time of testing) and communicate with them
  • The robot is able to detect soil conditions and supply the required amount of water, without any wastage
  • It can (currently) take the pictures of the fields and store it on a local server.
  • It can detect the plant diseases in real time and analyse them (need to add a high-quality 2M full RGB camera, as current is B&W. But the image processing works - by taking a picture manually and adding that to the RPi)
  • With the use of sensors (BME280, Multichannel Gas Sensor, capacitive moisture sensor and DS18B20 - all very accurate) I could measure the surroundings. The microcontrollers (ESP8266 - WiFi enabled microcontroller) did serve my purpose as nodes.
  • All the data was sent to my smartphone anywhere in the world with the use of the IOT tech.
The water pump turned on perfectly well though I found out that the electrodes corrode so an insulated PCB based on capacitance of soil was a must.
The temperature was accurate to ±1 °C and it could easily detect dry soil and turn on the water pump.
The RPi could detect all the diseases in the test images of the plants. The model that I had trained gave an accuracy of 80% which is can improve.
notion image

notion image

The robot could also detect my "test" fires I created, sending alerts to my smartphone.
The current app is a web app, optimised for smartphones to view with all the data. The web app can be accessed on any device making it very helpful and there is no need to download any application to check your plants. But still, the web app can send you proper notifications.
Here is the preview of my old web app:
notion image
New app (@MFBA19):
notion image
Thus, my multipurpose robot could solve all these problems and provide a solution to many people who are not available at their farms.


  1. I retrained the model with 12 diseases and the images from internet in Google Colab
  1. I made my chasis for prototype with acrylic (4mm) designed in CAD and laser cut.
  1. I am using WiFi for local mesh system.
  1. I changed from using several sensors to NXP Rapid IoT Prototyping Kit
  1. Trained a model using Google cloud ML
  1. Reduced the number of diseases to 7 which are commonly found in India
notion image
notion image
Old Full Description is here - This is Google Science Fair 2018 Entry
The code is here - Last update MakerFaire Bay Area 2018