跳转到主要内容

APD传感器包

项目描述

高级Python开发传感器

这是构成《高级Python开发》一书的运行示例的一部分的数据收集包。

用法

这将安装一个名为sensors的控制台脚本,该脚本会返回有关系统各个方面的报告。可用的传感器包括

  • Python版本
  • IP地址
  • CPU使用率
  • 可用RAM
  • 电池充电状态
  • 环境温度
  • 环境湿度

没有命令行选项,要查看报告,请在命令行上运行sensors

注意事项

环境温度和环境湿度传感器仅适用于RaspberryPi主机,并假设DHT22传感器连接到引脚D20

可以通过设置环境变量APD_SENSORS_TEMPERATURE_BOARDAPD_SENSORS_TEMPERATURE_PIN来控制传感器的位置和类型。

如果当前主机名在/etc/hosts中有一个条目,则该值将是IP地址传感器的唯一结果。

安装

您可以在Python 3.7或更高版本下使用pip3 install apd.sensors进行安装。

我们建议使用pipenv来管理您的环境,在这种情况下,您将使用pipenv --three install apd.sensors进行安装,并使用pipenv run sensors运行程序。

API服务器

apd.sensors附带了一个可选的API服务器。要使用此功能,您应安装apd.sensors[webapp]附加组件。然后可以使用非生产质量的wsgiref服务器启动API

python -m apd.sensors.wsgi.serve

或者(如果已安装)通过Waitress使用

waitress-serve --call apd.sensors.wsgi:set_up_config

其他WSGI服务器也可以工作,您应该使用set_up_config作为工厂函数。

使用API服务器需要环境变量,APD_SENSORS_API_KEY应设置为获取访问权限所需的API密钥。可以使用以下方法生成

python -c "import uuid; print(uuid.uuid4().hex)"

以下端点受支持

  • /v/3.0/sensors
  • /v/3.0/sensors/sensorid
  • /v/3.0/deployment_id

历史数据

您可以使用apd.sensors[scheduled]扩展功能来安装可选功能,定期存储传感器值。在这种情况下,sensors --save将记录的数据存储到当前工作目录下的sensor_data.sqlite

可以使用--db sqlite:////var/sensors.sqlite等指定数据库连接,例如。也可以通过APD_SENSORS_DB_URI环境变量指定。

数据库必须首先迁移以包含正确数据。这可以通过在当前工作目录中运行以下alembic.ini文件中的alembic upgrade head来完成。

[alembic]
script_location = apd.sensors:alembic
sqlalchemy.url = sqlite:///sensor_data.sqlite

历史数据API

如果使用apd.sensors[webapp,scheduled,storedapi]安装,则也提供了一个用于提取历史数据的API。

这提供了以下三个URI,其中开始和结束是ISO格式的日期/时间。

  • /v/3.0/historical
  • /v/3.0/historical/start
  • /v/3.0/historical/start/end

变更

2.2.1 (2020-05-21)

  • 传感器中的意外错误不应在v3 API中引起500错误(Matthew Wilkes)

2.2 (2020-01-17)

  • 添加在查询中存储数据点的功能(Matthew Wilkes)
  • 添加v3.0 API以区分传感器错误并包含历史数据(Matthew Wilkes)

2.1.1 (2020-01-06)

  • 缓存DHT传感器连接(Matthew Wilkes)
  • 强制使用bitbang接口进行DHT传感器,以在Linux上提高可靠性(Matthew Wilkes)

2.1.0 (2019-12-09)

  • 添加可选的APD_SENSORS_DEPLOYMENT_ID参数和v2.1 API,允许用户找到webapp传感器部署的唯一标识符(Matthew Wilkes)

2.0.0 (2019-09-08)

  • 向Sensor添加to_json_compatiblefrom_json_compatible方法,以方便更好的HTTP API(Matthew Wilkes)

  • HTTP API现在是分版本的。1.3.0的API可在/v/1.0找到,更新版本在/v/2.0(Matthew Wilkes)

1.3.0 (2019-08-20)

  • 添加WSGI HTTP API支持(Matthew Wilkes)

1.2.0 (2019-08-05)

  • 通过apd.sensors.sensors入口点添加外部插件支持(Matthew Wilkes)

1.1.0 (2019-07-12)

  • 添加--develop参数(Matthew Wilkes)

1.0.1 (2019-06-20)

  • 修复1.0.0版本的问题(Matthew Wilkes)

1.0.0 (2019-06-20)

  • 添加初始传感器(Matthew Wilkes)

版权(c)2019 Matthew Wilkes

在此特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用该软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是否因合同、侵权或其他行为而产生,无论是否与软件或软件的使用或其他交易有关。

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

apd.sensors-2.2.1.tar.gz (15.5 kB 查看哈希值)

上传时间:

构建分布

apd.sensors-2.2.1-py3-none-any.whl (19.4 kB 查看哈希值)

上传时间 Python 3

由以下支持