EO-88遥测信号接收教程

Posted RTOAMSR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EO-88遥测信号接收教程相关的知识,希望对你有一定的参考价值。

1.卫星信息

名称:纳伊夫一号(Nayif-1,EO-88)

所属国:阿联酋

两行式轨道根数(更新于2022/11/10):

1 42017U 17008BX  22313.75456408  .00035184  00000-0  86817-3 0  9994
2 42017  97.2516  18.0961 0005482  88.2588 271.9287 15.40433149319394

 

2.卫星遥测模式&频率&内容

BPSK 模式,使用 USB(上边带)接收即可

遥测下行频率  145.940 MHz

传送的内容主要是遥测数据,有时会夹带一些短句,见文章最后的样例

遥测信号频谱图&瀑布图样例如下

听起来则像是每过一阵噪声之后【嘀】一声,仔细听的话还是能把BPSK那混入底噪的声音区分出来的

 

 3.接收所需设备&如何跟踪卫星

我使用的是RTL2832SDR和一支八木天线,软件是SDRSharp

也可以用别的,但是一定要保证信号传入解码软件时没有太大的失真和畸变,信号强度也要达到一定阈值

这颗卫星属于业余卫星,在各大业余无线电卫星跟踪软件里都能查到(搜索时要搜EO-88,大部分软件都是按这个名称来的),软件比如look4sat和heavens-above

也可以移步heavens-above官网(heavens-above.com),在【人造卫星数据库】栏目里输入【NAYIF 1】即可找到它

查找前需要先在网站右上角加载自己的位置,查找过境时要勾选【全部过境】

(要注意的是,这个网站对查找内容的格式要求很严格,输入的文本必须要严格一致才能查找到对应的卫星)

look4sat的优点是会考虑实时的多普勒效应,显示多普勒效应下的频率

 

4.解码所需软件

FUNcube官网给出了官方软件,下载地址如下

传送门:software

下载后解压,默认文件夹名称是【Nayif】

进入程序时可能会弹出一大串报错信息:

关于这个报错,网络上有人分析过原因,是文字编码问题导致的,进行一个简单的更改就可以解决了(但是可能会让别的一些软件产生乱码);我实测下来的话,不管这个警告也可以正常解码,所以个人来说不太建议去管它

进入之后左上【Capture】里选择声卡就可以,也可以用别的 (我用的是声卡,仅供参考)

然后软件就会根据信号自动解码了,一旦解码成功就会立马显示在数据板上面

 

5.接收注意事项

【LEO卫星过境时间短、速度快,需提前准备调试好设备】

【最大仰角的时候多普勒效应极其强烈,手动调整频率的话就需要集中精力不断跟踪,要不然很快就会偏移出接收范围】(这里说多普勒效应很强是因为BPSK信道带宽窄,所以即使VHF的多普勒不算明显,在较小的信道带宽下也会变得很明显)

【这颗卫星信号很强,接收简单

【接收时只要信号没有跑出接收范围就能解码,不存在因为频率变化而无法解码的问题】

【如果使用线极化天线(比如平面八木)收这颗卫星的话,需要在开始接收的时候来回旋转天线以使极化匹配,提高极化效率;接收时如果发现信号反常地减弱,那么就需要旋转天线来调整极化】

【接上条,这颗卫星目前的状态是,单次过境中极化会频繁扭转,所以需要根据信号变化来及时调整天线】

【信号需要达到一定强度才能解码(或者说有足够的信噪比)】

【接收效果受视野、电磁环境、大气性质等多种因素的影响】

 

6.接收样例

这里是我这两天接收到的EO-88的遥测信号以及其中附带的文本消息

 

7.其他

为了更直观地看到遥测数据的变化,有一些对应的软件可以以柱状图的形式显示出数据的变化趋势;

这方面的软件可以去DK3WN的卫星博客里寻找,里面有非常齐全的解码软件,包括CW遥测解码(把听译出的原始文本输入就可以了)

 

 

如何在 Python 中接收 Azure 设备遥测?

【中文标题】如何在 Python 中接收 Azure 设备遥测?【英文标题】:How can I receive Azure Device telemetry in Python? 【发布时间】:2018-06-27 18:06:28 【问题描述】:

如何使用 Python 在事件中心接收设备消息?我看到来自事件中心的摘要消息,但缺少详细的设备消息。

使用 Azure IOT 远程监控示例(https://github.com/Azure/azure-iot-remote-monitoring、https://www.azureiotsolutions.com/Accelerators)和 IOT Hub Explorer https://github.com/Azure/iothub-explorer 提供如下消息:

==== 来自:'chiller-01.0' at '2018-06-27T17:35:13.835Z' ==== “温度”:74.8813305672404, “温度单位”:“F”, “湿度”:67.345695720448, “湿度单位”:“%”, “压力”:155.648674178239, “压力单位”:“psig” ---- 应用程序属性 ---- "iothub-message-schema": "chiller-sensors;v1", “iothub-creation-time-utc”:“2018-06-27T17:35:13.5066336Z”, "$$CreationTimeUtc": "2018-06-27T17:35:13+00:00", "$$MessageSchema": "chiller-sensors;v1", "$$ContentType": "JSON"

为了在 python 中获取这些消息,我使用 azure-event-hubs-python 库和https://github.com/Azure/azure-event-hubs-python 的示例使用为操作中的 IOT 中心指定的事件中心连接字符串从事件中心读取 IOT 消息标签。用 Node JS 编写的 IOT Hub Explorer 使用 IOT Hub 连接字符串,但是使用 python 编写相应的代码失败并且 EventHubClient.from_connection_string 失败,因为 'EndPoint' 不在连接字符串中。将连接字符串中的“HostName”更改为“EndPoint”会导致 connection.pyx 出现错误:

文件“./src/connection.pyx”,第 20 行,在 uamqp.c_uamqp.create_connection 类型错误:预期字节,找到无类型

将协议 sb:// 预挂到端点抱怨未指定 EventHub:

ValueError:未指定 EventHub

添加 ;EntityPath= 会更进一步,但会因 CBS 令牌身份验证错误而失败:

azure.eventhub.EventHubError:接收失败:CBS 令牌身份验证失败。 状态码:401 说明:b'指定的 SAS 令牌具有无效签名。它与主键或辅助键都不匹配。'

使用 IOT 中心的事件中心连接字符串连接并接收消息可修复这些错误,但仅接收摘要数据而没有任何设备遥测,例如:


  "count": 0,
  "total": 0,
  "minimum": 0,
  "maximum": 0,
  "average": 0,
  "resourceId": "/SUBSCRIPTIONS/SUBSCRIPTION/RESOURCEGROUPS/RESOURCEGROUP/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/IOTHUB", 
  "time": "2018-06-27T16:59:00.0000000Z", 
  "metricName": "jobs.failed", 
  "timeGrain": "PT1M"

由于设备数据丢失,我不确定是否将正确的参数传递给 Python EventHubClient,或者客户端是否没有返回它们。一年前的此堆栈交换How can I receive from Azure IoT Hub messages sent by devices? 表明无法使用 Python 读取遥测数据,但由于 Python EventHub SDK 已经存在,我希望这已得到修复。

【问题讨论】:

【参考方案1】:

是的,最新的 EventHubs SDK 可以使用 python 读取遥测数据。 不知道大家有没有提到 GitHub 上的issue(#28)。我认为 annatisch 在 4 月 28 日发表的评论对这个问题很有帮助。

【讨论】:

谢谢,迈克尔,这真的很有帮助。我现在正在阅读第 28 期的说明。 如果有任何问题,请随时告诉我。 迈克尔,我还是有问题。如前面的问题陈述所示,我能够使用事件中心命名空间地址、共享访问密钥和共享访问密钥值连接到事件中心,但我只看到事件的摘要数据和没有详细数据。 ADDRESS = 'amqps://eventhub-namespace-name.servicebus.windows.net/event-hub-name' SHARED_ACCESS_KEY_NAME = 'RootManageSharedAccessKey' SHARED_ACCESS_KEY_VALUE = '共享访问密钥值' client = EventHubClient(ADDRESS, SHARED_ACCESS_KEY_NAME, SHARED_ACCESS_KEY_VALUE) 使用问题 #28 示例,我使用 CLI 获取端点并构造 EventHubClient,如下所示:code ADDRESS = 'amqps://iothub-ns-.servicebus。 windows.net/' USERNAME = "iothubowner" PASSWORD = "" client = EventHubClient(ADDRESS, username=USERNAME, password=PASSWORD) receiver = client.add_receiver(consumer_group= "$default", partition="0") batch = receiver.receive(timeout=5)code 这给了我以下错误:uamqp.errors.TokenAuthFailure: CBS Token authentication failed。状态码:404 说明:b'@H+\x05\x01'

以上是关于EO-88遥测信号接收教程的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中接收 Azure 设备遥测?

python 包之 blinker 信号库教程

Qt教程8--准备战斗--接收键盘信号.txt

SDI视频采集过程

一体式水利视频监控站 遥测终端视频图像水位水质水量流速监测

一体式水利视频监控站 遥测终端视频图像水位水质水量流速监测