Inspiration

The inspiration behind our project, Cropify, came from a desire to integrate modern technology into the agricultural sector. This is an area we have explored before and thought it would be cool to develop a project in this industry. We recognized the challenges farmers face in monitoring and optimizing crop growth. Our idea was to create a solution that empowers farmers with more information about the life cycle of their crops and provides actionable insights into when and what type of crop to rotate to next in order to optimize the nutrients of their soil.

What it does

We take sensor and camera information from an Arduino and webcam. The data is processed and put into MongoDB where we will use it in our frontend and visualizations. The data is used to give insights on the environment around the crop as well as imaging information to see the crop directly. These data points are graphed using Matplotlib to generate information visualizations that will allow farmers to see trends. Using this information farmers will also get insights about when it is time to rotate their crops because as their plants have a cycle of life, the soil also does. Based on what has been planted previously we would want to plant something different in the next rotation, so our application is able to give feedback and advice on that. Our product also gives you the option to capture the image on your phone giving farmers and crop owners the flexibility to take pictures and get information of their crops without creating a permanent settlement for the technology.

How we built it

We gathered the sensor information through an Arduino and fed the information through the serial monitor to a Python script. We also used openCV to take pictures using a webcam and process them, providing us with the height of the crop we are analyzing. After collecting the data we uploaded it to MongoDB Atlas for storage until we pulled the information for our front-end and visualizations. Our front-end was build using Next.js and we did most of our visualizations using matplotlib. We created our visualizations and left a link on our current crop page to redirect you to the visualizations. We also used state management to manage our crop state as we have many pages on our applications.

Challenges we ran into

We ran into many challenges as many of the technologies used in the project were new to us. When trying to combine sensor data as well as imaging data we ran into some issues synchronizing both processes to allow for consistent time series data. Backend processes were also very challenging as our team hadn't worked with many of the APIs for MongoDB so we essentially learned both pyMongo and Mongoose on the fly using documentation. Finally, our biggest issue was state management as we wanted to display our visualizations on our webpage but ran into large issues with dealing with server processes vs client side components.

Accomplishments that we're proud of

We are really proud of how we were able to get all of the data into a cloud source and in an organized fashion that could be used for future analysis. Our front-end is also very aesthetic and we are proud of the simplistic flow that is seen in our front-end. Another big accomplishment is how we were able to determine the height of the crop by just using a picture and some genius math. Finally we were able to successfully take an image that was gotten from our python script, encode it in 64 bit binary encoding, upload it to MongoDB, pull it in Node.js and get the same image back.

What we learned

Our team learned a lot about the technologies we used and working together on our project. We each took different sections of the project but regularly had to interact with each other to get feedback and make sure our parts would eventually fit together. This environment sparked a lot of innovation and curiosity from our team. Technology wise, we learned about Next.js, openCV, ORMs for MongoDB, API routing, and reading documentation.

What's next for Cropify

We tried to get as much done using our knowledge and time that we had but Cropify has even further to go. For starters integrating the visualizations into the website will create a much more smooth and connected experience for farmers using the platform. We also wanted to incorporate more data analysis and machine learning to give better recommendations based on the data we acquired as well as geographical data from the area. The ability to determine what crop the camera is looking at, as well as, its health would be an area of growth for Cropify. Although there is a ways to go, the team is proud of the project we made!

Share this project:

Updates