# 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
