ชุดจำลองการพัฒนาระบบปรับระดับความเเรงของอากาศตามจำนวนคน(Simulation set for developing a system for adjusting the strength of the air according to the number of people.)

ผู้เขียนบทความ : 067 นายนันทพัฒน์ แซ่เฮง COE#15

คณะวิศวกรรมศาสตร์ : สาขาวิศวกรรมคอมพิวเตอร์

วิชา : 04-513-201 การโปรเเกรมคอมพิวเตอร์ขั้นสูง 1/2566

1.ความเป็นมาและความสำคัญของปัญหา

เนื่องด้วยประเทศไทยตั้งอยู่ในเขตที่ร้อนมีแสงแดดที่ค่อนข้างมาก การจำเป็นในการใช้พัดลมระบายอากาศเป็นสิ่งสำคัญเป็นอย่างมาก แต่เดิมการใช้งานจะต้องเดินไปกดปุ่มเปิด-ปิด และระดับความแรงของพัดลมอาจไม่เป็นไม่ตามที่เราต้องการ ทำให้เสียเวลาที่จะเดินไปกดสวิตซ์ เปิด-ปิดหรือปรับระดับของพัดลม การทำงานให้มีการปรับระดับของพัดลมระบายอากาศถือเป็นเทคโนโลยีด้านสิ่งแวดล้อม เพื่อพัฒนาสภาพอากาศในห้องช่วยลดอุณหภูมิและกลิ่นอันไม่พึงประสงค์  โครงงานนี้เกิดจากแนวคิดที่ต้องการสั่งการและควบคุมพัดลมระบายอากาศได้อย่างสะดวกและรวดเร็ว จึงได้ประยุกต์เทคโนโลยีทางด้านควบคุมและทางด้านประมวลผล เพื่อใช้ใการสั่งการพัดลมระบายอากาศให้ทำงานโดยไม่ต้องเดินไปกดสวิตช์ ซึ่งโครงงานนี้จัดขึ้นเพื่อแก้ไขปัญหาในการปรับอากาศและให้พัดลมระบายอากาศได้มีการปรับระดับของพัดลมได้และพัฒนาการทำงานของพัดผมจากระบบmanualเป็นระบบอัตโนมัติ โดยจะผสมกับระบบmanualเข้าไปด้วย การทำงานของระบบอัตโนมัติให้พัดลมทำงานเองตามที่กำหนดไว้ และปิดอัตโนมัติเมื่อไม่มีค่าจากเซนเซอร์ และระบบmanual สามารถกดเปิด-ปิด ได้ตลอดเวลา

2.วัตถุประสงค์

 2.1เพื่อศึกษาระบบSenser ตรวจจับคนเข้า-ออก

 2.2เพื่อพัฒนาระบบพัดลมให้เป็นระบบอัติโนมัติ

 2.3เพื่อควบคุมการทำงานพัดลมอัติโนมัติ

3.ขอบเขต

พัดลมระบายอากาศ ทำงานอัติโนมัติด้วยเซนเซอร์Sharp Infrared โดย

-เมื่อเซนเซอร์ตรวจจับคนเข้าห้อง0-2 พัดลมจะไม่ทำงาน

-เมื่อเซนเซอร์ตรวจจับคนเข้าห้อง3คน พัดลมจะทำงานระดับ1

-เมื่อเซนเซอร์ตรวจจับคนเข้าห้อง5คน พัดลมจะทำงานระดับ2

4.ประโยชน์ที่คาดว่าจะได้รับ

4.1สามารถควบคุมพัดลมได้ ด้วย senser

4.2ช่วยลดกลิ่นไม่พึงประสงค์ภายในห้อง

4.3ช่วยให้อากาศถ่ายเทได้สะดวก

4.4ช่วยให้สะดวกสบายขึ้น

4.5ลดการใช้เเรงงานคน

4.6ช่วยอำนวยความสะดวก

4.7สามารถนำความรู้การเขียนโปรแกรมภาษา python ไปประยุกต์ใช้ได้จริง

4.8ได้ศึกษาเเละเข้าใจในการเขียนภาษาpython เพื่อให้พัดลมทำงานตามจำนวนคน

5.ความรู้ที่เกี่ยวข้อง

