No Description

root 1a4649ac19 Fix eth0 DHCP management 1 month ago
cmd 1a4649ac19 Fix eth0 DHCP management 1 month ago
dashboard 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
internal 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
.gitignore 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
Makefile 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
README.md 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
go.mod 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago
go.sum 186ee32fd6 Initial commit: MyBeacon daemon with Network Manager refactoring 1 month ago

README.md

MyBeacon Native

Нативная реализация BLE/WiFi сканера для Luckfox Pico Ultra W.

Компоненты

  • ble-scanner — BLE сканирование через HCI raw socket
  • wifi-scanner — WiFi probe request capture через AF_PACKET
  • beacon-daemon — агрегация событий, upload на сервер, SSH туннель

Сборка

# Установить Go 1.21+
# Установить ZMQ dev libraries: apt install libzmq3-dev

# Скачать зависимости
make deps

# Нативная сборка (для тестирования)
make native

# ARM cross-compile (для Luckfox)
# Нужен arm-linux-gnueabihf-gcc
make arm CC_ARM=arm-linux-gnueabihf-gcc

Запуск

# 1. Запустить BLE сканер
./bin/ble-scanner --zmq tcp://127.0.0.1:5555 --hci 0

# 2. Запустить WiFi сканер (требует root)
sudo ./bin/wifi-scanner --zmq tcp://127.0.0.1:5556 --iface wlan0

# 3. Запустить демон
./bin/beacon-daemon --config /opt/mybeacon/etc/config.json

Конфигурация

{
  "api_base": "http://server:5000/api/v1",
  "zmq_addr_ble": "tcp://127.0.0.1:5555",
  "zmq_addr_wifi": "tcp://127.0.0.1:5556",
  "spool_dir": "/var/spool/mybeacon",
  "ble": {
    "enabled": true,
    "batch_interval_ms": 2500
  },
  "wifi": {
    "monitor_enabled": false,
    "batch_interval_ms": 10000
  },
  "ssh_tunnel": {
    "enabled": false,
    "server": "tunnel.example.com",
    "port": 22,
    "user": "tunnel",
    "key_path": "/opt/mybeacon/etc/tunnel_key",
    "remote_port": 12345
  }
}

ZMQ Протокол

Сканеры публикуют события в формате: topic JSON

Топики:

  • ble.ibeacon — iBeacon
  • ble.acc — my-beacon accelerometer
  • ble.relay — relay beacon
  • wifi.probe — WiFi probe request

Деплой на устройство

# Скопировать бинарники
scp bin/*-arm root@device:/opt/mybeacon/bin/

# Создать init script
# См. /home/user/work/luckfox/alpine/MYBEACON.md