Final Project
For my final project I wanted to work on a product that incorporates concepts of landscaping, interior design and decoration that could be accessible, sustainable and interactive and responds to the user's needs in terms of connection with nature in urban environments.
Result
Concept
Fab&Plant is a revolutionary urban oasis, seamlessly merging technology and nature. It's not just a green facade; it's an ecological statement, transforming walls into vibrant ecosystems. Smart, interactive modules respond to your presence with a symphony of lights, and plant movement. Beyond aesthetics, Fab&Plant embodies sustainability, encouraging a hands-on connection with nature through manual irrigation. It's more than a project; it's a lifestyle, redefining urban living by bringing the tranquility of nature to your home.
Fab&Plant Q&A
- What Fab&Plant does?
- Who's done what beforehand?
- What did I design?
- What materials and components were used?
- Where did they come from?
- How much did they cost?
- What parts and systems were made?
- What processes were used?
- What questions were answered?
- What worked? What didn't?
- How was it evaluated?
- What are the implications?
Schedule
What Fab&Plant does?
Have you ever felt the yearning for a breath of fresh air, a connection to nature, right at your home in the heart of the bustling city?
In the concrete jungles we call cities, the touch of nature often eludes us. But what if I told you that you could bring a vibrant slice in your own house? Introducing Fab&Plant, the interactive modular vertical garden facade, a revolutionary leap towards reconnecting urban dwellers with the soothing embrace of nature.
Ecological impact: Imagine not just a green facade but a living, breathing ecosystem that transforms barren walls into vibrant canvases of life. Fab&Plant is not merely a decoration; it's an ecological statement. In a world racing against time to combat climate change, my project stands as a beacon of sustainable living. It embraces vertical space, offering a solution to the scarcity of green areas.
Interactive experience: But here's what sets Fab&Plant apart - it is not just a static garden; it is a living, interactive masterpiece. Picture this: as you approach your home, the modules come alive with a symphony of light, and the gentle rustle of leaves. It is not just a greeting; it is an immersive experience that connects you to the natural world. Each module senses your presence, responding with a welcome or bidding you a good day as you leave.
Smart sustainability: It goes beyond aesthetics; it is intelligent. Fab&Plant encourages a hands-on connection with nature through manual irrigation, allowing you to experience the joy of nurturing your own green oasis. Humidity sensors and illuminated icons in each module keep you informed and in control. Sustainability isn't just a buzzword; it's the heartbeat of Fab&Plant.
Fab&Plant is not just a product; it's a lifestyle. It's a step towards harmonizing urban living with nature, offering solace in the green oasis of your home. Join us in making cities greener, more interactive, and delightfully sustainable. Let's redefine urban living with Fab&Plant, the interactive modular vertical garden facade.
Research: Who's Done What Beforehand?
For inspiration and guidance, I reviewed Fab Academy final projects from the past few years.
2023
Author | Project title | Project video |
---|---|---|
Daniel Collins | Moss Wheel | Link |
Sibin K S | Gropod | Link |
Ekaterina Kormilitsyna | Symbiotic Devices | Link |
Ryan Kim | Rotary Hydroponics Garden | Link |
Lisa Schilling | Selfwatering Flowerpot | Link |
2022
Author | Project title | Project video |
---|---|---|
Pablo Pastor García | Smartpot | Link |
Paola Zanchetta Muñoz | Fab, Meditation and Plants | Link |
Juan Carlos Cristaldo | Shadowhouse | Link |
Rachelle DeCoste | Demeter`s Garden | Link |
Lakshmi | Selfwatering Pot | Link |
John Story | Growing Microgreens | Link |
2021
Author | Project title | Project video |
---|---|---|
Ismael Larrea Bravo | Seedling Nursery | Link |
Jeffery Naranjo | Sustainable Bus Stop | Link |
2019
Author | Project title | Project video |
---|---|---|
Nagi Abdelnour | Automated Indoor Hanging Garden | Link |
These references helped me understand the objective of the final project, guided me to solutions that could be used to solve similar conditions in my project, and inspired me to develop my final project.
Design Process: What Dit I Design?
My first ideas about fab&plant were to focus on the functionality of the vertical garden, as well as the interaction with users through movement.
First Ideas
First sketch of the front view of the final project
First sketch of the detail view of the final project
To make the plants move, they will rotate on their vertical axis when the motion sensor detects the user in the nearby environment.
Pot pivoting in its axis
Second sketch of the final project module
When testing the 2D design, the shape was complex (the module did not convince me) and I decided to concentrate on the design of the module.
Green Vertical Facade Module
By working form in combination with function, Fab&Plant changed, but its concept remained.
Vertical facade module
Vertical facade
Now the module was formally concentrated because I was already beginning to think not only about the form, but also about the components that would allow its operation and interaction.
Breathing Module
In week 5, I created a chainmail that inspired me for making the movement in my final project module.
Final project mockup
Final project mockup with icons
Modelling final project in Fusion 360
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Materials and components: What were used? Where did they come from? How much did they cost?
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Electronics: What parts and systems were made?
Inputs and Outputs
Input | Output |
---|---|
Soil moisture sensor measures the percentage of humidity in the soil | If humidity is less than 40%, the blue LED turns on lighting the thirsty drop icon | If humidity is 40% or more, the green LED turns on lighting the happy leaf icons |
PIR sensor detects motion around the module | If motion is detected, servomotor rotates its blades to allow pots with plants movement |
Switch with ON/OFF option | If switch in on the system starts | If the switch is off the system does not work even if the power supply is connected |
Input/output scheme
Fab&Plant PCB diagram
Fab&Plant PCB schematics
Fab&Plant PCB traces
Fab&Plant PCB
Debugging PCB
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for blink LEDs and test the output pins with XIAO RP2040 // Define the pin for the LEDs const int ledPin1 = D9; const int ledPin2 = D3; const int ledPin3 = D10; // The setup function runs once when you press reset or power the board void setup() { // Initialize digital pins ledPin1, ledPin2, and ledPin3 as outputs pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(ledPin3, OUTPUT); } // The loop function runs over and over again forever void loop() { { digitalWrite(ledPin1, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin1, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } { digitalWrite(ledPin2, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin2, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } { digitalWrite(ledPin3, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin3, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } }
Code in Arduino IDE for test the LEDs in Fab&Plant PCB
Debugging PCB
Testing Inputs
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Soil moisture sensor (analog pin) code in XIAO RP 2040 in Fab&Plant PCB // constants const int Moisture_signal = A0; //Analog pin A0 on the XIAO RP2040 for the soil moisture sensor signal // variables int value; void setup(){ Serial.begin(9600); // Start the serial communication } void loop(){ // when the plant is watered well the sensor will read a value 380∼400 value = analogRead(Moisture_signal); // read analog value value = constrain(value,400,1023); // keep the ranges value = map(value,400,1023,100,0); // map value: 400 will be 100 and 1023 will be 0 Serial.print("Soil humidity: "); Serial.print(value); Serial.println("%"); delay(5000); // read every 5 seconds }
Code in Arduino IDE for test the humidity sensor in Fab&Plant PCB
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for blink LED when motion is detected by PIR sensor connected to XIAO RP2040 int pirPin = D1; int ledPin = D3; int pirValue; void setup() { // put your setup code here, to run once: pinMode(ledPin, OUTPUT); pinMode(pirPin, INPUT); digitalWrite(ledPin, LOW); } void loop() { // put your main code here, to run repeatedly: pirValue = digitalRead(pirPin); digitalWrite(ledPin, pirValue); }
Code in Arduino IDE for test the PIR sensor with LED in Fab&Plant PCB
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for PIR sensor (HC-SR501) connected to XIAO RP2040 const int pinPIR = D1; int pirValue; void setup() { // Start serial communication Serial.begin(115200); // Configure the PIR sensor pin as input pinMode(pinPIR, INPUT); } void loop() { // Read the state of the PIR sensor int pirState = digitalRead(pinPIR); // If motion is detected if (pirState == HIGH) { // Print "movement" message on the serial port Serial.println("Movement detected"); } else { // Print "off" message on the serial port Serial.println("No movement detected"); } // Wait for a brief period before reading again delay(1000); }
Code in Arduino IDE for test the PIR sensor in Fab&Plant PCB with serial monitor
Start switch test
To test the system start button, I worked with a 5V/3A power supply. Since I couldn't get this source, I used a USB type power cable (which then I connected to a cell phone charger to connect to an electrical outlet) and type C. I cut the type C input and found 4 cables: one red, the other white with black spots, another white and the last green. I identified that the white and green cables were for data, the red for VCC and the white with black GND. Based on this, I connected the VCC and GND cables to the XIAO RP2040 to perform the switch tests. For blinking the LED I used this code in Arduino IDE:
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for blink LED and test the switch that starts system with XIAO RP2040 // Define the pin for the LED const int ledPin = D10; // The setup function runs once when you press reset or power the board void setup() { // Initialize digital pin ledPin as an output. pinMode(ledPin, OUTPUT); } // The loop function runs over and over again forever void loop() { digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Code in Arduino IDE for blinking LED
Start switch test
Testing Outputs
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for servomotor connected to XIAO RP2040 #include < Servo.h> #define SERVO_PIN A3 Servo servoMotor; // Create a servo object to control a servo void setup() { servoMotor.attach(SERVO_PIN); // Attaches the servo on pin A3 to the servo object } void loop() { // Move the servo to different positions servoMotor.write(0); // Move the servo to 0 degrees delay(1000); // Wait for 1 second servoMotor.write(90); // Move the servo to 90 degrees delay(1000); // Wait for 1 second servoMotor.write(180); // Move the servo to 180 degrees delay(1000); // Wait for 1 second }
Code in Arduino IDE for test servomotor in Fab&Plant PCB
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for smooth transition of LED strips using PWM with XIAO RP2040 // Define the pin for the LED strips const int ledPin1 = D9; // Define the pin for blue LED strip const int ledPin2 = D10; // Define the pin for green LED strip // The setup function runs once when you press reset or power the board void setup() { // Initialize digital pins ledPin1 and ledPin2 as outputs pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); } // The loop function runs over and over again forever void loop() { // Gradually increase brightness for (int brightness = 0; brightness <= 255; brightness++) { analogWrite(ledPin1, brightness); analogWrite(ledPin2, brightness); delay(15); // Adjust delay for desired transition speed } // Gradually decrease brightness for (int brightness = 255; brightness >= 0; brightness--) { analogWrite(ledPin1, brightness); analogWrite(ledPin2, brightness); delay(15); // Adjust delay for desired transition speed } }
Code in Arduino IDE for test LED strips in Fab&Plant PCB
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
Programming: What processes were used?
//Fab Academy 2024 - Fab Lab Peru - Maria Angela Mejia //Code for Fab&Plant PCB with a XIAO RP2040 #include < Servo.h> #define HUMIDITY_SENSOR A0 #define PIR_SENSOR D1 #define BLUE_LED D9 #define GREEN_LED D10 #define SERVO_PIN A3 Servo servoMotor; void setup() { pinMode(HUMIDITY_SENSOR, INPUT); pinMode(PIR_SENSOR, INPUT); pinMode(BLUE_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); servoMotor.attach(SERVO_PIN); //LED strips are initially turned off digitalWrite(BLUE_LED, HIGH); digitalWrite(GREEN_LED, HIGH); } void loop() { // Read sensors int humidityValue = analogRead(HUMIDITY_SENSOR); int pirState = digitalRead(PIR_SENSOR); // Map humidity value to percentage int humidityPercentage = map(humidityValue, 1023, 0, 0, 100); // If humidity is less than 40% and motion is detected, turn on blue LED if (humidityPercentage < 40 && pirState == HIGH) { digitalWrite(BLUE_LED, LOW); digitalWrite(GREEN_LED, HIGH); // Ensure servo motor is off servoMotor.write(0); } // If humidity is 40% or higher and motion is detected, turn on green LED else if (humidityPercentage >= 40 && pirState == HIGH) { digitalWrite(BLUE_LED, HIGH); digitalWrite(GREEN_LED, LOW); // Rotate servo motor if humidity is 40% or higher servoMotor.write(0); // Move the servo to 0 degrees delay(1000); // Wait for 1 second servoMotor.write(90); // Move the servo to 90 degrees delay(1000); // Wait for 1 second servoMotor.write(180); // Move the servo to 180 degrees delay(1000); // Wait for 1 second servoMotor.write(90); // Move the servo back to 90 degrees delay(1000); // Wait for 1 second } // If no motion is detected, turn off both LEDs and servo motor else { digitalWrite(BLUE_LED, HIGH); digitalWrite(GREEN_LED, HIGH); servoMotor.write(0); } }
Code in Arduino IDE for a Fab&Plant module
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
What questions were answered?
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
What worked? What didn't?
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
How was it evaluated?
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
What are the implications?
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.
Conclusions
- Conclusion 1.
- Conclusion 2.
- Conclusion 3.
- Conclusion 4.
Special Thanks
Tutors:
Fellow students: