• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • Nixie Clock
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Phần mềm điện tử
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ARDUINO PROJECT » Giải mã Remote RF bất kỳ bằng Arduino

Giải mã Remote RF bất kỳ bằng Arduino

08/01/2026 by admin 2 Bình luận

Đã được đăng vào 26/08/2021 @ 15:41

Giải mã Remote RF bất kỳ bằng Arduino

Mục lục hiện
Giải mã Remote RF bất kỳ bằng Arduino
GIỚI THIỆU
VIDEO HƯỚNG DẪN 1
VIDEO HƯỚNG DẪN 2
LINH KIỆN
MỘT VÀI LOẠI MODULE THU RF
MẠCH NGUYÊN LÝ
LẬP TRÌNH
CODE ReceiveDemo_Simple
CODE ReceiveDemo_Advanced
Điều khiển thiết bị bằng Remote vừa giải mã

GIỚI THIỆU

Hôm nay mình sẽ hướng dẫn các bạn cách giải mã một Remote RF 433Mhz (hoặc 315Mhz) bất kỳ.

Mục đích chính là để có thể tận dụng remote RF điều khiển đèn, máy bơm, các thiết bị điện,..v.v.. chỉ với vài dòng code đơn giản trên Arduino.

Xem thêm:

  • Kỹ thuật truyền sóng RF 433Mhz và 315Mhz
  • Giải mã Remote hồng ngoại với Arduino
  • Arduino cơ bản 14: Điều khiển LED bằng IR Remote sử dụng Arduino
Remote RF 4 kênh
Remote RF 8 kênh

Ngoài ra, có thể giải mã cả những cảm biến RF 433Mhz (hoặc 315Mhz) bán ngoài thị trường như Cảm biến báo trộm PIR, cảm biến báo mở cửa…

Từ đó, có thể tích hợp các cảm biến mua sẵn để làm 1 hệ thống chống trộm cho riêng bạn!

Cảm biến RF đóng – mở cửa dùng tiếp điểm công tắc từ
Cảm biến chuyển động PIR

VIDEO HƯỚNG DẪN 1

VIDEO HƯỚNG DẪN 2

LINH KIỆN

  • Mạch Arduino loại nào cũng được (UNO, Nano, Pro mini,…)
  • Module thu sóng RF 433Mhz (hoặc 315Mhz) – Mình dùng Module XD-RF-5V trong bài này.
  • Remote RF 433Mhz (hoặc 315Mhz) HOẶC cảm biến RF HOẶC module phát sóng RF
  • Bo cắm test
  • Dây cắm test

MỘT VÀI LOẠI MODULE THU RF

Module thu XD-RF-5V

 

Module phát RF FS1000A và thu RF XY-MK-5V

MẠCH NGUYÊN LÝ

Module thu tín hiệu RF sẽ có một hoặc nhiều chân Data.

Các bạn chỉ việc chọn một trong các chân Data trên module, sau đó kết nối chân đó với GPIO của mạch Arduino.

Arduino Pin  433 MHz Receiver Pins
GND GND
5V VCC
Digital Pin 2 (D2) Data

 

Sơ đồ nối dây

 

Thực tế có thể dùng mạch Arduino Nano cho nhỏ gọn

LẬP TRÌNH

Đầu tiên, các bạn phải cài thử viện rc-switch cho phần mềm Arduino IDE

Hướng dẫn thêm mới thư viện trong Arduino IDE

Thêm thư viện rc-switch

Sau khi đã thêm thư viện thành công, chúng ta mở code mẫu có sẵn trong thư viện rc-switch.

  • Tại phần mềm Arduino IDE, vào File -> Excamples -> rc-switch -> ReceiveDemo_Simple

CODE ReceiveDemo_Simple

