ลองนึกภาพว่าคุณสามารถควบคุมเครื่องใช้ไฟฟ้าในบ้านของคุณได้จากทุกที่ภายในบ้านเพียงแค่ใช้สมาร์ทโฟนของคุณ ในโครงการนี้เราจะใช้แบบไร้สายบลูทู ธ ในการควบคุมเครื่องใช้ในบ้านอิเล็กทรอนิกส์ผ่านโทรศัพท์มือถือ บลูทู ธ มีช่วงของ 10-15 เมตรเพื่อให้คุณสามารถเปิดและปิดเครื่องใช้ไฟฟ้าใด ๆ ภายในช่วง เรายังพัฒนารถของเล่นควบคุมด้วยโทรศัพท์ Androidโดยใช้โมดูลบลูทู ธ และ Arduino

ที่นี่เราได้ใช้ไมโครคอนโทรลเลอร์ 8051 กับโมดูลบลูทู ธ เพื่อรับข้อมูลแบบไร้สายที่ส่งจากโทรศัพท์ Android เพื่อให้ไมโครคอนโทรลเลอร์สามารถเปิดและปิดเครื่องใช้ในบ้านได้ [ตรวจสอบโครงการที่ใช้ไมโครคอนโทรลเลอร์มากกว่า8051 ]

องค์ประกอบหลัก

  • 8051 ไมโครคอนโทรลเลอร์
  • โมดูลบลูทู ธ HC05
  • ถ่ายทอด
  • ULN2003
  • กระเปาะ
  • เจ้าของ
  • ลวด
  • IC 7805
  • โทรศัพท์ Android
  • แอพควบคุมบลูทู ธ แอพ Android
  • ตัวเก็บประจุ 10 ยูเอฟ
  • ตัวเก็บประจุ 1000 ยูเอฟ
  • ตัวต้านทาน 10K
  • ตัวต้านทาน 1k
  • พาวเวอร์ซัพพลาย
โมดูลบลูทู ธ :
 โมดูลบลูทู ธ HC-05 ประกอบด้วยสองสิ่งหนึ่งคือโมดูลบลูทู ธ แบบอนุกรมและอะแดปเตอร์บลูทู ธ โมดูลอนุกรม Bluetooth ใช้สำหรับแปลงพอร์ตอนุกรมเป็น Bluetooth
บลูทู ธ โมดูล-HC-05

วิธีการใช้งานโมดูลบลูทู ธ

คุณสามารถใช้โมดูลบลูทู ธ ได้โดยตรงหลังจากซื้อจากตลาดเพราะไม่จำเป็นต้องเปลี่ยนการตั้งค่าของโมดูลบลูทู ธ อัตรารับส่งข้อมูลเริ่มต้นของโมดูล Bluetooth ใหม่คือ 9600 bps คุณเพียงแค่ต้องเชื่อมต่อ rx และ tx กับคอนโทรลเลอร์หรือซีเรียลคอนเวอร์เตอร์และจ่ายไฟ 5 โวลต์ dc ให้กับโมดูล

โมดูลบลูทู ธ มีสองโหมดหนึ่งคือโหมดหลักและที่สองคือโหมดทาส ผู้ใช้สามารถตั้งค่าโหมดใดโหมดหนึ่งโดยใช้คำสั่ง AT บางคำสั่ง แม้ผู้ใช้สามารถตั้งค่าการตั้งค่าของโมดูลโดยใช้คำสั่ง AT นี่คือคำสั่งที่ใช้บางคำสั่ง:
ก่อนอื่นผู้ใช้จำเป็นต้องเข้าสู่โหมด AT ด้วยอัตราการรับส่งข้อมูล 38400 bps โดยการกดปุ่ม EN ที่โมดูลบลูทู ธ หรือโดยการให้ระดับสูงที่ขา EN หมายเหตุ: คำสั่งทั้งหมดควรลงท้ายด้วย \ r \ n (0x0d และ 0x0a) หรือ ENTER KEY จากแป้นพิมพ์
หลังจากนั้นถ้าคุณส่ง AT ไปยังโมดูลจากนั้นโมดูลจะตอบสนองด้วยตกลง
AT →คำสั่งทดสอบ
AT + ROLE = 0 →เลือกโหมด Slave
AT + ROLE = 1 →เลือกโหมดมาสเตอร์
AT + NAME = xyz →ตั้งชื่อบลูทู ธ
AT + PSWD = xyz →ตั้งรหัสผ่าน
AT + UART = <value1>, <value2>, <value3> →กำหนดอัตรารับส่งข้อมูล
เช่น. ที่ + UART = 9600,0,0

