【河南省第二届技能大赛-物联网技术】C模块Python开发讲解

在这里插入图片描述

前言

这是基于样题进行讲解的文章,因为正式赛题尚未公布和样题类型相似。文章结尾提供了源码和环境链接,读者可以自行下载以进行更深入的学习和优化。

题目如下

在这里插入图片描述

注意:题目中的API链接,是在比赛局域网环境下进行的,在平常练习的时候,用新大陆官方链接即可!

链接:新大陆官网AP接口调用文档

什么是云平台API

云平台API(Application Programming Interface,应用程序编程接口)是一种编程接口,用于不同应用程序之间的通信。在云平台中,API通常用于实现设备数据的读取和控制等功能。用户可以使用API对设备进行远程操作,也可以通过API获取设备的各种传感器数据。

API调用的基本流程

API调用的基本流程如下:

  1. 用户登录云平台账号,获取AccessToken。
  2. 使用AccessToken对设备进行认证。
  3. 调用API获取设备数据。
  4. 对获取的数据进行处理和展示。

Python实例介绍

下面我们以一个Python实例来介绍API调用的各种参数及其意义。该实例中,我们通过API调用获取一个温度传感器和一个风扇传感器的数据,并将数据显示在PyQt5的界面上。

依赖库介绍

在该Python实例中,我们需要使用requests和PyQt5这两个库。其中,requests用于向云平台发送HTTP请求,PyQt5用于构建调用图形用户界面。

API调用的基本参数

在该Python实例中,我们需要使用以下API调用的基本参数:

  • login_url:登录API的地址,用于获取AccessToken。
  • login_data:登录API的参数,包括账号、密码和是否记住登录状态等。
  • temp_sensor_url:温度传感器API的地址,用于获取温度传感器数据。
  • fan_sensor_url:风扇传感器API的地址,用于获取风扇传感器数据。
  • token_data:认证API的参数,包括AccessToken。

以上均为自定义参数,可对照源码进行查看

请求返回值

请求成功时,API将返回一个带有相应结果的JSON格式响应体。在请求返回的JSON结果中,"Status"表示请求的执行结果,而"ResultObj"是请求的执行结果数据。解析JSON格式数据即可!

requests库

首先我们来看一下requests库中常用的几个函数。

  1. requests.post(url, data=None, json=None, **kwargs)
    这个函数用于向指定url发送POST请求,并且传递data或者json参数。
    • url:需要发送POST请求的url。

    • data:向服务器发送的表单数据,可以是字典、元组列表或字节序列。

    • json:向服务器发送的json格式数据,可以是python对象或字符串。

    • **kwargs:其他的请求参数,例如headers、timeout等。

  2. requests.get(url, params=None, **kwargs)
    这个函数用于向指定url发送GET请求,并且传递params参数。
    • url:需要发送GET请求的url。

    • params:向服务器发送的查询参数,可以是字典、元组列表或字节序列。

    • **kwargs:其他的请求参数,例如headers、timeout等。

  3. response.json()
    这个函数用于将服务器返回的json格式数据转换为Python对象。如果返回的数据不是json格式,将会抛出异常。
  4. response.status_code
    这个属性用于获取服务器返回的HTTP状态码。

PyQt5库

接下来我们来看一下PyQt5库中常用的几个类和函数。

  1. QApplication
    这个类是所有PyQt5应用程序的主要类。它是用来管理应用程序的控制流程、事件循环和各种对象之间的交互。
  2. QMainWindow
    这个类是用来创建主窗口的。它包含一个菜单栏、工具栏、状态栏和中心部件,也可以包含其他窗口小部件。
  3. uic.loadUi()
    这个函数可以将一个.ui文件加载到一个QWidget或其子类中,用于将设计好的UI界面与代码连接起来。
  4. QTimer
    这个类用于创建一个定时器,可以根据指定的时间间隔定期触发timeout信号。它常常用来更新UI界面的信息。
  5. QWidget
    这个类是Qt GUI程序中所有用户界面的基类。它是所有其他窗口部件的父类,并且可以作为窗口部件的容器。
  6. QObject
    这个类是Qt程序中所有对象的基类,提供了信号和槽机制,用于实现对象之间的通信。

总结

本篇博客中,我们学习了如何使用Python的requests库进行HTTP请求,以及PyQt5库的常用类和函数。通过这个例子,我们可以看到如何将这两个库结合起来,实现一个基于PyQt5的UI界面,用于显示传感器数据。同时,我们还讲解了Python程序中的函数、类、模块等基本概念,以及Python程序的运行机制。

源码链接

链接:百度网盘python源码和环境
提取码:9494

注意:运行代码之前,要搭配对应环境,代码内部的部分参数需要进行对应调正,请仔细阅读!


猜你喜欢

转载自blog.csdn.net/qq_72935001/article/details/130411247
今日推荐