Zara’s Status Report for 04/12/2025

This week I first worked with Jana on making the greenhouse water-resistant as we sprayed water-resistant sealant over it and put the components back in. We have tidied up the system and secured the lights and the water pump. I also got the 7-in-1 soil sensor working fully and is incorporated into the main function. There were a few issues in getting it working at the same time as the temperature sensor, however, I managed to resolve them by using different packages for the code. I have now incorporated all sensor data to be sent on the webapp and they are running constantly now to collect data. For the RPI camera, I have also laser-cut a mount for it so it can be stuck on the greenhouse and the angle of the camera may be adjustable depending on the plant inserted.

My progress is mostly on track, I will need to resolve the finalissues with the heater thisweek. I have also received the final water pump for the nutrients so I will set it up in the upcoming week. In terms of actuator code control, I will need to record the water flow rate so I can set up automated water pumping and nutrient pumping.

Yuna’s Status Report for 04/12/2025

Progress I made this week:

  1. Plant Species Detection: When the user tries to add a new plant and they don’t know what the species is, the web app now detects the plant species using ML.
  2. Manual Auto-scheduling: I added a manual auto-scheduling page for users to manually control the plant care conditions if their plant is not in the webscraped database. The user can now set their own auto-schedule.
  3. Chrome Notifications: I implemented a notification system using Chrome Notifications API to notify the users whenever the plant conditions are unhealthy or the sensor data goes beyond the ideal threshold. (The original plan of using Twilio API for notifications have been changed to chrome notifications due to cost issues.)
  4. Camera On/Off: The camera can be now turned on and off using a switch on the web app, allowing users to control security.
  5. Deployment on RPi: The web app has been deployed to RPi. It was initially using http, but I realized chrome notifications API requires https instead. Now the website can be accessed in https url.

I am currently a little behind schedule because some of the features in the web app were not fully implemented and verified, but I’ll make sure to finish everything by early next week to leave time for testing.

Next week’s deliverables:

  • Auto-scheduling Feature: fully implement the auto-scheduling feature and verify it works. Currently there is code for making sure the conditions change according to the schedule, but haven’t tested if it works.
  • More Sensors/Actuators Integration: Our team has some sensors and actuators that haven’t been fully integrated to the system yet, so I’ll work on integrating them with web app.
  • Focus on details: fix small details in the web app – for example, currently the switches for turning on/off the actuators do not know the current status of the actuators. I will make sure the web app gets notified of the current on/off status of the actuators from RPi.
  • Tests: write tests for the web app code. Test if the system works.

Jana’s Status Report for 04/12/2025

This week Zara and I worked together to waterproof the wood of the greenhouse by spraying a waterproof sealant. I finished setting up the LEDs and the controls/communication between the RPi and WebApp (with Zara and Yuna), including managing turning the white LEDs on for capturing images for further processing. I also ensured smooth integration of the camera usage with the WebApp, as we previously had issues with conflicting usage of the camera (for example capturing an image for ML model while live streaming). I set up the data collection code, so we are now collecting sensor and image data from the greenhouse 24/7 (4 data points per hour), which I will use for training and testing the late fusion network of the plant health classification ML model. I started working on the mister, however I ran into some issues. Following the meeting on Monday, I haven’t had the chance to continue working on it due to assignments/exams for other classes.

I am currently slightly behind schedule as I have yet to get the mister working, however I plan to dedicate all of Sunday to working on it.

Next Week’s Deliverables:

  • Set up the mister + control loop
  • Set up the late fusion network 
  • Buy more plants
  • Cover windows with black out film
  • Begin testing subsystems for final report

Team Status Report for 04/12/2025

This week, we set up the LEDs, and we got the soil sensor working, and as such, all of our sensors are now functioning and sending data to the WebApp. The WebApp has been deployed on the RPi, and users can get Chrome notifications of their plant’s current health status. For plants that are not in our database, users get directed to a page to input their own ideal conditions for their plant. We continued working on integration, ensuring that the LEDs, water pump, and live streaming can be controlled via the WebApp smoothly, with no conflicts between different parts of the code. We set up the greenhouse for collecting image and sensor data for ML training. We waterproofed the greenhouse using a waterproof wood sealant and set up the sensors, LEDs, and water system to their permanent positions. The camera was mounted on a swivel case that Zara laser cut, allowing us to manually adjust the position of the camera. 

