Introduction: IFrogLab LoRa Send and Receive Data Between 9.9miles(15KM)

Picture of IFrogLab LoRa Send and Receive Data Between 9.9miles(15KM)
iFrogLab Lora 868/900/915 MHz SX1272 module compatible

iFrogLab IL-LORA1272 LoRa Ultra Long Range Transceiver 15 Km

Features:

  1. Frequency Range: 868/900/915MHz
  2. Modulation: FSK/GFSK/MSK/LoRaSPI Data Interface
  3. SPI Data Interface Sensitivity: -137dBm
  4. Output Power: +20dBm Data Rate: <300 kbps 127dB dynamic Range RSSI Excellent blocking immunity Preamble detection Automatic RF sense and CAD monitor Built-in bit synchronizer for clock recovery Packet engine up to 256 bytes with CRC
  5. Working Temperature: -40°C ~+80°C Build-in temperature sensor
  6. Standby current: ≤ 1uA
  7. Supply voltage: 1.8~3.6V

iL-LORA1272 is a type of low-cost RF front-end transceiver module based on SX1272 from Semtech Corporation. It keeps the advantages of RFIC SX1272 but simplifies the circuit design. The high sensitivity (-137dBm) in LoRa modulation and 20dBm high power output make the module suitable for low range and low data rate applications. iL-LORA1272 module consists of RFIC SX1272 and include powerful MCU, thin SMD crystal and antenna matching circuit. The antenna port is well matched to standard 50 Ohm impedance. Users don’t need to spend time in RF circuit design and choose suitable antennas for different applications. iL-LORA1272 operates at 1.8~3.6V with extra low standby current which makes it suitable for battery powered-up applications. Because iL-LORA1272 is purely hardware module and it adopts ±10ppm crystal which the resolution of it places a important role in calculating spreading factor, bandwidth, etc. In addition, We add powerful MCU to help Users that don’t need to read the datasheet of SX1272, you just go through UART to control this module and will easy to use the module in the best performance.

Step 1: LoRa Connects to Arduino

Picture of LoRa Connects to Arduino
  1. Install Arduino program to download and install
  2. Download the iFrogLab LORA, IL-LORA1272 library and examples here IL-LORA1272 / Samples-Arduino / Ver2 / CommandsControlSample / LoRa_1_Commnd / LoRa_1_Commnd.ino
  3. In the Arduino above, through File / open open LoRa_1_Commnd this sample program sample program
  4. Wire through the following below table

Arduino, iFrogLab LoRa IL-LORA1272
Power supply: 3.3V, Pin 3 VDD

Ground: GND, Pin 1 GND

Received IRQ: Pin 9 , Pin 2 Host_IRQ

UART: Pin 10, Pin 7 UART_TX

UART: Pin 11, Pin 8, UART_RX

IFrogLab LORA, IL-LORA1272 Reference pin diagram

Step 2: Upload Arduino Code, Use LoRa Sending the Data.

Picture of Upload Arduino Code, Use LoRa Sending the Data.

/*
* iFrogLab IL-LORA1272
* Function, ARDUINO , IFROGLAB LORA, IL-LORA1272
* Power:, 3.3V ,Pin 3, VDD
* Gound:, GND ,Pin 1, GND
* Reciver IRQ:, Pin 9 , Pin 2, Host_IRQ
* UART, Pin 10 ,UART_RX Pin 7, UART_TX
* UART, Pin 11 ,UART_TX Pin 8, UART_RX
*/
#include 〈 iFrogLabLoRaLibrary.h 〉

iFrogLabLoRaLibrary LoRa(10,11,9); // RX, TX, DataReady
void setup() {
Serial.begin(9600);
while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only
}
byte TXRX=2; // Mode : Sleep(0x00)、StandBy(0x01)、Tx(0x02)、Rx(0x03)。
// Freq : 915.00MHz --> 91500 --> 16Hex --> 0x1656C --> 0x01 0x65 0x6C
// SX1272 Range(860.00 ~ 1020.00MHz),SX1276 Range(137.00 ~ 1020.00MHz)。


byte Freq1=0x01;
byte Freq2=0x65;
byte Freq3=0x6c;
byte Power =0x3;
// Power:125k(0x01)、250k(0x2)、500k(0x3)。Default 500K。

byte* data=LoRa.Setup(TXRX, Freq1, Freq2, Freq3, Power);
//(); Serial.print("Return:");
Serial.print(data[0],HEX);
Serial.print(data[1],HEX);
Serial.print(data[2],HEX);
Serial.print(data[3],HEX);
Serial.println(""); Serial.println("--------------------------");
Serial.println("");

//LoRa.WriteMode();
//Sending Data 16 bytes,
byte t1[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
LoRa.Write16bytesBroadcast(t1,16);

}

void loop() {

}

Step 3: Reciver Data

/*

* iFrogLab IL-LORA1272
* Function, ARDUINO , IFROGLAB LORA, IL-LORA1272
* Power:, 3.3V ,Pin 3, VDD
* Gound:, GND ,Pin 1, GND
* Reciver IRQ:, Pin 9 , Pin 2, Host_IRQ
* UART, Pin 10 ,UART_RX Pin 7, UART_TX
* UART, Pin 11 ,UART_TX Pin 8, UART_RX
*/
#include 〈 iFrogLabLoRaLibrary.h 〉

iFrogLabLoRaLibrary LoRa(10,11,9); // RX, TX, DataReady
void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
byte TXRX=3; // Mode : Sleep(0x00)、StandBy(0x01)、Tx(0x02)、Rx(0x03)。
// Freq : 輸入915.00MHz先轉成91500再轉16進位方式填入0x1656C -> 0x01 0x65 0x6C,SX1272範圍(860.00 ~ 1020.00MHz),SX1276範圍(137.00 ~ 1020.00MHz)。
byte Freq1=0x01;
byte Freq2=0x65;
byte Freq3=0x6c;
byte Power =0x3;
// Power:125k(0x01)、250k(0x2)、500k(0x3)。Default 500K。

byte* data=LoRa.Setup(TXRX, Freq1, Freq2, Freq3, Power);


Serial.print("Return:");
Serial.print(data[0],HEX);
Serial.print(data[1],HEX);
Serial.print(data[2],HEX);
Serial.print(data[3],HEX);

Serial.println("");
Serial.println("--------------------------");
Serial.println("");


// Read Data
byte* data2=LoRa.Read16bytesBroadcast();
Serial.println("--------------------------");
Serial.println(data2[0],HEX);
Serial.println(data2[1],HEX);
Serial.println(data2[2],HEX);
Serial.println(data2[3],HEX);
Serial.println(data2[4],HEX);
Serial.println(data2[5],HEX);
Serial.println(data2[6],HEX);
Serial.println(data2[7],HEX);
Serial.println(data2[8],HEX);
Serial.println(data2[9],HEX);
Serial.println(data2[10],HEX);
Serial.println(data2[11],HEX);
Serial.println(data2[12],HEX);
Serial.println(data2[13],HEX);
Serial.println(data2[14],HEX);
Serial.println(data2[15],HEX);
}

void loop() { }

Comments

JonM152 (author)2017-01-03

WOW !!! This is great exactly what I was looking for. And I was able to find it on Amazon here https://www.instructables.com/id/IFrogLab-LoRa-Send-and-Reciver-Data-Between-99mile/

About This Instructable

1,652views

31favorites

License:

Bio: http://www.powenko.com https://www.facebook.com/app_scoped_user_id/866601820074742/
More by Powen Ko:IFrogLab LoRa Send and receive data between 9.9miles(15KM)Raspberry Pi cameraRaspberry Samba file server software
Add instructable to: