开篇

你知道如何利用你手中的树莓派来观察天空中的飞机吗?通过调谐和接收距离你所在地点250英里以外飞机无线电信号,你就可以追踪飞机航线,而完成这个任务,仅需要随处就能购买到的廉价USB电视棒。

本文将介绍如何追踪飞机飞行航道以及规律,同时介绍项目中用到的软件、硬件,以及使用Docker开源容器引擎来管理物联网项目中的软件。

该项目类似 FlightAware网站项目,后者已经可以可以分析来自世界各地几万人次的飞机飞行路线,而这种项目中需要用到的设备,仅仅是35美元的树莓派以及USB电视棒。

如果你有兴趣的话可以拿起手中的工具来,并为这些实时追踪飞机的网站(FlightAware.com、Flightradar24和planefinder.net)尽一份力,你将会获得详细的度量值(无线电定向与测距(雷达))数据以及其它奖励。

为什么要分析飞机飞行规律?

对于那些对树莓派不感兴趣的人来说该项目很实用,成本也很低

可以实现在线追踪飞机飞行规律并与你所在地的航班日程对比

安放天线并获取超详细的飞行统计数据

将数据用于自己的编程项目,同时可以学习到有关航空的知识

最重要的是,这是一个非常有趣的项目,可通过研究树莓派来获得满足感,值得一提的是,这个项目不会用到很多钱。

零件

树莓派,SD卡(Raspbian Lite 、PIXEL)

我建议使用树莓派2、3代,这样有更多的可用内存,并可以进行多任务处理(如果想安装多个接收器还想省钱可以使用Pi Zero)

USB电视棒

FlightAware Pro Stick(注意自己树莓派的型号)-内置静噪滤波器

SMA连接器-配置1090 MHz天线

DVB-T USB电视棒(Pimoroni上购买的)-我之前做了测试并选择该芯片型号,并将伸缩天线推至最小位置

NESDR SDR-三天线、SMA接口,考虑城市环境因素内置静噪滤波器

如果你想要买更便宜的接收器,需要保证他们有R820T 芯片组的设备。

注:为了取得更明显的实验结果,请购买品牌USB电视棒(没有必然联系)

天线

DVB-T USB电视棒主要利用天线接收电视机信号,而非1090 MHz的ADS-B信号。虽然你仍可以观察到一些飞机航道,但这取决于你所在位置范围内飞机高度和地面开阔度。

如果你需要一个1090 MHz天线,你可以购买一个SMA接头(3 dBi版本)。我曾做了一个样品,并将它放在窗台上,结果仅获取到150英里范围内的飞行航道。

最终当我使用FlightAware外置天线的时候,你可以观察到250英里的飞行航道,如果你安装在屋顶上,那么你就会观察的更远。

功率问题

你也需要一个2.5a-3a的电源,以确保有足够的电力为树莓派和USB电视棒供电,你当然可去官网购买树莓派(Pimoroni),ModMyPi还有树莓派3件套,然后你就可以继续开始这个项目了。

术语

我们将会使用usb电视棒来接收飞机ADS-B信号,但我们先从飞机的定义开始解释。

ADS-B信号

现代飞机可以从导航仪器面板上的自动应答器上收集信息,并利用ADS-B信号将这些信息传播到周边地区。任何人都可以接收这样的信号信息,无论是一架飞行控制台、飞机或一台树莓派。

自动相关监视-广播(ADS-B),确切说是一种监视技术,飞机通过卫星导航确定其位置,并定期发送信号,使之能被追踪。

DVB-T USB电视棒

电视调谐器DVB-T,主要为数字视频广播(地面站)接收设备。当然你也可以使用这些设备来接收喜欢的电视节目,也不是所有的DVB-T设备都能改变用途,这就需要购买之前进行详细的研究。

SMA天线接头

SMA(微型版)连接器会比同轴款小些,如果你购买了廉价的DVB-T,那么有可能需要配更小的连接器,上面会有一个“辫子”。这些主要的天线连接器(同轴款连接器、SMA以及RF)都可以从网上电子商店购买,解码ADS-B信号核心便是 dump1090,就1090来说是我们处理和解码原始数据时,所用到的频率大小。

dump1090是一个开源项目,该项目经手数人,不断进行完善和改进。所以在选择软件构建和测试时会令人觉得困惑。

这是我在GitHub上找到该系统的历史:

antirez在2012年圣诞节期间开始这个项目

MalcolmRobb 接手该项目,衍生代码并添加更多功能

mutability在MalcolmRobb衍生代码工作之后继续开始

FlightAware 接手项目后保留了mutability 库文件

我们使用 Docker来架构代码,这样你就可以很容易的在终端运行指令,使用Docker 优点:

可重复构建编写脚本程序

可以让我们在不同版本代码之间切换

不用安装在树莓派什么程序,这样使用起来也很方便

可以与朋友共享映像文件,也可以与其它树莓派共享

对于dump1090多数版本来说还有一个网络接口,可以让你实时查询飞机航道

FlightAware

FlightAware是上文提到的网站之一,你可以使用dump1090汇总到的数据,之后使用虚拟雷达将其可视化。当然你也可以获得详细的统计数据,帮助你跟踪飞机航道以及飞行范围。

这是我的显示界面,利用的工具是FlightAware专用天线以及DVB-T(降噪)。

你可以查看我的详细信息(alexellisuk),这里有更多的统计数据。

MLAT

MLAT-多点定位场面监视系统(如树莓派),用来追踪ADS-B信号,它能够准确的分析时间偏差,这样可以比单一追踪信号获取更多航道信息。

软件安装

安装Docker

我们下面就会使用Docker 映像,我们可以添加除主机二进制文件以外的文件

$ curl -sSL https://get.docker.com | sh

从GitHub上下载

$ git clone https://github.com/alexellis/eyes-in-the-sky

USB电视棒黑名单

为了电视棒兼容 dump1090,我们在其内核模块设置了黑名单。

添加到文件目录/etc/modprobe.d/blacklist.conf:

blacklist dvb_usb_rtl28xxu 

重新启动

dump1090

安装dump1090

如果你想要查看自己的位置(经度以及维度),请用CMD命令 编辑最后一行Dockerfile.malcolmrobb,你就可以在谷歌地图发现自己的位置了。

$ cd eyes-in-the-sky/dump1090$ docker build -t alexellis2/dump1090:malcomrobb . -f Dockerfile.malcolmrobb

-t-指的是我们之后指定的图像名称

-f-我自定义一个函数名称Dockerfile,同时相当于为mutability也提供一个

使用Docker ,你可以在软件中将图像分享给其他人,同时上传到Docker 项目中,这样出现问题之后可以继续架构dump1090,如若出现问题也不需要从头再来。

$ docker pull alexellis2/dump1090:malcolmrobb

测试dump1090

测试代码

$ docker rm -f 1090 # remove any old container$ docker run --privileged -p 8080:8080 -p 30005:30005 -p 30003:30003 --privileged --name 1090 -d alexellis2/dump1090:malcomrobb

docker 的功能主要负责运行你的代码,如果你重启树莓派并运行docker,同时加载dump 1090,则需要在docker运行指令rm -f 1090来阻止这一进程。

- P指令已经标记Docker容器端口,你可以通过更改Docker容器端口号和名称,并运行dump1090

-d指令便是将Docker容器以daemon方式运行,如果仅仅是看到控制台输出信息,请输入

docker logs --tail 20 -f 1090

如果你清楚树莓派的IP地址,那么你现在就可以打开网页

http://192.168.0.10:8080/

当然你也可以利用ifconfig指令查找IP地址

那么你现在就可以登录到树莓派,找出飞机航道,以及你现在所在位置

提示:无权限访问

如果不想用高级权限运行Docker容器,那么可以利用以识别USB设备名称,然后更改,例如输入–privileged 或–device=/dev/bus/usb/001/004

这时你应该输入004,最终通过输入lsusb指令查找正确号码

$ lsusb

Bus 001 Device 004: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T

安装FlightAware

虽然之前也介绍了几个飞行航道分析网站,但我还是选择FlightAware,他们的软件与你dump1090相连,并统计数据与网上的其他人的数据对比。

你可以安装FlightAware.deb文件到你的树莓派中,当然我已经创建了一个文件(Docker),这样做有两个优点,即不需要进行软件拷贝,还有就是不需要在树莓派的帮助下进行程序版本切换,无论是使用图像文件还是分享图像,都需要输入指令如下

docker pull alexellis2/flightaware:3.5.0

:

$ cd eyes-in-the-sky/flightaware$ docker build -t alexellis2/flightaware:3.5.0 .

注:一定小心最后一行末尾的圆点

现在就可以在FlightAware.com网站上注册一个账号

编辑piaware.conf 文件更改下面信息

主机地址(树莓派IP地址)

FlightAware用户名(注册信息)

FlightAware密码(注册信息)

FlightAware 通过 MAC地址选取树莓派信息是正确的,幸运的是,我们可以利用软件更改Docker中 MAC地址。如果仅仅是改变MAC 地址,那么里面每一部分都是独立的。

运行并观察最后结果

$ cd eyes-in-the-sky/flightaware$ docker rm -f piaware_1$ docker run --mac-address 02:42:ac:11:00:01 -v `pwd`/piaware.conf:/etc/piaware.conf --name piaware_1 -d alexellis2/piaware:3.5.0

看到出现结果之后按下Control + C

$ docker logs --tail 20 -f piaware_1

几分钟后你就可以在线看到自己树莓派的相关信息

常见问题

设备功率多少?

树莓派2/3以及Pi Zero 需要2-3瓦特,当dump1090程序在树莓派上工作时,用电量会增长50%,这对Pi Zero来说也是一样的,这其中额外电力主要为 USB DVB-T供电。

能用充电宝为设备供电吗?

可以,如果你每天追踪航班运行不到3个小时,那么就可以坚持3天。

我可以使用太阳能发电装置供电?

我想使用太阳能发电装置并不是一个明智的选择,你不能在这种情况下稳定运行树莓派,而且你还需要额外的设备,包括控制器、太阳能电池板以及蓄电池。

你最好在屋顶开阔地方放置设备,然后通过网络控制树莓派,这是我之前用到的零件清单(点我查看)。

有没有在外部设备存储镜像文件的解决方案?

首先你可以趣 FlightAware上下载相应文件,并存储在sd卡中,如果你之前按前文使用标准的配件,那么你可以直接在设备上安装dump1090系统以及对应软件。

你打算详细解读里面每个零件功能以及其它用途吗?

如果大家对这篇文章关注多了,我会在以后详细解读里每个组件的其它用途。

注:树莓派易受电压尖峰影响,因此请考虑使用电涌保护器以防止损坏,如果您所在地区为高电压尖峰地区,请考虑使用800焦耳的电涌保护器。

树莓派 docker homeassistant_利用树莓派追踪飞机航行轨迹的骚姿势分享(转载)相关推荐

  1. 姿态检测 树莓派_利用树莓派追踪飞机航行轨迹的骚姿势分享

    开篇 你知道如何利用你手中的树莓派来观察天空中的飞机吗?通过调谐和接收距离你所在地点250英里以外飞机无线电信号,你就可以追踪飞机航线,而完成这个任务,仅需要随处就能购买到的廉价USB电视棒. 本文将 ...

  2. 树莓派 docker homeassistant_树莓派raspberry4B入坑指南 part-4 安装docker-ce 19.03

    前言 安装教程参考的官网debian章节,有针对raspbian的讲解. 在文中有这么一句话: Raspbian users cannot use this method! For Raspbian, ...

  3. 树莓派siri homekit_利用树莓派Zero自制一款Homekit摄像头,看上去挺酷,手痒了吗?...

    虽然最近相继有多款兼容homekit商用摄像头上市,如果您也和小编一样,喜欢动手,那么DIY一款Homekit摄像头,然后自己3D打印个外壳支架,是不是很酷? HKCam项目 Home+ 4开发者Ma ...

  4. 利用树莓派制作天气闹钟

    前言 为了能让刚买的树莓派有效的利用起来(避免吃灰),今天分享一下如何用树莓派做天气闹钟. 环境及工具 树莓派3B+.IDE.XShell.FileZilla(FTP文件上传).小音箱. 查询天气 准 ...

  5. matlab系统的根轨迹,实验五 利用MATLAB绘制系统根轨迹

    <实验五 利用MATLAB绘制系统根轨迹>由会员分享,可在线阅读,更多相关<实验五 利用MATLAB绘制系统根轨迹(6页珍藏版)>请在人人文库网上搜索. 1.实验五 利用MAT ...

  6. 【利用树莓派制作无线打印服务器】

    利用树莓派制作无线打印服务器 文章目录 利用树莓派制作无线打印服务器 一.树莓派是什么? 二.什么是CUPS 树莓派如何启用CUPS 三.电脑端如何连接树莓派打印服务器? 四.手机如何连接树莓派打印服 ...

  7. 树莓派python控制两个舵机_利用树莓派,光敏电阻和小型舵机实现自动获取 《最终幻想 X HD重制版》 连续避雷200次奖杯...

    我相信大家只要是玩过最终幻想 X的同学肯定头疼于跑鸟和连续避雷200次,为此可以说不眠不休,甚至连砸机器的心都有,这两个小游戏可谓极度变态.对于连续避雷200次这个小游戏,不仅要求玩家在屏幕出现闪电后 ...

  8. 利用树莓派搭建家庭NAS简要

    利用树莓派搭建家庭NAS简要 家庭NAS是用OMV来实现的,目前有两种装法,一种是直接刷ovm4Pi 系统,一种是先安装raspbian(树莓派的debian系统),再安装omv .本文记录的是用第二 ...

  9. 简单内网穿透-利用树莓派-低成本建站 无需公网ip

    很多人都想试试自己建站玩一玩 (比如博客.自建网盘.远程下载等),但家里宽带没公网 IP,特意买台服务器又显得浪费.那么有没成本小.可玩性高.又能长期稳定使用的方案呢? 其实,免费的内网穿透工具 (如 ...

最新文章

  1. Linux安装Hbase并验证
  2. 交换机、路由器启动过程详述
  3. hdu 3007【爬山算法】
  4. 13.MATLAB的while、for、break、continue循环操作
  5. IBASE view WD_DESTROY - ON_NEW_FOCUS
  6. 弹层,iframe页面
  7. js获取el表达式的值_Vue.js
  8. asp.net2.0自定义控件---鼠标移到按钮上更改背景颜色,移出后恢复
  9. python将音频转换成文字_用Python将音频内容转换为文本格式
  10. JS-- jQuery遮罩插件 jquery.blockUI.js
  11. 天枢系统 | 白条账单架构及618备战
  12. 使用POI为Word文档设置阿拉伯数字形式、罗马数字形式的页脚
  13. 风靡IT圈的史诗级漏洞log4j2的产生原理及复现
  14. 和平精英亚服服务器信号差,和平精英延迟高怎么办 网络卡顿解决方法
  15. IEMS_8_图片识别_2
  16. MySQL8.0安装与基于二进制日志文件位置的主从复制
  17. 微信小程序 async await解决异步问题
  18. 南邮ctf-web的writeup
  19. 我是做地推的,一个月收入大概2W左右
  20. 开关电源设计中电感的选择

热门文章

  1. linux下tomcat服务器的启动和关闭以及查看实时打印日志
  2. MYSQL-show engine innodb status
  3. HDU 1690 Bus System
  4. ILMerge合并多个DLL
  5. MVC Html.AntiForgeryToken() 防止CSRF攻击
  6. JavaScript slice() 方法
  7. 软件专业毕业生之一个月攻略
  8. python 百度词典_python在线抓取百度词典的翻译结果翻译单词
  9. Redis与RabbitMQ作为消息队列的比较
  10. WeChat小程序授权机制踩坑请求头中设置cookie保持session