LoRa (Long Range) is a wireless modulation technique which operates on sub-gigahertz bands designed for low bitrate and long distance wireless communication. On the other hand, LoRAWAN is a Media Access Control protocol which defines how LoRa devices communicate. Our project aims to evaluate LoRa/LoRaWAN transmission bitrate and error rates to assess the technology’s reliability within the Binghamton, NY region - a region known for its dense forests and mountainous terrain potentially interfering with LoRa/LoRaWAN transmissions and receptions.

Full Project Abstract
In the platformio.ini file, update LoRaWAN_devEui, LoRaWAN_appEui, and LoRaWAN_appKey with the respective keys that were creating during device registration. The expected values are comma delimited - 2 hex value strings e.g.
-D LoRaWAN_devEui="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00"
-D LoRaWAN_appEui="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00"
-D LoRaWAN_appKey="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00"DO NOT commit platformio.ini after the keys are added. To ignore further changes of platformio.ini, the developer can use the git command git update-index --assume-unchanged platformio.ini so the file does not show up in the git stage area after changes are made.
If the keys are accidentally committed, roll back the last commit and force push so the keys do not show up in the git history.
TODO
Run ./venv.sh to create a python virtual environment and download the requirements. Activate the environment using source venv/bin/activate before running the python script.
cd into python/ttn-mqtt and run the python script using ./main.py to run the decoder.
Under the advisement of Dali Ismail, Ph.D. at Binghamton University, State University of New York, Thomas Watson College of Engineering and Applied Science. 2024.