VIEW:


BÀI LIÊN QUAN
Xu hướng kết nối mọi thứ trong nhà bạn đang được đồng bộ hóa và tiến tới phổ biến hóa nó hay còn gọi với tên khác Internet of Think. Để kết nối các thiết bị trong nhà, bạn có thể sử dụng các thiết bị kết nối wifi hay blutooth. Hôm nay, tôi giới thiệu cho các bạn một cách kết nối khác là sử dụng RF ( Radio Frequency) kết nối ngắn trong một khoảng cách nhất định tránh được nhiễu từ môi trường bên ngoài. Bên cạnh đó đây cũng là project giúp cho các bạn làm việc với vi điều khiển tốt hơn hay là project cuối kì cho các sinh viên ngành điện tử.

Trong phạm vi bài này, tôi sử dụng hai thành phần chính là module RF để thu và phát sóng, sử dụng vi điều khiển Arduino để kết nối cũng như điều khiển hai module gửi nhận.

Bắt đầu thôi!!

Bước 1: Sơ đồ toàn mạch


Module transmition ( module gửi tín hiệu)



Module Receiver (Module nhận tín hiệu)

Bước 2: Các linh kiện sử dụng trong module

1. Module gửi tín hiệu 
  • 434 MHz RF Transmitter
  • Arduino UNO
  • Push Buttons X 4
  • 1 KΩ Resistor X 4
  • Prototyping Board
  • 9V Battery
  • Connecting wires
2. Module nhận tín hiệu
  • Arduino UNO
  • 434 MHz RF Receiver
  • 2N2222 NPN Transistor X 2
  • 1 KΩ Resistor X 2
  • 1N4007 PN Junction Diode X 2
  • 12V Relay X 2
  • Prototyping Board
  • Power Supply (Adapter)
  • Connecting wires

Bước 3: Các thành phần trong mạch

1. Arduino UNO: Là trái tim của mạch, nơi chúng ta sẽ sử dụng để nạp code và chạy chương trình biên dịch, với mỗi thành phần gửi và nhận thì sẽ có code khác nhau để đảm bảo tín hiệu được gửi đi rõ ràng. Để hiểu thêm về Arduino UNO các bạn hãy tìm hiểu thêm thông tin trên mạng trong project này mình không giải thích hết về Arduino UNO.
2. 434 MHz RF Module : sử dụng 434 MHz Radio Frequency Transmitter - Receiver Module là cách tốt nhất và rẻ nhất để thực hiện một giao tiếp không dây cho một phạm vi hợp lý hơn.
3.Module Relay: được sử dụng và điều khiển bởi vi điều khiển, sử dụng 2 relay để đóng ngắt.

Bước 4: Giải thích nguyên lý mạch


Ở phần phát, Arduino liên tục theo dõi tình trạng của các thiết bị chuyển mạch (hoặc nút). Bất cứ khi nào một công tắc được nhấn, một CAO logic được phát hiện tại mà đặc biệt I / O pin. Kết quả là, các Arduino phát đi một thông điệp thích hợp tương ứng với công tắc bấm.

Ví dụ, nếu LOAD1_ON chuyển đổi, được kết nối với pin 6, được nhấn, Arduino phát hiện một CAO logic tại pin 6. Do đó, Arduino sẽ gửi một thông điệp như "@ ABC $" qua máy phát RF.

Vào cuối thu, thu RF nhận được tin nhắn này và truyền cùng với Arduino để giải mã. Khi Arduino vào cuối thu giải mã tin nhắn và hiểu rằng các nhân vật truyền là "@ ABC $", nó sau đó viết một tín hiệu cao trên kỹ thuật số I / O pin 4.

Kết quả là, các rơle nối để nạp 1 được kích hoạt và tải được bật. Hành động tương tự được thực hiện khi các switch khác được đẩy.

Nếu có bất kỳ lỗi trong việc truyền tải dữ liệu tức là các dữ liệu mong muốn không lây truyền, Arduino tại bộ phận tiếp nhận sáng lên báo lỗi đèn LED được kết nối với 13 ngày pin.

Một truyền dữ liệu thành công đèn LED và còi báo lỗi cũng có thể được thực hiện để chỉ những hành động hiệu quả hơn.

Bước 5: Hình ảnh mạch thật







Bước 6: Code project

thangbme.com
#include  
const int RF_RX_PIN = 11;
const int load1 = 4;
const int load2 = 5; 
const int errorLED = 13;

boolean bload1 = false;
boolean bload2 = false;

void setup()
{
  vw_set_ptt_inverted(true);
  vw_set_rx_pin(RF_RX_PIN);
  vw_setup(2000);
  vw_rx_start();
  
  pinMode(errorLED, OUTPUT);
  pinMode(load1, OUTPUT);
  pinMode(load2, OUTPUT);
  bload1 = false;
  bload2 = false;
}
 
void loop()
{ 
  uint8_t buf[VW_MAX_MESSAGE_LEN];
  uint8_t buflen = VW_MAX_MESSAGE_LEN;  
  if(vw_get_message(buf, &buflen))
  { 
    delay(500); 
    messageDecode ( (char *) buf);
    delay(500); 
  } 
  
  if(bload1 == true)
  {
    digitalWrite(load1, HIGH);
  }

  if(bload1 == false)
  {
    digitalWrite(load1, LOW);
  }
  
  if(bload2 == true)
  {
    digitalWrite(load2, HIGH);
  }
  
  if(bload2 == false)
  {
    digitalWrite(load2, LOW);
  }
}

void messageDecode(char msg[])
{
  if (strlen(msg) ==0) 
  { 
    ErrorLED(); 
    return; 
  }  
  
  
 if ( compareMessage(msg, '@') == false || compareMessage(msg, '$') == false) 
 {
  ErrorLED(); 
  return;
 }  
 

 char cTag[5] ="";
 int index =0;
 int iLoop = IndexOf(msg,'@');
 
 if(iLoop == -1)
 { 
  ErrorLED(); 
  return;
 }
 
 iLoop++;
 
 while (iLoop < strlen(msg))
 {
   if(msg[iLoop] == '$')
   {
    break;
   }
   else
   {
    cTag[index] = msg[iLoop]; 
    index++;
   }
   
   iLoop ++;
 }
 
 String sTag = String(cTag);

  if (sTag.equals("ABC")) 
  { 
    bload1 = true; 
  }

  if (sTag.equals("BOFF")) 
  { 
    bload1 = false;
  }

  if (sTag.equals("FON")) 
  { 
    bload2 = true; 
  }

  if (sTag.equals("FOFF")) 
  { 
    bload2 = false; 
  } 
  
}

int IndexOf(char msg[], char tag)
{
  if (strlen(msg) ==0) return false;
  boolean bFlag = false;
  int iIndex = -1;
  
  for( int i=0; i

1 nhận xét Blogger 1

  1. Nặc danh12:46 19/4/22

    Kết Nối Module Rf Sử Dụng Vi Điều Khiển Arduino Uno - Thangshare >>>>> Download Now

    >>>>> Download Full

    Kết Nối Module Rf Sử Dụng Vi Điều Khiển Arduino Uno - Thangshare >>>>> Download LINK

    >>>>> Download Now

    Kết Nối Module Rf Sử Dụng Vi Điều Khiển Arduino Uno - Thangshare >>>>> Download Full

    >>>>> Download LINK QI

    Trả lờiXóa

 
ThangShare © 2016. All Rights Reserved. Design by: Thắng BME - Sitemap
Top