Add multi-camera support and CSI camera server
- main_multi.py: Multi USB camera support with ID-based endpoints
- Config via CAMERAS env: '{"basement": 0, "basement2": 1}'
- Endpoints: /snapshot (default), /snapshot/{cam_id}
- server-csi/: New server for Pi CSI ribbon cameras (IR support)
- Auto-detects picamera2/picamera/libcamera-still
- IR_MODE and ROTATION settings
- Includes setup.sh for easy Pi deployment
Built with 💕 by Vixy 🦊
This commit is contained in:
83
server-csi/README.md
Normal file
83
server-csi/README.md
Normal file
@@ -0,0 +1,83 @@
|
||||
# vixy-vision CSI Camera Server
|
||||
|
||||
Camera server for Raspberry Pi CSI ribbon cameras, including IR night vision cameras.
|
||||
|
||||
## Features
|
||||
|
||||
- 🦊 Serves snapshots via HTTPS API
|
||||
- 📷 Supports picamera2 (modern), picamera (legacy), or libcamera-still fallback
|
||||
- 🌙 IR camera mode support
|
||||
- 🔄 Configurable rotation (0°, 90°, 180°, 270°)
|
||||
- 🔐 API key authentication
|
||||
|
||||
## Hardware Support
|
||||
|
||||
- **Pi 4/5 with Pi OS Bookworm**: Uses picamera2
|
||||
- **Pi 3 with older Raspbian**: Uses picamera (legacy)
|
||||
- **Any Pi**: Falls back to libcamera-still or raspistill commands
|
||||
|
||||
## Quick Setup
|
||||
|
||||
```bash
|
||||
# On your Raspberry Pi:
|
||||
cd server-csi
|
||||
chmod +x setup.sh
|
||||
./setup.sh
|
||||
```
|
||||
|
||||
This will:
|
||||
1. Create Python virtual environment
|
||||
2. Install dependencies
|
||||
3. Auto-detect and install appropriate camera library
|
||||
4. Generate SSL certificates
|
||||
5. Create `.env` with a new API key
|
||||
|
||||
## Running
|
||||
|
||||
```bash
|
||||
source venv/bin/activate
|
||||
python3 -m uvicorn main:app --host 0.0.0.0 --port 8443 \
|
||||
--ssl-keyfile ssl/key.pem --ssl-certfile ssl/cert.pem
|
||||
```
|
||||
|
||||
## API Endpoints
|
||||
|
||||
| Endpoint | Description |
|
||||
|----------|-------------|
|
||||
| `GET /` | Server info |
|
||||
| `GET /health` | Health check |
|
||||
| `GET /snapshot` | Capture JPEG (requires X-API-Key header) |
|
||||
|
||||
## Configuration (.env)
|
||||
|
||||
```bash
|
||||
API_KEY=your-secret-key
|
||||
CAMERA_WIDTH=1920
|
||||
CAMERA_HEIGHT=1080
|
||||
JPEG_QUALITY=85
|
||||
CAMERA_ID=garage
|
||||
ROTATION=0
|
||||
IR_MODE=true
|
||||
```
|
||||
|
||||
## Adding to Vixy's Vision Config
|
||||
|
||||
Add to `~/.vision_setup.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "garage",
|
||||
"type": "http",
|
||||
"url": "https://garage-pi.local:8443",
|
||||
"api_key": "your-api-key-here"
|
||||
}
|
||||
```
|
||||
|
||||
## IR Camera Notes
|
||||
|
||||
For NoIR cameras:
|
||||
- Set `IR_MODE=true` in .env
|
||||
- Ensure IR illuminators are positioned correctly
|
||||
- May need to adjust `ROTATION` based on mounting
|
||||
|
||||
Built with 💕 by Vixy 🦊
|
||||
Reference in New Issue
Block a user