Justin Reyes
March 28, 2025

AI-Ponics is a web application developed to monitor and manage plants in an aeroponic system. It utilizes advanced technologies like Gemini AI for image detection and interactive chatbot functionality, Blynk API for real-time sensor monitoring, OpenWeather API for current weather forecast, and Firebase for backend services, including plant data storage and user authentication.
Thesis Defended 🥳
After months of development and a week of completing revisions, our thesis has been successfully defended! With this, my journey as a college student comes to an end.
This blog serves as a walkthrough of our thesis project. I'm the main developer of this web application and I'm also responsible for the development of the sensor monitoring system.
To learn more about this project and its source code, here's the link of the repository: AI-Ponics
Features
Plant State Detection
- Gemini 2.0 Flash is used to analyze images of plants uploaded by users. It assesses the plant's health and growth, offering insights such as whether the plant is thriving or needs attention. The AI can also detect symptoms of common plant diseases or issues related to nutrition and environmental conditions.
Real-Time Sensor Monitoring
- Blynk API integrates various environmental sensors, providing real-time data on factors like temperature, humidity, and other parameters that influence plant growth. This data is accessible through the app’s dashboard, ensuring users can monitor their aeroponic system remotely and act accordingly.
Plant Intelligence
- A custom knowledge base implemented to enhance the AI chatbot’s responses with precise, data-backed insights on plant care, environmental factors, disease management, and optimal growth strategies for various crops.
Weather Forecast
- The OpenWeather API is used to provide users with weather forecasts based on their set address. This allows users to anticipate environmental conditions and adjust their aeroponic system accordingly. This forecast is accessible through the app's dashboard, enabling users to optimize their aeroponic system based on current weather conditions.
Firebase Integration
- Firebase is used for user authentication (via Google), storing user data in the cloud, and synchronizing real-time changes across devices. This ensures seamless access to plant information and system controls from multiple devices.
AI-Powered Chatbot
- The Gemini 2.0 Flash chatbot delivers real-time, personalized plant care advice by analyzing sensor data, current weather forecast, and user input. It answers specific user queries to help maintain plant health within aeroponic systems.
Email Notifications
- Users will receive email alerts when critical environmental conditions, like temperature thresholds, are reached. This feature helps ensure that the user is alerted if immediate actions are required.
Multiple Blynk API Keys
- The application supports the use of multiple Blynk API keys, enabling users to manage different aeroponic systems and switch between them seamlessly, which is especially useful for users with multiple setups.
Technologies
React JS
- A JavaScript framework for building user interfaces with reusable components and extensive library support.
Ant Design
- A React UI component library providing pre-built elements for efficient user interface development.
Gemini 2.0 Flash
- Google's AI model utilized for plant image analysis and natural language processing.
Blynk API
- An IoT platform for sending real-time sensor data from the microcontroller to the web application.
OpenWeather API
- Weather data service providing real-time weather forecasts for environmental monitoring.
Firebase
- Google's backend platform handling user authentication, real-time database management, and cloud storage.
Parts
ESP32 Development Board
- A low-cost, versatile microcontroller. Chosen for its built-in WiFi module and direct compatibility with the Blynk API. Additionally it has support for Email libraries which are then utilized for the Email notification feature of the system.
DHT22
- A temperature and humidity sensor. This is used for monitoring environmental conditions, with a temperature range of -40°C to 80°C and a humidity range of 0% to 100%. While its accuracy is ±0.5°C for temperature and ±1%.
YF-S201
- A Hall Effect water flow sensor with a working flow rate of 1 to 30 liters per minute and an accuracy of ±10%, used for monitoring the pump operation of the AI-Ponics system.
PH-4502C
- An analog pH sensor module designed for measuring the acidity or alkalinity of a solution, with a measurement range of 0 to 14 pH. It features an adjustable potentiometer for calibration and provides an analog voltage output corresponding to the pH level. Used in the AI-Ponics system to monitor optimal nutrient solution conditions.
0.96 OLED Screen
- A compact display with a resolution of 128x64 pixels, commonly used to show real-time data such of sensor readings, and email alert status, in the AI-Ponics system.
Schematic
The schematic diagram below illustrates the connections between the ESP32 Dev Board and the aforementioned sensors:
DHT22
The 3.3V pin is connected to the positive terminal of the DHT22 sensor, while the GND pin is connected to the negative terminal of the sensor. The data pin of the DHT22 sensor is connected to the D27 pin of the ESP32 Dev Board.
YF-S201
The VIN pin of the Dev Board is used to power the Water Flow Sensor instead of other power options. Since the VIN pin on the ESP32 Dev Board can function as either an input or an output pin, depending on how the module is powered.
OLED Display
The ESP32 has flexible I2C pin assignments, allowing any I2C pin to be configured as SDA or SCL. However, GPIO21 (SDA) and GPIO22 (SCL) are commonly used as default I2C pins for compatibility with existing code, and libraries.
PH-4502C
Before connecting the Po pin, the sensor's potentiometer is adjusted first to ensure the analog voltage reaches 2.50V. After adjusting the potentiometer, the sensor is further calibrated via code using a two-point calibration method with buffer solutions at pH 4.01 and pH 6.86.
Thank You! 🥺
If you've actually reached this far, then I thank you very much. This has been one of the projects that I've dedicated so much time to. I started this way back in September 2024, while managing my academics, on-the-job training, and also my responsibilities as a student-athlete.
The development of this project also represents my personal development as a student web developer. I got to learn a lot while building this, in both aspects of software and hardware.
I think that's all there is. I'm anxious and excited at the same time, wondering what life has in store for me. Overcoming phases in life, one after the other, always onto bigger things.