Mạch Thu Phát LoRa Ra-02 SX1278 Ai-Thinker Điều Khiển Thiết Bị Từ Xa
Module Lora Ra-01 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.
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.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:
Sơ đồ kết nối:
- Transmitter
- Receiver
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:
//* 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 tb1 = 4; int tb1 = 5; int tb1 = 6; int tb1 = 7; String data = ""; void setup() { Serial.begin(9600); while (!Serial); Serial.println("LoRa Receiver"); pinMode(tb1, 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(); } switch (data) { case "tb1": { digitalWrite(tb1, !digitalRead(tb1)); Serial.println(digitalRead(tb1)); break; } case "tb2": { digitalWrite(tb2, !digitalRead(tb2)); Serial.println(digitalRead(tb2)); break; } case "tb3": { digitalWrite(tb3, !digitalRead(tb3)); Serial.println(digitalRead(tb3)); break; } case "tb4": { digitalWrite(tb4, !digitalRead(tb4)); Serial.println(digitalRead(tb4)); break; } } data = ""; }
Đăng nhận xét