Green Building
Integration between Architecture design and Mechanical systems in sustainable Buildings.
Green Building
skyscrapers
Air conditioning loads
Benefits/Detriments of Shading Locations and Types
Shades Vertical Motorized Louver for Sun Shade
Buildings represent a large part of the energy, electricity, water, and materials consumption.
they account for 37% of global energy use and energy-related CO2 emissions,
Glass buildings, especially all-glass skyscrapers, contribute significantly to climate change due to their energy inefficiency. While these structures are visually appealing and allow abundant natural light, they also trap heat, necessitating increased use of air conditioning systems, which contribute to higher carbon emissions.
While the practices or technologies employed in green building are constantly evolving and may differ from region to region, fundamental principles persist from which the method is derived: siting and structure design efficiency, energy efficiency, water efficiency, materials efficiency, indoor environmental quality enhancement, operations and maintenance optimization and waste and toxics reduction.
The essence of green building is an optimization of one or more of these principles. Also, with the proper synergistic design, individual green building technologies may work together to produce a greater cumulative effect.
The essence of green building is an optimization of one or more of these principles. Also, with the proper synergistic design, individual green building technologies may work together to produce a greater cumulative effect.
On the aesthetic side of green architecture or sustainable design is the philosophy of designing a building that is in harmony with the natural features and resources surrounding the site. There are several key steps in designing sustainable buildings: specify 'green' building materials from local sources, reduce loads, optimize systems, and generate on-site renewable energy.
so this proposal will focus on reducing energy consumption and how to produce energy on-site in the same time.
As we know most loads in the building come from the Air conditioning system to control the temperature of the building.
So reducing the effect of sunshine will reduce the thermal load, in two ways used to reduce the effect of sunshine.
First Add a curtain from inside this is the cheap, fast, and easy way but it is effective for a short time because the curtain prevents the effect of radiation from sunshine but absorbs this energy and reflects it to rooms by convection .
The second way add a shaded device from outside that costs but is more effective in preventing sunshine effects.
Solar Orientation and Path
Solar orientation is the positioning of a site, building, or space in relation to cardinal directions and, more importantly, the sun’s path. Whether it’s your site, your home, or even a specific room in your home, everything has a specific orientation and relationship to the sun’s movement across the sky.
The azimuth angle is the horizontal angle measured from due south. The greatest angle would be on the horizon at sunrise/sunset.
The altitude is the vertical angle above the horizon. The highest angle would be due south at midday.
In Building Integrated Photovoltaics (BIPV), the PV modules serve the dual function of building skin-replacing conventional building envelope materials-and as a power generator.
BIPV is a part of the PV industry but also due to its possible usage as building products, it should also be seen as part of the "Green Building" movement.
Solar panels produce the most electricity when they are exposed to the most direct sunlight possible - the more photons, the better. Panels laid flat can achieve this, but tilting them towards the sun means the light hits the panels as close to perpendicular as possible.
The conclusion: The building would be covered with motorized shaded devices that are covered with photovoltaic cells that could absorb the most direct sunlight possible and produce energy for the building by tracking the sun's path with altitude and azimuth angles.
The Motorized shaded panels that reduce energy consumption, increase natural lighting inside buildings, generate energy with high efficiency with solar cells on it and improve human overall lives, which is directly related to SDGs 7 and 11.
There are 5 main software and 2 machines used:
1. Fusion 360: used to design the Greenhouse building and 3d printing parts and modified STL file form the internet.
2. Ultimaker cura: used to adjust and slice the design of hinges, horns, and arms before printing by 3D printer machine.
3. RD works: used to adjust the design of the Greenhouse building, adjust the power and speed of cut-speed cut, and scan before cutting by laser-cut machine.
Ultimaker cura
RD Works V8
4. Tinkercad: used to make a virtual circuit and simulate it before applying it to check if it is applicable or not and to make a wiring diagram for the circuit of the device.
5.Arduino IDE: to verify the code and upload it to Arduino
5. GRABCAD: to find the components to install it into the device.
Thinkercad
Arduino ide
GRAB CAD
There are 2 main machines used:
1. 3d printing machine (Prusa i3 MK2) to print a 3d parts
2. laser cutting machine (AlMalky ML149) to cut all wooden pieces.
Prusa i3 MK2
Laser cutting machine
There are 3 main Materials used:
1. 3d printing filament is PLA to print 3d parts (plastic parts.
2. Laser cutting Plywood 3 mm to cut all all wooden pieces.
3. PVC Roll as transparent material for lighting and acts as a window.
PLA filament
Plywood 3mm
PVC Roll
Fusion 360: used to design the shape of the device which consists of both pieces designed for laser cut and another pieces designed for 3D printing.
2. Apply the role no one of for each part by using create a new component. .
3. Design each part in the Fusion 360 sketch by using proper dimensions.
4. Take care of a fully defined sketch by using proper dimensions and constraints.
5. Extrude the overall sketch of the Base.
6.Apply the last three for all components until you have all the parts
7.I decided to use T Slot jointing technique for all components
Assembly Process and showing some techniques of movements
Assembly Videos
1 . Export laser cut parts by using the extension (save dxf for laser cutting) for all components.
2 . Export laser cut parts by using the extension (save dxf for laser cutting) with laser kerf 0.15mm.
3.Import all files to RDworks and arrange it with distance 1.5 to save material
parameters are:
infill density:10%
resolution: normal 0.20
supports or adhesions are used
took 3 hr 18mins-27g
parameters are:
infill density:10%
resolution: normal 0.30
supports or adhesions are used
took 1 hr 47 mins-14g 2.93m
4. by RD Works software. finally, save the file in rld format for cutting.
parameters :
Laser cut: speed 25, power 45.
Laser cut for speet cut (engraving) speed300, power 15.
Arduino Uno(1x)
LCD (16x2 with I2C module)(1x)
DHT11 Sensor (1x)
LDR (Light Dependent Resistor)
Potentiometers (2x)
Servo Motors (2x)
Switches (2x)
Breadboard and Jumper Wires(1x)
Wiring Diagram Circuits
1. LCD (I2C)
VCC → 5V on Arduino
GND → GND on Arduino
SDA → A4 on Arduino
SCL → A5 on Arduino
2. DHT11 Sensor
VCC → 5V on Arduino
GND → GND on Arduino
Data Pin → Digital Pin 2 on Arduino
3. LDR
VCC → 5V on Arduino
One A0 → A0 on Arduino
GND → GND on Arduino
4. Potentiometers
Potentiometer 1:
Left Pin → GND on Arduino
Right Pin → 5V on Arduino
Middle Pin → A1 on Arduino
Potentiometer 2:
Left Pin → GND on Arduino
Right Pin → 5V on Arduino
Middle Pin → A2 on Arduino
5. Servo Motors
Servo 1:
Signal Wire (Yellow/Orange) → Digital Pin 9 on Arduino
VCC (Red) → 5V on Arduino
GND (Brown/Black) → GND on Arduino
Servo 2:
Signal Wire (Yellow/Orange) → Digital Pin 10 on Arduino
VCC (Red) → 5V on Arduino
GND (Brown/Black) → GND on Arduino
6. Switches
Mode Switch (modepin):
VCC (Red) → 5V on Arduino
Mid leg → Digital Pin 4 on Arduino
Other leg → GND on Arduino
Power Switch (powerpin):
VCC (Red) → 5V on Arduino
Mid leg → Digital Pin 7 on Arduino
Other leg → GND on Arduino (with a 10kΩ pull-down resistor)
Smart system integration:
Power Source: Supplies power to the Arduino and all components.
Arduino: Collects sensor data, reads switch states, and sends commands to the servos and LCD.
LCD: Displays feedback from the Arduino.
Sensors (DHT11 and LDR): Provide environmental data to the Arduino.
Servos: Move based on commands from the Arduino.
Potentiometer: Provides manual input for servo positioning.
The References That Helped Me to Finalize My Code
The References for Servo motor code from EOWeek Session Exercise week 6
The References for LCD code from EOweek Self-Practice videos week 7
The References for LDR and DHT e from EOweek Self-Practice videos (smart home ) week 7
The References for swich mode control the EOWeek Session Exercise week 6
Power Supply:
I am not sure the Arduino's 5V pin can supply enough current for all components (especially the servos). So I use an external power supply for the servos.
I used an external power source (5V, 2A) to power all components.
I used 9V adaptor to power the Arduino.
How the Code Works:
*Automatic Mode:
- Reads temperature, humidity, and light level.
- Adjusts the servos based on these readings (e.g., opens or closes panels).
-LCD displays the Temperature, light intensity, and the panels status
*Manual Mode:
- Uses the potentiometer to directly adjust the servo position.
*Power Off:
- If there’s no power, the LCD displays "NO POWER" and the system does nothing.
Programming the Code
For the code, I used text-based coding. I followed the 'step by step' method, working incrementally to ensure each part of both code and components functioned correctly.
At first, after testing each component, I made in the week 7 assignment a test of code in one servo, potentiometer, and LDR sensor separate codes for each Manual mode and automatic mode. then I added a DHT sensor and another servo. so it can work now together.
//switches
#define modepin 4
#define powerpin 7
// LCD
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// DHT
#include "DHT.h"
#define DHTPIN 2 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#define Initial 10
// LDR
int ldrPin = A0; // Pin connected to LDR
// Servos
#include <Servo.h>
Servo myservo1; // create Servo object to control a servo
Servo myservo2;
int val1; // variable to read the value from the analog pin A1
int val2; // variable to read the value from the analog pin A2
//potentiometer
int potpin1 = A1; // analog pin used to connect the potentiometer
int potpin2 = A2; // analog pin used to connect the potentiometer
void setup() {
Serial.begin(9600);
//switches
pinMode(potpin1, INPUT);
pinMode(potpin2, INPUT);
pinMode(modepin, INPUT_PULLUP);
pinMode(powerpin, INPUT_PULLUP);
//servos
myservo1.attach(9); // attaches the servo on pin 9 to the Servo object
myservo2.attach(10); // attaches the servo on pin 10 to the Servo object
myservo1.write(Initial); // initial position for servo
myservo2.write(Initial); // initial position for servo
//LCD
lcd.begin(16, 2);
lcd.backlight();
// DHT Sensor
Serial.println(F("DHT11 test!"));
dht.begin();
}
void loop() {
int switchstate = digitalRead(modepin); // Read the state of the Mode pin (Auto / Manual)
int powerstate = digitalRead(powerpin); // Read the state of the Power pin (ON / OFF)
//powering switch
if (powerstate == HIGH) { //HAVE POWER
// Automatic mode ON
if (switchstate == HIGH) {
// LDR (Light Intensity)
int ldrValue = analogRead(ldrPin);
float lightLevel = map(ldrValue, 0, 1023, 100, 0); // Convert to a percentage
// DHT (Temperature and Humidity)
float temperature = dht.readTemperature(); // Celsius
float humidity = dht.readHumidity(); // Percentage
if (isnan(temperature) || isnan(humidity)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
// Clear the LCD and display temperature and light level
lcd.clear(); // Clear the LCD screen
lcd.setCursor(0, 0); // Set cursor to the first row
lcd.print("T:");
lcd.print(temperature);
lcd.print("C L:");
lcd.print(lightLevel);
lcd.print("%");
// Determine the status and control the servos accordingly
String status;
if (lightLevel < 100) {
myservo1.write(45); // Fully tracking the servos
delay(5000); // Wait for 5000 milliseconds (5 seconds)
myservo2.write(80);
delay(1000);
myservo2.write(90);
delay(1000);
myservo2.write(110);
delay(1000);
myservo2.write(80);
delay(2000);
myservo1.write(30); // Fully tracking the servos
delay(5000); // Wait for 5000 milliseconds (5 seconds)
myservo2.write(80);
delay(1000);
myservo2.write(90);
delay(1000);
myservo2.write(110);
delay(1000);
myservo2.write(80);
delay(2000);
myservo1.write(15); // Fully tracking the servos
delay(5000); // Wait for 5000 milliseconds (5 seconds)
myservo2.write(80);
delay(1000);
myservo2.write(90);
delay(1000);
myservo2.write(110);
delay(1000);
myservo2.write(80);
delay(2000);
status = "Fully Tracking";
} else if (lightLevel > 250 && temperature > 20 && humidity > 20) {
myservo1.write(20); // Half-close the servos
myservo2.write(80);
delay(3000);
myservo2.write(100);
delay(3000);
status = "Swing Shade";
} else if (lightLevel < 500 && lightLevel > 300 && temperature > 20 && humidity > 20) {
myservo1.write(20); // Open the servos
myservo2.write(90);
status = "Close Shade";
} else if (lightLevel > 600 && temperature > 30 && humidity > 60) {
myservo1.write(20); // Open the servos
myservo2.write(85);
status = "Partial Close Shade";
} else {
myservo1.write(Initial); // Set servos to initial position
myservo2.write(Initial);
status = "Idle";
}
// LCD display
int padding = (16 - status.length()) / 2; // Calculate leading spaces to center the text
lcd.setCursor(padding, 1); // Set cursor with leading spaces
lcd.print(status); // Display centered status
delay(1500); // Delay for 1.5 seconds
} else if (switchstate == LOW) {
val1 = analogRead(potpin1); // Reads the value of the potentiometer (0 to 1023)
val1 = map(val1, 0, 1023, 20, 45); // Scales it for use with the servo (20 to 45)
val2 = analogRead(potpin2); // Reads the value of the potentiometer (0 to 1023)
val2 = map(val2, 0, 1023, 80, 110); // Scales it for use with the servo (80 to 110)
// Write the scaled value to the servos
myservo1.write(val1);
myservo2.write(val2);
delay(15); // Wait for the servo to reach the position
// LCD display
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Pos V: ");
lcd.print(val1); // Print the current position on the LCD
lcd.print("Pos H: ");
lcd.print(val2); // Print the current position on the LCD
// Serial print for debugging
Serial.print("Servo Position: ");
Serial.println(val1);
Serial.println(val2);
}
} else { //NO POWER
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("NO POWER");
delay(1000);
}
}
The project integration is done across many steps:
joint the sides together by brackets and t-slots
attach the upper and lower base to sides by t-slots and brackets
fix the Arduino, and breadboard to the special zone to can control and maintain without removing the sides of the Mustafa Green Building
integrate the potentiometer, switches, and LCD in their places before building the Mustafa Green Building.
add the sides of the Mustafa Green Building to the upper base and joint them with brackets and T-slots.
connect the circuit wires together and attach them to Arduino pins.
add the side face that include LCD and switches and fix it with screws and nuts.
test the device functionality before adding the upper face then after full integration test it again.
ٍShow case Video
Functionality test Video
I asked help from my instructor Hala about the features I want to add it and my ability to achieve in period diploma, she told me to minimize the features in the first milestone to essential features because I will deal with many problems in the first project, and after you finish the first challenge you can add others, and she was right because when I design and think in the project, and I didn't take care about some consideration, she did it depends on her experience and challenge she faced on her journey to build her advice for us. So I want to express my appreciation for her efforts and cooperation with us during the diploma period and all the team of san3a Academy.
I faced many challenges in all steps from design, fabrication and in assembly, and also faced many problems in components.
so I will explain it following points with pictures.
in design depends on complex parts that move on each other so any losses or mistakes, the parts will not do the function.
in the beginning, I searched for a special joint to make a vertical swing and horizontal swing for shade I didn't find so I tried to design it and make a test print for these parts before I printed all parts .
until I reach to final product .
ع
In fabrication becaue the bending and curvature in the wood. Many parts were not cut, so I cut the parts that were not cut using a cutter and a steel ruler.
I contacted my instructor Hala for help because I was really puzzled about power management, and she readily suggested that I use two adapters: one for the Arduino and one for the servos.
Since I didn't have a step-down converter and couldn't complete the project with just one adaptor, it helped me resolve my inter-problems.
I also spent a lot of time searching for examples on Google because I faced a problem with the code of the program.
In last I faced a problem with the Servo motors because it not work and has a problem so I replaced them with new ones and replaced one of the servos with a big one with 13 kg Torque instead of 3 kg . to carry the shade in the vertical motion and fixed it with zip tie and holes instead to screw because to fix it with a screw I need to print a big servo Base.
1.I would like to change the design of some joints of the device to fit the presence of the servo motor and to fabricate and fix shade within each side such that the device motion will be more realistic.
2. I would like to add system shade to the roof and control it with new system using a stepper motor instead to a servo motor
3. If there is more time for extra features, I could make a mobile application to be connected to the device such that I can control any input features in no time, and also start the device using input by GUI.