Нативная реализация BLE/WiFi сканера для Luckfox Pico Ultra W.
# Установить 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
}
}
Сканеры публикуют события в формате: topic JSON
Топики:
ble.ibeacon — iBeaconble.acc — my-beacon accelerometerble.relay — relay beaconwifi.probe — WiFi probe request# Скопировать бинарники
scp bin/*-arm root@device:/opt/mybeacon/bin/
# Создать init script
# См. /home/user/work/luckfox/alpine/MYBEACON.md