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许可的条款授权的, 的许可证文件中可以找到其完整版本 分配。在

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

推荐PyPI第三方库


热门话题
MIME类型多部分/混合的java无对象DCH   Java Swing中单元格和列的间距   java为什么我不能使用For循环从集合中获取元素?   mysql Java餐厅计费系统   java MediaPlayer内存消耗   println Java添加的神秘输出:一些经过评估,一些经过打印   java我应该使用哪个对象?   PHP到Java论坛游戏集成   通过GeoNetwork上的java http post请求获取XML响应   java为什么类名与使用“==”的内部字符串比较冲突?   java反应。js如何定义自定义id,而不是在html中显示reactselect1value   java中的拼字数组   java如何使ScheduledExecutorService在其计划任务取消时自动终止   java查询未正确执行   IBatis+Java:检索HashMap   要读取的加密Java代码。txt文件并转换为二进制表示形式   Java Web Start应用程序自动加载   java Swing重写对象的paintComponent