Monday, October 1, 2018

ส่วนประกอบArduino Based Home Automation Project via Bluetooth

How To Make Arduino Based Home Automation Project via Bluetooth?


Arduino Based Home Automation Circuit Diagram

Hardware INPUT/OUTPUT

    INPUT
1.HC – 05 Bluetooth Module
2.Smartphone or tablet (Bluetooth enabled)
 
    OUTPUT
1.LOAD


 Software

#include <SoftwareSerial.h>//เรียกใช้งาน

const int rxPin = 4;//ประกาศตัวแปล txPin มีค่าเป็น 2
const int txPin = 2;//ประกาศตัวแปล txPin มีค่าเป็น 2
SoftwareSerial mySerial(rxPin, txPin);//ฟังก์ชั่นของ SoftwareSeria

const int Loads[] = {9, 10, 11, 12};/ประกาศตัวแปล Loads มีค่า เป็น(9,10,11,12)

int state = 0;//ประกาศตัวแปล start มีค่าเป็น 0
int flag = 0;ประกาศตัวแปล flag มีค่าเป็น 0

void setup()//เป็นฟังค์ชันแรก setupค่าตามจุดประสงค์ของฟังก์ชั่น 
{
   for (int i=0;i<4;i++)//กำหนดตัวแปล i=0,iน้อยกว่า4 i้เพิ่มทีละ1
    {
      pinMode(Loads[i], OUTPUT);//กำหนดขาLoadsเป็น OUTPUT
    }
   mySerial.begin(9600);//ประกาศการใช้งานการสื่อสารรับส่งข้อมูลผ่านพอร์ตRS232 ความเร็วรับส่งข้อมูล(9600)ต่อวินาที
   for (int i=0;i<4;i++)//กำหนดตัวแปล i=0,iน้อยกว่า4 i้เพิ่มทีละ1
    {
      digitalWrite(Loads[i], LOW);//ส่งค่าลอจิกไปยังขาdigitalให้Loadsเป็นLOW
    }
   
}

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

}


FlowChart 




No comments:

Post a Comment

สรุปงานที่ 5 Internet of Things (IoT)

Internet of Things (IoT) คืออะไร           Internet of Things (IoT) คือ  "อินเตอร์เน็ตในทุกสิ่ง" หมายถึง การที่อุปกรณ์ต่างๆ ส...