Skip to content

Elixir LoRa - Send and Receive data using LoRa radios.

Notifications You must be signed in to change notification settings

wpwaldner/Elixir-LoRa

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoRa

Hex.pm

This is a module for transmitter data using LoRa Radios.

Available for Nerves Project with Semtech SX1276/77/78/79 based boards.

Getting started

Hardware

Example using Raspberry Pi and Adafruit RFM9xx Radio

Lora

Installation

The package can be installed in your Nerves Project by adding LoRa to your list of dependencies in mix.exs:

def deps do
  [
    {:lora, "~> 1.0"}
  ]
end

Configure SPI

Can be set the parameters of SPI and GPIO pin for the reset of radio.

standard values: spi: "spidev0.0", spi_speed: 8_000_000, rst: 25

{:ok, lora_pid} = LoRa.start_link([spi: "spidev0.1", rst: 27])

Configure Radio

iex> LoRa.begin(lora_pid, 433.0e6)
:ok
iex> LoRa.set_spreading_factor(lora_pid, 8)
:ok
iex> LoRa.set_signal_bandwidth(lora_pid, 62.5e3)
:ok

Sending data

iex> LoRa.send(lora_pid, [value: 10])

Receiveing data

When the radio receives some data it sends a message to the process that started the link.

iex> flush()
{:lora,
 %{
   packet: "hello world",
   rssi: -90,
   snr: 6,
   time: ~U[2020-05-06 21:13:11.161125Z]
 }}
:ok

About

Elixir LoRa - Send and Receive data using LoRa radios.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 100.0%