热门标签 | 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



推荐阅读
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • python怎么关闭红线提示_手把手教你安装Python开发环境
    Python在window环境下安装图解1、下载最新版本Windows的Python开发64位安装包目前最新版本是Python-3.7.22、下载完成后,获取安装包& ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 交换机配置:intg100unshintvlani1ipadd192.168.56.177qstelseuser-iv4authaaaproinsshupl3qsshuserpyt ... [详细]
  • ZOC7 for Mac 7.25.6 好用的终端仿真器
    zoc7mac破解版是一个专业的SSH和Telnet客户端和终端模拟软件,以出色的配置和用户界面而闻名。凭借其令人印象深刻的仿真和功能,通过使用选项卡式会话,键入命令历史记录,回滚 ... [详细]
  • Sublime Text 3 + LiveReload + Chrome
    安装LiveReload在SublimeText3中安装LiveReload。macOS快捷键⌘+⇧+P,输入InstallPackage,搜索LiveReload并回车安装。(W ... [详细]
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社区 版权所有