RPLIDAR设备和MQTT代理之间的简单桥
rplidar-mqtt-bridge的Python项目详细描述
RPLIDAR MQTT桥
这个包提供了一个简单的应用程序,用于在SLAMTECRPLIDAR设备之间桥接数据(特别是在 RPLIDAR-A1)和MQTT代理。在
已知限制
目前,这仅限于将数据从LiDAR设备传输到代理服务器,并假定使用直接USB连接。 在未来的版本中,这将扩展到支持控制电机速度和扫描频率,以便作为 双向bridge。在
除了直接的USB连接,这也将扩展到支持直接通过GPIOs驱动设备 (请注意,在Raspberry Pi上,这需要外部5V直流电源和GPIO和PWM引脚上的3.3V-5V电平变换器, 考虑到电机本身的功率要求)。在
快速入门
前提是已经通过USB建立了与设备的直接连接,并且MQTT代理直接
可在同一台计算机上访问,rplidar_mqtt_bridge
可以按原样运行:
$ rplidar_mqtt_bridge
Connected to RPLiDAR device at /dev/ttyUSB0
Publishing to localhost:1883/rplidar/9efxxxxxxxxxxxx...
MQTT格式
将发布以下MQTT主题和子主题:
^{pr2}$measurement
本身是在JSON编码的有效负载中提供的,由传感器读数和iso8601组成
时间戳:
{"quality":13,"angle":328.703125,"distance":353,"timestamp":"2020-03-31T17:28:29.828000"}
配置
也可以通过rplidar-mqtt.ini
文件进行配置,默认设置如下:
[DEFAULT]MQTT_BROKER_HOST="localhost"MQTT_BROKER_PORT="1336"MQTT_TOPIC_PREFIX="rplidar"RPLIDAR_DEVICE_PATH="/dev/ttyUSB0"
配置文件可以位于以下任何位置:
rplidar-mqtt.ini
/etc/rplidar-mqtt-bridge/rplidar-mqtt.ini
$HOME/.config/rplidar-mqtt-bridge/rplidar-mqtt.ini
使用
$ rplidar_mqtt_bridge --help
usage: rplidar_mqtt_bridge [-h] [--mqtt-host MQTT_HOST]
[--mqtt-port MQTT_PORT]
[--rplidar-device RPLIDAR_DEVICE]
[--reset-messages]
optional arguments:
-h, --help show this help message and exit
--mqtt-host MQTT_HOST
MQTT broker host to connect to
--mqtt-port MQTT_PORT
MQTT broker port to connect to
--rplidar-device RPLIDAR_DEVICE
RPLiDAR device path
--reset-messages Clear existing readings
Docker图像
还可以从Docker映像部署和运行rplidar_mqtt_bridge
。在
在这种情况下,运行映像的主机需要传递
RPLiDAR设备与容器的连接。这可以通过两种不同的方式实现:
以privileged
模式运行映像,其中容器可以直接访问
主机的设备,允许应用程序尝试查找RPLiDAR设备
直接自身:
$ docker run --privileged adaptant/rplidar-mqtt-bridge:latest
...
或者用一种更受约束的方式,在这种情况下,RPLiDAR设备 连接被显式传递:
$ docker run --device /dev/ttyUSB0 adaptant/rplidar-mqtt-bridge:latest
...
许可证
rplidar-mqtt-bridge
是根据Apache2.0许可的条款授权的,
的许可证文件中可以找到其完整版本
分配。在
- 项目
标签: