# 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 туннель ## Сборка ```bash # Установить 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 ``` ## Запуск ```bash # 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 ``` ## Конфигурация ```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 ## Деплой на устройство ```bash # Скопировать бинарники scp bin/*-arm root@device:/opt/mybeacon/bin/ # Создать init script # См. /home/user/work/luckfox/alpine/MYBEACON.md ```