Files
carpibord/README.md

150 lines
9.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Carpibord
Автомобильная диагностическая система для **Skoda Kodiaq 2021** на базе Raspberry Pi 5 и Flipper Zero.
## Архитектура
```
┌─────────────────────────────────────────────────────────────────────────────┐
│ SKODA KODIAQ 2021 │
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Comfort │ │ OBD-II │ │
│ │ CAN Bus │ │ CAN Bus │ │
│ │ (двери, │ │ (двигатель,│ │
│ │ свет...) │ │ скорость) │ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
└──────────┼───────────────────┼──────────────────────────────────────────────┘
│ │
│ ┌──────────────┴──────────────┐
│ │ OBD-II Разъём │
│ │ Pin 6 (CANH) Pin 14 (CANL)│
│ └──────────────┬──────────────┘
│ │
┌──────────┴───────────────────┴──────────────────────────────────────────────┐
│ RASPBERRY PI 5 │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ WaveShare 2-CH CAN HAT │ │
│ │ (MCP2515, 500 kbps) │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ OBD2 Client (Python) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────────────────────┐ │ │
│ │ │ CAN │ │ OBD2 │ │ Vehicle │ │ Handler Pipeline │ │ │
│ │ │Interface │→│ Protocol │→│ Poller │→│ ┌────────┐ ┌────────────┐ │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │ SQLite │→│ PostgreSQL │ │ │ │
│ │ │ └────────┘ └────────────┘ │ │ │
│ │ └────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌─────────────────────────────┴──────────────────────────────────────────┐ │
│ │ UART (/dev/serial0, 115200) │ │
│ └─────────────────────────────┬──────────────────────────────────────────┘ │
│ ┌───────────────────────┴───────────────────────┐ │
│ │ X120x UPS HAT (опционально) │ │
│ │ I2C мониторинг батареи │ │
│ └───────────────────────────────────────────────┘ │
└────────────────────────────────┬────────────────────────────────────────────┘
┌────────────────────────────────┴────────────────────────────────────────────┐
│ FLIPPER ZERO │
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │ can_monitor.fap - Приложение для отображения данных │ │
│ │ │ │
│ │ Страницы: Live Data → Statistics → System → App Status → UPS → Actions│ │
│ └────────────────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
```
## Компоненты
| Директория | Описание |
|------------|----------|
| `obd2_client/` | Python приложение для RPi5 — OBD2 мониторинг, storage, PostgreSQL sync |
| `flip_monitor/` | C приложение для Flipper Zero — GUI отображение данных |
| `systemd/` | Systemd сервисы для автозапуска |
## Возможности
- **OBD2 мониторинг** — чтение данных двигателя через стандартный протокол
- **Offline-first хранение** — SQLite локально, синхронизация с PostgreSQL
- **Flipper Zero UI** — отображение данных на портативном устройстве
- **UPS мониторинг** — контроль батареи X120x HAT
- **Автозапуск** — systemd сервисы для работы в автомобиле
## Быстрый старт
### 1. Настройка RPi5
```bash
# /boot/firmware/config.txt
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25
enable_uart=1
dtoverlay=disable-bt
```
### 2. Установка
```bash
cd obd2_client
pip install -r requirements.txt
```
### 3. Настройка CAN
```bash
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
```
### 4. Запуск
```bash
# Базовый запуск
python -m src.main --interface can0
# С Flipper Zero
python -m src.main --interface can0 --flipper /dev/serial0
# С отладкой
python -m src.main --interface can0 --flipper /dev/serial0 --debug
```
### 5. Автозапуск (опционально)
```bash
cd systemd
sudo ./install.sh
```
## Подключение
### OBD-II → CAN HAT
| OBD-II | CAN HAT |
|--------|---------|
| Pin 6 (CAN-H) | CH0 CANH |
| Pin 14 (CAN-L) | CH0 CANL |
| Pin 4/5 (GND) | GND |
### RPi5 → Flipper Zero
| RPi5 | Flipper Zero |
|------|--------------|
| GPIO14 (TX) | Pin 14 (RX) |
| GPIO15 (RX) | Pin 13 (TX) |
| GND | Pin 18 (GND) |
## Документация
- [OBD2 Client README](obd2_client/README.md) — детальная документация Python приложения
- [Flipper App README](flip_monitor/README.md) — документация приложения Flipper Zero
- [CLAUDE.md](CLAUDE.md) — техническое описание для AI-ассистентов
## Лицензия
MIT