Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devicehive/lora-gateway
Simple gateway implementation between LoRa and DeviceHive.
https://github.com/devicehive/lora-gateway
devicehive iot iot-gateway lora lora-gateway lorawan
Last synced: about 1 month ago
JSON representation
Simple gateway implementation between LoRa and DeviceHive.
- Host: GitHub
- URL: https://github.com/devicehive/lora-gateway
- Owner: devicehive
- License: apache-2.0
- Created: 2017-10-16T13:39:55.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-24T17:21:26.000Z (about 7 years ago)
- Last Synced: 2024-08-03T16:08:35.124Z (5 months ago)
- Topics: devicehive, iot, iot-gateway, lora, lora-gateway, lorawan
- Language: Python
- Size: 17.6 KB
- Stars: 7
- Watchers: 7
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-lora-lorawan - DeviceHive LoRa gateway - This project implements LoRa gateway using DeviceHive cloud service. (Libraries)
README
# DeviceHive [LoRa](https://www.lora-alliance.org/) gateway
This project implements LoRa gateway using DeviceHive cloud service. It is a
transparent gateway between DeviceHive cloud service and LoRa radio.Everything
which LoRa receives sends to DeviceHive server as notifications. Command 'lora'
transmit 'data' field into LoRa. It is a transparent gateway between DeviceHive
cloud service and LoRa radio.# Hardware
This project uses [Dragino LG01](http://www.dragino.com/products/lora/item/117-lg01-p.html)
gateway as a reference hardware.# Installation
Make sure that gateway firmware version is 4.3 or newer. You can get new
firmware [here](http://www.dragino.com/downloads/index.php?dir=motherboards/ms14/Firmware/IoT/)
- Install Python DeviceHive library. Connect with ssh to the router
(`ssh [email protected]`, password `dragino` by default) and run:
```bash
curl -SL https://github.com/devicehive/devicehive-python/archive/2.1.0.tar.gz | tar zx
cd devicehive-python-2.1.0/
python setup.py install
cd ..
rm -rf devicehive-python-2.1.0/
```
- Copy gateway package:
```bash
mkdir -p /opt/devicehive && curl -SL https://github.com/devicehive/lora-gateway/releases/download/v0.0.2/gateway.tar.gz | tar zx -C /opt/devicehive
```
- Install it with:
```bash
/opt/devicehive/gateway.py install
```
This command flashes firmware into gateway. Firmware automatically boots on power on and
starts Python part.
- Configure gateway with DeviceHive server URL, credentilals and LoRa frequency. Open web
browser http://gateway-ip:8000 and enter settings there. Click on `save`.To remove it completly, remove `/opt/devicehive` directory,
`pip uninstall devicehive` and flash(or just leave it) any new firmware to the
microcontroller part of the gateway.# Usage
Gateway boots automatically on power on. It works on specfied in config frequency and
receives all LoRa packages which send to DeviceHive server as notifications. Notification
name is always `LoRa`. Parameters contains field `data` which is the data that was received.
`rssi` field means received signal strength indicator, units are dBm.
Example:
```json
{
"data": {
"A1":1.63,
"A0":1.77,
"A3":1.33,
"A2":1.48,
"A5":0.64,
"A4":1.15
},
"rssi": -45
}
```
If LoRa data is a json it will be json object in this field. If LoRa data is a string or raw data it
will be string object in this field. Any non pritable character, it will be escaped with `\\x00`
sequence where `00` is hex code of char. For example newline char `\\x0a`.To send data to LoRa, send a command to dateway device with `LoRa` name(case
insensetive) and `data` field in the parameters. It can be json object or string which will be
sent as bytes to radio. Any non pritable charactes should be escaped with `\\x00` sequence
where `00` is hex code of char.# Sample LoRa device
There is a simple Arduino based(with LoRa hat) devices sample. This sample can be used for
test of demo purpose. See details [here](./lora-demo-device).# Building from sources
To build firmwares and/or flash it separatly use [Arduino IDE](https://www.arduino.cc/en/Main/Software).
More deatiled description about operating Dragino gateway is aviliable [here](http://www.dragino.com/downloads/downloads/UserManual/LG01_LoRa_Gateway_User_Manual.pdf).
To generate release tarball:
- build [lora-gateway-firmware](./lora-gateway-firmware) with Arduino IDE(Sketch -> Export
compiled Binary)
- run `gen_release.sh` script
Tarball will be created in repo root directory.# License
Apache License, Version 2.0. See [LICENSE](./LICENSE) file