Course:VANT151/2022/Capstone/APSC/Team5

From UBC Wiki

Home

Team 5 Project: Energy Recovery Clothes Dryer

Welcome to Team 5's Wiki page of EneRec Dryer Project. The project is a part of UBC Vantage College course VANT 151 (2021-2022), which is directed by Dr. Ernest Goh. This Wiki Page aims to report team 5's progression of the clothes dryer design and our final product.

Thanks for all the group members and their contributions to this project.

Project Overview

Problem Statements

The issue of the dryers designing is that the current dryers have huge energy consumption by heating the air for a long time but using the hot air once only.

Objectives

Objectives of this project are:

  • Higher efficiency of the drying process.
  • Lower energy loss during the drying process.
  • Efficient energy recovery.
  • User friendly.
  • Sustainable drying process.

Functions

Basic functions of the clothes dryer are listed below:

  • Five buttons are used to control the panel. User can use them to select the option in the interface.
  • User can choose the time and temperature they want.
  • The LCD can show the remaining time when the dryer is working.
  • User can select pause to let the dryer stop working.

Constrains

Necessary requirements for this project that must be satisfied:

  • Size limitation of 250 x 220 x 300 mm with at least 0.5 L capacity.
  • Ability of drying a cotton handkerchief with 15 x 15 cm size in 1 hour.
  • Maximum allowable electrical power consumption of 24 V AC, 40 VA.
  • Useable automatic operating mode.
  • Desired setting of drying time, temperature and dryness.
  • 8 Weeks for the entire design.

Working Distribution

Team 5 has 10 members and divided into 5 sub-teams. The following part aims to show the working assignment of each sub-teams.

  • Documentation: Gantt chart, website, slides, render, sustainability.
  • Electrical: Motor & fan, heater, sensor, EE program.
  • Mechanical (& Thermal): Drum drive, 3DP parts, sensor mount, heat exchanger, seals/insulation.
  • Structural: Enclosure, openings/holes, door & latch, tray.
  • User-Interface: operating program, UI program, LCD, input hardware.

Gantt Chart

Table 1 below shows the schedule of all the sub-teams' tasks and their beginning and ending dates.

Table 1 Team 5 Gantt chart

User-interface Design

Requirements

The user-interface subteam works on the operation of the program, user-interface interaction, LCD and button connections.

The operation of the EnerRec Dryer includes selecting the drying mode and drying time.

The user-interface program receives input from the buttons and displays output on the LCD screen.

Objectives

The objective of user-interface subteam is designing a program that allows users to control the operation of the dryer. The elements of the interface includes LCD, five buttons, etc.. Users can see the remaining time of drying on the LCD, and they are able to use use the buttons to select the options in the interface, choose the time and temperature they want, and pause the dryer.

Functions

The user-interface allows users to choose the drying time and drying mode with the buttons, and the LCD screen allows an easier way for users to read the information of the dryer and displays functions in a user-friendly way.

Constraints

1.There is at most 5 buttons available.

2.The size of the LCD screen is 20x4, it can not show long characters.

3.The drying temperature is constrained by the heater.

Limitations

1.The menu page can not show the all three modes (normal, heavy duty, delicates) at the same page.

2. Users can not choose the drying time and temperature, which are defined in the modes.

3. Users can not pause during the drying process.

The Design

  • LCD screen Demo

    LCD screen Demo

Hardware Layout

Button layout.png
1.Buttons

For the button layout, initially we chose to use five buttons for the fully control of the mode, time and temperature. The middle button for "OK", and the surrounding buttons each for "Up", "Down", "Left" and "Right". After coding and brainstorming other page layouts, we found that we could simplify the buttons and use only three of them: Left, Right, OK.

The second design has some advantages compared to the initial one:

  • The wire connection is simplified
  • The control of the dryer becomes easier for users
  • The programming of the codes becomes much easier

However, there are also some drawbacks:

  • Users can not view the whole options on the same page
  • There are less options in modes
2. Main Menu Page

There are four options on the main menu page:

  • Normal
  • Heavy Duty
  • Delicates
  • Return

