跳转到主要内容

Pimoroni Weather HAT库

项目描述

Weather HAT Python库及示例

Build Status Coverage Status PyPi Package Python Versions

Weather HAT是将气候和环境传感器连接到Raspberry Pi的整洁一站式解决方案。它有一个明亮的1.54英寸LCD屏幕和四个按钮作为输入。板载传感器可以测量温度、湿度、压力和光。RJ11连接器可以轻松地连接风速和雨量传感器。它与任何带有40引脚头部的Raspberry Pi兼容。

购买地点

安装

我们建议使用Raspberry Pi OS Bookworm或更高版本的操作系统。它需要Python ≥3.7。

完整安装(推荐)

我们已经创建了一个简单的安装脚本,它可以安装所有预置件,并以最少的努力使Weather HAT启动并运行。要运行它,请在您的Raspberry Pi桌面上打开终端,您可以在菜单->附件->终端中找到它,如下所示

Finding the terminal

在新的终端窗口中,输入以下命令(检查是否有错别字)并遵循屏幕上的说明

git clone https://github.com/pimoroni/weatherhat-python
cd weatherhat-python
./install.sh

注意 库将被安装在 "pimoroni" 虚拟环境中,您需要激活它才能运行示例

source ~/.virtualenvs/pimoroni/bin/activate

开发

如果您想贡献,或者喜欢坐在边缘感受最新代码,可以按照以下方式安装开发版本

git clone https://github.com/pimoroni/weatherhat-python
cd weatherhat-python
./install.sh --unstable

从 PyPi 安装稳定库并手动配置

  • 设置虚拟环境: python3 -m venv --system-site-packages $HOME/.virtualenvs/pimoroni
  • 切换到虚拟环境: source ~/.virtualenvs/pimoroni/bin/activate
  • 安装库: pip install weatherhat

在某些情况下,您可能需要使用 sudo 或使用以下命令安装 pip: sudo apt install python3-pip

这不会进行任何配置更改,因此您可能还需要启用

  • i2c: sudo raspi-config nonint do_i2c 0
  • spi: sudo raspi-config nonint do_spi 0

您可以运行 sudo raspi-config 或图形化的 Raspberry Pi 配置 UI 来启用接口。

一些示例有额外的依赖项。您可以使用以下命令安装它们

pip install fonts font-manrope pyyaml adafruit-io numpy pillow

您可能还需要安装 libatlas-base-dev

sudo apt install libatlas-base-dev

使用库

导入 weatherhat 模块并创建 WeatherHAT 类的实例。

import weatherhat

sensor = weatherhat.WeatherHAT()

Weather HAT 在您调用 update(interval=5) 时更新传感器。

温度、压力、湿度、光和风向会持续更新。

雨和风速在 interval 期间测量。Weather HAT 会计算雨量计的滴答声和风速表的(半)旋转,每 interval 秒计算一次雨/风,并重置计数以进行下一次通过。

例如,以下代码将每 5 秒更新雨/风速度,而所有其他读数将在需要时更新

import time
import weatherhat

sensor = weatherhat.WeatherHAT()

while True:
    sensor.update(interval=5.0)
    time.sleep(1.0)

平均读数

Weather HAT 库提供了一套“历史”类,旨在保存一段时间内的读数,并提供访问最小值、最大值和平均值等功能,以及单位转换。

例如,WindSpeedHistory 允许您存储风速读数并在英里/小时或千米/小时中检索它们,此外还可以确定给定时间段内的“阵风”(最大风速)

import time
import weatherhat
from weatherhat.history import WindSpeedHistory

sensor = weatherhat.WeatherHAT()
wind_speed_history = WindSpeedHistory()

while True:
    sensor.update(interval=5.0)
    if sensor.updated_wind_rain:
        wind_speed_history.append(sensor.wind_speed)
        print(f"Average wind speed: {wind_speed_history.average_mph()}mph")
        print(f"Wind gust: {wind_speed_history.gust_mph()}mph")
    time.sleep(1.0)

快速参考

温度

温度读数以摄氏度表示,并从 Weather HAT 的板载 BME280 测量。

设备温度

sensor.device_temperature

设备温度以摄氏度表示。

这是直接从 Weather HAT 板载的 BME280 读取的温度。它没有补偿,并且由于 Pi 的热量,往往比环境温度略高。

补偿(空气)温度

sensor.temperature

温度以摄氏度表示。

这是应用了偏移量后的温度。此偏移量是固定的,并从 sensor.temperature_offset 中获取。

压力

sensor.pressure

压力以百帕表示。

湿度

sensor.humidity

湿度以百分比表示。

相对湿度

sensor.relative_humidity

相对湿度以百分比表示。

相对湿度是空气中的水分含量,已补偿温度,因为较暖的空气可以容纳更多的水分。

它表示为从 0(无水分)到 100(完全饱和)的百分比。

露点

sensor.dewpoint

露点以摄氏度表示。

露点是水在当前湿度下从空气中凝结出来的温度。

光/勒克斯

sensor.lux

光以勒克斯表示。

勒克斯的范围从 0(完全黑暗)到 64,000(全亮度)。

风和雨都会定期更新,而不是按需更新。

要检查 update() 调用是否导致新的风/雨测量,请检查

sensor.updated_wind_rain

风向

sensor.wind_direction

风向以度为单位。

风向使用电位计测量,并在内部使用模拟读数。这被转换为度以方便使用,并且会跳转到最近的 45 度增量,0 度表示北。

风速

sensor.wind_speed

风速以米/秒表示。

Weather HAT每半圈都会计数,并使用风速计的周长和系数将其转换为cm/s。

更新频率根据请求的更新间隔而更新。

降雨

sensor.rain

每秒降雨量(毫米)。

Weather HAT在给定的更新周期内计算雨量计的每个“滴答”计数(大约0.28毫米),并将其转换为mm/s。

总降雨量

sensor.rain_total

当前更新周期内的总降雨量(毫米)。

1.0.0

  • 重新包装为hatch/pyproject
  • 移植到gpiod(Pi 5支持)

0.0.2

  • 值现在总是浮点数
  • 修复背光引脚
  • 修复最新/平均mph

0.0.1

  • 初始发布

项目详情


下载文件

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

源分发

weatherhat-1.0.0.tar.gz (30.9 kB 查看哈希)

上传时间

构建分发

weatherhat-1.0.0-py3-none-any.whl (13.1 kB 查看哈希)

上传时间 Python 3

由支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面