- 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
53 lines
No EOL
1.6 KiB
Markdown
53 lines
No EOL
1.6 KiB
Markdown
# 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 |