Normal Mode has the preset of 55 degrees Celsius and 41 minutes dry time. We referred to LG's dryer while setting the drying time.

Heavy Duty has the preset of 60 degrees Celsius and 54 minutes dry time.

Delicates has the preset of 50 degrees Celsius and 28 minutes dry time.

Drying Time of LG

Program Flowchart

Flowchart of Dryer.png

Mechanical Design

Requirements

The mechanical sub-team is supposed to generate, design, and create the mechanical components of the Dryer Machine, following the guidelines and the constraints.

The group is responsible for designing and creating a drum drive, some 3D printing components including mount and support for sensor and motor, computer-aided designs for electrical parts and a heat exchanger.

Objectives

  • Maximize the effectiveness of the mechanical parts.
  • Minimize the possibility of problems.
  • Make the solution of the problems as convenient as possible.

Functions

  • The fan and the heat exchanger must work smoothly when drying cloth.
  • The mechanic system can affect the storage and make the cloth inside dry faster.

Constraints

  • Minimum capacity of 0.5L, able to dry a cotton handkerchief, size 15 x 15 cm (± 3 cm) within 1 hour.
  • Components must be in side of the structure of the dryer, which cannot exceeding 250 x 220 x 300 mm.
Figure 1

Drum Drive Mechanism Design Alternatives

Drum drier is mainly compose of drum itself and a motor that drives it. The function of drum is to storage the laundry that need to be dried. The motor provides power for the rotation of the drum. In addition, a complete drive system is required to connect the motor and the drum. The figure 1 shows the design idea of thermal cycle and the belt drive systems. Figure 2 shows the design of motor support and figure 3 is the feasible idea that let sensor mount in the drum.

Figure 2

Evaluation

Idea Disadvantages Advantages
1
  • Large energy loss if the belt slips
  • High effeciency
2
  • Still need professional engineer to repair
  • Easy to repair
3
  • When the temperature in drum is too high or the rotate speed of it is too fast, the belt may break
  • Belt drive is more robust and durable
Figure 3


The table shows the advantages of belt drives over gear drives. It is more durable, easier to maintain, and has less mechanical energy loss. Although the energy loss of the belt cannot be completely avoided, and it is impossible to repair it without a professional, it has already improved compare with gear drive system. In addition, the belt drive is lower in noise than the gear drive in actual use. This factor is also why we chose it.This is the reason why we choose belt drive system in the end.

Basic Features

Figure 4

Components

  1. Drum drive comoponents
  2. Motor Support
  3. Pulley
  4. Sensor Mount
  5. 3D Printing Parts

1.Drum drive comoponents

The dryer adopts belt drive system to provide power for the rotation of the drum. As shown in Figure 1, in this system, a large pulley is connected to the drum, the small pulley is connected to the motor, and the belt is wound in the middle of the groove of the pulley. The two pulleys will maintain a certain distance to avoid friction between the pulleys. At the same time, increasing the tension of the belt in this system make the operation noise less and the service life longer.

2.Motor Support

Figure5

The function of the motor bracket is to fix the motor and ensure the stability of the transmission system. It is a 3D printed three-dimensional tripod and the motor is fixed by the screw brackets on both sides. The advantage of this design is that the motor height can be adjusted freely and the stability of the tripod is better. In addition, the hollow tripod saves material and printing time.

3.Pulley

The two rollers are designed with corresponding grooves according to the width of the belt. The purpose is to ensure the stability of the belt drive. The two rollers are one large and one small, in order to save space and exert the kinetic energy of the motor more efficiently.

Figure 6

4.Sensor Mount

To prevent danger, the sensor mount is placed inside the drum. The placement of the sensor mount is designed at the lower left of the drum panel. This has two main advantages. On the one hand, make the sensor mount cable close to the circuit board to facilitate circuit layout. On the one hand, the sensor position is relatively far away from the thermal circulation system to measure the humidity and heat in the barrel more accurately.

5.3D Printing Parts

The drum panel, rollers, motor bracket and heat exchange system housing in this dryer are all 3D printed parts.

Electrical Design

Overview of the electrical and electronic sub-system

