热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

背景知识视频教程2020年完成Python开发:从零到精通-viadean​viadean.comPython大型课程:构建10个实际应用程序​viad

背景知识视频教程

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



推荐阅读
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • WinMain 函数详解及示例
    本文详细介绍了 WinMain 函数的参数及其用途,并提供了一个具体的示例代码来解析 WinMain 函数的实现。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • C# 中 SQLite 报错:在 "\\s\\" 附近出现语法错误,如何解决? ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • CTF竞赛中文件上传技巧与安全绕过方法深入解析
    CTF竞赛中文件上传技巧与安全绕过方法深入解析 ... [详细]
  • Python学习:环境配置与安装指南
    Python作为一种跨平台的编程语言,适用于Windows、Linux和macOS等多种操作系统。为了确保本地已成功安装Python,用户可以通过终端或命令行界面输入`python`或`python3`命令进行验证。此外,建议使用虚拟环境管理工具如`venv`或`conda`,以便更好地隔离不同项目依赖,提高开发效率。 ... [详细]
  • Typora快捷键使用指南:提升写作效率的必备技巧 ... [详细]
author-avatar
serafina捡到一枚人鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有