Inspiration

Despite rapid advancements in artificial intelligence, agriculture is a field that has lagged behind in fully leveraging it. Farmers continue to rely on outdated traditional methods, which struggle to keep up with the growing challenges of modern agriculture such as global warming, unpredictable weather patterns, soil degradation, shrinking resources, etc.

These traditional methods come with risks: manual testing and observations can lead to inefficiencies in utilizing resources and risky unsustainable practices that can degrade soil and resources over time.

The stakes are high: farmers face mounting pressure to provide food for their families, communities, and the world while battling the various challenges of nature’s unpredictability Farming is more than just a profession—it’s a lifeline.

What it does

Cropblast takes in inputs describing the composition and characteristics of soil (Nitrogen Content, Phosphorus Content, Potassium Content, Temperature, Humidity, Rainfall) and uses 4 different models to deduce the best type of Crop among various crops (Rice, Maize, Beans, Potatoes, Tomatoes, Bananas, just to name a few).

How we built it

The project consists of two main parts, the product and the back end. The back end processes sensor data through advanced machine learning models, delivering tailored crop recommendations and refining results over time as more data is collected. A custom-built sensor device, powered by an Arduino and LM358, collects essential soil and environmental data such as pH, temperature, moisture, and humidity for real-time analysis. The sensor will feed data into the back end and that will produce and output for the best crops given the collected data on the weather/nature conditions.

Software: Uses several machine learning models such as Random Forest, KNN, Decision Tree, and Naive Bayes to calculate the optimal crop for any set of particular soil conditions. Using the output from the hardware side of our application, users can seamlessly input their soil's conditions on our user-friendly Streamlit UI which accesses our four machine learning models that are stored in an AWS S3 bucket.

Challenges we ran into

Connecting the AWS S3 Bucket containing the models to the Streamlit front-end, was the biggest issue that took up the most amount of time to fix.

Accomplishments that we're proud of

We used multiple models trained on the dataset using different techniques (K-nearest neighbors, Naive Bayes Classification, Random Forest Model & Decision Tree) in order to promote redundancy and lead to further accuracy in the final output of our scalability plans by avoiding overfitting or bias that may be present with simply using one model.

What we learned

We learned how to work AWS' backend products in being able to efficiently deploy multiple models and allow for future scalability of adding new features. Following that, we learned how to properly connect the backend with the front-end in order to generate an aesthetically-pleasing user interface.

What's next for Cropblast

We plan on integrating an Open AI GPT wrapper to provide a paragraph on the recommended crop similar to Amazon Q for Businesses' chatbot. This would go inline with our vision of empowering farmers to optimize their crop yields by providing them with further information in a digestible format -- thereby increasing accessibility of knowledge.

In addition to that, we aim to use our physical hardware soil tester to import soil sample data from farmers (and it is very inexpensive -- only costed $11 to make) and we plan on using the hardware tester to export data onto our webapp to provide cropblast's analysis.

Lastly, we plan on implementing location data in order to finetune and also provide increased accessibility in case data quality is bad, and also provide analytics and predictions on global warming, contamination, and pollution from various sources -- further optimizing yields.

Built With

  • amazon-web-services
  • decision-tree-model
  • knn-classification-model
  • naive-bayes-classifier
  • random-forest-classification
  • streamlit
Share this project:

Updates