Posts

Final Post (Poster, Video)

Image
With the ongoing COVID-19 situation and the symposium being cancelled, our team was unfortunately unable to demo our project to the public last Friday. Our team put together a video of all the functionalities of the final product, which you can view below. As well, we created a poster outlining all the important pieces of information about this product. Hope you all enjoy!

Testing Testing Testing :o

Image
Just a few more pictures, showcasing some of the work we are doing with the LED strip (giving us indications of the state of the pod - i.e. filtration, garbage check, malfunction, etc.), the ML model and Firestore database for visualization, and the overall test setup for the sensors and actuators.

Hard at Work!

Image
Currently hard at work, planning to replicate the breadboard setup for Arduino and peripheral connections (i.e. ultrasonic, pH, conductivity sensors), as well as the spectroscopy bulb connections, on a protoboard. Successfully programmed all the peripherals, and obtaining accurate values for all the devices. A few days left until our demo!!

Mechanical Design - Printed Parts!

Image
Check it out! Put some of the prints together, to show the overall structure. Unfortunately the top part came in 3 pieces, so we will have to epoxy the parts together. However, the middle and bottom parts all connected to each other well. Above is what the middle part looks like, from the inside. Once the parts were obtained, we coated all the parts with the XTC-3D solution, so that it would have time to cure before assembly of all the major components.

Mechanical Design - Trip to Obtain the Parts!

Image
With all our parts designed, we outsourced our 3D printing to DigitMakers , a 3D printing company located in North York. The parts sent to DigitMakers included the top 'lilypad', the middle structure housing the spectroscopy, and the bottom housing for the pump and mesh filter. These parts were large, and required larger printers for the printing process. The material used for printing was PLA. To speed up the process, we went on a mini-road trip to pick up the completed parts from their facility. In addition to the parts, we needed a coating to waterproof our 3D printed parts. Though we chose a print volume of 50%, and ensured a solid outer layer for the print, a solution to coat the external shells of the parts was chosen. Through research, we found a solution called XTC 3D. We visited Sculpture Supply Canada in Etobicoke as well, to pick up this solution. Check for the next post to see the printed parts!

Software Development - Making Lilypod Intelligent – Part 3 (The Implementation)

Image
To implement the neural network, a Tensorflow backend with a Keras wrapper was used. The following is a visual representation of the network: It was designed to not be too deep since we do not have access to any pretrained layers that would be useful, nor do we have enough data to train the large number of parameters that a deeper network would have.  In addition to the model itself, an interface was built to allow hydroponic farmers to train the network with new data as well as to obtain a crop quality prediction when desired in an easy to use manner. To do this, a desktop app was built using Pygame and Matplotlib. The app displays a dashboard, showing graphs of the latest sensor readings of the water. Located beside the graph is an interface with two text fields and two buttons, each corresponding to a different text field. One text field allows farmers to input a crop score based on their own expertise. The button corresponding to that text field, when clicked, runs a

Software Development - Making Lilypod Intelligent – Part 2 (The Modification)

While we are unable to train and validate a working network due to lack of data, we are able to build a neural network architecture that is capable of learning the correlations between spectrometer data, pH levels, and conductivity measurements of the water to the quality of the resulting yield. After having created the neural network described in Part 1 of this blog, the learning capability of the network was validated by overfitting the network to dummy data. One dummy datapoint was created by running sensor measurements in a tub of salted water. An arbitrary percentage score label was then assigned to the measurement to indicate the hypothetical quality of the crops. Then, the network was trained on the single datapoint for a large number of epochs. What we found was that the LSTM neural network was unable to reliably overfit on the single datapoint. The loss value would decrease during training, but during inference time, the predicted score value would unexpectedly either jump