1.L298N Motor Driver Module โมดูลขับมอเตอร์ ควบคุมมอเตอร์ L298N เป็นโมดูลขับมอเตอร์ ใช้ชิฟ L298N สามารถขับมอเตอร์ได้ 2 ตัวแบบแยกอิสระ สามารถควบคุมความเร็วมอเตอร์ได้ ใช้ไฟ 5 โวลต์ สามารถรับไฟเข้า 7-35 โวลต์ได้ มีวงจรเรกูเลตในตัว ขับมอเตอร์กระแสสูงสุดได้ 2A (ควบคุมเเรงพัดลมเบา-เเรง)



2.ESP32 ถูกนำไปใช้งานในหลายรูปแบบ ตั้งแต่การทำ อุปกรณ์สมาร์ทโฮม จนถึงใช้งานในระดับอุตสาหกรรม จากความสามารถในการใช้งานร่วมกับเซ็นเซอร์ต่างๆ เช่น วัดอุณหภูมิและความชื้น วัดกระแสไฟฟ้า วัดระยะทางต่อกับ สวิทช์หรือรีเลย์เพื่อควบคุมการเปิดปิดการทำงานของอุปกรณ์ การส่งข้อมูลผ่าน wifi เข้า server การแจ้งเตือนผ่าน Line, email และอื่นๆอีกมากมาย (ตัวประมวลผล)


3.Sharp Infrared Sensor อุปกรณ์นี้ใช้ในการวัดระยะจากวัตถุ ที่อยู่ในทิศทางการวัด โดยใช้ Infrared เป็นสื่อในการวัด โดยให้สัญญาณวัดเป็นแบบ Analog และให้ค่าวัดตลอดเวลา โดยมีย่านวัดที่ 10 – 80 ซม. ใช้งานได้กับหุ่นยนต์ หรือ การประยุกต์ใช้การวัดระยะทางโดยไม่ต้องมีการสัมผัสจุดที่ต้องการวัดระยะ(ใช้ตรวจจับคนเข้า-ออก)

4.จอLcd จอแสดงผลผลึกเหลว (LCD) คือจอแสดงผลแบบแบนหรืออุปกรณ์ทางออปติคอื่นๆ ที่มีการมอดูเลตทางไฟฟ้าซึ่งใช้คุณสมบัติในการปรับเปลี่ยนแสงของผลึกเหลว ผลึกเหลวไม่สามารถเปล่งแสงได้ด้วยตนเอง แต่จะใช้ไฟส่องสว่างด้านหลังหรือตัวสะท้อนเพื่อสร้างภาพสีหรือภาพขาวดำ LCD (ใช้เเสดงค่าคนเข้า-ออก)

5.พัดลมระบายอากาศขนาดเล็ก 12V 2ตัว (เป็นตัวoutput)

6.เพาเวอร์ซัพพลาย หรือแหล่งจ่ายไฟ เป็นส่วนประกอบที่สำคัญส่วนหนึ่งทำหน้าที่แปลงสัญญาณ ไฟฟ้ากระแสสลับจากแหล่งกำเนิดให้เป็นไฟฟ้ากระแสตรงด้วยความต่างศักย์ที่เหมาะสมก่อนเข้าสู่คอมพิวเตอร์ โดยมีสายเชื่อมต่อไปยังอุปกรณ์ประกอบต่าง ๆ จะช่วยเสริมประสิทธิภาพการทำงานของคอมพิวเตอร์โดยรวม ให้มีความสมบูรณ์มากยิ่งขึ้น

