Initial commit: Next.js UWB positioning webapp

- Complete Next.js 14 app with TypeScript and Tailwind CSS
- ESP32 serial communication via API routes
- Real-time UWB positioning visualization
- Interactive 2D warehouse mapping with Canvas
- Device connection interface with auto-detection
- AT command parsing for UWBHelper library integration
- Clean project structure with comprehensive documentation
This commit is contained in:
martin 2025-08-20 15:14:34 +02:00
commit fa75faa69d
20 changed files with 7600 additions and 0 deletions

53
README.md Normal file
View file

@ -0,0 +1,53 @@
# UWB Positioning Web Application
Next.js web application for visualizing and analyzing UWB indoor positioning data.
## Features
- **Real-time Positioning**: Live visualization of tag positions via WebSocket
- **Data Analysis**: Upload and analyze positioning session files
- **Interactive Maps**: 2D warehouse visualization with anchor positions
- **Path Tracking**: Tag movement analysis and playback
## Quick Start
```bash
npm install
npm run dev
```
## Project Structure
```
uwb-webapp/
├── app/ # Next.js App Router pages
├── components/ # React components
├── lib/ # Utilities and configurations
├── pages/api/ # API routes
├── public/ # Static assets
└── utils/ # Helper functions
```
## Context from ESP32 Project
This webapp connects to the ESP32-S3 UWB positioning system:
- **Hardware**: Makerfabs MaUWB modules (ESP32-S3 + DW3000 UWB + OLED)
- **Network**: 8 anchors + 1 mobile tag (ID 1234, 6.8Mbps)
- **Data Flow**: Tag → USB → PC → WebApp
- **Files**: raw_positioning.csv + anchor_coordinates.csv
## API Endpoints
- `GET /api/serial` - List available serial ports
- `POST /api/connect` - Connect to UWB device
- `GET /api/data` - Get positioning data stream
- `POST /api/upload` - Upload CSV files for analysis
## Tech Stack
- **Framework**: Next.js 14 with App Router
- **Language**: TypeScript
- **Serial**: Node SerialPort for ESP32 communication
- **WebSocket**: Real-time data streaming
- **Visualization**: Canvas/SVG for 2D positioning display