• Bluetooth Controlled Home Automation System using 8051

QC

Bluetooth Controlled Home Automation System using 8051

 Bluetooth Controlled Home Automation System using 8051

Main Components

  • 8051 microcontroller
  • Bluetooth Module HC05
  • Relay
  • ULN2003
  • Bulb
  • Holder
  • Wire
  • IC 7805
  • Android phone
  • Bluetooth controller app Android app
  • 10uf capacitor
  • 1000uf capacitor
  • 10K resistor
  • 1k resistor
  • Power Supply
Bluetooth Module:


Mô-đun Bluetooth HC-05 bao gồm hai thứ một là mô-đun giao diện nối tiếp Bluetooth và bộ điều hợp Bluetooth. Mô-đun nối tiếp Bluetooth được sử dụng để chuyển đổi cổng nối tiếp sang Bluetooth.





How to operate Bluetooth module?

Bạn có thể trực tiếp sử dụng mô-đun Bluetooth sau khi mua từ thị trường, vì không cần thay đổi bất kỳ cài đặt nào của mô-đun Bluetooth. Tốc độ truyền mặc định của mô-đun Bluetooth mới là 9600 bps. Bạn chỉ cần kết nối rx và tx với bộ điều khiển hoặc bộ chuyển đổi nối tiếp và cung cấp nguồn điện được điều chỉnh 5 volt dc cho mô-đun.

Mô-đun Bluetooth có hai chế độ một là chế độ chính và chế độ thứ hai là chế độ phụ. Người dùng có thể đặt một trong hai chế độ bằng cách sử dụng một số lệnh AT. Thậm chí người dùng có thể thiết lập cài đặt của mô-đun bằng cách sử dụng lệnh AT. Dưới đây là một số lệnh sử dụng được đưa ra:

Trước hết, người dùng cần vào chế độ AT với tốc độ truyền 38400 bps bằng cách nhấn nút EN ở mô-đun Bluetooth hoặc bằng cách đưa ra mức CAO ở chân EN. Lưu ý: tất cả các lệnh phải kết thúc bằng \ r \ n (0x0d và 0x0a) hoặc ENTER KEY từ bàn phím.

Sau nó nếu bạn gửi AT đến mô-đun thì mô-đun sẽ phản hồi bằng OK

AT → Lệnh kiểm tra

AT + ROLE = 0 → Chọn Chế độ nô lệ

AT + ROLE = 1 → Chọn Chế độ chính

AT + NAME = xyz → Đặt tên Bluetooth

AT + PSWD = xyz → Đặt mật khẩu

AT + UART = <value1>, <value2>, <value3> → đặt tốc độ Baud

Ví dụ. AT + UART = 9600,0,0

Mô tả chân của máy đo gia tốc:

STATE → Mở
Rx → Chân nhận nối tiếp
Tx → Chân truyền nối tiếp
GND → mặt đất
Vcc → + 5volt dc
EN → để vào chế độ AT

Giải thích làm việc:

Trong dự án này, chúng tôi đã sử dụng vi điều khiển 8051 để điều khiển toàn bộ quá trình của dự án này. Và một mô-đun Bluetooth được sử dụng để điều khiển không dây các thiết bị gia dụng. Thiết bị gia dụng sẽ BẬT và TẮT khi người dùng chạm vào nút trong ứng dụng di động Bluetooth trên điện thoại di động Android. Để chạy dự án này, trước tiên chúng ta cần tải xuống biểu mẫu ứng dụng Bluetooth trên Google Play Store. Chúng tôi có thể sử dụng bất kỳ ứng dụng Bluetooth nào có thể gửi dữ liệu bằng Bluetooth. Dưới đây là một số tên ứng dụng có thể được sử dụng:

  1. Bluetooth Spp pro
  2. Bluetooth controller



