Skip to content

hedi0/TrackOra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

254 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 TrackOra: Long-Range IoT Tracking & Monitoring

A comprehensive IoT tracking solution leveraging LoRaWAN technology for long-range, low-power communication, accessible via intuitive mobile and web applications.

Version License Stars Forks

example-preview-image

✨ Features

  • 🌐 Long-Range Data Transmission: Utilize LoRa technology for robust, long-distance communication, ideal for diverse IoT applications.
  • 📱 Cross-Platform Accessibility: Monitor and manage your tracking data from anywhere with dedicated mobile and web applications built with Flutter.
  • 🔒 Secure Communication: Implement secure protocols for data exchange between LoRa sender and receiver modules.
  • ⚡ Low-Power Operation: Designed with energy efficiency in mind, extending the battery life of remote tracking devices.
  • 🚀 Easy Deployment: Streamlined setup process for both hardware modules and software applications, getting you up and running quickly.

🛠️ Installation Guide

example-preview-image

Follow these steps to set up TrackOra on your local machine.

Prerequisites

Ensure you have the following installed:

  • Git: For cloning the repository.
  • C++ Compiler: (e.g., GCC, Arduino IDE) for LoRa module firmware.
  • Flutter SDK: For building and running the mobile and web applications.
  • Node.js & npm/yarn: (Optional, for web app dependencies if any beyond Flutter)

Step-by-Step Installation

  1. Clone the Repository

    Begin by cloning the TrackOra repository to your local machine:

    git clone https://github.com/hedi0/TrackOra.git
    cd TrackOra
  2. LoRa Modules Setup (Receiver & Sender)

    This project includes separate directories for LoRa receiver and sender firmware. You'll need to compile and upload these to your respective LoRa hardware (e.g., ESP32 with LoRa module, Arduino with LoRa shield).

    • Navigate to a module directory:

      cd lora_receiver # or cd lora_sender
    • Compile and Upload (Example using Arduino IDE/PlatformIO): Open the .ino or PlatformIO project in your IDE, configure your board and port, and then upload the firmware. Specific steps will depend on your hardware and development environment.

      // Example for lora_receiver/main.cpp (conceptual)
      #include <SPI.h>
      #include <LoRa.h>
      
      void setup() {
        Serial.begin(115200);
        while (!Serial);
      
        if (!LoRa.begin(868E6)) { // or 433E6, 915E6
          Serial.println("Starting LoRa failed!");
          while (1);
        }
        Serial.println("LoRa Initialized");
      }
      
      void loop() {
        int packetSize = LoRa.parsePacket();
        if (packetSize) {
          Serial.print("Received packet '");
          while (LoRa.available()) {
            Serial.print((char)LoRa.read());
          }
          Serial.print("' with RSSI ");
          Serial.println(LoRa.packetRssi());
        }
      }
  3. Mobile & Web Application Setup

    The mobile_app and web_app directories contain the Flutter projects.

    • Navigate to an application directory:

      cd ../mobile_app # or cd ../web_app
    • Fetch Dependencies:

      flutter pub get
    • Run the Application: For mobile (ensure a device or emulator is connected):

      flutter run

      For web:

      flutter run -d chrome # or another web browser

      This will launch the application in your browser or on your connected mobile device/emulator.

🚀 Usage Examples

Once TrackOra is set up, you can begin monitoring your LoRa-enabled devices.

📡 LoRa Module Configuration

The LoRa sender and receiver modules can be configured with various parameters. Here's a conceptual example of parameters you might adjust in the firmware:

Parameter Description Default Value
LORA_FREQ LoRa frequency (e.g., 433E6, 868E6, 915E6) 868E6
SPREAD_FACTOR Spreading factor for LoRa modulation 7
TX_POWER Transmission power of the LoRa sender (dBm) 17
NODE_ID Unique identifier for the sending device 0x01

📱 Monitoring with the Applications

After successfully running the mobile_app or web_app, you will see an interface similar to this:

![preview-image]

  1. Start LoRa Receiver: Ensure your lora_receiver hardware is powered on and running its firmware. It will start listening for incoming packets.
  2. Activate LoRa Sender: Power on your lora_sender hardware. It will begin transmitting data packets according to its programmed interval.
  3. View Data: The mobile or web application will display received data, potentially showing device locations, sensor readings, or status updates in real-time.

Common Use Cases

  • Asset Tracking: Deploy LoRa senders on valuable assets to monitor their location over long distances.
  • Environmental Monitoring: Use LoRa senders with sensors (temperature, humidity, etc.) to collect data from remote areas.
  • Fleet Management: Track vehicles or equipment in a large operational area.

🗺️ Project Roadmap

TrackOra is continuously evolving! Here's a glimpse of what's planned for the future:

  • V1.1 - Enhanced Data Visualization:
    • Interactive maps for real-time device location tracking.
    • Historical data charts and analytics.
  • V1.2 - User Authentication & Management:
    • Secure user login and registration for the web and mobile apps.
    • Role-based access control for different users.
  • V1.3 - Alerting System:
    • Configurable alerts for specific events (e.g., device offline, geofence breaches).
    • Email and push notification integration.
  • Future Enhancements:
    • Support for multiple LoRa gateways.
    • Integration with cloud platforms (AWS IoT, Google Cloud IoT).
    • Firmware update over the air (FOTA) for LoRa modules.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors