Project

# Title Team Members TA Documents Sponsor
75 Plant Hydration and Weather Integration System
Aashish Chaubal
Iker Uriarte
Jaeren Dadivas
Maanas Sandeep Agrawal design_document1.pdf
final_paper1.pdf
proposal1.pdf
Plant Hydration and Weather Integration System
- Iker Uriarte (iuriar2)
- Jaeren Dadivas (dadivas2)
- Aashish Chaubal (achau7)

Outdoor plant care is challenging due to varying weather conditions and the risk of overwatering or underwatering. There are available automated watering systems that water plants, but they don’t consider the option of saving water by considering upcoming rain. A smarter solution is needed to optimize plant hydration while conserving water. This idea could minimize the risk of overwatering, which some people consider worse than underwatering, and could maximize water usage.

# Solution

Our objective is to design a smart plant-watering system that monitors soil moisture levels and integrates weather forecasting to optimize water usage for outdoor plants. The system will delay watering if rain is forecasted, minimizing water waste. We will use an ESP32 microcontroller capable of requesting an API to a weather forecasting service (such as AccuWeather). Our design will include a motorized water pump whose water flow will be dependent on both weather and moisture sensors. Finally, our system will be powered by rechargeable lithium batteries to provide the user with better long-term sustainability and cost efficiency.

# Solution Components

# Subsystem 1: Control Board
The ESP32 will be the microcontroller for this project. It offers built-in Wi-Fi and Bluetooth functionality, making the design process more efficient and less risky. Additionally, the ESP32 is a highly popular microcontroller with documentation available, which could be helpful.
The ESP32 will handle receiving soil moisture readings from sensors. If the moisture level falls below a specific threshold (which will be manually set based on the type of plant we choose to use), the ESP32 will use APIs (e.g., AccuWeather) to get real time weather data and check the rain precipitation probability. If the probability is high, the system will delay watering and wait for the rain to moisture the soil. Otherwise, it will activate a water pump to hydrate the plants.
Lastly, the ESP32 will calculate the amount of water saved by comparing moisture levels when watering is delayed due to rain versus manually watering the plant with the water pump. Since the relationship between moisture levels and water usage is not linear, developing this calculation will be a challenging but essential part of the system. These results will be sent to a website that will display a graph showing water savings over time.
### Components Used: esp32-wroom-32 voltage

## Subsystem Batteries
Since our project is focused on targeting outdoor plants, we have to use lithium-ion batteries since they are the most efficient against cold weather and they can be recharged. The problem that these types of batteries tend to have is that they don’t go well with cold temperatures, so that’s why we have to go with lithium-ion batteries that are cold weather resistant. We will connect our battery to a 5V boost converter and connect the converter to the ESP32 5V input.
Components used:
###Components used: 2 Pack 3.7 Volt 18650 Rechargeable Battery 3400mAh 18650 Li-ion Battery


## Watering and Sensors subsystem
We will use moisture sensors pinned to soil in order to actively measure soil moisture levels. These moisture sensors will be SEN0114. SEN0114 will be connected to the 3.3V ESP32 pins.
The moisture sensors will work with our water pump. Our water pump will water plants whenever the moisture levels are low and there is no forecasted rain. Our pump will be a JT-180A.
###Components used:
SEN0114
JT-180A 5V

## Data Subsystem
our ESP32 will collect and upload data to a Firebase database, a cloud-based storage solution that will serve as our repository (data storage). We’ll build a custom website that connects to this database, allowing us to generate plots from the stored data. In short, Firebase will be our dependable “storage box” for all the semester’s data.

## Rain Detection Subsystem
In order for our control board to see if it rains, we will be using a Load Cell + HX711 that will go under a container (i.e. cup) that will, in the case of rain, measure the change in weight of the container including the plant. The weight accumulated due to the added water from the rain can then be used in calculations by the microcontroller to determine the amount of water that was saved by holding back the watering system. This subsystem will also be able to confirm that is raining to our control board.

##Criterion For Success

For our smart plant-watering system to be effective it needs to be able to autonomously sustain an outdoor plant via watering them by doing the following: it needs to be able to accurately monitor the soil moisture levels (and a set moisture threshold) and the real-time weather forecast and only activate the water pump accordingly (when the moisture level falls below the threshold and when there is no rain). Furthermore, it must be able to delay watering when the probability of rain is above a set threshold. The system will calculate and display water savings by comparing the system’s actual water usage and the baseline amount of water used without weather forecast information.

Schnorr Protocol Key Fob

Michael Gamota, Vasav Nair, Pedro Ocampo

Featured Project

# Schnorr Identification Protocol Key Fob

Team Members:

- Michael Gamota (mgamota2)

- Vasav Nair (vasavbn2)

- Pedro Ocampo (pocamp3)

# Problem

Current car fobs are susceptible to different types of attacks. Rolling jam attacks are one of such attacks where an attacker jams and stores a valid "unlock" signal for later. Cars with passive keys/cards can be stolen using relay attacks. Since a car can be the most expensive item someone owns, it is unreasonable to allow people to steal them so discreetly by hacking the fob/lock combo.

# Solution

By leveraging public key cryptography, specifically the Schnorr identification protocol, it is possible to create a key fob which is not susceptible to either attack (rolling jam and relay) and also gives no information about the private key of the fob if the signal were to be intercepted.

# Solution Components

# Key Fob

## Subsystem 1

Random number generation - We will use a transistor circuit to generate random numbers. This is required by the Schnorr protocol to ensure security.

## Subsystem 2

Microcontroller - The MCU will run all the computation to calculate the messages. We will likely use an ATtiny MCU so we can use the Arduino IDE for programming. However, some group members have experience with the STM32 family so that is another option.

## Subsystem 3

Power - We plan on using either a 5V battery or 3.3V battery with a boost converter to power the fob.

## Subsystem 4

Wireless Communication - We plan on using the 315 MHz frequency band which is currently used by some car fobs. We will need a transmitter and receiver, since the protocol is interactive.

# Lock

## Subsystem 1

Random number generation - We will use a transistor circuit to generate random numbers. This is required by the Schnorr protocol to ensure security.

## Subsystem 2

Microcontroller - This MCU will also run all the computation to calculate the messages. We will likely use an ATtiny MCU so we can use the Arduino IDE for programming. However, some group members have experience with the STM32 family so that is another option. This MCU will need to have PWM output to control the lock.

## Subsystem 3

Linear Actuator - We plan on using a linear actuator as a deadbolt lock for demonstration purposes.

## Subsystem 4

Wireless Communication - We plan on using the 315 MHz frequency band which is currently used by some car fobs. We will need a transmitter and receiver, since the protocol is interactive.

## Subsystem 5

Power - This subsystem will also likely require 5V, but power sourcing is not an issue since this system would be connected to the car battery. During a demo I would be acceptable to have this plugged into a power supply or a barrel jack connector from an AC-DC converter.

# Criterion For Success

Describe high-level goals that your project needs to achieve to be effective. These goals need to be clearly testable and not subjective.

Our first criteria for success is a reasonably sized fob. There is some concern about the power storage and consumption of the fob.

The next criteria for success is communication between the fob and the lock. This will be the first milestone in our design. We will need to have a message sent from one MCU that is properly received by the other, we can determine this in the debug terminal.

Once we are sure that we can communicate between the fob and the lock, we will implement the Schnorr protocol on the two systems, where the fob will act as the prover and the lock as the verifier. If the Schnorr signature implementation is correct, then we will always be able to unlock the lock using the fob whose public key is associated with full privileges.

Project Videos