Sau khi cài đặt Ứng dụng, bạn cần mở Ứng dụng, sau đó tìm kiếm thiết bị Bluetooth và chọn thiết bị Bluetooth HC-05. Và sau đó cấu hình các khóa.

Ở đây trong dự án này, chúng tôi đã sử dụng ứng dụng bộ điều khiển Bluetooth.

Tải xuống và cài đặt Bộ điều khiển Bluetooth.
BẬT Bluetooth di động.
Bây giờ hãy mở ứng dụng bộ điều khiển Bluetooth
Nhấn quét
Chọn thiết bị Bluetooth mong muốn (Mô-đun Bluetooth HC-05).
Bây giờ đặt các phím bằng cách nhấn các nút đặt trên màn hình
Để đặt các phím, chúng ta cần nhấn "nút đặt" và đặt phím theo hình dưới đây:



Sau khi thiết lập các phím bấm ok.

Bạn có thể thấy trong hình trên có 9 nút, trong đó hàng đầu tiên là điều khiển quạt, nút thứ hai là điều khiển ánh sáng và nút cuối cùng là điều khiển TV. Có nghĩa là các nút BẬT và TẮT của hàng đầu tiên được sử dụng để BẬT và TẮT quạt, các nút của hàng thứ hai dành cho Ánh sáng và nút của hàng thứ ba dành cho TV. Chúng tôi đã sử dụng ba bóng đèn có màu sắc khác nhau thay vì TV và quạt, cho mục đích trình diễn.

Bây giờ, khi chúng ta chạm vào bất kỳ nút nào trong ứng dụng bộ điều khiển Bluetooth thì điện thoại Android sẽ gửi một giá trị đến mô-đun Bluetooth, sau khi nhận được giá trị này, mô-đun Bluetooth sẽ gửi giá trị nhận được đến bộ vi điều khiển và sau đó bộ vi điều khiển đọc nó và so sánh với giá trị được xác định trước. Nếu có bất kỳ kết quả phù hợp nào xảy ra thì vi điều khiển sẽ thực hiện hoạt động tương đối. Thao tác tương tự sẽ được thực hiện mỗi khi nhấn nút.



Giờ đây, khi người dùng chạm vào nút ‘Fan On’ trong ứng dụng bộ điều khiển Bluetooth thì bộ vi điều khiển sẽ nhận ‘1’ qua mô-đun Bluetooth và sau đó bộ điều khiển Chuyển ‘Bật’ Quạt bằng cách sử dụng trình điều khiển rơ le và rơ le. Và khi người dùng chạm vào nút ‘Tắt quạt’ trong ứng dụng bộ điều khiển Bluetooth thì bộ vi điều khiển nhận ‘2’ qua mô-đun Bluetooth và sau đó bộ điều khiển Chuyển ‘Tắt’ Quạt bằng cách sử dụng trình điều khiển rơ le và rơ le.

Tương tự như vậy, các số 3,4,5,6 được gửi bởi Điện thoại Android, khi chạm vào nút Bật sáng, Tắt đèn, Bật TV, Tắt TV lần lượt:

ButtonDataOperation
Fan On1Fan Turned On
Fan Off2Fan Turned Off
Light On3Light Turned On
Light Off4Light Turned Off
TV On5TV Turned On
TV Off6TV Turned Off

Circuit Diagram and Explanation

Kết nối mạch của dự án này rất đơn giản. Các chân Rx và Tx của mô-đun Bluetooth được kết nối trực tiếp với các chân Tx và Rx của Vi điều khiển. Ba rơ le 5 vôn được sử dụng như một công tắc để Bật và Tắt các thiết bị gia dụng chạy bằng nguồn điện AC. Và một trình điều khiển rơle ULN2003 được sử dụng để dẫn động rơle. Quạt, Đèn và TV được kết nối tại P2.1, P2.2 và P2.3 thông qua rơ le và trình điều khiển rơ le. Bộ dao động tinh thể 11,0592 MHz được sử dụng trong mạch này để tạo tín hiệu xung nhịp cho vi điều khiển. Và một bộ điều chỉnh điện áp 5 volt LM7805 được sử dụng để cung cấp 5 volt cho toàn mạch.



