This is an Arduino library for LoRa@FIIT communication using the LoRa Radio Node 1.0 at 868 MHz.
To use this library, you'll need PlatformIO IDE installed. Add the following line to your platformio.ini
dependencies:
lib_deps =
LoRa@FIIT
#include <lora.h>
// Define your pins
#define RFM95_CS 10
#define RFM95_INT 2
#define RFM95_RST 9
lora LoRa(RFM95_CS, RFM95_INT, RFM95_RST);
void setup() {
LoRa.On(); // Reset and initialize the chip
LoRa.SetDefault(); // Set default settings
}
void loop() {
// Your LoRa communication code here
}
lora(uint8_t slaveSelectPin, uint8_t interruptPin, uint8_t resetPin);
Initialize LoRa module with the specified pins.
void On()
: Reset and initialize the chip.void SetDefault()
: Set default LoRa settings.bool SetBW(float bandwidth)
: Set the bandwidth.bool SetCR(uint8_t codingRate)
: Set the coding rate.bool SetSF(uint8_t spreadingFactor)
: Set the spreading factor.bool SetFrequency(float frequency)
: Set the operating frequency.bool SetPW(uint8_t power, bool useRF0)
: Set the transceiver power.void Awake()
: Turn on the LoRa module.void Sleep()
: Put the LoRa module to sleep.bool Send(uint8_t* data, uint8_t &len)
: Send basic data message with ACK.bool Send(uint8_t type, uint8_t ack, uint8_t* data, uint8_t &len)
: Send a specific message.bool SendHello(uint8_t* data, uint8_t &len)
: Send a "Hello" message.bool SendEmergency(uint8_t* data, uint8_t &len)
: Send an emergency message.unsigned long Getsendtime()
: Get the time when the message was sent.uint8_t Receive(uint8_t* buf, uint8_t &len)
: Turn on receiving mode.bool Register(uint8_t* buffer, uint8_t &len)
: Register the device.unsigned long GetDutyWait()
: Get the wait time due to duty cycle.uint32_t WaitDutyCycle(uint8_t len, float bw, uint8_t sf, uint8_t cr, uint8_t type)
: Handle duty cycle.
bool _manual
: Flag for manual mode.uint8_t currentSF
: Current spreading factor.float bwDC
: Current bandwidth.uint8_t percentageDC
: Current duty cycle percentage.uint8_t crDC
: Current coding rate.uint8_t sfDC
: Current spreading factor.uint8_t pwDC
: Current power.DH dhkey1
: Diffie-Hellman key instance.uint16_t _sequence_number
: Current sequence number.unsigned long _sendtime
: Time when the message was sent.
See the LICENSE file for details.
- Author: Simon Štefunko, Alexander Valach, Michal Greguš