Trang chủ Điện - Điện tửMạch Thu Phát LoRa Ra-02 SX1278 Ai-Thinker Điều Khiển Thiết Bị Từ Xa

Mạch Thu Phát LoRa Ra-02 SX1278 Ai-Thinker Điều Khiển Thiết Bị Từ Xa

bởi Admin
8 lượt xem 6 Phút đọc

Module Lora Ra-02 SX1278 sử dụng IC SX1278 , hoạt động trên tần số 433MHz. Là module có chất lượng cao, kích thước rất nhỏ gọn (chỉ có 17 x 16 mm), truyền phổ phạm vi rộng với khả năng chống nhiễu cao và phạm vi hoạt động có thể lên đến 10Km.

thumbnail-lora-ra02-sx1278

Những thiết bị này cũng hỗ trợ chế độ (G) FSK hiệu suất cao cho các hệ thống bao gồm WMBus, IEEE802.15.4g. SX1287 chọn lọc, thu tuyến tính và IIP3 cho tiêu thụ điện năng thấp hơn đáng kể so với các thiết bị khác.

Sơ đồ chân mô-đun thu phát LoRa RA-02 (Pinout)

Lora Ra-02 Pinout
  • 3V: Module power supply
  • GND: Ground
  • MOSI: Data receive for SPI protocol
  • MISO: Data transmit for SPI protocol
  • SCK: SPI Clock
  • NSS: Module selection for SPI protocol
  • RESET: Reset module
  • DIO0: Data line 0
  • DIO1: Data line 1
  • DIO2: Data line 2
  • DIO3: Data line 3
  • DIO4: Data line 4
  • DIO5: Data line 5

Thông số kỹ thuật

  • Công nghệ điều chế LoRa Spread Spectrum
  • Giao tiếp: SPI / GPIO
  • Output RF ở mức + 20dBm-100mW
  • Điện áp hoạt động: 1.8V - 3.7V, mặc định 3.3V
  • Độ nhạy cao: -148dBm
  • Giao tiếp: SPI
  • Tốc độ truyền lên tới 300kbps
  • Hỗ trợ chế độ điều chế FSK, GFSK, MSK, GMSK, LoRa và OOK
  • Phạm vi RSSI 127dB
  • Tự động phát hiện tín hiệu RF, chế độ CAD và AFC tốc độ rất cao
  • CRC tối đa 256 byte
  • Ăng ten lò xo

Phần cứng cần thiết:

  1. SX1278 Ai-Thinker Mạch Thu Phát LoRa Ra-02 433MHz 10Km
  2. Bàn Phím 4 Nút Nhấn
  3. Arduino x 2
  4. Module 4 Relay 5V

Sơ đồ kết nối:

  • Transmitter

  • Receiver

banner

Thư Viện:

Tải xuống arduino-LoRa-master.zip

Code Transmiter:

//* LoRa                  Arduino Uno R3
//* VCC                         3.3V
//* GND                         GND
//* RST                          9
//* DIO0                         2
//* EN/NSS                       10
//* MOSI                         11
//* MISO                         12
//* SCK                          13
#include <SPI.h>
#include <LoRa.h>
int bt = 4;
int bt1 = 5;
int bt2 = 6;
int bt3 = 7;
void setup() {
  Serial.begin(9600);
  pinMode(bt, INPUT);
  pinMode(bt1, INPUT);
  pinMode(bt2, INPUT);
  pinMode(bt3, INPUT);
  while (!Serial);
  Serial.println("LoRa Sender");
  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
  LoRa.setTxPower(20);
}
void loop() {
  if (!digitalRead(bt))
  {
    {
      // send packet
      LoRa.beginPacket();
      LoRa.print("tb1");
      LoRa.endPacket();
    }
    while (!digitalRead(bt));
  }
  if (!digitalRead(bt1))
  {
    {
      // send packet
      LoRa.beginPacket();
      LoRa.print("tb2");
      LoRa.endPacket();
    }
    while (!digitalRead(bt1));
  }
  if (!digitalRead(bt2))
  {
    {
      // send packet
      LoRa.beginPacket();
      LoRa.print("tb3");
      LoRa.endPacket();
    }
    while (!digitalRead(bt2));
  }
  if (!digitalRead(bt3))
  {
    {
      // send packet
      LoRa.beginPacket();
      LoRa.print("tb4");
      LoRa.endPacket();
    }
    while (!digitalRead(bt3));
  }
}

Code Receiver:

#include <SPI.h>
#include <LoRa.h>
int tb1 =  4;
int tb2 =  5;
int tb3 =  6;
int tb4 =  7;
String data="";
void setup() {
  Serial.begin(9600);
  while (!Serial);
  Serial.println("LoRa Receiver");
  pinMode(tb1,OUTPUT);
  pinMode(tb2,OUTPUT);
  pinMode(tb3,OUTPUT);
  pinMode(tb4,OUTPUT);
  if (!LoRa.begin(433E6)) {
    Serial.println("Starting LoRa failed!");
    while (1);
  }
}
void loop() {
  // try to parse packet
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    while (LoRa.available()) {
      data = LoRa.readString();
    }
    Serial.println(data);
    LoRa.packetRssi();
  }  
  
  if(data=="tb1")
  {
      digitalWrite(tb1,!digitalRead(tb1));
      Serial.print("TB1:");
      Serial.print(digitalRead(tb1));
      Serial.println(); data="";
  }
  else if(data=="tb2")
  {
      digitalWrite(tb2,!digitalRead(tb2));
      Serial.print("TB2:");
      Serial.print(digitalRead(tb2));
      Serial.println();data="";
  }
  else if(data=="tb3")
  {
      digitalWrite(tb3,!digitalRead(tb3));
      Serial.print("TB3:");
      Serial.print(digitalRead(tb3));
      Serial.println(); data="";
  }
  else if(data=="tb4")
  {
      digitalWrite(tb4,!digitalRead(tb4));
      Serial.print("TB4:");
      Serial.print(digitalRead(tb4));
      Serial.println(); data="";
  }
}

Video:

Để lại bình luận

Focus Mode

Đã phát hiện trình chặn quảng cáo

Vui lòng hỗ trợ chúng tôi bằng cách tắt tiện ích chặn quảng cáo (AdBlocker) trên trình duyệt của bạn khi truy cập trang web của chúng tôi.