Progress:

  • All sensors working and sending data to the WebApp
  • Displaying temperature and humidity sensor data on WebApp with charts
  • Working LEDs, water pump, and live stream, all controlled through the WebApp
  • Working plant identification API (not integrated with WebApp)
  • Working plant health classification (not integrated with WebApp)
  • Chrome notifications for plant health
  • WebApp deployed on RPi
  • Option to manually add plant not in database
  • Set up sensor and image data collection for ML training
  • Waterproofed greenhouse & physical setup

Next Steps:

  • Get heater actuator working
  • Get mister actuator working
  • Control loops for watering, heating and misting
  • Setup automatic vs manual scheduling through WebApp
  • Continue collecting data
  • Begin testing subsystems

Zara’s Status Report for 03/29/2025

This week I made progress on getting the water pump actuator to work through the RPi, as well as the soil moisture sensor (HW080) to collect plant data. The actuator code for the heater works as well, though it overheats the wires and smokes so it becomes unsafe. Thus I have decided to not demo that and wait to retry with thicker wires for more safety in the future. I have researched more into the soil moisture, pH, and nutrients sensors, however, due to lack of documentation am still struggling to make it work so will be using the HW080 for the demo instead. We have also instilled all the current working components into our greenhouse so that it is together, and I have added an extra Arduino to the system to reduce the stress on the Raspberry Pi.

By next week, I hope to get the soil moisture, nutrients, pH sensor working as well as the heater without safety issues so that full data can be collected. I also want to start the control code with a pid so that the system will respond to ideal conditions.

Team Status Report for 03/29/2025

This week, our biggest effort went towards sufficiently preparing for the interim demos on Monday and Wednesday. We aimed to have 2-3 working sensors, at least one working actuator, a working camera stream, and plant identification, all communicating with the webapp somewhat. We came across many risks during the process, firstly for the amount of plant data we send there may not be enough space on the database to hold it, so we decided to reduce the frequency of data sent. Additionally, when trying to set up the heater, we found that when running the code, it tends to overheat and occasionally smoke, proving to be a fire hazard, so we aim in the future to try thicker wires better for this. Additionally, we aimed to have the soil moisture, pH, and nutrients sensor ready for the interim demo and ML data collection, however, due to lack of documentation, it has been difficult to set in time, so an easier sensor (HW080) is being used instead initially to just collect soil moisture data for now whilst the other one is being setup.

 

For the overall design, we have run into overheating issues in the Raspberry Pi, so we have decided to move the light sensor as well as the soil moisture sensor (HW080) to an Arduino to collect data and send that to the Raspberry Pi. As the LEDs we initially bought may not have been appropriate for rewiring through a relay, we have also decided to purchase a new one to prepare for it. 

 

Progress:

  • Working soil moisture, temperature, and humidity sensor data sent to webapp
  • Working water pump control through webapp
  • Working camera stream to the webapp
  • Mostly working plant identification 
  • Working plant health identification through webapp
  • Display temperature and humidity sensor data on webapp with charts
  • Some working code for mister actuator

 

Next Steps:

  • Get the heater actuator working
  • Get plant identification more accurate
  • Start training on collected sensor data
  • Get soil moisture, pH, and nutrient sensors working
  • Get mister working through actuator
  • Get LED strips working through actuator

 

Yuna’s Status Report for 03/29/2025

Progress I made this week:

  1. I fixed the bug for MQTT communication from the web app to the RPi. When the user clicks on switches on the web app, the web app sends on/off command to the RPi through MQTT. Below is the page where the users can control the actuators:

    Zara and I worked together to make the water pump successfully get turned on/off when user control the switch. The other actuators will be integrated in the future.
  2. I integrated web scraped data with the web app. I saved all the plant names and image urls to the database so that all the plant species can be displayed in the AddPlantPage. However, details about the ideal plant care conditions are stored in the database only when user selects that species (this is to ensure that database doesn’t store unnecessary data). Below is the page where users can name their plant and select the species:

    After the user add their plant, the ideal plant care conditions are now stored in the database and are shown to the user like this:
    The user’s plant information now gets saved in the database and are displayed on the home page (name, health status, species, and its cute image)
  3. I made sensor data get displayed on the homepage as charts. To ensure the database does not contain too much data, I set it up so that the oldest sensor data gets deleted once it goes beyond 1440 limit (The data gets stored every 1 minute, and we aim to display the past 24 hours of sensor data. 60/min * 24 hours = 1440 sets of data) The home page now only displays temperature and humidity charts, but the other sensor charts will be added in the future.

    Websockets (django channels) were used to update the chart based on the real-time sensor data. Sensor data charts get updated every 1 minute, and health status gets updated every 24 hours.

