使用rtl sdr接收能量计数3000传输。

ec3k的Python项目详细描述


此模块允许您接收和解码来自 使用RTL-SDR支持的无线电接收器和 gnu无线电软件定义了无线电框架。

ENERGYCOUNT 3000发射机插在设备和交流电源插座之间 监控电能的使用。他们传送一个状态为 868mhz srd频段每5秒更新一次。报告值包括 器件的ID、电流和最大可见电能、总能量 使用和设备准时。

模块内容

模块导出表示无线电接收器的类。你提供 它有一个回调函数,每次新的状态更新 收到:

def callback(state):
    print state

my_ec3k = ec3k.EnergyCount3K(callback=callback)

my_ec3k.start()
while not want_stop:
    time.sleep(2)
    print "Noise level: %.1f dB" % (my_ec3k.noise_level,)

my_ec3k.stop()

上面的示例在每次状态更新时都会打印出以下内容:

id              : ....
time total      : .... seconds
time on         : .... seconds
energy          : .... Ws
power current   : .... W
power max       : .... W
reset counter   : ....

您还可以通过调用 能量计数3K物体。有关详细信息,请参见docstrings。

还包括一个示例命令行客户机ec3k_recv,它打印 接收到标准输出的数据包。

要求

您需要gnu无线电框架、rtl sdr和gr osmosdr包。

http://sdr.osmocom.org/trac/wiki/rtl-sdr

最新工作版本的组合:

  • GNU Radio release 3.7.5
  • rtl-sdr git commit d447a2e9 (2014-08-26)
  • gr-osmosdr git commit 48045b59 (2015-01-10)

对于基带解码,本文包含了一个纯python实现 包(capture.py)应该可以开箱即用。

为了更有效地解码,还可以使用c实现。获得 从下面的地址获取源代码,编译它并确保capture 二进制文件在路径中。然后应该自动使用它,而不是 python实现。

http://www.tablix.org/~avian/blog/articles/am433/

安装

安装ec3k就像安装大多数其他python包一样:

$ python setup.py install
$ python setup.py test

要试用它,请运行示例命令行客户机:

$ ec3k_recv

请注意,接收器需要一些时间来适应信号和噪声 在你的环境中。可能需要几分钟才能ec3k_recv 打印出任何解码的数据包。

已知问题

有时GNU无线电管道设置不正确。如果发生这种情况 噪音水平一直保持在-90分贝,没有数据包 收到。重新启动程序通常会有帮助。更新gr osmosdr和rtl sdr 通常可以解决这个问题。

停止接收器有时会导致segfault。更新gr osmosdr和 rtl sdr通常可以解决这个问题。

反馈

请将修补程序或错误报告发送到<;tomaz.solc@tablix.org>;

来源

您可以使用以下命令获取开发存储库的本地副本:

git clone git://github.com/avian2/ec3k.git

许可证

EC3K,EnergyCount 3000的软件接收器

版权所有(C)2015 Tomaz Solc<;tomaz.solc@tablix.org>;

版权所有(c)2012 Gasper Zejn

协议反向工程:http://forum.jeelabs.net/comment/4020

此程序是免费软件:您可以重新分发和/或修改 根据由 自由软件基金会,或者许可证的第3版,或者 (由您选择)任何更高版本。

这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU通用公共许可证了解更多详细信息。

你应该收到GNU通用公共许可证的副本 还有这个节目。如果没有,请参见<;http://www.gnu.org/licenses/>;。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
手机上的html调试Java web应用程序   Java当前日期和过去日期之间的差值,以年、月、日、小时、分、秒为单位   如果方法名称相同,java如何使扩展类不从上面的类触发方法?   即使在提供了准确的firebase引用之后,java仍出现“无法跳转到类型”异常。请看详情   jar文件中的java图像   java如何避免从缓存读取时修改相同的对象实例?   Android中java完全控制的线程队列   JTextArea中的java计算   java如何独立运行。jar作为64位mashine上的32位   java在尝试实例化自引用泛型类的实例时,如何处理自引用类型参数   java如何安装着色jar而不是原来的jar   java在resultSet之后使用If-Else   多线程是java。朗,反思一下。方法调用线程安全   java 7语言向后兼容性   Objective C中的Category和Java 8中的Default方法是否等效?