ICARUS is a dual-module sensor and communication system built for a CUBESAT competition using ESP32 boards. The project is designed to collect, log, and wirelessly transmit environmental and navigational data. It consists of two separate modules:
-
Satellite Module:
Gathers data from various sensors (IMU, environmental, magnetometer, GPS), logs the information to an SD card, and transmits the data to the Ground Station using ESP-NOW. -
Ground Station Module:
Receives the transmitted data via ESP-NOW, processes the information, and displays it in real time on a Serial Monitor for debugging and monitoring purposes.
The goal of ICARUS is to create an efficient, low-power system for remote data acquisition and transmission. This setup can be used for various applications including environmental monitoring, remote sensing, and telemetry.
-
Sensor Integration:
- IMU (MPU6050): Captures acceleration and gyroscopic data.
- BME280: Measures temperature, humidity, pressure, and altitude.
- HMC5883: Reads magnetic field data and computes heading.
- GPS Module: Provides real-time location and time data.
-
Data Logging:
- The Satellite module logs sensor data to an SD card for persistent storage and future analysis.
-
Wireless Communication:
- Utilizes ESP-NOW for low-latency, peer-to-peer communication between the Satellite and Ground Station modules.
-
Real-Time Monitoring:
- The Ground Station displays incoming data on a Serial Monitor, allowing for real-time analysis.
The repository is organized as follows:
ICARUS/
├── Satellite/
│ ├── [Satellite module source file and README]
├── GroundStation/
│ ├── [Ground Station module source file and README]
└── README.md <-- (This main README)
Each module has its own README with detailed setup and operation instructions. Please refer to those documents for module-specific guidance.
-
Clone the Repository:
git clone https://github.com/yourusername/ICARUS.git cd ICARUS
-
Module-Specific Setup:
- Satellite Module:
- Navigate to the
Satellite
folder. - Follow the instructions in the Satellite module README to install required libraries, configure sensor wiring, and upload the code to your ESP32.
- Navigate to the
- Ground Station Module:
- Navigate to the
GroundStation
folder. - Refer to the Ground Station README for steps to install libraries, set up the ESP32, and start receiving data.
- Navigate to the
- Satellite Module:
-
General Requirements:
- Ensure you have the ESP32 board package installed in your Arduino IDE or PlatformIO.
- Verify that all required libraries are installed, as specified in each module's README.
-
Deploy the Satellite Module:
This module collects sensor data, logs it locally, and transmits the data via ESP-NOW to the Ground Station. Make sure the MAC address in the code is updated to match your Ground Station device. -
Deploy the Ground Station Module:
This module listens for incoming data via ESP-NOW, processes the received information, and displays it on the Serial Monitor for real-time monitoring. -
Monitoring:
Use the Serial Monitor in your Arduino IDE or PlatformIO to view the real-time data output from the Ground Station module.
-
Communication Issues:
- Verify that both modules are powered and within range of each other.
- Double-check the MAC address configuration in the Satellite module.
-
Sensor/Data Logging Issues:
- Ensure all sensors are correctly wired and operational.
- Confirm that the SD card is properly formatted and connected for data logging.
-
General Debugging:
- Use the Serial Monitor to review debug messages from both modules.
- Consult the module-specific READMEs for additional troubleshooting tips.
Contributions, suggestions, and improvements are welcome. Please open an issue or submit a pull request with your ideas or fixes.
This main README is intended to provide an overall view of the ICARUS project. For detailed information on setup, configuration, and troubleshooting, refer to the individual module READMEs located in the THEFLYINGTRASHMAN
and GROUNDSTATION
folders.