7.การเขียนโปรแกรมเชิงวัตถุ ( Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลกเปลี่ยนข่าวสารเพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้องเพื่อให้ทำงานต่อไป

6.การดำเนินงาน

โดยในโครงงานนี้ได้ออกแบบพัดลมระบายอากาศปรับระดับตามคน โดยรับค่าจากตัวเซนเซอร์shap infrared 2 เพื่อสามารถตรวจจับคน และส่งค่าไปยังesp32 ที่เป็นตัวประมวลผลตามที่ได้โปรแกรมไว้ เมื่อตรงตามเงื่อนไขจะส่งค่าไปยังมอดูลขับมอเตอร์เบอร์L298N ซึ่งเป็นตัวขับมอเตอร์จำนวณ 2 ตัว และอีกอย่างนึงตัวสวิตซ์กดปุ่มเปิด-ปิด 1ตัว และแสดงผลบนจอ LCD

การทำงาน

การทำงานจะมีอยู่2ระบบ คือ ระบบอัติโนมัติ เเละ ระบบmanual

ระบบอัติโนมัติ

จะเป็นการควบคุมพัดลม โดยเงื่อนไขมีอยู่ว่า เมื่อมีคนเข้าห้อง>=3 พัดลมจะทำงานอัติโนมัติ เเละเมื่อมีคนเข้าห้อง>=5 ความเร็วของพัดลมจะเเรงขึ้น

ระบบmanual

จะเป็นการควบคุมการเปิด-ปิดของพัดลม เมื่อเราต้องการเปิด-ปิด ก็สามารถกดได้เลย ไม่ต้องรอให้ระบบอัติโนมัติทำงาน

การออกเเบบระบบ

การทำงานจะมีส่วนหลักๆอยู่4หลักคือ

  1. Input = sharp infrared
  2. Process = Node MCU ESP32
  3. Output = L298N Fan
  4. การเเสดงผลบนจอ LCD

6.1#include เพื่อรวมไลบรารี 

การประกาศสําหรับฟังก์ชันการทํางานของระบบ

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

6.2 โค้ดสำหรับการกำหนดขาสัญญาณต่างๆ การกำหนดขา input-output

class SmartfanController {
public:
  SmartfanController(int switchPin, int sensorPin1, int sensorPin2, int dirPin1, int dirPin2, int dirPin3, int dirPin4)
    : swPin(switchPin), sensorPin1(sensorPin1), sensorPin2(sensorPin2), dirPin1(dirPin1), dirPin2(dirPin2), dirPin3(dirPin3), dirPin4(dirPin4) {}

  void setup() {
    Serial.begin(115200);
    pinMode(swPin, INPUT);
    pinMode(sensorPin1, INPUT);
    pinMode(sensorPin2, INPUT);
    pinMode(dirPin1, OUTPUT);
    pinMode(dirPin2, OUTPUT);
    pinMode(dirPin3, OUTPUT);
    pinMode(dirPin4, OUTPUT);

    lcd.begin();
    lcd.backlight();
  }

6.3 โค้ดของตัวเซนเซอร์เเละเเสดงผลบนจอLCD การกำหนดเงื่อนไขของเซนเซอร์

void operate() {
    int valPin1 = digitalRead(sensorPin1);
    int valPin2 = digitalRead(sensorPin2);
    int SWe = digitalRead(swPin);

    if (SWe == 0) {
      if (valPin1 > valPin2) {
        peo = peo - 1;
        Serial.print("peo = ");
        Serial.println(peo);
        delay(600);
      }
      if (valPin1 < valPin2) {
        peo = peo + 1;
        Serial.print("peo = ");
        Serial.println(peo);
        delay(600);
      } else {
        Serial.print("peo = ");
        Serial.println(peo);
      }

6.4 โค้ดคำสั่งการทำงานของพัดลม เราสามารถปรับระดับได้ตามความต้องการ ค่าของพัดลมจะอยู่ที่20-255 ที่ใช้งานได้ ขึ้นอยู่กับการใช้งานของเรา

if (peo > 1) {
        setMotorSpeed(20);
      }
      if (peo > 2) {
        setMotorSpeed(255);
      } else {
        setMotorSpeed(0);
      }

6.5 โค้ดเงื่อนไขของสวิตซ์ การเเสดงของระบบmanual โค้ดเงื่อนไขของจอLCD

lcd.setCursor(2, 0);
      lcd.print("Member :");
      lcd.setCursor(11, 0);
      lcd.print(peo);
      lcd.setCursor(1, 1);
      lcd.print("Manual Systems");
    }

    if (SWe == 1) {
      setMotorSpeed(255);

      lcd.setCursor(2, 0);
      lcd.print("Member :");
      lcd.setCursor(11, 0);
      lcd.print(peo);
      lcd.setCursor(2, 1);
      lcd.print("Auto Systems");
    }

    lcd.clear();
  }

6.6โค้ดการกำหนดตัวเเปรของตัวที่ใช้งานของระบบ นอกจากนี้ private ยังมีประโยชน์ในการควบคุมการเข้าถึงและการปรับเปลี่ยนข้อมูลภายในคลาส, ซึ่งช่วยให้คลาสมีความเป็นอิสระและมีความปลอดภัยมากขึ้น int swPin ตัวแปรนี้เป็นการกําหนดพินที่เชื่อมต่อกับสวิตช์ (switch) int sensorPin1 และ int sensorPin2 ตัวแปรเหล่านี้เป็นการกําหนดพินที่เชื่อมต่อกับเซนเซอร์ 1 และเซนเซอร์ 2, int dirPin1 int dirPin2 int dirPin3 และ int dirPin4 ตัวแปรเหล่านี้เป็นการกําหนดพินที่เชื่อมต่อกับมอเตอร์หรืออุปกรณ์ที่ใช้ควบคุมทิศทาง (ทิศทาง)

private:
  int swPin;
  int sensorPin1;
  int sensorPin2;
  int dirPin1;
  int dirPin2;
  int dirPin3;
  int dirPin4;
  LiquidCrystal_I2C lcd{0x27, 16, 2}; // LCD instance
  int peo = 0;

  void setMotorSpeed(int speed) {
    analogWrite(dirPin1, speed);
    analogWrite(dirPin2, 0);
    analogWrite(dirPin3, speed);
    analogWrite(dirPin4, 0);
  }
};

// Create an instance of the SmartfanController class
SmartfanController myRobot(13, 26, 34, 4, 0, 2, 15);

void setup() {
  myRobot.setup();
}

void loop() {
  myRobot.operate();
}

7. ผลการดำเนินงาน

7.1ทดลองการรับค่าจากตัวเซนเซอร์  Sharp Infrared

7.2ทดลองการทำงานของพัดลมปรับระดับตามวัตถุ

7.3ทดลองระบบ Mamual

7.4 ผลการทดลอง

จากผลการทดลอง

1.ทดลองการตรวจจับของเซนเซอร์ตั้งเเต่0-2คน ทดลอง10ครั้ง ผลทดลองที่ได้10ครั้ง คิดเป็นร้อยละ 100 พบว่ากับการตรวจจับเซนเซอร์มีความถูกต้องเเละตรงตามเงื่อนไขที่กำหนดไว้

2. ทดลองการตรวจจับของเซนเซอร์ตั้งเเต่>=3คน ทดลอง10ครั้ง ผลทดลองที่ได้10ครั้ง คิดเป็นร้อยละ 100 พบว่ากับการตรวจจับเซนเซอร์มีความถูกต้องเเละตรงตามเงื่อนไขที่กำหนดไว้

3.ทดลองการตรวจจับของเซนเซอร์ตั้งเเต่>=5คน ทดลอง10ครั้ง ผลทดลองที่ได้10ครั้ง คิดเป็นร้อยละ 100 พบว่ากับการตรวจจับเซนเซอร์มีความถูกต้องเเละตรงตามเงื่อนไขที่กำหนดไว้

4.ทดลองระบบmamual ทดลอง10ครั้ง ผลทดลองที่ได้10ครั้ง คิดเป็นร้อยละ 100 พบว่าการเปิด-ปิดพัดลม มีความถูกต้องเเละตรงตามเงื่อนไข

8.สรุปผล

จากการทดลองระบบควบคุมความเร็วของพัดลม สรุปได้ว่า การรับค่าจากตัวเซนเซอร์Sharp Infrared, การเเสดงสถานะของพัดลม,การกดสวิตซ์เปิด-ปิด, การทำงานของตัวควบคุมมอเตอร์L298N,เเละการเเสดงผลออกทางหน้าจอLcd,อการทำงานของระบบมีการรับค่าจากตัวเซนเซอร์ที่ถูกต้องเพื่อทำตามเงื่อนไขที่กำหนดไว้ เเละเเสดงค่าเซนเซอร์เเละระบบที่ได้ ไปยังจอLcd ได้ตามที่กำหนดไว้ในเเผนการทำงาน ดังนั้นผู้จัดทำพบว่าการทดลองระบบควบคุมความเร็วของพัดลมโดยอัตโนมัติตามวัตถุ ช่วยให้ความสะดวกสบายมากขึ้นในชีวิตประจําวันโดยขจัดความไม่สะดวกในการเคลื่อนที่ไปรอบ ๆ เพื่อควบคุมตัวควบคุมพัดลม

9.อ้างอิง

[1] นายจักรกรินทร์ มงคลมาตย์.โครงงานพัดลลมอัตโนมัติปรับระดับตามอุณหภูมิ.2562. สืบค้นเมื่อวันที่ 19 ตุลาคม 2566

[2] S. Ragul, Yuvaraj. S. IoT based Smart Controller for Ceiling Fan.2023  7th International Conference on Trends in Electronics and Informatics (ICOEI),2023,8-13

doi: 10.1109/ICOEI56765.2023.10125708

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *