怎样使用树莓派自己搭建一套ADS-B信号接收系统
0 我们知道,ADS-B全称广播式自动相关监视系统,其实就是飞机发出的广播信号,用明码来对外发送自己的位置、高度、速度、航向等信息,是公开信息。连续接收到一架飞机发出的ADS-B信息后,可以通过其坐标点来描绘出飞机的航行轨迹,并实时获取其飞行状态。这对于现今的民航飞行来说已经是非常普遍的了。
但除了民用飞机外,军用航空器也会安装有ADS-B系统,主要是为了空中防碰撞。以某些距离城市及机场非常近的军用机场为例,他们使用的空域会与民用航空器的空域有不少的交集,这就需要开启ADS-B设备,便于地面指挥。
不过也不必担心,在正常情况下,执行任务的军用航空器都会关闭ADS-B设备,防止暴露行踪。同时在国内,虽然军用航空器会开启ADS-B,但都会进行一定的处理以消除敏感信息,只显示必要的、满足需求的信息出来,比如高度航向速度等。
1 前言 因为自己是一个无线电爱好者,所以对一些无线电信号的传播和接受非常感兴趣。看到网络上有很多关于ADS-B信号接收器的设计很是感兴趣,因此这段时间就在淘宝上网购了必须的硬件然后搭建了一下。注意这个项目知识用来研究和学习的,关键的是用来了解背后的代码是怎么写的,RTL-SDR是怎么工作的。
2 警告:请不要尝试将相关电波数据传送至FR24,RadarBox,FA等境外平台, 这将严重违反无线电管理条例以及国家安全法!
3 所需硬件:
树莓派4B,4G足够,MicroSD Card 32G
SDR接受硬件RTL2832
天线,自己可以做137mm半波长DP天线就可以,馈线(SMA接口)
高频放大器(可以没有,有效果更好)
还要有网络
1 首先是安装树莓派的操作系统,注意,树莓派最好配一个5V3A,15W的电源,确保树莓派稳定工作。我选择的是使用Raspberry Pi烧录器来写SD卡,版本是最新的v1.8.5。选择的是64位的Raspberry Pi OS Lite系统,很小,只有0.4G大小。在烧录入之前选择好WIFI的设置,然后烧录。这样上电开机后才可以ssh过去。
2 树莓派开机正常后,ssh过去:ssh ads-b@192.168.1.10
输入密码登录。然后进行必要软件的安装
首先是升级系统,然后安装必要软件:
$ sudo apt-get update
$ sudo apt-get install git
$ sudo apt-get install cmake
$ sudo apt-get install build-essential
上面的都是确保我们下载开源代码我们能够编译的必要基础库文件。
然后是安装usb驱动文件
$ sudo apt-get install libusb-1.0-0-dev
接下来,我们要下载RTL2832u的驱动代码,然后进行编译安装
$ git clone https://gitea.osmocom.org/sdr/rtl-sdr.git
$ cd rtl-sdr
$ mkdir build
$ cd build
$ cmake ../ -DINSTALL_UDEV_RULES=ON
$ make
$ sudo make install
$ sudo ldconfig
$ sudo cp ../rtl-sdr.rules /etc/udev/rules.d
将上一层文件rtl-sdr.rules 拷贝到/etc/udev/rules.d目录中。
将使用电视棒作为电视设备自动加载的默认驱动程序列入黑名单,因为它不能让电视棒作为 SDR 使用,并且将会与我们刚刚安装的新驱动程序发生冲突。
打开 /etc/modprobe.d 文件夹
在该目录下创建一个叫 blacklist-rtl.conf 的新文件,
$ sudo touch blacklist-rtl.conf
$ sudo vim balcklist=rtl.conf
在文件中加入 blacklist dvb_usb_rtl28xxu 这条指令,保存文件,并重启。
机器重启后,将电视棒插入 usb 接口,打开 Terminal 窗口,输入 rtl_test -t 命令,测试电视棒是否能够被正常驱动。

出现这个信息,说明硬件和驱动安装正确。
然后安装dump1090
$ git clone https://github.com/antirez/dump1090.git
$ cd dump1090
$ make
$ ./dump1090 –interactive

出现这个界面说明一切都正常。
然后启动:
$ doump1090 –interactive –net –enable-agc
因为我使用ssh登录的,所以我在另外电脑的浏览器中输入:ip:8080就能看到这个界面了。

完美收官。
因为网络环境的原因,google地图打不开,地图在这里,把这个题图替换一下就可以了。https://download.csdn.net/download/kangdehua/90290284
但是,这个页面(gmap.html)打开的图,还是有些问题的。