I’m on schedule.

Deliverables for the next week:

  • implement auto-scheduling feature
  • activate plant detection for ML classification on webapp
  • integrate API for plant identification on webapp
  • add more sensors and actuators that can work with web app
  • start exploring deployment (probably on RPi)
  • start integrating Twilio API

Jana’s Status Report for 03/29/2025

This week we started preparing for the upcoming demo by integrating various parts of the project. This included setting up the greenhouse with various hardware components in there, such as the RPi, camera, water pump, and plants. I looked into the requirements for increasing the privacy of the live streaming, and we plant to mitigate this in two ways, firstly by using an opaque screen as the backdrop to avoid capturing objects in the background, and also by limiting access to the live stream to authorized users only via OAuthentication (although this will be implemented later). I also developed the multi-classification ML model for plant health classification. I began working on setting up the LEDs for the greenhouse but ran into some issues regarding the wiring of the LEDs and how they can’t be controlled through the relay alone. To mitigate that, I have decided to use back up LEDs that I happen to have. Similarly, while setting up the misters, I realized that it may not be compatible with our RPi setup, and so I have decided to leave that until later. Since we now had the plants in the greenhouse, I tested the API identification with the plant, and it worked. I also tested that the ML health classification can capture an image and process it once a day and on command from the webapp. Since the sensors have not all been set up, I haven’t been able to collect sensor data, so I have decided to just begin collecting image data. When testing the ML model (only trained on online data), I found that the results were highly inaccurate, so we must collect a significant amount of data for training and testing purposes.

I am slightly behind schedule due to facing issues with the LED setup and lack of sensor/image data collection, however, I plan to prioritize image collection over the next 2 weeks to build a good enough dataset. 

Next Week’s Deliverables:

  • LED setup
  • Begin image data collection
  • Figure out best way to set up the mister
  • Buy more plants for testing

Team Status Report for 03/22/2025

There were no major changes to our design.

Challenges & Mitigation:

  • Not enough ML data: This is an ongoing issue that we may not be able to collect enough plant data to sufficiently train the ML model. To solve this, we will start collecting our own data from our plants next week and keep prioritizing setting up sensors.

Progress:

  • Web Scraping: Except for pH data, we are done with web scraping that provides plant information essential for growth.
  • Plant Identification API: Plant Identification API was set up for identifying plant species.
  • Light Sensor: We confirmed our code for light sensor is working.
  • Communication between RPi and Web App: We successfully transmitted data from the RPi to the web app, and we’re almost done with transmitting data from the web app to the RPi.
  • ML Integration with Web App: RPi captures images, runs the ML model for identification, and sends results to web app.
  • RPi Camera Integration with Web App: The camera was successfully integrated with web app.

Next Steps:

  • Collect our own data from our plants
  • Set up the greenhouse environment for demo
  • Develop and test multi-classification ML models
  • Finish MQTT setup
  • Display web scraped data on web app
  • Implement auto-scheduling feature
  • Set up all sensor data to be sent to the web app

Zara’s Status Report for 03/22/2025

This week, I made significant progress on the project by completing most of the web scraping for plant data. I successfully gathered essential information such as scientific name, light requirements, watering needs, temperature, and humidity levels. The only remaining task for this aspect is to obtain pH levels and more precise water level data from additional sources. Alongside this, I worked with Yuna to implement the transmission of temperature and humidity sensor data from the Raspberry Pi to the web application. I also tested and verified the functionality of the light sensor code, ensuring it is correctly reading and processing data.

The Raspberry Pi is now deployed on campus, where I noticed that it tends to overheat when multiple sensor inputs are running simultaneously. To address this issue, I have ordered a cooling fan to help maintain optimal performance. In terms of overall logic, I also finalized the control flow payloads that will be sent back and forth from the RPi to the Web app with Jana and Yuna.

My progress is mostly on schedule, though I have fallen a bit behind on starting actuators, as I wanted to prioritize the integration of webapp for sensor data before implementing turning on and off the heater. By next week I hope to complete the code for the soil pH and nutrients sensor as well as having pH levels scraped online. I want to finalize sending all sensor data to the webapp integration in time for the upcoming demo and also get started on actuator code for the heater.