อธิบายโปรแกรมHow To Make Arduino Based Home Automation Project via Bluetooth
How To Make Arduino Based Home Automation Project via Bluetooth?
- Hardware
- input
- HC – 05 Bluetooth Module
- output
- 2N2222 NPN Transistor X 4
- 1N4007 Diode X 4
- 12 V Relay X 4
- software
#include <SoftwareSerial.h> รวมไลบรารีSoftwareSerial.h เพื่อให้สามารถใช้ฟั่งชั่นต่างๆได้ const int rxPin = 4; const int txPin = 2; SoftwareSerial mySerial(rxPin, txPin);ตั้งค่าmySerialพอร์ตSoftwareSerial const int Loads[] = {9, 10, 11, 12}; กำหนดค่าตัวแปร int state = 0;กำหนดค่าตัวแปร int flag = 0;กำหนดค่าตัวแปร void setup() { for (int i=0;i<4;i++) คำสั่งกำหนดเงื่อนไขให้นับค่าiว่า=4รึไม่ถ้าไม่ก้ทำงานไปเรื่อยๆจนกว่าiจะ=4จึงจะหยุด { pinMode(Loads[i], OUTPUT);กำหนดouiput } mySerial.begin(9600); for (int i=0;i<4;i++) คำสั่งกำหนดเงื่อนไขให้นับค่าiว่า=4รึไม่ถ้าไม่ก้ทำงานไปเรื่อยๆจนกว่าiจะ=4จึงจะหยุด { digitalWrite(Loads[i], LOW);สั่งให้Loads[i]เป็น0 } } void loop() { if(mySerial.available() > 0)เงื่องไขถ้าmySerial.availableมากกว่า0ให้ทำในปีกกา { state = mySerial.read(); flag=0; } switch(state)คำสั่งใช้ในการจัดการเงื่อนไขหลายเงื่อนไข { case '0':digitalWrite(Loads[0], HIGH);สั่งให้Loads[0]เป็น1 flag=1; break;คำสั่งให้ออกจากloopทันที case '1':digitalWrite(Loads[0], LOW);สั่งให้คำสั่งLoads[0]เป็น0 flag=1; break;คำสั่งให้ออกจากloopทันที case '2':digitalWrite(Loads[1], HIGH);สั่งให้คำสั่งLoads[1]เป็น1 flag=1; break;คำสั่งให้ออกจากloopทันที case '3':digitalWrite(Loads[1], LOW);สั่งให้คำสั่งLoads[1]เป็น0 flag=1; break;คำสั่งให้ออกจากloopทันที case '4':digitalWrite(Loads[2], HIGH);สั่งให้คำสั่งLoads[2]เป็น1 flag=1; break;คำสั่งให้ออกจากloopทันที case '5':digitalWrite(Loads[2], LOW);สั่งให้คำสั่งLoads[2]เป็น0 flag=1; break;คำสั่งให้ออกจากloopทันที case '6':digitalWrite(Loads[3], HIGH);สั่งให้คำสั่งLoads[3]เป็น1 flag=1; break;คำสั่งให้ออกจากloopทันที case '7':digitalWrite(Loads[3], LOW);สั่งให้คำสั่งLoads[3]เป็น0 flag=1; break;คำสั่งให้ออกจากloopทันที case '8':digitalWrite(Loads[0], LOW);สั่งให้คำสั่งLoads[0]เป็น0 digitalWrite(Loads[1], LOW);สั่งให้คำสั่งLoads[1]เป็น0 digitalWrite(Loads[2], LOW);สั่งให้คำสั่งLoads[2]เป็น0 digitalWrite(Loads[3], LOW);สั่งให้คำสั่งLoads[3]เป็น0 flag=1; break;คำสั่งให้ออกจากloopทันที
ความคิดเห็น
แสดงความคิดเห็น