วันศุกร์ที่ 18 ธันวาคม พ.ศ. 2558

โครงงาน ชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ

( 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() 
{
}

รูปที่ 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);
}


รูปที่ แสดงโครงสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ


รูปที่ แสดงโครงสร้างชุดสาธิตการควบคุมอุณหภูมิและความชื้นในอากาศ


รูปที่ 8 แสดงอุปกรณ์ภายในชุดควบคุม


รูปที่ 9 แสดงอุปกรณ์ภายในชุดควบคุม


รูปที่ 10 แสดงโครงสร้างโดยรวมของชุดควบคุม




ไม่มีความคิดเห็น:

แสดงความคิดเห็น