Hey Everyone! This is Midhun R Nair. I'm a UG student who will be graduating this year. This is my very first blog post in this community and I'm very excited to share my final year project with you all.
This project was a group project and I was in a team of 4. As mentioned in the post title, our project is a cross-platform app which will help farmer monitor the current environmental parameters in the field and also help him identify leaf diseases using image recognition.
Intelligent IoT based plant health monitoring and disease detection system
We propose a system which combines internet of things (IoT) based sensing of environmental parameters and image processing to monitor the health of plants along with detecting any diseases associated with it. We are using NodeMCU based IoT device which sends real-time sensor data like air temperature, humidity, soil moisture to the cloud. Image of the affected part of plant is captured and compared to the images in the dataset, wherein using deep learning models the disease is identified. Once a disease is identified, our system will suggest chemicals that are to be used to eradicate the disease.
Our app was built using flutter framework which is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. The reason why we went with flutter is its rich set of fully-customizable widgets to build native interfaces in minutes. To create the Flutter application we used Android Studio as IDE and Dart as programming language. Some of the 3rd party packages we relied on were Image_picker for taking photos, Http for consuming HTTP requests, etc. In the IoT part, the sensors which measures the temperature, humidity and moisture were connected to a NodeMCU which sent data to ThingSpeak cloud which is an open-source Internet of Things application and API to store and retrieve data from things using the HTTP and MQTT protocol over the Internet. This data was fetched using API into the app and displayed accordingly. The third part was disease identification using deep learning. In this part, we used PlantVillage dataset which consists of diseased leaf images. We used Convolutional neural network to train our model and integrated our model to the app as a Tflite file. After tuning the few parameters the model was able to predict the disease confidently. The biggest problem I faced during the development of this application was state management and tuning the model as we didn't have much experience with it.
This was my first time building an application which uses deep learning and I got to learn a lot of things which I'm very much proud of. There is still more we'd like to do (like automating the watering of field based on the humidity and moisture sensor value, push notification for nearby plant disease outbreak and remainder for watering, etc) but after learning the new technologies and implementing it without any help, I think we did an amazing job.