The Electronics and Electrical Team (EE Team) is responsible for all electronic circuits including but not limited to motors, fans, heaters, power supplies and sensors. It also manages the Ene Rec system in automatic and manual modes of the program. This connection can be seen in Figure 7.

Figure 7: whole circuit system

Main component list

Table 2. Component list of the dryer

Component Specification
Motor Hobby Gearmotor, Yellow 200 RPM, 3-6VDC
Fan 12 VDC motor
Heater 33 Ohms 7W resistor  
Temperature and Humidity Sensor DHT11, 5V
Microcontroller Arduino Uno R3 ATMEGA328

Requirements

Functions

  • The circuit can provide enough power and enough heat to dry clothes.
  • Includes automatic mode for drying laundry.
  • Change the temperature inside the drum according to user settings.
  • Use the motor to continuously rotate the drum in different directions.
  • Track temperature and humidity inside the dryer with the sensor.
  • Use the motor to continuously rotate the drum in different directions.
  • Set manual mode according to drying time, temperature, and degree of drying.
  • The electronic circuit of the dryer must be safe for the user.
  • The motor, heater, and fan should be able to work at the same time.

The Design

Objectives

  • Make sure the circuit of the dryer should be safe and efficient.
  • Shorten drying time.
  • Make sure the clothes are not overheated to avoid damage to the clothes.
  • Ensure the design is cost-effective

Constraints

  • The maximum power voltage is 24AC and 40VA.
  • All parts need to go in the dryer and each part should operate simultaneously.

Power Supply

Arduino Uno needs about 9V for powering. The normal voltage is 12V. In order to drop the voltage from 12V to 9V, a voltage regulator and capacitors are needed. A bridge rectifier circuit can complete the conversion, as can be seen in Figure 8.

Figure 8: Power

Fan Circuit

The power of the fan circuit is a 9VDC. Fan circuit includes several parts: MOSFET (Q1), capacitor (C5, 0.1 u, > 50V), fan, resistor (R2, 10k),and diode (D1, 1A, 50ns). This fan circuit keeps the fan under 50%duty cycle.

The fan circuit schematic is in Figure 9.

Figure 9: Fan circuit

Drum Motor Circuit

The drum motor using +5V voltage. The Drum Motor circuit includes: resistor (R3), diode (D1), Drum motor, capacitor (C6, C10), and MOSFET (Q1). MOSFET enables the motor to start slowly. Motor will be first started and lest ended. The motor circuit schematic of the drum motor is in figure 10.

Figure 10: motor circuit

Heater Circuit

The heater uses 12V voltage supplied from breadboard. The Heater circuit contains: heater, capacitor (C7:10n), resistor (R1:10k, R6: 39, R7: 270, R8:150), LED2, and Triac (T1: 4A, 600V). Heater will be last started and ended first. Air will flow from fan below to heater. The circuit schematic of the heater can be seen in figure 11.

Figure 11: Heater Circuit

Temperature and Humidity Sensor

In the temperature control circuit, when the temperature rising reach the highest temperature of the sensor, the circuit cut of to stop heater working. Shown in Figure 12.

Figure 12: sensors

Structural Design

Requirements

The structure group is responsible for the structural assemble of the whole box, including the design of frame, door, latch, UI components and holes on the box. The housing includes all the designs mentioned above, and all the parts are combined to make a dryer.

Objectives

Our design goal is to make a dryer shell, including the door opening, water inlet pipe and some buttons for operation. At the same time, our design should also meet the ergonomic convenience.

  1. The cloth dryer is supposed to be used by all ages people.
  2. The opening door should be safe enough to be used.
  3. The function of the LCD screen and the buttons should be easy to be used by the user.

Functions

The functions of the S-sub team are designing the whole structure of the dryer

  1. The door should be prevent the clothes from getting out from the dryer.
  2. The LCD screen and buttons can be easily seen and used.
  3. The water collection tray is needed as collecting the water when the dryer is working.

Constraints

