โครงงาน ชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ
(
demonstration set control temperature and humidity in the air )
ชื่อนักศึกษา 1. นายทรงวุฒิ ถิระผะลิกะ รหัส 2561031341308
2. นายธนากร เสวกวัชรี รหัส 2561031341315
3. นายณัฐพงษ์ ดีทอง รหัส 2561031341356
เนื่องจากประเทศไทยตั้งอยู่ในเขตภูมิอากาศที่มีอากาศร้อนชื้นเกือบทั้งปี
การใช้เครื่องปรับอากาศเพื่อควบคุมอุณหภูมิและความชื้นให้ได้ตามที่ต้องการจึงได้รับนิยมกันมาก
แต่เครื่องปรับอากาศเป็นเครื่องจักรกลที่ใช้พลังงานไฟฟ้าค่อนข้างสูง ผู้ใช้จึงต้องตระหนักถึงค่าใช้จ่ายไฟฟ้าที่มากขึ้นและถ้าเราต้องการควบคุมอุณหภูมิและความชื้นในห้องที่เปิดเครื่องปรับอากาศทิ้งไว้อยู่ตลอดเวลา
จะเป็นการสิ้นเปลืองพลังงานค่อนข้างมาก
ชุดสาธิตการควบคุมอุณหภูมิและความชื้นโดยการให้ความเย็นจากเทอร์โมอิเล็กทริก
ความร้อนจากฮีทเตอร์ ความชื้นจากน้ำและการระบายความชื้นด้วยพัดลมดูดอากาศ
สามารถนำมาสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นอัตโนมัติได้
แทนการใช้เครื่องปรับอากาศในการควบคุม เพื่อช่วยประหยัดพลังงานไฟฟ้าและลดค่าใช้จ่ายที่สูงให้ต่ำลงได้
ดังนั้นทางผู้วิจัยจึงได้ทำการคิดค้น
ออกแบบ และสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นอัตโนมัติโดยการใช้ไมโครคอนโทรลเลอร์
เซนเซอร์ ฮีทเตอร์ ปั๊มหมอก พัดลม
เพื่อควบคุมค่าอุณหภูมิและค่าความชื้น หากค่าอุณหภูมิต่ำกว่าที่ค่าที่กำหนดไว้ฮีตเตอร์จะทำงาน
หากค่าอุณหภูมิสูงกว่าค่าที่กำหนดไว้เทอร์โมอิเล็กทริกจะทำงาน
ในขณเดียวกันหากค่าความชื้นต่ำกว่าค่าที่กำนดไว้ปั๊มพ่นละอองหมอกจะทำงาน
และหากค่าความชื้นสูงกว่าค่าที่กำหนดไว้พัดลมระบายอากาศจะทำงานเพื่อระบายความชื้นออก
รูปที่
1
วงจรการทำงาน ( Schenmatic )
Arduino
UNO R3
|
LCD ( I2C
)
|
GND
|
GND ( Pin1
)
|
+5VDC
|
VCC ( Pin2
)
|
A4 ( SDA )
|
SDA ( Pin
3 Serial Data )
|
A5 ( SCL )
|
SCL ( Pin
4 Serial Clock )
|
รูปที่
2
แสดงการเชื่อมต่อ LCD 20x4 ( I2C )
ตัวอย่างโค้ดโปรแกรม
LCD
20x4 ( I2C )
#include
<Wire.h>
#include
<LiquidCrystal_I2C.h> //ประกาศ Library ของจอ I2C
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd (0x27, 20, 4);
void setup()
{
// initialize the LCD
lcd.begin();
// Print a message to the LCD.
lcd.print("Hello !!!"); //ฟังก์ชั่นในการกำหนดข้อความที่ต้องการแสดงผล
lcd.setCursor(0, 1); //ฟังก์ชั่นในการกำหนดตำแหน่ง Cursor
lcd.print("ThaiEasyElec");
}
void loop()
{
}
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd (0x27, 20, 4);
void setup()
{
// initialize the LCD
lcd.begin();
// Print a message to the LCD.
lcd.print("Hello !!!"); //ฟังก์ชั่นในการกำหนดข้อความที่ต้องการแสดงผล
lcd.setCursor(0, 1); //ฟังก์ชั่นในการกำหนดตำแหน่ง Cursor
lcd.print("ThaiEasyElec");
}
void loop()
{
}
รูปที่
3
แสดงการต่อวงจร DHT22 ( เซ็นเซอร์วัดอุณหภูมิและความชื้นในอากาศ
)
ตัวอย่างโค้ดโปรแกรม
DHT
( เซ็นเซอร์วัดอุณหภูมิและความชื้นในอากาศ )
#include
"DHT.h"
DHT
dht;
void setup()
{
Serial.begin(9600);
Serial.println();
Serial.println("Status\tHumidity
(%)\tTemperature (C)\t(F)");
dht.setup(2); // data pin 2
}
void loop()
{
delay(dht.getMinimumSamplingPeriod());
float humidity = dht.getHumidity(); //
ดึงค่าความชื้น
float temperature =
dht.getTemperature(); // ดึงค่าอุณหภูมิ
Serial.print(dht.getStatusString());
Serial.print("\t");
Serial.print(humidity, 1);
Serial.print("\t\t");
Serial.print(temperature, 1);
Serial.print("\t\t");
Serial.println(dht.toFahrenheit(temperature),
1);
}
รูปที่
4
แสดงการต่อวงจรรับสัญญาณอินพุตจากสวิตซ์
ตัวอย่างโค้ดโปรแกรม
รับสัญญาณอินพุตจากสวิตซ์
int
buttonPin2 = 2;
// the number of the pushbutton pin
int buttonPin3 = 3; // the number
of the pushbutton pin
int buttonPin4 = 4; // the number
of the pushbutton pin
int buttonPin5 = 5; // the number
of the pushbutton pin
int ledPin10 = 10; // the number of the LED pin
int ledPin11 = 11; // the number of the LED pin
int ledPin12 = 12; // the number of the LED pin
int ledPin13 = 13; // the number of the LED pin
// variables
will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED
pin as an output:
Serial.begin(9600);
pinMode(ledPin10,
OUTPUT);
pinMode(ledPin11,
OUTPUT);
pinMode(ledPin12,
OUTPUT);
pinMode(ledPin13,
OUTPUT);
// initialize the
pushbutton pin as an input:
pinMode(buttonPin2,
INPUT);
pinMode(buttonPin3,
INPUT);
pinMode(buttonPin4,
INPUT);
pinMode(buttonPin5,
INPUT);
}
void loop(){
// read the state of
the pushbutton value:
buttonState = digitalRead(buttonPin2);
buttonState = digitalRead(buttonPin3);
buttonState = digitalRead(buttonPin4);
buttonState = digitalRead(buttonPin5);
// check if the
pushbutton is pressed.
// if it is, the
buttonState is HIGH:
if (buttonState == HIGH) {
// turn LED on:
Serial.println("turn
LED on");
digitalWrite(ledPin10,
HIGH);
digitalWrite(ledPin11,
HIGH);
digitalWrite(ledPin12,
HIGH);
digitalWrite(ledPin13,
HIGH);
}
else {
// turn LED off:
Serial.println("turn
LED off");
digitalWrite(ledPin10,
LOW);
digitalWrite(ledPin11,
LOW);
digitalWrite(ledPin12,
LOW);
digitalWrite(ledPin13,
LOW);
}
}
รูปที่
5
แสดงการต่อวงจร Relay 4 Chanel
ตัวอย่างโค้ดโปรแกรม
Relay
int outPin = 12;
void setup()
{
pinMode(outPin,OUTPUT);
}
void loop()
{
digitalWrite(outPin,HIGH);
delay(10000);
digitalWrite(outPin,LOW);
delay(10000);
}
รูปที่ 6 แสดงโครงสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ
รูปที่ 7 แสดงโครงสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ
รูปที่
8
แสดงอุปกรณ์ภายในชุดควบคุม
รูปที่
9 แสดงอุปกรณ์ภายในชุดควบคุม
รูปที่
10
แสดงโครงสร้างโดยรวมของชุดควบคุม
ไม่มีความคิดเห็น:
แสดงความคิดเห็น