Giter Site home page Giter Site logo

lukejin-dev / lorawan-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gotthardp/lorawan-server

0.0 2.0 0.0 860 KB

Compact server for private LoRa networks

Home Page: https://gotthardp.github.io/lorawan-server

License: MIT License

Makefile 0.55% Erlang 70.63% JavaScript 22.66% HTML 4.38% Shell 0.81% Batchfile 0.97%

lorawan-server's Introduction

Compact server for private LoRa networks

Open-source LoRaWAN Server that integrates both the network-server and the application-server. This is useful for application providers that operate their own LoRa network, or for device and application developers.

The server:

  • Communicates with (any number of) remote LoRaWAN gateways. It currently supports:
  • Performs all required encryption and integrity checks.
  • Invokes internal modules with application logic. It provides examples for:
  • Invokes external applications. It currently supports connections via:
  • Supports (any number of) Class A or Class C devices.
  • Supports both the activation by personalization and the over-the-air activation.
  • Supports both unconfirmed and confirmed data uplink and downlink.
  • Supports the EU 863-870, US 902-928, CN 779-787, EU 433, AU 915-928 and CN 470-510 band.
  • Supports per-node configuration of TX power and data rate (manual ADR).
  • Runs on all major operating systems, including Windows, Linux, OS X and Solaris, even on embedded systems like OpenWrt or in a Docker container.
  • Does not crash as it's implemented in Erlang, which is designed for building fault-tolerant systems.
  • Is free, distributed under the MIT license.

The server aims to be an all-in-one software package for small private LoRa networks. However:

  • You still need to buy your LoRaWAN Gateway.
  • You will need to deploy and maintain it yourself. (With my support.)
  • It will probably never support the sophisticated management features of the commercial-grade network-servers.

Let me know if you (intend to) use the lorawan-server. The API may change and some functions may not be implemented. I will gladly assist you. Please add an Issue if you find a bug or miss a feature.

Documentation

The lorawan-server includes all functions required to run a private LoRa network. You only need to install the Erlang/OTP 18 or later.

The main components of the lorawan-server are shown in the following figure:

alt tag

Usage

The Installation Instructions describe how to build, install and configure the server. You can use a Debian package, download the binary release and run it manually or build the server from source codes.

After the installation you have to:

  • Add LoRaWAN gateways you want to use.
  • Configure each device you want to use, either as a personalized device (ABP) or as an over-the-air activated (OTAA) device.

Run the lorawan-server release by:

cd lorawan-server
bin/lorawan-server

Terminate the lorawan-server by:

bin/lorawanctl stop

You can administrate and manage the server via a set of web-pages or via a REST API as described in the Administration Guide and in the Adaptive Data Rate (ADR) Guide.

Integration

You can integrate lorawan-server with external applications using the WebSocket interface as described in the WebSocket Guide.

You can also use the internal web server and develop application modules, which may offer custom REST APIs. See the Handler Development Guide.

Development

Build Status

The lorawan-server is designed to be highly extensible. I encourage you to Learn You Some Erlang and develop your own applications.

To implement a new application you need to create a new module implementing the lorawan_application behaviour as described in the Handler Development Guide.

Copyright and Licensing

The lorawan-server is distributed under the MIT License. See the LICENSE.

Copyright (c) 2016-2017 Petr Gotthard

Sponsors

I2OT is the first industrial wireless sensor system that provides a total solution for industrial sensing needs.

lorawan-server's People

Contributors

gotthardp avatar qingchuwudi avatar

Watchers

James Cloos avatar Lu, Ken avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.