Traditional Factory farming is a major contributor for climate change since things like pesticides damage the soil and drain. One of the ways to reduce its usage is by organic farming which unfortunately has less yields. Developments in IoT have the potential to increase these yields by precision farming.
To that end, in 2018, I was inspired by the original project by Plant Village and Penn State mentioned in the video here.
The result was the award winning Farmaid Bot project here.
One of the issues we had with the original was that not all diseases could be detected by visual inspection alone and we needed sensors in the ground to do more. Additionally we need actuators to respond to what is being detected.
The current projectThis project is aims to address those issues by using the Quicklogic QuickFeather board to detect soil conditions. Initially I am only detecting only moisture but the layout has been designed to take in more sensors later.
There is also temperature monitoring with and AMG8833 sensor connected to a Raspberry Pi mounted either on the bot connected individually. I am calling this a module since it can be used completely without the robot.
Unlike the original project, due to the pandemic, this was an individual effort instead of a group project. The testing was done at my apartment instead of the 3 greenhouses for the same reason.
There was a lack of documentation and current examples for this particular board, so I had to do more reading on topics like RTOS and advanced C++ which I didn't have experience with previously.
I initially tried to connect other sensors including the Adafruit Stemma soil sensor which gets both temperature and soil moisture. I wasn't able to change the code to incorporate the required Seesaw library but that allowed me to use a different set of sensors which opened up more opportunities as will be shown later.
My plan was to use the QuickFeather's accelerometer and my external soil sensor together to get the data to do both wind detection and moisture detection, however the data types required for streaming both are different, for the soil sensor I required an int16_t while the accelerometer required a int8_t. They both also required different increments to the pointer as a result. Due to this, I wasn't able to get them all working at the same time.
The thermal camera I used isn't sensitive enough to capture the slight differences required for pest detection or to detect accurate temperatures of the plants. For plant temperature, it would still require an in-soil sensor and for pest detection it would require a more expensive FLIR module.
For the audio my plan was continuous monitoring for noises of pests instead of just wake word detection as shown in the blog tutorials and documents. I wasn't able to figure out how to do the conversion in time.
The biggest issue was I was doing this project individually and there were more restrictions on my own time since the original started during my summer vacation while this time I was juggling a startup job which required most of my time.
Given these restrictions I wasn't able to fully achieve the vision I set out in the given time but I think I have made good progress and I do plan to add more after submission.
How it worksThe QuickFeather is connected to the Adafruit ADS1015 using the I2C connection and ADS1015 is connected to two soil sensors in single ended mode to get the moisture of two plants. This is then connected to an Adafruit ESP32 Huzzah Feather board and a 2000 mAh Lithium Ion battery to allow wireless connectivity.
The Aadfruit Stemma sensor required an I2C connection as well but if it worked, there would only be one soil sensor but with the ADS1015, I can actually get up to 4 or even more if I daisy chain the sensor while using only one QuickFeather.
Since the temperature sensor was out, an external Raspberry Pi is mounted either on the robot on nearby with an AMG8833 Thermal IR camera breakout board is used to monitor temperature.
The Raspberry Pi also has a camera for visual detection of diseases with the same algorithm as the original project. However both the thermal and RGB images can be combined later to create a more detailed visual model.
It should also be noted that the AMG8833 uses an I2C connection as well so it could be attached to the QuickFeather if the soil monitoring module (the ADS1015 and the Capacative Soil sensors) is removed.
Data from both the QuickFeather via the ESP32 along with the thermal data and the RGB images can now be streamed.
Additional 3-pin sensors can be attached to the ADS1015 if needed as well to get even more robust monitoring.
As mentioned previously, this was a very time constrained project on my end so more needs to be done but the immediate ones I will be working on next are.
1. Incorporate Machine Learning using the SensiML knowledge pack to the soil sensor results
2. Add better thermal camera or other sensor via the ADS1015
3. Add Ph and other soil sensor modules to the ADS1015
4. Add external sound monitoring for pest detection
5. Add more novel metrics to the time series detection
Comments