วันอาทิตย์ที่ 30 กันยายน พ.ศ. 2561

งานปรับแก้คะแนน



 Arduino Based Home Automation Project via Bluetooth





การทำงานอัตโนมัติของ Arduino Home Automation


 1. Hardware 
       1.1  Arduino UNO  R3    // เป็นบอร์ดประะมวลผล ( MCP )
      1.2  HC – 05 Bluetooth Module    //  เป็นบอร์ดโมดูล  Bluetooth   ( INPUT ) 
      1.3  Arduino Relay Module 5V 4 Channel High Trigger 250V/10A  // เป็นโมดู รีเลย์  ( OUTPUT)
      1.4  สมาร์ทโฟนหรือแท็บเล็ต (เปิดใช้งาน Bluetooth)    //  ( INPUT )


2. Software



#include <SoftwareSerial.h>         // การอ้างอิงชุดคำสั่งจากแหล่งอื่น

 const int rxPin = 4;      // ตัวแปลค่าคงที่ กำหนดขา tx=4
 const int txPin = 2;      // ตัวแปลค่าคงที่ กำหนดขา rx=2  

SoftwareSerial mySerial(rxPin, txPin);

const int Loads[] = {9, 10, 11, 12};  // ตัวแปลค่าคงที่ กำหนดขา Loads=9,10,11,12

int state = 0;          // กำหนดค่า state = 0
int flag = 0;           // กำหนดค่า flag  = 0

void setup()
{
   for (int i=0;i<4;i++)  //
    {
      pinMode(Loads[i], OUTPUT);    // กำหนดขาLoads[i] ให้เป็น OUTPUT
    }
   mySerial.begin(9600);
   for (int i=0;i<4;i++)
    {
      digitalWrite(Loads[i], LOW);     // กำหนดขาLoads[i] ให้เป็น LOW
    }
  
}

void loop()
{
   
    if(mySerial.available() > 0)
    {
      state = mySerial.read();  // อ่านค่าจาก state
      flag=0;       // กำหนด flag = 0
    }
   
    switch(state)  //คำสั่งสำหรับการสร้างเงื่อนไขแบบทำหลายทิศทาง 
    {
      case '0':digitalWrite(Loads[0], HIGH);    // เงื่อนไข 0 สถานะลอจิก Loads[0] เป็น  HIGH
               flag=1;                                             //  กำหนดให้ flag มีค่า  = 1
               break;                                              //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '1':digitalWrite(Loads[0], LOW);     // เงื่อนไข 1 สถานะลอจิก Loads[0] เป็น  LOW
               flag=1;                                             //  กำหนดให้ flag มีค่า  = 1
               break;                                              //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '2':digitalWrite(Loads[1], HIGH);    // เงื่อนไข 2 สถานะลอจิก Loads[1] เป็น  HIGH
               flag=1;                                             //  กำหนดให้ flag มีค่า  = 1
               break;                                              //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '3':digitalWrite(Loads[1], LOW);     // เงื่อนไข 3 สถานะลอจิก Loads[1] เป็น  LOW
               flag=1;                                             //  กำหนดให้ flag มีค่า  = 1
               break;                                               //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '4':digitalWrite(Loads[2], HIGH);     // เงื่อนไข 4 สถานะลอจิก Loads[2] เป็น  HIGH
               flag=1;                                              //  กำหนดให้ flag มีค่า  = 1
               break;                                               //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '5':digitalWrite(Loads[2], LOW);      // เงื่อนไข 5 สถานะลอจิก Loads[2] เป็น  LOW
               flag=1;                                              //  กำหนดให้ flag มีค่า  = 1
               break;                                               //  จบการทำงานชองร loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '6':digitalWrite(Loads[3], HIGH);     // เงื่อนไข 6 สถานะลอจิก Loads[3] เป็น  HIGH
               flag=1;                                              //  กำหนดให้ flag มีค่า  = 1
               break;                                                //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '7':digitalWrite(Loads[3], LOW);      // เงื่อนไข 7 สถานะลอจิก Loads[3] เป็น  LOW
               flag=1;                                              //  กำหนดให้ flag มีค่า  = 1
               break;                                               //  จบการทำงานชอง loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
      case '8':digitalWrite(Loads[0], LOW);      // เงื่อนไข 8 สถานะลอจิก Loads[0] เป็น  HIGH
               digitalWrite(Loads[1], LOW);         // เงื่อนไข 8 สถานะลอจิก Loads[1] เป็น  HIGH
               digitalWrite(Loads[2], LOW);         // เงื่อนไข 8 สถานะลอจิก Loads[2] เป็น  HIGH
               digitalWrite(Loads[3], LOW);         // เงื่อนไข 8 สถานะลอจิก Loads[3] เป็น  HIGH
               flag=1;                                             //  กำหนดให้ flag มีค่า  = 1
               break;                                              //  จบการทำงานชองร loop นี้ โดยไม่ทำคำสั่งอื่นต่อ
     }


}




Flowchart





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

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

Internet of Things (IoT)

Internet of Things หรือ IoT Internet of Things (IoT)  คือ การที่อุปกรณ์อิเล็กทรอนิกส์ต่างๆ สามารถเชื่อมโยงหรือส่งข้อมูลถึงกันได้ด้วยอิน...