Lora-Net

Team Name

Almost-Elbit

Timeline

Fall 2023 – Spring 2024

Students

  • Juan Angel Hernandez
  • Jason Lazo
  • Phuong Anh Le
  • Michael Nguyen
  • Zaynab Shaikh

Sponsor

Dr. Christopher McMurrough

Associate Professor of Instruction and Director of Senior Design – The University of Texas at Arlington

Computer Science and Engineering

Abstract

LoRa-Net is intended to establish and control module communication within a mesh network. The overall goal of the project is to integrate a main application, drones, LoRa capable Arduino modules, and the Meshtashtic project to create a seamless communication mesh network that is based on LoRa technology.

The project offers value by bridging the digital divide and providing insights for establishing temporary or permanent networks. The drone subsystem’s implications extend to future applications, promising advancements in remote infrastructure deployment.

Background

There are many places where the internet is a luxury or not accessible to the general population, whether it is due to poverty or geographical issues. With the creation of a remote mobile network, people in remote areas can start to learn online, check in on distant loved ones, find new hobbies, apply for jobs, order goods, invest, etc. While the technology does exist, it is not readily available for the general consumer.

Emergencies could also be a domain where this type of technology can be made more available, especially for quick and effective communication. Not only will the consumers of these deployable networks benefit, but the hope is to apply them in broader context different situations or different people or applications.

Project Requirements

  • Users must be able to connect their preferred device with the Arduino modules
  • Users must be able to direct the Arduino modules what to broadcast into the network
  • Users must be able to decode and read received transmissions within the network
  • The project system must be able to identify individual modules between one another

System Overview

The team proposed creating a separate application that will act as the main interface between the User and the project system. The application would allow the user to interact with the Arduino modules, including sending messages to the modules for broadcast and reading received transmissions. The application will store and display messages to the user as requested. The application will also connect with the Google Maps API in order to accurately display node location data if available.

The Arduino modules are connected to various sensors that will continuously read data in order for each LoRa-transmission to contain the current status of the module. Communication between the modules will be done through LoRa technology with each broadcast encoded using nanoPB. Both the application and the individual modules will be able to decode and encode transmissions.

While not implemented yet, the Arduino modules are also intended to integrate with individual drones. Users would be able to use the main application to remotely control the drone, effectively manipulating the shape of the mesh communication network.

Results

After experimenting with it for about a month, the team was unable to figure out how to work with the Meshtashtic project to create our own application. It was instead decided that the application will be coded from scratch using the Flutter framework. In theory, this was so that development of the app will be seamless across different platforms. Currently, app development is limited to the Android platform because of the library used to create a serial monitor for a connected Arduino module.

Hardware Schematic
Figure 1. Hardware Schematic showing the connections between the Arduino Board and the GPS module
Lora-net Chat Tab
Figure 2. Chat Tab of the LoRa-Net Application

Currently the application:

  • contains SQLite functionality by creating a FFI plugin with the SQLite C-Library
    • Able to Insert and Pull messages between a locally stored database
    • Able to Insert and Pull node information between a locally stored database
  • is able to work with NanoPB to decode received LoRa-Transmissions from a connected board
  • contains a Serial Monitor function to read from a connected module
  • connected to the Google Maps API
    • able to mark nodes on the map based on location data pulled from the database.

Future Work

  • Bluetooth connection function between a device and an Arduino module
  • Implement repeater functionality for Arduino modules. Basically when a module received a transmission not intended for itself it would rebroadcast it, extending the range of the transmission.
  • Filter messages based on board IDs on the App
  • Allow a user to select a specific board (another user) to send a message to.
  • Integrate the project with drones, in order for the app to remotely control the location of the module
  • Store map data somewhere so that the app wouldn’t need to have an initial internet connection to load the map.

Project Files

Project Charter (Project_Charter)

System Requirements Specification (System_Requirements_Specification)

Architectural Design Specification (Architectural_Design_Specification)

Detailed Design Specification (Detailed_Design_Specification)

Poster (Lora_Net_InnovationDayPoster)

mxn5754