Pin คำอธิบายของ accelerometer:
  1. รัฐ→เปิด
  2. Rx →ขารับสัญญาณอนุกรม
  3. Tx →ขาส่งสัญญาณอนุกรม
  4. GND →กราวด์
  5. Vcc → + 5volt dc
  6. EN →เพื่อเข้าสู่โหมด AT
  7.  

คำอธิบายการทำงาน: 

ในโครงการนี้เราได้ใช้ ไมโครคอนโทรลเลอร์ 8051 เพื่อควบคุมกระบวนการทั้งหมดของโครงการนี้ และโมดูลบลูทู ธ ใช้สำหรับควบคุมเครื่องใช้ภายในบ้านแบบไร้สาย เครื่องใช้ในบ้านจะเปิดและปิดเมื่อผู้ใช้จะแตะปุ่มในแอพมือถือบลูทู ธ ในโทรศัพท์มือถือ Android ในการเรียกใช้โครงการนี้ก่อนอื่นเราต้องดาวน์โหลดแอปบลูทู ธ จาก Google Play store เราสามารถใช้แอพ Bluetooth ใดก็ได้ที่สามารถส่งข้อมูลโดยใช้ Bluetooth นี่คือชื่อแอพที่สามารถใช้ได้:
  1. Bluetooth Spp pro
  2. ตัวควบคุมบลูทู ธ
หลังจากติดตั้งแอพคุณจะต้องเปิดและค้นหาอุปกรณ์บลูทู ธ แล้วเลือกอุปกรณ์บลูทู ธ HC-05 แล้วกำหนดค่าปุ่มต่างๆ
ที่นี่ในโครงการนี้เราได้ใช้บลูทู ธ แอปควบคุม
  1. ดาวน์โหลดและติดตั้งตัวควบคุมบลูทู ธ
  2. เปิดบลูทู ธ มือถือ
  3. ตอนนี้เปิดแอพควบคุมบลูทู ธ
  4. กดสแกน
  5. เลือกอุปกรณ์บลูทู ธ ที่ต้องการ (โมดูลบลูทู ธ HC-05)
  6. ตอนนี้ตั้งค่าปุ่มโดยการกดปุ่มตั้งค่าบนหน้าจอ
ในการตั้งค่าปุ่มเราจำเป็นต้องกดปุ่ม 'ตั้งค่า' และตั้งค่าคีย์ตามภาพที่ระบุด้านล่าง:
แอพควบคุมบลูทู ธ สำหรับบ้านอัตโนมัติ
หลังจากการตั้งค่าปุ่มกดตกลง
คุณสามารถเห็นในภาพด้านบนว่ามีปุ่ม 9 ปุ่มที่แถวแรกใช้สำหรับควบคุมพัดลม, ปุ่มที่สองใช้สำหรับควบคุมแสงและปุ่มสุดท้ายใช้สำหรับควบคุมทีวี หมายถึงปุ่มเปิดและปิดของแถวที่หนึ่งใช้สำหรับเปิดและปิดพัดลมปุ่มของแถวที่สองใช้สำหรับแสงและปุ่มที่สามใช้สำหรับทีวี เราใช้หลอดไฟสามสีที่แตกต่างกันแทนทีวีและพัดลมเพื่อการสาธิต

