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.
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)