So What we are building to solve this problem is an easy-to-use framework that will abstract the process of transmitting a message over LoRaWAN and make it easier to develop mobile crowd-sensing applications that communicate in a efficient way. Our framework accomplishes this by implementing an encoding scheme behind a simple interface. The developer of a LoRaWAN application such as the CANIS lab developers for example can use our configuration service that is on the proxy server as you can see here to create an encoding scheme tailored for their application. Then, with just a single call to our LoRaMessenger library, a message like an HTTP message for examples can gets encoded, fragmented, and transmitted over LoRaWAN network. On the other end, a proxy server will receive and decode these messages before sending them off to their intended destination on a web server.
This framework will help Dr. Vigil-Hayes and the CANIS lab efforts by making LoRaWAN an easier technology to develop for and will serve as a stepping stone for future mobile crowd-sensing projects.
Figure 1: An architecture diagram which shows our system high-level components and how they will interact with each other.
The LoRaMessenger will be an Android library that provides a black box interface for an Android app to call on in order to send a message over LoRaWAN. As shown in Figure 1, this interface will be responsible for encoding the message by referencing the encoding tables that are generated on the proxy server configurable services. The developer is responsible for copying the generated encoding table files and including them with their app. After the message gets encoded, the message is forwarded to the LoRa node via a wifi connection that requires an IP address and a port number. Then, the message will be ready to be sent over the loRaWAN network by the CANIS lab protocols.
Based on Figure 1, the configurable service will live on the proxy server component and serves as a utility to generate encoding tables. Future developers will submit a collection of the valid data values their app might send, and these values will be related to byte code keys. After it gets customized, the encoding tables will be written to a JSON file that will be copied to the LoRaMessenger package by future developers to synchronize the encoding scheme between the LoRaMessenger and proxy server. Later, both the LoRaMessenger and proxy server will refer to their copy of the encoding table to encode and decode messages respectively.
The proxy server will be responsible for receiving and handling messages from the LoRa Gateway and decoding it based on the encoding table. After the message gets decoded, the proxy server will simply forward the message to its destination.
Team 6: Team Lora