Calypso UP10风速计的Python驱动程序
项目描述
Calypso UP10风速计的Python驱动程序
关于
硬件设备
Calypso UP10 超声波便携式太阳能风速计 是一款蓝牙、太阳能供电、口袋大小的超声波风速计。无需电源线或数据线。
图片
Calypso UP10。
资源
软件库
设备驱动库是用 Python 编写的,基于 Bleak 库。经过验证,它可以在 Raspberry Pi 上的 OpenPlotter 安装以及 macOS 工作站上良好运行。
特性
运行设备发现
获取设备状态和读数(一次性)
获取设备连续读数(订阅/通知)
设置设备数据速率
通过 UDP 使用 NMEA-0183 和 SignalK 进行遥测
设置
pip install --upgrade calypso-anemometer
要从存储库安装最新版本,请调用
pip install --upgrade git+https://github.com/maritime-labs/calypso-anemometer
飞行前检查
我们有一些关于调查和配置您的蓝牙/BLE 堆栈以及关于模拟遥测消息的文档。在此方面,您可能希望在进入 生产 之前运行一系列 飞行前检查。
用法
命令行
发现 ULTRASONIC BLE 设备并在其上运行会话。默认情况下,将使用蓝牙适配器 hci0。
# Get device information with discovery. calypso-anemometer info # Get device reading. calypso-anemometer read # Get device reading, with compass (roll, pitch, heading). calypso-anemometer read --compass=on # Get device readings, continuously at 4 Hz (default). calypso-anemometer read --subscribe # Get device readings, continuously at 1 Hz. calypso-anemometer read --subscribe --rate=hz_1 # Generate fake device readings, continuously at 8 Hz. pip install --upgrade calypso-anemometer[fake] calypso-anemometer fake --subscribe --rate=hz_8
如果您已经发现了您的设备,知道其地址,并且想要直接连接而无需自动设备发现,请参阅 跳过发现。
同样,当您的系统有多个蓝牙适配器时,您可能希望选择特定的一个,请参阅 选择蓝牙适配器。
# Get device information w/o discovery. calypso-anemometer info --ble-address=F8:C7:2C:EC:13:D0 # Get device information w/o discovery, using a specific Bluetooth adapter. calypso-anemometer info --ble-adapter=hci1 --ble-address=F8:C7:2C:EC:13:D0
库
为了使用库 API,请参阅 examples 文件夹中的程序。
概述
from calypso_anemometer.core import CalypsoDeviceApi async with CalypsoDeviceApi() as calypso: reading = await calypso.get_reading() reading.print()
遥测设置
程序可以可选地以不同的格式提交遥测消息。
SignalK 遥测
连续接收设备读数,并通过 UDP 以 SignalK Delta 格式提交
calypso-anemometer read --subscribe --rate=hz_1 --target=udp+signalk+delta://openplotter.local:4123
要使 SignalK 服务器 接收数据,请在您的 OpenPlotter 实例的“服务器 » 数据连接”对话框中创建一个“UDP 接收器”数据连接。
SignalK UDP 接收器在端口 4123。
NMEA-0183 遥测
连续接收设备读数,并通过 UDP 广播以 NMEA-0183 格式提交
calypso-anemometer read --subscribe --rate=hz_1 --target=udp+broadcast+nmea0183://255.255.255.255:10110
要使 OpenCPN 接收数据,请创建相应的数据连接,如下截图所示。
添加 NMEA-0183 UDP 接收器在端口 10110。
配置 NMEA-0183 UDP 接收器在端口 10110。
一个示例 NMEA-0183 有效负载,包括多个句子:
$MLHDT,235.0,T*27 $MLVWR,154.0,L,11.06,N,5.69,M,20.48,K*64 $MLXDR,A,-60.0,D,PTCH#CAL,A,30.0,D,ROLL#CAL*75 $MLXDR,C,33.0,C,AIRTEMP#CAL*6A $MLXDR,L,0.9,R,BATT#CAL*18
其他项目
AocpnUltrasonicLink 是一个 Android 应用程序,用于将 Calypso 超声波风速数据链接到 OpenCPN,用 Java 编写。
BLE_Wind 是用于从 Calypso 风速计读取数据的 Arduino 固件,用 C++ 编写。
CalypsoUltrasonicAPI 是用于 Calypso 超声波风速计的库,用 Visual Basic .NET 和 Java 编写,(也)用于 Android。
signalk-calypso-ultrasonic 是用于 Calypso 无线风速计的 Signal K 服务器插件,用 JavaScript 编写。
ultrasonic-ble-react 是一个用于 Calypso 超声波风速传感器的 React native 测试应用,用 JavaScript 编写。
故障排除
为了帮助您找到已知问题的解决方案,我们维护了一个专门的页面,见 故障排除。主题范围从权限错误到 BLE 超时。
致谢
感谢 Henrik Blidh、David Lechner 和其他贡献者为构思和维护出色的 Bleak 库。
特别感谢 Fabian Tollenaar 为创建 signalk-calypso-ultrasonic。
项目信息
贡献
所有类型的贡献、反馈或补丁都十分欢迎。如果您认为我们应该包括新功能,或者报告或修复错误,请 创建问题 或提交补丁。
开发
为了在您的工作站上设置开发环境,请查阅 开发沙盒 文档。当您看到软件测试成功时,您应该准备好开始开发。
资源
许可证
本项目根据 GNU AGPL 许可证条款授权,请参阅 LICENSE。
保修和责任
本程序没有保修。在任何情况下,版权所有者或修改和/或传播本程序的其他任何方都不会对因使用或无法使用本程序而引起的任何损害承担责任。
请参阅 LICENSE 文件的第 15、16 和 17 条。
calypso-anemometer-0.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82b67d8836352fa5d225852eb5adc01046d42c1d932b45b277f71402fb6c48a4 |
|
MD5 | 4856ead55b77fd11ab4128a81c854c0b |
|
BLAKE2b-256 | 7d0b12876710aff61c6f5d5e33de9704c682a74132a247a5fd067754627abae6 |