警告:请不要尝试将相关电波数据传送至FR24,RadarBox,FA等境外平台, 这将严重违反无线电管理条例以及国家安全法!
本文采取全docker方案,所用镜像均为开源镜像,若无法连接DockerHub或Github,请自行解决网络问题。
第一步,硬件选择
1.上传设备
请确保你的硬件可以正常工作,正确安装了Linux系统,安装Linux的步骤根据设备不同也不同,请自行查找。
我用的是中国移动的和家亲CM311-1a电视盒子,DC12V供电,可以插网线,这类电视盒子保有量大,价格低,在闲鱼上五六十就可以收到一个使用晶晨S905系列芯片的电视盒子,性价比很高。
如果对电视盒子的稳定性不太放心,那么推荐使用树莓派、香橙派之类的开发板。除非你所处的位置飞机很多,数据量很大,CPU性能高不低于树莓派2B就足以了,实在不行少开几个docker嘛。当然,使用X86架构的工控机、退役电脑也是一个不错的选择,只是功耗比较高罢了。
2.SDR
我使用的是飞常准定制的有滤波放大器的SDR,其实使用RTL2832U小蓝棒+DIY滤波放大器也能有不错的效果。下文中使用的信号解码容器也支持RTLSDR,BladeRF,Modes-Beast和GNS5894等多种方案。
3.天线
我用的是华鸿定制的1090Mhz玻璃钢天线,从阿里巴巴找工厂加微信定的货,120一根。
也可以使用最便宜的吸盘天线,用钳子将金属棒剪至6.75cm长效果也不错。
第二步,连接设备
将天线,SDR,控制设备按顺序连接,注意ADS-B信号频率为1090Mhz,所以天线尽量放置在窗外或楼顶,并做好防水防雷措施。
第三步,安装Docker环境
建议使用docker官方脚本傻瓜式安装
curl -fsSL https://get.docker.com | bash -s docker
可在此命令后附带--mirror
参数设置镜像源,以提高国内服务器下载docker的速度
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装成功后,即可通过docker –version命令查看docker版本信息。
第四步,安装各类docker
1.安装Portainer-CE
Portainer-CE是一个用来对docker进行可视化管理的docker,推荐优先安装。
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce
此时打开对应的连接即可打开portainer-ce的管理界面,首次启动需要设置用户名和密码,连接环境时选择本地环境即可。
此时即可在主页里看到local主机,左侧边栏中可以针对containers(容器)、images(镜像)进行管理。
2.安装Readsb-protobuf
首先要SSH登录到设备,确认可以通过lsusb等命令识别到SDR,若无法识别,可以尝试重新插拔几次。
然后即可通过下列命令进行安装,首次运行会自动下载镜像,时间较长,请耐心等待
docker volume create readsbpb_rrd
docker volume create readsbpb_autogain
docker run \
-d \
-it \
--restart=always \
--name readsb \
--hostname readsb \
--device /dev/bus/usb:/dev/bus/usb \
--net=host \
-e TZ=Asia/Shanghai \
-e READSB_DCFILTER=true \
-e READSB_DEVICE_TYPE=rtlsdr \
-e READSB_FIX=true \
-e READSB_GAIN=autogain \
-e READSB_LAT=<纬度> \
-e READSB_LON=<维度> \
-e READSB_MODEAC=true \
-e READSB_RX_LOCATION_ACCURACY=2 \
-e READSB_STATS_RANGE=true \
-e READSB_NET_ENABLE=true \
-v readsbpb_autogain:/run/autogain \
-v readsbpb_rrd:/run/collectd \
--tmpfs=/run:exec,size=64M \
--tmpfs=/var/log:size=32M \
ghcr.io/sdr-enthusiasts/docker-readsb-protobuf:latest
注意:<纬度>、<维度>替换为你设备所在位置的经纬度,建议使用谷歌地图确定,避免火星坐标系带来的偏移。
命令运行成功后,打开 http://设备IP:8080 ,就可以看到飞机了,如果地图打不开是因为软件默认使用的是OpenStreetMap的开源地图,国内无法直接打开。
3.安装飞常准上传docker
项目主页也有详细的教程可以参考,这里只做摘抄。
使用命令行传递参数(新手推荐):
docker run -d \
--restart=always \
--name feeyo-feed \
--net host \
dextercai/feeyo-adsb-golang:latest /app/feeyo-adsb-golang \
-use-file=false -feeyo-url=https://adsb.feeyo.com/adsb/ReceiveCompressADSB.php \
-ip=127.0.0.1 -port=30003 -uuid=你的UUID
注意:将“你的UUID”替换为自己的UUID,若没有UUID可以使用该脚本作者制作的UUID生成网站,请牢记并保存该UUID。
至此已经完成了最基本的ADS-B信号解码、上传过程。打开https://flightadsb.variflight.com/device/index/你的UUID ,可以查看飞常准采纳的飞机数量、位置信息。如需监控容器的运行状态,可以在portainer-ce里查看容器日志。