ตอนนี้เมื่อเราแตะปุ่มใด ๆ ในแอพควบคุมบลูทู ธ โทรศัพท์ Android จะส่งค่าไปยังโมดูลบลูทู ธ หลังจากได้รับค่านี้โมดูลบลูทู ธ จะส่งค่าที่ได้รับไปยังไมโครคอนโทรลเลอร์แล้วไมโครคอนโทรลเลอร์อ่านและเปรียบเทียบกับค่าที่กำหนดไว้ล่วงหน้า หากการแข่งขันใด ๆ เกิดขึ้นไมโครคอนโทรลเลอร์จะทำการดำเนินการที่เกี่ยวข้อง การทำงานเดียวกันจะดำเนินการทุกครั้งเมื่อกดปุ่ม
บล็อกไดอะแกรม Home Automation Block ที่ควบคุมบลูทู ธ
ตอนนี้เมื่อสัมผัสของผู้ใช้พัดลม On 'ปุ่มใน app ควบคุมบลูทู ธ แล้วไมโครคอนโทรลเลอร์ได้รับ '1' ผ่านโมดูลบลูทู ธ และจากนั้นควบคุมสวิทช์ 'ใน' แฟนโดยใช้โปรแกรมควบคุมการถ่ายทอดและการถ่ายทอด และเมื่อผู้ใช้กดปุ่ม 'ปิดพัดลม' ในแอพควบคุมบลูทู ธ ไมโครคอนโทรลเลอร์จะได้รับ '2' ผ่านโมดูลบลูทู ธ แล้วควบคุมสวิตช์ 'ปิด' พัดลมโดยใช้ไดรเวอร์รีเลย์และรีเลย์
หมายเลข 3,4,5,6 จะถูกส่งโดยโทรศัพท์ Android เมื่อเปิดไฟ, ปิดไฟ, เปิดทีวี, ปิด TV TV ตามลำดับ:
ปุ่ม
ข้อมูล
การทำงาน
เปิดพัดลม
1
เปิดพัดลม
ปิดพัดลม
2
ปิดพัดลม
เปิดไฟ
3
แสงเปิด
ปิดไฟ
4
แสงปิด
เปิดทีวี
5
ทีวีเปิด
ปิดทีวี
6
ทีวีปิด

แผนภาพวงจรและคำอธิบาย

การเชื่อมต่อวงจรของโครงการนี้ง่ายมาก หมุด Rx และ Tx ของโมดูล Bluetooth เชื่อมต่อโดยตรงกับหมุด Tx และ Rx ของไมโครคอนโทรลเลอร์ รีเลย์ 5 โวลต์สามตัวใช้เป็นสวิตช์สำหรับเปิดและปิดเครื่องใช้ในบ้านที่ใช้ไฟ AC และไดร์เวอร์รีเลย์ ULN2003 ใช้สำหรับขับรีเลย์ พัดลม, แสงและทีวีเชื่อมต่อที่ P2.1, P2.2 และ P2.3 ผ่านรีเลย์และตัวขับรีเลย์ วงจรออสซิลเลเตอร์คริสตัล 11.0592 MHz นี้ถูกใช้ในการสร้างสัญญาณนาฬิกาสำหรับไมโครคอนโทรลเลอร์ และควบคุมแรงดันไฟฟ้า 5 โวลต์ LM7805 ใช้สำหรับให้ 5 โวลต์สำหรับวงจรทั้งหมด
 แผนภาพวงจรของระบบอัตโนมัติภายในบ้านที่ควบคุมบลูทู ธ

คำอธิบายโปรแกรม:

ในโปรแกรมนี้ก่อนอื่นเราได้รวมไฟล์ส่วนหัวและกำหนดอินพุตพินเอาต์พุตและตัวแปร
#include <reg51.h>

sbit Fan = P2 ^ 0;
sbit Light = P2 ^ 1;
sbit TV = P2 ^ 2;

 str char
 ถ่าน Charin = 0;
หลังจากนี้เราได้สร้างฟังก์ชันสำหรับการหน่วงเวลา
โมฆะล่าช้า (เวลา int)
{
  int i ที่ไม่ได้ลงนาม j;
  สำหรับ (i = 0; i <เวลา; i ++)
  สำหรับ (ญ = 0; J <1275; J ++);
}
ที่นี่เรามีฟังก์ชั่นบางอย่างที่เราใช้ในโปรแกรมของเรา ในที่นี้เราได้กำหนดค่าอัตรารับส่งข้อมูล 9600bps ที่ความถี่คริสตัล 11.0592MHz
เป็นโมฆะ Serialwrite (ถ่านไบต์)
{
  SBUF = ไบต์;
  ในขณะที่ (TI);
  TI = 0;
}      
ถือเป็นโมฆะ Serialprintln (ถ่าน * p)
{
  ในขณะที่ (* P)
  {
    Serialwrite (p *);
    P ++;
  }
  Serialwrite (0x0D);
}