All parts and shells are limited by the size of materials. The shell will need to design an optimal scheme according to the size of materials provided. The size of components is determined according to the final shell size.

  1. The dryer is not easy to be carried.
  2. The dryer can't be too expensive
  3. The dryer can't operating with a very high temperature (because of the heat resistance of the material).
  4. The dryer need to have a bigger screen to give more instructions to the user about how to use the dryer (more guidance).

Design

Enclosure

In the front view, there is a door. The door is fixed on the front panel. There is a square hole in the middle of the panel. It is designed to be square because it can reduce the probability of clothes falling out of the drum to a certain extent. The side view shows the design of the side panel. In the lower right corner, there is a hole that can take out the water collection tray, so that the water collection tray can be taken out and poured out after it is full of water. In the view at the back, we use the iron plate as the construction material. There are holes on the iron plate for the heat dissipation pipe and nail holes for fixing the internal parts. The view at the top shows that the panel at the top has square openings for installing LCD screens, and there is also space for installing control panels for user operation. The positions of all holes and nails have been measured according to the installation method of internal parts, so as to ensure that there will be no installation failure during installation.

overview

File:Al Extrusions Frame.pdf

Al frame


Door

Our original intention in designing the door is that the door can completely cover the opening. As for the shape of the door, we have had several alternatives before, such as designing it into a square or a circle. Finally, we chose the square door. The first reason is that the square door can fit the design shape of the panel. The second reason is that the square door is designed to be more convenient to design the connection hole between the door and the panel. Therefore, the square door is better installed and more stable, and it is also more concise and beautiful in appearance. The size of the door is 150mm * 150 mm.

The front view

File:151 team5 door.pdf

Extra door design
Door design

Water Collection Tray Panel Design

We designed the size of the hole on the side panel to be 39mm * 29mm. This size well conforms to the size of the water collection tray made by the mechanical team. The design of this hole allows the collector to be placed and pulled out freely. At the same time, it can ensure that the collector will not fall off from the internal structure. This design not only ensures the stability, but also gives users the greatest degree of convenience.

The side view

User interface CAD

According to the LCD screen selected by u sub team and the control panel for users, we have made corresponding punching design on the top panel. The rectangle shown in the same figure is used to place the LCD screen, with a size of 87mm*42mm. Holes designed for buttons on the control board are also designed nearby. The control panel and LCD screen are designed at the top for the convenience of users. This design will be more convenient for users to operate and observe the display on the screen.

The top panel

File:Top Panel Rock.pdf

Draft Design
Top view

Final Product

The final product of our designed dryer is shown in the following pictures:

Overview:

overview

Front view:

The front view

Left view:

Left view

Right view:

Right view

Back view:

Back view

Bottom view:

Bottom view

Conclusion

Our final product is a dryer that can recycle heat repeatedly. The design of 6 copper tubes is used to condense the water and repeatedly transport the heat back into the system. Therefore, compared to the traditional way the dryer vents the excess heat, our designed dryer saves more energy. The 5 buttons are designed for easier humidity and temperature adjustment, allowing users to understand how to operate in a simple way. In addition, the small size dryer is more portable and space-saving. Therefore, the dryer we designed is a good choice.

Appendices

PDF Drawings

The figure 13 briefly shows the layout of the dryer. The flowchart of the program is also shown in below.

Figure 13
Figure 14. Arduino code

Arduino Code

#define heater 8

#define fan 9

#define motor 10

