Final Slides

oliver choi and oliver choi

Giant Sequoia-inspired infrastructure

Defy The Flames

Pacific Palisades, LA, on Jan 7, 2025

Charlie Juhas and Oliver Choi

Vid

Charles Juhas and oliver choi
IMG_4749.MOV

Today, we fixed the automation system. We altered the code by utilizing the millis function instead of delay so that the loop is not broken. Therefore, the button now successfully activates and deactivates the automatic watering system.

In addition, we made a container for our electronics so they do not get wet. Now, we will think back to biomimicry and design a new house that better mimics the Giant Sequoia tree.

new code

oliver choi and Charles Juhas
const int relayPin = 3;   // Pin connected to the relay (controls the pump)const int buttonPin = 2;  // Pin connected to the buttonbool automationActive = false;  // Tracks whether automation is activebool buttonPressed = false;     // Tracks button press state for toggling
void setup() {  pinMode(relayPin, OUTPUT);       // Set relay pin as output  pinMode(buttonPin, INPUT_PULLUP); // Set button pin as input with pull-up resistor  digitalWrite(relayPin, LOW);     // Ensure pump is off initially  Serial.begin(9600);             // Initialize serial monitor for debugging}
void loop() {  // Check if the button is pressed (LOW state)  if (digitalRead(buttonPin) == LOW && !buttonPressed) {    delay(50);  // Debounce delay    if (digitalRead(buttonPin) == LOW) {  // Confirm the button press      buttonPressed = true;  // Prevent multiple triggers for one press      automationActive = !automationActive;  // Toggle automation state
      // Print current state for debugging      if (automationActive) {        Serial.println("Automation system activated");      } else {        Serial.println("Automation system deactivated");        digitalWrite(relayPin, LOW);  // Ensure pump is off when automation stops      }    }  }
  // Reset button state after release  if (digitalRead(buttonPin) == HIGH) {    buttonPressed = false;  }
  // Run automation system if active  if (automationActive) {    digitalWrite(relayPin, HIGH);   // Turn on the pump    Serial.println("Pump ON");    delay(2000);                    // Run pump for 2 seconds    digitalWrite(relayPin, LOW);    // Turn off the pump    Serial.println("Pump OFF");    delay(10000);                   // Wait for 10 seconds  }}

post

Charles Juhas and oliver choi
laser cut.dxf
laser cut.3dm

laser cut files

Day 7 - Automation System and Spraying All Sides

oliver choi and Charles Juhas

We are reconstructing the mechanical engineering aspect of the project by utilizing a water dispensing system that could spray all sides. In addition, we created an automation system so that the water sprinkler sprays every 10 seconds for 2 seconds when the automation system is activated.

ChatGPT feedback session

oliver choi and Charles Juhas

https://chatgpt.com/share/678fc9ab-bd40-8013-8d34-027bcbe893f5

StoryExport.MOV

Video of combined house & electronics attached

Button-Activated Sprinkler.mov

We spent the weekend working on our project.

Progress Video and picture (attached)

Day 3 - Additional Progress

oliver choi and Charles Juhas
Debugging SciC#2

We created a debugging file to ensure the button works.