150 lines
9.6 KiB
Markdown
150 lines
9.6 KiB
Markdown
# 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
|