/*
  Simple example for receiving
  
  https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    
    Serial.print("Received ");
    Serial.print( mySwitch.getReceivedValue() );
    Serial.print(" / ");
    Serial.print( mySwitch.getReceivedBitlength() );
    Serial.print("bit ");
    Serial.print("Protocol: ");
    Serial.println( mySwitch.getReceivedProtocol() );

    mySwitch.resetAvailable();
  }
}

CODE ReceiveDemo_Advanced

  • Tại phần mềm Arduino IDE, vào File -> Excamples -> rc-switch -> ReceiveDemo_Advanced
/*
  Example for receiving
  
  https://github.com/sui77/rc-switch/
  
  If you want to visualize a telegram copy the raw data and 
  paste it into http://test.sui.li/oszi/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2
}

void loop() {
  if (mySwitch.available()) {
    output(mySwitch.getReceivedValue(), mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(), mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
    mySwitch.resetAvailable();
  }
}

Sau khi nạp code, mở Terminal của phần mềm lên và bấm 1 nút trên Remote RF.

Mã của nút bấm đó như ảnh dưới

Xem VIDEO ở đầu bài viết để rõ hơn cách dùng nhé!

Mã nút nhấn của Remote RF đọc được

Điều khiển thiết bị bằng Remote vừa giải mã

Sau khi đọc được mã của Remote (Mỗi nút trên Remote là 1 mã khác nhau), các bạn có thể tận dụng đoạn mã đó để gán vào code điều khiển thiết bị.

Chân điều khiển relay là chân 13 trên mạch Arduino.

Xem VIDEO ở đầu bài viết để rõ hơn cách làm nhé!

/*
  Simple example for receiving
  
  https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>
#define relay (13)
RCSwitch mySwitch = RCSwitch();
unsigned long num ;
void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(0);  // Receiver on interrupt 0 => that is pin #2

  pinMode(relay, OUTPUT);
  digitalWrite(relay, HIGH);
}


void loop() {
  if (mySwitch.available()) {
    
    Serial.print("Received ");
    Serial.print( mySwitch.getReceivedValue() );
    Serial.print(" / ");
    num=mySwitch.getReceivedValue();
    if(num==15307640)
    {digitalWrite(relay, LOW);   //thay đổi số 15307640 tương ứng
    } 
    if(num==15307636)
    {digitalWrite(relay, HIGH);  //thay đổi số 15307636 tương ứng
    }
    mySwitch.resetAvailable();
  }
}

CHÚC CÁC BẠN THÀNH CÔNG!

5/5 - (7 bình chọn)
  • Chia sẻ lên Facebook
  • Chia sẻ lên Twitter
  • Chia sẻ lên LinkedIn

Thuộc chủ đề:ARDUINO PROJECT, RF – FM

Bài viết trước « IN-8 (ИН-8)
Bài viết sau Mạch điều khiển đèn tự động dùng quang trở và 555 »

Reader Interactions

Bình luận

    Để lại một bình luận Hủy

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

  1. Pham Minh Dang viết

    21/02/2023 lúc 16:32

    em lam theo da nap code nma k xem dc terminal

    Bình luận
    • admin viết

      01/03/2023 lúc 08:21

      Kiểm tra Baud Rate nhé

      Bình luận

Sidebar chính

Zalo hỏi đáp 24/7

Theo dõi qua mạng xã hội

  • Facebook

Bạn đang tìm gì?

Bài viết mới nhất

Bảng tra tham số IGBT

Bảng tra tham số IGBT

16/01/2026

Hướng dẫn cài đặt IAR Embedded Workbench cho 8051

16/01/2026

Bảng tra Varistor phần tử bảo vệ quá áp

Bảng tra Varistor phần tử bảo vệ quá áp

16/01/2026

Mạch khuyếch đại có độ méo thấp

Mạch khuếch đại có độ méo thấp

16/01/2026

Thông số dây quấn cách điện cho máy biến áp và cuộn kháng

Thông số dây quấn cách điện cho máy biến áp và cuộn kháng

15/01/2026

Danh mục

  • DỰ ÁN & MẠCH ĐIỆN (241)
    • Công nghiệp (16)
    • Dân dụng (29)
    • Điện tử ứng dụng (178)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (24)
      • Cảm biến (40)
      • Động cơ bước (5)
      • Kiểm thử và đo đạc (23)
      • LCD (15)
      • LED (20)
      • Mạch linh tinh (27)
      • Nguồn điện (42)
      • Pin sạc/Acquy và mạch sạc (24)
      • RF – FM (5)
      • Robotic (2)
    • HOME AUTOMATION (23)
    • Lập trình (82)
      • ARDUINO PROJECT (39)
      • ESP32 PROJECT (6)
      • ESP8266 PROJECT (17)
      • RASPBERRY PI PROJECT (9)
      • Vi điều khiển (24)
    • Nixie Clock (3)
  • Kiến thức căn bản (168)
    • Arduino (36)
    • Điện tử cơ bản (77)
    • Điện tử số (9)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (16)
    • Raspberry Pi (10)
    • Vi điều khiển (16)

Footer

Bài viết mới nhất

  • Bảng tra tham số IGBT
  • Hướng dẫn cài đặt IAR Embedded Workbench cho 8051
  • Bảng tra Varistor phần tử bảo vệ quá áp
  • Mạch khuếch đại có độ méo thấp
  • Thông số dây quấn cách điện cho máy biến áp và cuộn kháng
  • Mạch điều chỉnh âm lượng (Audio Fader)

Bình luận mới nhất

  • Hè trong IC 4017 và ứng dụng 555 với 4017
  • Dương trong Mua đồng hồ vạn năng loại kim hay số?
  • admin trong Tự chế mỏ hàn xung cao tần 12v nhỏ gọn
  • admin trong Tự làm KIT thực hành Arduino

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.