mqtt数据库测试python_MQTT消息控制车辆Python实践:测试和改进

背景知识视频教程

2020年完成Python开发:从零到精通 - viadean​viadean.comPython 大型课程:构建10个实际应用程序​viadean.com掌握MQTT - viadean​viadean.com

我们要使车辆处理许多命令,以检查所有零件如何协同工作。 我们要执行以下命令:

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'LOCK_DOORS'}{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

确保Mosquitto服务器或您可能要在此示例中使用的任何其他MQTT服务器正在运行。

启动MQTT.fx并按照

单击“订阅”,然后在“订阅”按钮左侧的下拉菜单中输入Vehicles / vehiclepi01 / executecommands。 然后,单击“订阅”按钮。 MQTT.fx将在左侧显示一个新面板,其中包含我们已订阅且QoS级别为0的主题过滤器。

然后,执行以下行以在要用作使用Linux或macOS的MQTT客户端的任何计算机或设备中启动车辆控制器示例:

python3 subscribe_with_paho.py

在Windows中,您必须执行以下行:

python subscribe_with_paho.py

保持代码在本地计算机或在此示例中选择用作车辆控制器的IoT板上运行。

在MQTT.fx中,单击“发布”,然后在“发布”按钮左侧的下拉菜单中输入Vehicles / vehiclepi01 / commands。 单击QoS 2,因为我们要使用QoS级别2。

在“发布”按钮下方的文本框中输入以下文本:{'CMD': 'LOCK_DOORS'}

然后,单击“发布”按钮。 MQTT.fx会将输入的文本发布到QoS级别为2的指定主题。

转到窗口,您可以在其中看到由Python代码生成的输出,该输出接收消息并控制车辆。 如果在IoT板上运行代码,则可能正在使用SSH终端或连接到IoT板上的屏幕。 如果您在本地计算机上运行代码,请根据所使用的操作系统转到“终端”或“命令提示符”。 您将看到以下输出:

Result from connect: Connection Accepted.Received message payload: b'{'CMD': 'LOCK_DOORS'}'vehiclepi01: Locking doors

Result from connect: Connection Accepted.Received message payload: b'{'CMD': 'LOCK_DOORS'}'vehiclepi01: Locking doors

Result from connect: Connection Accepted.Received message payload: b'{'CMD': 'LOCK_DOORS'}'vehiclepi01: Locking doors

该代码已使用命令接收到消息,Vehicle实例执行了lock_doors方法,并且输出显示了执行此代码的结果。

返回MQTT.fx,单击“订阅”,您将看到一条带有以下有效负载的新消息到达了Vehicles / vehiclepi01 / executedcommands主题:{'SUCCESSFULLY_PROCESSED_COMMAND':'LOCK_DOORS'}。 以下屏幕快照显示了MQTT.fx中收到的消息:

现在,对前面显示的列表中包含的每个命令重复以下过程。 我们希望我们的车辆控制应用程序处理QoS级别为2的MQTT消息中接收到的每个命令。删除现有文本,然后在“发布”按钮下的文本框中输入JSON字符串的文本,然后单击“发布”按钮。 MQTT.fx会将输入的文本发布到QoS级别为2的指定主题:

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

{'CMD': 'TURN_OFF_PARKING_LIGHTS'}{'CMD': 'SET_MAX_SPEED', 'MPH': 10}{'CMD': 'SET_MIN_SPEED', 'MPH': 1}{'CMD': 'TURN_ON_ENGINE'}{'CMD': 'TURN_ON_HEADLIGHTS'}{'CMD': 'ACCELERATE'}{'CMD': 'ROTATE_RIGHT', 'DEGREES': 45}{'CMD': 'ACCELERATE'}{'CMD': 'TURN_ON_PARKING_LIGHTS'}{'CMD': 'BRAKE'}{'CMD': 'TURN_OFF_ENGINE'}

转到窗口,您可以在其中看到由Python代码生成的输出,该输出接收消息并控制车辆。 您将看到以下输出,指示已接收并处理了所有命令:

参阅MQTT消息控制车辆Python实践:测试和改进 - viadean​viadean.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值