เป็นโมฆะ Serialbegin ()
{
   TMOD = 0x20;
   SCON = 0x50;
   TH1 = 0xfd;
   TR1 = 1;
}
หลังจากนี้ในโปรแกรมหลักเราได้เริ่มต้น UART และตรวจสอบการลงทะเบียน SBUF เพื่อรับข้อมูล จากนั้นข้อมูลจะถูกจับคู่และเปรียบเทียบกับค่าที่กำหนดไว้ล่วงหน้าและมีการดำเนินการที่เกี่ยวข้อง
โมฆะหลัก ()
{
  P2 = 0x00;
  Serialbegin ();
  Serialprintln ("ระบบพร้อม ... ");
  ล่าช้า (50);
  ในขณะที่ (1)
  {
    ในขณะที่ (RI!);
    ชรินทร์ = SBUF;
    STR = ชรินทร์;
    RI = 0;
      ถ้า (STR == '1')
      {
        พัดลม = 1;
        Serialprintln ("Fan ON");
        ล่าช้า (50);
      }
      อื่นถ้า (str == '2')
      {
        พัดลม = 0;
        Serialprintln ("Fan OFF");
        ล่าช้า (50);
      }
นั่นคือวิธีที่เราสามารถสร้างระบบทั้งในบ้านและสามารถเชื่อมต่อทุกเครื่องใช้ไฟฟ้า AC เข้ากับไมโครคอนโทรลเลอร์ 8051 โดยใช้รีเลย์ และระบบอัตโนมัติภายในบ้านที่ควบคุมบลูทู ธนี้ สามารถใช้งานได้จากสมาร์ทโฟน
รหัส
#include <reg51.h>
sbit Fan = P2 ^ 0; 
sbit Light = P2 ^ 1; 
sbit TV = P2 ^ 2;
 str char 
 ถ่าน Charin = 0;
void delay (int time) 

 int ไม่ได้ลงนาม i, j; 
 สำหรับ (i = 0; i <time; i ++) 
 สำหรับ (j = 0; j <1275; j ++); 
}
ถือเป็นโมฆะ Serialwrite (ถ่านไบต์) 

  SBUF = ไบต์; 
  ในขณะที่ (TI); 
  TI = 0; 
}
ถือเป็นโมฆะ Serialprintln (ถ่าน * p) 

  ในขณะที่ (* p) 
  { 
    Serialwrite (* p); 
    P ++; 
  } 
  Serialwrite (0x0d); 
}
เป็นโมฆะ Serialbegin () 

   TMOD = 0x20; 
   SCON = 0x50; 
   TH1 = 0xfd; 
   TR1 = 1; 
}
เป็นโมฆะหลัก () 

  P2 = 0x00; 
  Serialbegin (); 
  Serialprintln ("ระบบพร้อม ... "); 
  ล่าช้า (50); 
  ในขณะที่ (1) 
  { 
    ขณะที่ (! RI); 
    ชรินทร์ = SBUF; 
    STR = ชรินทร์; 
    RI = 0; 
      if (str == '1') 
      { 
        Fan = 1; 
        Serialprintln ("Fan ON"); 
        ล่าช้า (50); 
      } 
      ถ้า if (str == '2') 
      { 
        Fan = 0; 
        Serialprintln ("Fan OFF"); 
        ล่าช้า (50); 
      }
       อื่นถ้า (str == '3') 
      { 
        Light = 1; 
        Serialprintln ("เปิดไฟ"); 
        ล่าช้า (50); 
      }
       อื่นถ้า (str == '4') 
      { 
        Light = 0; 
        Serialprintln ("ปิดไฟ"); 
        ล่าช้า (50); 
      }
       อื่นถ้า (str == '5') 
      { 
        TV = 1; 
        Serialprintln ("TV ON"); 
        ล่าช้า (50); 
      }
       อื่นถ้า (str == '6') 
      { 
        TV = 0; 
        Serialprintln ("TV OFF"); 
        ล่าช้า (50); 
      } 
      str = 0; 
  } 
}