102 lines
2.0 KiB
Markdown
102 lines
2.0 KiB
Markdown
# GPIO Monitor Dashboard for Raspberry Pi
|
||
|
||
Реалтайм мониторинг параллельной GPIO-шины Raspberry Pi через C + Go + Web Dashboard.
|
||
|
||
Проект читает входящие сигналы с GPIO-пинов Raspberry Pi по прерыванию, передаёт данные через FIFO pipe в Go-сервер и отображает всё в браузере в реальном времени.
|
||
|
||
---
|
||
|
||
# Возможности
|
||
|
||
✅ Захват данных по GPIO interrupt
|
||
✅ Работа через WiringPi
|
||
✅ FIFO pipe между C и Go
|
||
✅ Высокоскоростной RingBuffer
|
||
✅ HTTP API
|
||
✅ Web Dashboard
|
||
✅ Работа через Wi-Fi Access Point Raspberry Pi
|
||
✅ Подходит для ПК и мобильных устройств
|
||
|
||
---
|
||
|
||
# Архитектура
|
||
|
||
```text
|
||
GPIO BUS (8 bit)
|
||
↓
|
||
gpio-interrupt.c
|
||
↓ stdout
|
||
systemd socket FIFO (/tmp/gpio_pipe)
|
||
↓
|
||
Go Server
|
||
↓
|
||
HTTP API (:8080)
|
||
↓
|
||
Dashboard (Browser)
|
||
|
||
# Структура проекта
|
||
|
||
|
||
.
|
||
├── cmd/server/main.go # Go HTTP сервер
|
||
├── internal/adapter/ # RingBuffer
|
||
├── web/
|
||
│ ├── index.html
|
||
│ ├── dashboard.html
|
||
│ ├── css/style.css
|
||
│ ├── js/app.js
|
||
│ └── favicon.png
|
||
├── scripts/
|
||
├── start-server.sh
|
||
└── README.md
|
||
|
||
# GPIO pin
|
||
|
||
WR/STROBE = GPIO27
|
||
|
||
DATA BUS:
|
||
D0 = GPIO21
|
||
D1 = GPIO7
|
||
D2 = GPIO6
|
||
D3 = GPIO5
|
||
D4 = GPIO25
|
||
D5 = GPIO24
|
||
D6 = GPIO23
|
||
D7 = GPIO22
|
||
|
||
# Установка
|
||
|
||
sudo apt update
|
||
sudo apt install golang git build-essential
|
||
|
||
# Сборка
|
||
|
||
go build -o gpio-monitor-server ./cmd/server
|
||
|
||
# Запуск сервера
|
||
|
||
./start-server.sh
|
||
|
||
sudo systemctl start monitor-gpio.service
|
||
|
||
# Dashboard
|
||
|
||
Открывать на http://192.168.77.1:8080
|
||
|
||
# API
|
||
|
||
GET /api/health
|
||
|
||
GET /api/history
|
||
|
||
# Wi-Fi режим Raspberry Pi
|
||
|
||
SSID: fix_me
|
||
IP: 192.168.77.1
|
||
|
||
Подключение: ssh user@192.168.77.1
|
||
|
||
# License
|
||
|
||
MIT
|