A comprehensive IoT tracking solution leveraging LoRaWAN technology for long-range, low-power communication, accessible via intuitive mobile and web applications.
- 🌐 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.
Follow these steps to set up TrackOra on your local machine.
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)
-
Clone the Repository
Begin by cloning the TrackOra repository to your local machine:
git clone https://github.com/hedi0/TrackOra.git cd TrackOra -
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
.inoor 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()); } }
-
-
Mobile & Web Application Setup
The
mobile_appandweb_appdirectories 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 browserThis will launch the application in your browser or on your connected mobile device/emulator.
-
Once TrackOra is set up, you can begin monitoring your LoRa-enabled devices.
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 |
After successfully running the mobile_app or web_app, you will see an interface similar to this:
![preview-image]
- Start LoRa Receiver: Ensure your
lora_receiverhardware is powered on and running its firmware. It will start listening for incoming packets. - Activate LoRa Sender: Power on your
lora_senderhardware. It will begin transmitting data packets according to its programmed interval. - View Data: The mobile or web application will display received data, potentially showing device locations, sensor readings, or status updates in real-time.
- 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.
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.

