วันอังคารที่ 18 กันยายน พ.ศ. 2561

โปรเจคที่17 เครื่องใช้ในบ้านอัตโนมัติที่ควบคุมด้วย Arduino

PC Controlled Home Automation using Arduino

องค์ประกอบที่จำเป็น

  1. Arduino UNO
  2. สายเคเบิลอนุกรม
  3. ULN2003
  4. รีเลย์ 5 โวลต์
  5. หลอดไฟพร้อมที่ใส่
  6. สายเชื่อมต่อ
  7. คณะกรรมการขนมปัง
  8. จอ LCD ขนาด 16x2
  9. แล็ปท็อป
  10. แหล่งจ่ายไฟ
  11. PVT

  12. ถ่ายทอด
    เราจำเป็นต้องมีรีเลย์เพื่อเชื่อมต่อวงจรกับเครื่องใช้ไฟฟ้าแรงสูงเช่นหลอดไฟทีวีพัดลม ฯลฯ รีเลย์เป็นสวิทช์ชนิดหนึ่งที่ใช้สำหรับการเชื่อมต่อทางไฟฟ้ากับไฟฟ้า รีเลย์มีขดลวดและแกนสวิทช์บางตัว มีรีเลย์ประเภทต่างๆเช่น:
    1. Single Single Single Single (SPST)
    2. เสาเดี่ยวคู่ผ่าน (SPDT)
    3. Single Double Pole Single (DPST)
    4. Double Pole Double Through (DPDT)
    ถ่ายทอด
    ที่นี่เราได้ใช้ขั้วเดียวผ่าน (SPDT) relay รีเลย์ SPDT มีหมุดห้าตัวซึ่งมี 2 พินสำหรับขดลวดและหนึ่งขั้วและอีก 2 ขั้วคือ "Normally Connected" (NC) และ "Normally Open" (NO)

    คำอธิบายโค้ด

    ประการแรกเรามีไลบรารีสำหรับการแสดงผลคริสตัลเหลวและเราจะกำหนดข้อมูลและหมุดควบคุมสำหรับ LCD และเครื่องใช้ภายในบ้าน
    จอแอลซีดี
    หลังจากที่มีการเริ่มต้นการสื่อสารแบบอนุกรมที่ 9600 บิตต่อวินาทีและให้ทิศทางการใช้ขา
    ในนั้น
    สำหรับการรับข้อมูลเป็นลำดับเราใช้ฟังก์ชันสองอย่างคือ Serial.available ซึ่งจะตรวจสอบข้อมูลอนุกรมใด ๆ ที่มาหรือไม่และข้อมูล Serial จะอ่านซึ่งอ่านข้อมูลที่มาพร้อมกัน
    อนุกรม
    หลังจากที่ได้รับข้อมูลเป็นชุดแล้วเราจะเก็บข้อมูลไว้เป็นสตริงจากนั้นรอ Enter
    การเก็บรักษา
    เมื่อป้อนถูกกดโปรแกรมจะเริ่มเปรียบเทียบสตริงที่ได้รับกับสตริงที่กำหนดไว้แล้วและหากสตริงที่ตรงกับนั้นการดำเนินการสัมพัทธ์จะดำเนินการโดยใช้คำสั่งที่เหมาะสมซึ่งมีอยู่ในโค้ด
    เปรียบเทียบสตริง
    สำหรับการใช้สตริงเปรียบเทียบเราได้ใช้ไลบรารีที่เป็น string.h ซึ่งมีคำหลักบางคำเช่น strcmp, strncmp, strcpy เป็นต้น
    รหัส
    #include <LiquidCrystal.h> 
    #include < 
    string.h LiquidCrystal lcd (13, 12, 11, 10, 9, 8);
    #define light 3 
    #define fan 4 
    #define TV 5
    ถ่าน temp; 
    char str [10]; 
    char i = 0;
    การตั้งค่าเป็นโมฆะ ()  

      lcd.begin (16, 2); 
      Serial.begin (9600); 
      pinMode (แสง OUTPUT); 
      pinMode (พัดลม, เอาท์พุท); 
      pinMode (TV, OUTPUT); 
      lcd.print ("Home Automation"); 
      lcd.setCursor (0,1); 
      lcd.print ("การใช้คอมพิวเตอร์"); 
      ล่าช้า (2000); 
      lcd.clear (); 
      lcd.print ("คำหลักสำหรับ"); 
      lcd.setCursor (0,1); 
      lcd.print ( "การควบคุม"); 
      ล่าช้า (2000); 
      lcd.clear (); 
      lcd.print ("1. เปิด"); 
      lcd.setCursor (0,1); 
      lcd.print ("2. แสงปิด"); 
      ล่าช้า (2000); 
      lcd.clear (); 
      lcd.print ("3 FAN ON"); 
      lcd.setCursor (0,
      lcd.print ("4 FAN OFF"); 
      ล่าช้า (2000); 
      lcd.clear (); 
      lcd.print ("5. TV ON"); 
      lcd.setCursor (0,1); 
      lcd.print ("6. TV OFF"); 
      ล่าช้า (2000); 
      ค่าเริ่มต้น (); 
      ล่าช้า (1000) 
    }
    void loop ()  

       ถ้า (temp == 1) 
       { 
        if ((strncmp (str, "FAN ON", 6)) == 0) 
        { 
         lcd.clear (); 
         digitalWrite (พัดลม, HIGH); 
         lcd.clear (); 
         lcd.print ("Fan Turned On"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
        else ถ้า (strncmp (str, "FAN OFF", 7) == 0) 
        { 
         digitalWrite (พัดลม, ต่ำ); 
         lcd.clear (); 
         lcd.print ("Fan OFF"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
        else ถ้า (strncmp (str, "LIGHT ON", 8) == 0) 
        { 
         digitalWrite (แสงสูง); 
         lcd.clear ();
         lcd.print ("เปิดใช้งาน"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
        else ถ้า (strncmp (str, "LIGHT OFF", 9) == 0) 
        { 
         digitalWrite (แสง, ต่ำ); 
         lcd.clear (); 
         lcd.print ("Light Turned OFF"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
         else if (strncmp (str, "TV ON", 5) == 0) 
        { 
         digitalWrite (ทีวีสูง); 
         lcd.clear (); 
         lcd.print ("TV Turn on"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
        else ถ้า (strncmp (str, "TV OFF", 6) == 0) 
        { 
         digitalWrite (TV, LOW); 
         lcd.clear ();
         lcd.print ("TV Turned OFF"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
        } 
        
        else  
        { 
         lcd.clear (); 
         lcd.print ("อินพุตไม่ถูกต้อง"); 
         lcd.setCursor (0,1); 
         lcd.print ("ลองอีกครั้ง"); 
         ล่าช้า (3000); 
         ค่าเริ่มต้น (); 
         } 
       } 

    โมฆะ serialEvent () 

       while (Serial.available ()) 
        { 
         char Inchar = Serial.read (); 
         STR [ผม] = Inchar; 
         i ++; 
         lcd.print (Inchar); 
         ล่าช้า (50); 
         if (Inchar == 0x0d) 
         { 
          temp = 1; 
          // Inchar = 0; 
         }
        } 
    }
    void defualt () 

      lcd.clear (); 
       lcd.print ("Enter UR Choise:"); 
       lcd.setCursor (0,1); 
       lcd.cursor (); 
       i = 0; 
       อุณหภูมิ = 0; 
    }
    วีดีโอ

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

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