Website development for visualizing and logging LoRa sensor readings
Budget: $80 – $150 USD
I would like a website developed that will be taking in the HTTP data from a LoRa Gateway (RAK) and turn that into a live-view webpage with a log file in the back.
The demo shall have two devices sending POST packets to the site. The LoRa Gateway POST package has the following RAW format:
{
"applicationID": "1",
"applicationName": "Test",
"devEUI": "1111111111ffffff",
"deviceName": "LoRa Test 1",
"timestamp": 1628617851,
"fCnt": 79,
"fPort": 1,
"data": "4ewEKwAG",
"data_encode": "base64"
}
The website should be keeping a log file for each connected device (differentiated by the "device name" or DEVEUI) and visualize, in real time, the data from each connected device. The data is base64 encoded, so the payload will have to be decoded once it reaches the web server. The code for decoding the payload to HEX is provided in the files section. The basic payload decoder is also provided in the attached files. The timestamp will need to be converted to human time as well (it is an epoch/unix timestamp).
As can be seen by the attached decoder, each LoRa device has three sensors - temperature, pressure, and a counter. The visualization can be performed in any way the developer sees fit (gauges, bars, etc) but the differentiation between the two LoRa devices needs to be clear. There must be different log files for each different device as well. An example picture shows my expectations of the website but that is just an example - I do not require the same design, as long as the end result contains all of the relevant information.
The website may be developed into any free online hosting service and I can point the gateway to be sending the data packages to it at any given time in order to test/fine-tune its function. The access to that free online host account will need to be fully transferred to me with the completion of this project, along with all relevant files/data. Please note that the website must be stand-alone and not based on a proprietary service or code.
Note that this is an educational demo, therefore the code should be relatively simple. Notes within the code will be appreciated.
The demo shall have two devices sending POST packets to the site. The LoRa Gateway POST package has the following RAW format:
{
"applicationID": "1",
"applicationName": "Test",
"devEUI": "1111111111ffffff",
"deviceName": "LoRa Test 1",
"timestamp": 1628617851,
"fCnt": 79,
"fPort": 1,
"data": "4ewEKwAG",
"data_encode": "base64"
}
The website should be keeping a log file for each connected device (differentiated by the "device name" or DEVEUI) and visualize, in real time, the data from each connected device. The data is base64 encoded, so the payload will have to be decoded once it reaches the web server. The code for decoding the payload to HEX is provided in the files section. The basic payload decoder is also provided in the attached files. The timestamp will need to be converted to human time as well (it is an epoch/unix timestamp).
As can be seen by the attached decoder, each LoRa device has three sensors - temperature, pressure, and a counter. The visualization can be performed in any way the developer sees fit (gauges, bars, etc) but the differentiation between the two LoRa devices needs to be clear. There must be different log files for each different device as well. An example picture shows my expectations of the website but that is just an example - I do not require the same design, as long as the end result contains all of the relevant information.
The website may be developed into any free online hosting service and I can point the gateway to be sending the data packages to it at any given time in order to test/fine-tune its function. The access to that free online host account will need to be fully transferred to me with the completion of this project, along with all relevant files/data. Please note that the website must be stand-alone and not based on a proprietary service or code.
Note that this is an educational demo, therefore the code should be relatively simple. Notes within the code will be appreciated.