在这个项目中,我们需要了解的是RTL-SDR的硬件是怎么工作的请参考博文:[RTL-SDR] RTL-SDR原理图_r820t-CSDN博客
了解了原理,你就知道了我们软件都安装了什么内容,以及为什么要这么做。
相关文章:
怎样使用树莓派自己搭建一套ADS-B信号接收系统
0 我们知道,ADS-B全称广播式自动相关监视系统,其实就是飞机发出的广播信号,用明码来对外发送自己的位置、高度、速度、航向等信息,是公开信息。连续接收到一架飞机发出的ADS-B信息后,可以通过其坐标点来描绘出飞机的航…...
Chrome谷歌浏览器如何能恢复到之前的旧版本
升级了谷歌最新版不习惯,如何降级版本 未完待续。。 电脑中的Chrome谷歌浏览器升级到了最新版本,但是有种种的不适应,如何能恢复到之前的旧版本呢?我们来看看操作步骤,而且无需卸载重装。 怎么恢复Chrome 之前版本&a…...
路由器旁挂三层网络实现SDWAN互联(爱快SD-WAN)
近期因公司新办公区建设,原有的爱快路由器的SDWAN功能实现分支之间互联的服务还需要继续使用。在原有的小型网络中,使用的爱快路由器当作网关设备,所以使用较为简单,如下图所示。 现变更网络拓扑为三层网络架构,但原有的SDWAN分支…...
代码随想录算法训练营第五十五天 |108.冗余连接 109.冗余连接Ⅱ
108.冗余连接: 文章链接 题目链接:108.冗余连接 思路 首先分析题目,给定拥有n个节点和n条边的图,其中图是在原n个节点和n - 1条无环无向图中添加一条边得到的。要求是输出多出的边。(PS:可能会有多个答案…...
Unity补充 -- 协程相关
1.协程。 协程并不是线程。线程是主线程之外的另一条 代码按照逻辑执行通道。协程则是在代码在按照逻辑执行的同时,是否需要执行额外的语句块。 2.协程的作用。 在update执行的时候,是按照帧来进行刷新的,也是按照帧执行代码的。但是又不想…...
【第二十周】U-Net:用于生物图像分割的卷积神经网络
文章目录 摘要Abstract文章信息研究动机U-Net网络结构U-Net网络搭建数据增强损失函数转置卷积创新性与不足创新性:不足: 总结 摘要 U-Net(Convolutional Networks for Biomedical Image Segmentation)是一种用于图像分割的深度学…...
部署Metricbeat监测ES
官方参考文档 安装Metricbeat curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.17.27-linux-x86_64.tar.gztar xzvf metricbeat-7.17.27-linux-x86_64.tar.gz设置 Metricbeat连接到 Elasticsearch 进入metricbeat目录配置metricbeat.yml …...
Pytorch|YOLO
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、 前期准备 1. 设置GPU 如果设备上支持GPU就使用GPU,否则使用CPU import torch import torch.nn as nn import torchvision.transforms as transforms im…...
云计算与物联网技术的融合应用(在工业、农业、家居、医疗、环境、城市等整理较全)
摘要 为生产领域带来更加全面和深入的变革。通过云计算平台对物联网数据进行处理和分析,企业可以实现对生产过程的更加精细化的管理和控制。 1. 智能生产调度 通过云计算和物联网技术的融合应用,企业可以实现对生产线上各个环节的实时监控和数据分析。…...
基于python+Django+mysql鲜花水果销售商城网站系统设计与实现
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。 所有项目都配有从入门到精通的基础知识视频课程ÿ…...
Golang:报错no required module provides package github.com/xx的解决方法
报错 问题重现可能的原因及解决方法1. 未初始化 Go 模块解决方法: 2. 没有添加依赖解决方法: 3. 网络问题解决方法: 4. 依赖版本问题解决方法: 5. 包未发布或路径拼写错误解决方法: 6. go mod tidy 未运行解决方法&…...
数据结构与算法(2):顺序表与链表
1.前言 哈喽大家好喔,今天博主继续进行数据结构的分享与学习,今天的主要内容是顺序表与链表,是最简单但又相当重要的数据结构,为以后的学习有重要的铺垫,希望大家一起交流学习,互相进步,让我们…...
华为OD机试E卷 --过滤组合字符串--24年OD统一考试(Java JS Python C C++)
文章目录 题目描述输入描述输出描述用例题目解析JS算法源码Java算法源码python算法源码c算法源码c++算法源码题目描述 数字 0、1、2、3、4、5、6、7、8、9 分别关联 a~z 26 个英文字母。 0 关联“a”"b”"c1 关联“d”"e”"f2 关联“g"“h”“i”3 关…...
QT跨平台应用程序开发框架(3)—— 信号和槽
目录 一,基本概念 二,connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三,自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四,信号和槽的意义 五,信号和槽断开连接 六&…...
从 0 开始实现一个 SpringBoot + Vue 项目
从 0 开始实现一个 SpringBoot Vue 项目 从 0 开始实现一个 SpringBoot Vue 项目 软件和工具创建 SpringBoot 后端项目创建 MySQL 数据库配置文件实现增删改查接口 Model 层mapper 层service 层controller 层测试 实现项目功能接口 代码测试 创建 Vue 前端 安装 Node.js配置…...
【无标题】微调是迁移学习吗?
是的,微调(Fine-Tuning)可以被视为一种迁移学习(Transfer Learning)的形式。迁移学习是一种机器学习方法,其核心思想是利用在一个任务上学到的知识来改进另一个相关任务的性能。微调正是通过在预训练模型的…...
虚幻基础1:hello world
能帮到你的话,就给个赞吧 😘 文章目录 hello world创建项目创建关卡创建蓝图将蓝图插入关卡中运行 hello world 本文引擎为5.5.1 创建项目 如图 创建后如图。 创建关卡 如图 创建蓝图 如图 选择actor 双击进入蓝图节点 选择事件图表 创…...
C链表的一些基础知识
一、链表的基本概念 链表是一种常见的线性数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针(单链表情况)。通过指针将各个节点连接起来,与数组不同,链表在内存中的存储不是连续的…...
JDK长期支持版本(LTS)
https://blogs.oracle.com/java/post/the-arrival-of-java-23 jdk长期支持版本(LTS):JDK 8、11、17、21:...
【超详细】Python datetime(当前日期、时间戳转换、前一天日期等)【附:时区原理详解】
文章目录 相关文献当前时间前一天日期、后一天日期东八区(北京)时间时间戳转换datetime -> strstr -> datetimedatetime -> timestamp(时间戳)timestamp -> datetime 获取日期中的年、季度、月、周、日、小时、分、秒等时区原理时区问题复杂…...
ML302开发板AT指令实战:从驱动安装到第一个AT命令响应(避坑指南)
ML302开发板AT指令实战:从驱动安装到第一个AT命令响应(避坑指南) 当你第一次拿到中移物联的ML302开发板时,可能会被它强大的4G Cat.1通信能力所吸引,但真正开始使用时,往往会在基础环节遇到各种"坑&qu…...
2024版IntelliJ IDEA中文设置保姆级教程(附社区版/专业版差异)
2024版IntelliJ IDEA中文设置全攻略:从安装到疑难排错 刚接触IntelliJ IDEA的开发者常被其强大的功能所震撼,但英文界面却成了第一道门槛。作为JetBrains家族的旗舰IDE,2024版本在本地化支持上有了显著改进,但专业版与社区版的汉化…...
老年关怀:AI Agent作为健康与生活伴侣
老年关怀:AI Agent作为健康与生活伴侣 1. 核心概念 1.1 老年健康与生活关怀的“黄金三角困境” 核心概念拆解 老年健康与生活关怀的黄金三角困境是我在过去7年参与5个省级智慧养老试点项目、调研超过3000位独居/空巢老人、200家社区养老机构和100家科技厂商后总结出的核心矛…...
我让 Claude 和 Codex 同时审计 个模块,它们只在 个上达成共识识
整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...
为什么你的.NET 9边缘服务在Raspberry Pi 5上启动慢400ms?——基于JIT预编译+LLVM IR优化的3层根因定位法
第一章:为什么你的.NET 9边缘服务在Raspberry Pi 5上启动慢400ms?——基于JIT预编译LLVM IR优化的3层根因定位法在 Raspberry Pi 5(Broadcom BCM2712,4Cortex-A76 2.4GHz,LPDDR4X-4267)上运行 .NET 9 自托…...
保姆级教程:在Win10的WSL2里,用Dify 1.9和Ollama 0.12.9搭一个本地的通义千问AI助手
零基础在Windows 10上打造专属AI助手:WSL2DifyOllama实战指南 你是否想过在自己的电脑上运行一个完全本地的AI助手?不需要昂贵的云端算力,不依赖网络连接,所有数据都在本地处理。今天我们就用Windows 10自带的WSL2功能,…...
彻底告别OpenClaw使用焦虑:我给他装上了“透视眼”和“批量克隆模组褪
指令替换 项目需求:将加法指令替换为减法 项目目录如下 /MyProject ├── CMakeLists.txt # CMake 配置文件 ├── build/ #构建目录 │ └── test.c #测试编译代码 └── mypass2.cpp # pass 项目代码 一,测试代码示例 test.c // test.c #includ…...
Java final关键字与抽象类深度解析
二、final关键字各位同学,接下来我们学习一个在面向对象编程中偶尔会用到的一个关键字叫final,也是为后面学习抽象类和接口做准备的。2.1 final修饰符的特点(面试题)我们先来认识一下final的特点,final关键字是最终的意思,可以修饰…...
Zotero与OneDrive云存储附件的高效整合方案(Zotero+OneDrive)
1. 为什么选择ZoteroOneDrive组合管理文献附件 作为一名长期与学术文献打交道的科研工作者,我深知文献管理工具的重要性。Zotero作为一款开源文献管理软件,其强大的文献收集、整理和引用功能深受研究者喜爱。但在实际使用中,文献附件的存储问…...
Mac上通过Homebrew快速部署Miniconda:轻量级Python环境管理指南
1. 为什么选择Miniconda Homebrew组合? 在Mac上管理Python环境就像整理衣柜——你既需要足够的空间存放不同季节的衣服(各种Python版本和库),又不想让整个房间被衣柜塞满。这就是为什么我强烈推荐Miniconda和Homebrew这对黄金组合…...
