Logo Lanfrica

khanji254/cansat-mission-control

Record type:

software
Creator:
kha
Host:
CanSat Kenya Mission Control Dashboard - Real-time telemetry monitoring system with Arduino IDE compatible ESP32 code, MQTT backend, and React dashboard # CanSat Project A complete CanSat (Can Satellite) project featuring an ESP32-based satellite with environmental sensors and a ground-based base station for data collection and monitoring. ## Project Overview This CanSat project includes: - **ESP32-based CanSat** with BMP280 (pressure/temperature) and DHT22 (temperature/humidity) sensors - **MQTT communication** for wireless data transmission - **Base station** for data collection, logging, and monitoring - **Real-time telemetry** with sensor data and system status ## Hardware Components ### CanSat Hardware - ESP32 Development Board - BMP280 Pressure/Temperature Sensor - DHT22 Temperature/Humidity Sensor - Power supply (battery pack) - Optional: GPS module, accelerometer, camera ### Wiring Diagram ``` ESP32 Connections: ├── BMP280 │ ├── VCC → 3.3V │ ├── GND → GND │ ├── SDA → GPIO 21 │ └── SCL → GPIO 22 └── DHT22 ├── VCC → 3.3V ├── GND → GND └── DATA → GPIO 4 ``` ## Software Architecture ### CanSat Firmware (ESP32) - **Platform**: PlatformIO with Arduino framework - **Communication**: WiFi + MQTT - **Sensors**: BMP280, DHT22 - **Data Format**: JSON telemetry packets - **Features**: - Automatic WiFi reconnection - MQTT broker connection with auto-reconnect - Configurable telemetry interval - Remote command support - Error handling and sensor validation ### Base Station - **Platform**: Python 3.x - **Communication**: MQTT subscriber - **Features**: - Real-time data logging - JSON data storage - Web dashboard (planned) - Data visualization (planned) - Alert system (planned) ## Quick Start ### 1. CanSat Setup 1. **Install PlatformIO** in VS Code or use PlatformIO CLI 2. **Configure WiFi and MQTT settings** in `src/main.cpp`: ```cpp const char* ssid = "YOUR_WIFI_SSID"; const char* password = "YOUR_WIFI_PASSWORD"; const char* mqtt_server = "YOUR_MQTT_BROKER_IP"; ``` 3. **Connect sensors** according to the wiring diagram 4. **Upload firmware**: ```bash pio run --target upload ``` 5. **Monitor serial out …