วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2561

How To Make Arduino Based Home Automation Project via Bluetooth

Circuit Diagram

Arduino Based Home Automation Circuit Diagram

Hardware

1. Arduino uno R3

2. Module Relay

3. HC – 05 Bluetooth Module

4. โทรศัพท์



Software

#include <SoftwareSerial.h> //อ่านไฟล์จากไดเร็กทอรี
const int rxPin = 4;//ตัวแปร rxPin เท่ากับ 
const int txPin = 2;//ตัวแปร txpin เท่ากับ 2
SoftwareSerial mySerial(rxPin, txPin);//SoftwareSerialกำหนกพอร์ต 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++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1
{
pinMode(Loads[i], OUTPUT);//ขา Loads เป็น OUTPUT
}
mySerial.begin(9600);
for (int i=0;i<4;i++)//กำหนดไห้ i เท่ากับ 0 ถ้า i น้อยกว่า 4 i จะเพิ่มขึ้นทีละ 1
{
digitalWrite(Loads[i], LOW);//loade เป็น 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);//ไห้ loads เป็น 0 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '1':digitalWrite(Loads[0], LOW);//ไห้ loads เป็น 0 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '2':digitalWrite(Loads[1], HIGH);//ไห้ loads เป็น 1 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '3':digitalWrite(Loads[1], LOW);//ไห้ loads เป็น 1 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '4':digitalWrite(Loads[2], HIGH);//ไห้ loads เป็น 2 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '5':digitalWrite(Loads[2], LOW);//ไห้ loads เป็น 2 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '6':digitalWrite(Loads[3], HIGH);//ไห้ loads เป็น 3 HIGH
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '7':digitalWrite(Loads[3], LOW);//ไห้ loads เป็น 3 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
case '8':digitalWrite(Loads[0], LOW);//เงื่อนไข 8 digitalWrite ไห้ loads 0 LOW
 ดdigitalWrite(Loads[1], LOW);//digitalWrite ไห้ loads 1 LOW
digitalWrite(Loads[2], LOW);//digitalWrite ไห้ loads 2 LOW
digitalWrite(Loads[3], LOW);//digitalWrite ไห้ loads 3 LOW
flag=1;//flag เท่ากับ 1
break;//คำสั่งไห้ออกจาก loop
}
} flowchart


Arduino Home Automation

ผิดพลาดประการใด ขออภัยมา ณ ที่นี้