Program Explanation:

Trong chương trình này, trước hết chúng ta đã bao gồm tệp tiêu đề và xác định các chân đầu vào, đầu ra và các biến.

#include<reg51.h>

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

 char str;
 char Charin=0;


Sau đó, chúng tôi đã tạo một hàm để trì hoãn.



void delay(int time)
{
  unsigned int i,j;
  for(i=0;i<time;i++)
  for(j=0;j<1275;j++);
}
Ở đây chúng tôi có một số chức năng mà chúng tôi đã sử dụng trong chương trình của mình. Trong đó, chúng tôi đã định cấu hình tốc độ truyền 9600bps ở Tần số tinh thể 11,0592MHz.


void Serialwrite(char byte)
{
  SBUF=byte;
  while(!TI);
  TI=0;
}      
void Serialprintln(char *p)
{
  while(*p)
  {
    Serialwrite(*p);
    p++;
  }
  Serialwrite(0x0d);
}

void Serialbegin()
{
   TMOD=0x20;
   SCON=0x50;
   TH1=0xfd;
   TR1=1;
}
Sau đó, trong chương trình chính, chúng tôi đã khởi tạo UART và theo dõi thanh ghi SBUF để nhận dữ liệu. Sau đó, dữ liệu được khớp và so sánh với các giá trị được xác định trước và hoạt động tương đối đã được thực hiện.

void main()
{
  P2=0x00;
  Serialbegin();
  Serialprintln("System Ready...");
  delay(50);
  while(1)
  {
    while(!RI);
    Charin=SBUF;
    str=Charin;
    RI=0;
      if(str=='1')
      {
        Fan=1;
        Serialprintln(" Fan ON");
        delay(50);
      }
      else if(str=='2')
      {
        Fan=0;
        Serialprintln(" Fan OFF");
        delay(50);
      }

ALL CODE.


#include<reg51.h>

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

 char str;
 char Charin=0;

void delay(int time)
{
 unsigned int i,j;
 for(i=0;i<time;i++)
 for(j=0;j<1275;j++);
}

void Serialwrite(char byte)
{
  SBUF=byte;
  while(!TI);
  TI=0;
}

void Serialprintln(char *p)
{
  while(*p)
  {
    Serialwrite(*p);
    p++;
  }
  Serialwrite(0x0d);
}

void Serialbegin()
{
   TMOD=0x20;
   SCON=0x50;
   TH1=0xfd;
   TR1=1;
}

void main()
{
  P2=0x00;
  Serialbegin();
  Serialprintln("System Ready...");
  delay(50);
  while(1)
  {
    while(!RI);
    Charin=SBUF;
    str=Charin;
    RI=0;
      if(str=='1')
      {
        Fan=1;
        Serialprintln(" Fan ON");
        delay(50);
      }
      else if(str=='2')
      {
        Fan=0;
        Serialprintln(" Fan OFF");
        delay(50);
      }

       else if(str=='3')
      {
        Light=1;
        Serialprintln(" Light ON");
        delay(50);
      }

       else if(str=='4')
      {
        Light=0;
        Serialprintln(" Light OFF");
        delay(50);
      }

       else if(str=='5')
      {
        TV=1;
        Serialprintln(" TV ON");
        delay(50);
      }

       else if(str=='6')
      {
        TV=0;
        Serialprintln(" TV OFF");
        delay(50);
      }
      str=0;
  }
}














Nap Code vào PY32F003 dùng Stlink

 Nap Code vào PY32F003 dùng Stlink Bước 1: Cài đặt  KeilC v5.39 theo link sau ( chú ý 5.39 keil c mới nạp ok). https://edge07.111.ir.cdn.ir/...