Story
Fytó is a smart planter that can easily turn your plant into a pet. It comes with built-in sensors that measure everything from light exposure to soil moisture, which can trigger six different emotions that will communicate how your plant is doing. The emotions are displayed on the front screen.
Are you a phytophile? Just add your plant to Fytó, and it will start communicating with you.
Our Pet and Its Emotion
Our pet comes with 3 basic senses.
- Soil Moisture
- Temperature
- Light Exposure
Fytó displays 6 expressions that are directly related to our plant's health.
- Thirsty: Fytó displays thirst whenever the soil moisture is too low for the plant and is looking for some water
- Hot: Displayed whenever Fytó is too hot
- Freeze: When the temperature drops too low, Fytó needs some warmth
- Sleepy: When the light exposure is too low, Fytó is too sleepy
- Savory: When the plant gets some water, it's too delicious, na?
- Happy: When everything is perfect, Fytó is too happy
PI ZERO 2W(BRAIN)
We will use a Raspberry Pi Zero 2W as the controller for this flower pot. We have different generations of Raspberry Pi, including PI 3, PI 4, PI Zero, and PI Zero 2W. The reason we used it is due to its smaller size and higher performance.
At the heart of the Raspberry Pi Zero 2W is a 1GHz BCM2710A1 with a 64-bit ARM Cortex-A53 CPU with 512MB RAM. Quite frankly, this Pi is about four times faster than the original Raspberry Pi and is only a fraction of the cost of the current RPi3. So they can easily handle the GIF playing on the screen.
For setting up the Raspberry Pi, please refer to this documentation.
SENSORS WITH ADC
The sensors used in this project are
- Capacitive Soil moisture sensor, which is used to sense the soil moisture levels. They measure the soil moisture levels by capacitive sensing, rather than resistive sensing like other types of moisture sensors. The ability to prevent corrosion is because it is made of a corrosion-resistant material, giving it a long service life.
- LM35 temperature sensor - which is used to sense the temperature, you can use any temperature sensor you want.
- LDR module - is used to detect the intensity of light. Here we used an LDR module, which contains a built-in SMD resistor. If you are using a bare LDR, use a resistor for pull-down/pull-up.
The main problem is that the Raspberry Pi cannot sample data from these analog sensors. In this case, analog sensors can be interfaced with Raspberry Pi using two ways. One is to use an external analog-to-digital converter; the second is to sample data from analog sensors using a microcontroller and transfer all captured data to the Raspberry Pi via a serial interface.
Here we are going with the first case, to use an analog-to-digital converter named ADS115 ADC. It's a 16-bit ADC with high accuracy.
240×320, General 2-inch IPS LCD Display Module
In our plan, first, we proceeded with playing normal black and white emojis. So, for that purpose, the normal OLED display would be enough. This display with these particular emojis failed to accentuate the whole project. Then we changed to the coloured emojis, to display that we used this 2-inch IPS LCD display module. IPS displays have superior high contrast, wide viewing angle, color reproduction, image quality, etc. It only costs $13, super cheap.
In the next setup, we will calibrate the sensors.
Calibration
Calibration is important because it helps ensure accurate measurements. So we hooked up all sensors and the LCD module by means of jumpers and breadboard to the Raspberry Pi 4 to make testing and calibration much easier because Pi Zero 2W has no headers.
We wrote down a piece of Python code on a Raspberry Pi and figured out the max and minimum analog values of moisture and LDR modules (Please ensure the connected channel is correct in the code).
The code is updated and can display emojis on the display according to the sensor values. Here we used 6 emojis.
3D PRINT
It's time to design the flower pot. We used Autodesk Fusion 360 to get the job done.
The Pot consists mainly of 3 parts: the Outer cover, the base, and the container. The container is the place where the plant is to be set. If your plant needs more space, consider increasing the size of the container.
One of the interesting facts in the 3d design is that we didn't add up any screws for attaching the components because lower diameter screws are not easily available in the market. If you have to do so, kindly look over the attached step file. We used PLA material for printing these parts with an infill of 10%.
WIRING
We started soldering the components according to the schematics. The First diagram shows the connections between sensors and the Raspberry Pi, and the second diagram shows the connection between the display and the Raspberry Pi.
First, we soldered the LM35 to a small perf board, so we can easily attach it to the outer cover. Then we shorten the length of the LDR in that module. After that we we took out of wire from every component by using a 30 AWG silicone wire.
For powering up the module, we used a tiny USB module and a power supply of 5V 2A power supply. If you have a mobile charger with the same specs, you can also use it, not necessary to buy a new one.
Tip: For soldering the components, use a temperature between 300-350 degrees Celsius
Assembly
Then we started assembling the components one by one. First, we attached the LCD module to the front end. Then we laser cut a 2mm transparent acrylic sheet to place in front of the display, its intention is to hide the depth between the LCD module and the outer cover.
Then we secured the LDR module and the temperature sensor on the opposite sides. Both sensors are visible to the outside. Finally, we attached the ADC and Pi Zero 2W by means of the strong double-sided tape.
After we connected the USB module with the Raspberry Pi and glued the base and the outer cover. Then we inserted the moisture sensor into the container where the plant is already set and made the remaining connections. Finally, we placed the container inside the outer cover.
FINAL RESULTS
Just power up the Fytó, and it will start communicating with you.