งานแก้ปรับคะแนน
ส่วนประกอบArduino Based Home Automation Project via Bluetooth
1ฮาร์ดแวร์
1.1 input
-Arduino UNO R3
-HC – 05 Bluetooth Module
-smartphone
1.2 output
-load
2.ซอฟแวร์
อธิบายโค้ดทั้งฟังก์ชั่นของarduinoเองและฟังก์ชั่นพิเศษ
#include <SoftwareSerial.h>//เรียกใช้งาน
const int rxPin = 4;//ตัวแปร txPin มีค่าเป็น 4
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()//ค่าเริ่มต้น
{
for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4 เพิ่มทีละ1
{
pinMode(Loads[i], OUTPUT);//Loadsเป็น OUTPUT
}
mySerial.begin(9600);//
for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4เพิ่มทีละ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);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '1':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '3':digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '4':digitalWrite(Loads[2], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '5':digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '6':digitalWrite(Loads[3], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '7':digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '8':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;/ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
}
}
const int rxPin = 4;//ตัวแปร txPin มีค่าเป็น 4
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()//ค่าเริ่มต้น
{
for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4 เพิ่มทีละ1
{
pinMode(Loads[i], OUTPUT);//Loadsเป็น OUTPUT
}
mySerial.begin(9600);//
for (int i=0;i<4;i++)//กำหนดตัวแปร i=0,iน้อยกว่า4เพิ่มทีละ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);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '1':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads0 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '2':digitalWrite(Loads[1], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นHIGH
flag=1;//flagเป็น1break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '3':digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '4':digitalWrite(Loads[2], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '5':digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '6':digitalWrite(Loads[3], HIGH);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นHIGH
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '7':digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;//ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
case '8':digitalWrite(Loads[0], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
digitalWrite(Loads[1], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads1 เป็นLOW
digitalWrite(Loads[2], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads2 เป็นLOW
digitalWrite(Loads[3], LOW);//ส่งค่าลอจิกไปยังขาdigital ให้Loads3 เป็นLOW
flag=1;//flagเป็น1
break;/ให้โปรแกรมออกจากลูปไม่ต้องทำต่อ
}
}
เขียน FlowChart
ความคิดเห็น
แสดงความคิดเห็น