void setup() {

pinMode(8, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

}

void loop() {

for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {

analogWrite(fan, fadeValue);

delay(30);

}

for (int fadeValue = 0 ; fadeValue <= 255; fadeValue += 5) {

analogWrite(motor, fadeValue);

delay(30);

}

digitalWrite(heater, HIGH);

delay(5000);

digitalWrite(heater, LOW);

for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {

analogWrite(motor, fadeValue);

delay(30);

}

for (int fadeValue = 255 ; fadeValue >= 0; fadeValue -= 5) {

analogWrite(fan, fadeValue);

delay(30);

}

delay(5000);

}

UI Code

#include<LiquidCrystal.h>

#include<LiquidCrystal_I2C.h>

#include<OneWire.h>

#include<DallasTemperature.h>

#include<DHT.h>

#define DHTPIN 10

#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

const uint8_t PinLcdCLK_ui8c=A5;//CLK

const uint8_t PinLcdDAT_ui8c=A4;//DAT

LiquidCrystal_I2C lcd(0x27, 20,4);

//*********MODE**********MODE**********MODE************MODE********MODE*******MODE****

bool normalMode;

bool heavyDutyMode;

bool delicatesMode;

int count;

int startTime;

int currentTime;

long int timeDuration;

long int normalTime=2460000;

long int heavyDutyTime=3240000;

long int delicatesTime=1680000;

//*********HEATER**************FAN***************MOTOR**********SENSOR****************

const int fanPin=7;

const int heaterPin=8;

const int motorPin=9;

int tempThreshold;

const int tempThresholdN=55;//the temperature that the heater needs to reach

const int tempThresholdHD=60;

const int tempThresholdD=50;

float temperature;

float humidity;

OneWire oneWire(DHTPIN);         // setup a oneWire instance

DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library

//********BUTTON************BUTTON************BUTTON**********************************

const int bPinUp=2;

const int bPinDown=3;

const int bPinLeft=4;

const int bPinRight=5;

const int bPinOK=6;

//button pin numbers

int bStateUp=0;

int bStateDown=0;

int bStateLeft=0;

int bStateRight=0;

int bStateOK=0;

//button state

//*****SETUP**********SETUP***********SETUP***********SETUP*************************

void setup() {

  pinMode(PinLcdCLK_ui8c,OUTPUT);

  pinMode(PinLcdDAT_ui8c,OUTPUT);

  lcd.init();

  lcd.backlight();

  lcd.clear();

  lcd.begin(20,4);

  //init lcd using lcd.begin(numCols,numRows);

  Serial.begin(9600);

//*********HEATER**************FAN***************HEATER**********FAN****************

  pinMode(fanPin,OUTPUT);

  pinMode(heaterPin,OUTPUT);

  dht.begin();  


//*****BUTTON*********BUTTON**********BUTTON**********BUTTON************************  

pinMode(bPinUp,INPUT_PULLUP);

pinMode(bPinDown,INPUT_PULLUP);

pinMode(bPinLeft,INPUT_PULLUP);

pinMode(bPinRight,INPUT_PULLUP);

pinMode(bPinOK,INPUT_PULLUP);

  //initialize pushbutton pin as input

}

//*****LOOP************LOOP*************LOOP****************LOOP********************

void loop() {

  lcd.setCursor(0,0);

  //set the cursor to column 0, line 0

//******BUTTON**********BUTTON**********BUTTON**********BUTTON**********************

  bStateUp=digitalRead(bPinUp);

  bStateDown=digitalRead(bPinDown);

  bStateLeft=digitalRead(bPinLeft);

  bStateRight=digitalRead(bPinRight);

  bStateOK=digitalRead(bPinOK);

  WelcomePage();

}

//******FUNCTION*********FUNCTION***********FUNCTION***************FUNCTION********

void WelcomePage(){

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.println("Hello!Thank You for");

  lcd.println("Using Our Dryer!");

  lcd.setCursor(0,3);

  lcd.print("Press OK to continue");

  if(bStateOK==0){

  Normal();

  }

}

void EndPage(){

  lcd.clear();

  lcd.setCursor(0,1);

  lcd.println("Thank you for using");

  lcd.println("our clothes dryer");

}

void Normal(){

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("Time:41 minutes");

  lcd.setCursor(0,1);

  lcd.print("Medium temperature: 55 degrees Celcius");

  lcd.setCursor(0,2);

  lcd.print("Start:Press OK");

  lcd.setCursor(0,3);

  lcd.print("Press right to Heavy Duty");

  if(bStateOK==0){

    normalMode==true;

    Start();

  }else if(bStateRight==0){

    HeavyDuty();

  }

}

void HeavyDuty(){

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("Time:54 minutes");

  lcd.setCursor(0,1);

  lcd.print("High temperature: 60 degrees Celcius");

  lcd.setCursor(0,2);

  lcd.print("Start:Press OK");

  lcd.setCursor(0,3);

  lcd.print("Press right to Delicates");

  if(bStateOK==0){

    heavyDutyMode==true;

    Start();

  }else if(bStateRight==0){

    Delicates();

  }

}

void Delicates(){

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("Time:28 minutes");

  lcd.setCursor(0,1);

  lcd.print("Low temperature: 50 degrees Celcius");

  lcd.setCursor(0,2);

  lcd.print("Start:Press OK");

  lcd.setCursor(0,3);

  lcd.print("Press right to Normal");

  if(bStateOK==0){

    delicatesMode==true;

    Start();

  }else if(bStateRight==0){

    Normal();

  }

}

void Start(){

  lcd.clear();

  lcd.setCursor(0,0);

  if(normalMode==true){

  tempThreshold=tempThresholdN;

  timeDuration=normalTime;

  }else if(heavyDutyMode==true){

  tempThreshold=tempThresholdHD;

  timeDuration=heavyDutyTime;

  }else if(delicatesMode==true){

  tempThreshold=tempThresholdD;

  timeDuration=delicatesTime;

  }

  startTime=millis();

  for(count=timeDuration;count>=0;count-=millis()){

    currentTime=millis();

    count=(timeDuration-currentTime)/60000;

    lcd.print("Time: ");

    lcd.print(count);

    lcd.print("min");

    lcd.setCursor(0,1);

    lcd.print("Temperature: ");

    lcd.print(temperature);

    lcd.print("C");

    lcd.setCursor(0,2);

    lcd.print("Humidity:");

    lcd.print(humidity);

    temperature = dht.readTemperature();

    humidity=dht.readHumidity();

    if (isnan(humidity) || isnan(temperature)) {

    Serial.println(F("Failed to read from DHT sensor!"));

    return;

    }

    if(temperature > tempThreshold) {

    Serial.println("The heating element is turned off");

    digitalWrite(fanPin,HIGH);

    digitalWrite(heaterPin, LOW); // turn off

    digitalWrite(motorPin,LOW);

  } else if(temperature < tempThreshold){

    Serial.println("The heating element is turned on");

    digitalWrite(fanPin,LOW);

    digitalWrite(heaterPin, HIGH); // turn on

    digitalWrite(motorPin,HIGH);

  }

  }

  digitalWrite(fanPin,LOW);

  digitalWrite(heaterPin,LOW);

  digitalWrite(motorPin,LOW);

  EndPage();

}

Renderings and photo view 360

The following pictures shows the final result with renderings:

overview
The front view
The side view
Top view

References

The circuit:- gate of MOSFET attached from digital pin 9 to ground.

created 1 Nov 2008

by David A. Mellis

modified 30 Aug 2011

by Tom Igoe

modified 2019

by Ernest Gohre.

About us

Structure
Thompson Ma (Team Leader)

mhs2002@student.ubc.ca

from Xi'an, Shaanxi, China

Interest: basketball, NBA, Warriors, Polls
Thompson Ma
Wenyu Tang

twy0329@student.ubc.ca

Wuxi, Jiangsu, China

Interst: Novels
Wenyu Tang
Electrical
Tianhao Zhang

Zhang1207th@163.com

From China
Tianhao Zhang
Yiming Pan

panyiming0516@163.com

China
Yiming Pan
User-Interface
Allison Jiao

allis0n@student.ubc.ca

Nanjing, Jiangsu, China

Interest: Dortmund F.C.
Allison Jiao
Zhehao Liu

zhao618@student.ubc.ca

Wenzhou,Zhejiang,China

Interest:Movies
Zhehao Liu
Mechanical
Jingxuan Chen

ww66692@student.ubc.ca

Beijing, China

interest: bioengineering, history, political economy
Jingxuan Chen
Tianchen Yuan

yuantc20@student.ubc.ca

Jiangsu, Suzhou,China
Tianchen Yuan
Documentation
Wenxiang Ning

wxiang03@student.ubc.ca

Chinese, from Kunming, Yunnan, China.

Interest: Cat petting.
Wenxiang Ning
Jingwei Zhang

zjw2003@student.ubc.ca

Beijing, China
Jingwei Zhang
Jingwei Zhang