SwiftySHT20

用于 I2C SHT20 湿度和温度传感器的 Swift 库。

摘要

这是一个基于 SwiftyGPIO 的库,用于控制 SHT20 湿度和温度传感器。

您将能够通过 I2C 读取传感器的湿度和温度值、其内部用户寄存器数据、向用户寄存器写入不同的配置以及软复位设备。

有关传感器功能的更多信息,您可以查阅其数据手册

硬件详情

传感器应使用 3.3 伏 电源供电。

树莓派上的 I2C 引脚(引脚 3 SDA,引脚 5 SCL)需要通过 raspi-config 启用才能使用(需要重启),并且启用 I2C 引脚后,您将失去将这些引脚用作标准 GPIO 的能力。

支持的开发板

SwiftyGPIO 支持的每个开发板:RaspberryPis、BeagleBones、C.H.I.P. 等...

要使用此库,您需要一个运行 Swift 4.x 🚗 的 Linux ARM 开发板。

下面的示例将使用 Raspberry Pi 3B+ 开发板,但您可以轻松修改示例以使用其他支持的开发板之一。一个适用于 RaspberryPi3B+ 的完整工作演示项目可在 Example 目录中找到。

安装

首先,请确保您的开发板正在运行 Swift 4.x⚠️!

由于 Swift 4.x 支持 Swift Package Manager,您只需将 SwiftySHT20 添加为项目 Package.swift 文件中的依赖项即可

let package = Package(
    name: "MyProject",
    dependencies: [
        .package(url: "https://github.com/samco182/SwiftySHT20", from: "1.0.0"),
    ]
    targets: [
        .target(
            name: "MyProject", 
            dependencies: ["SwiftySHT20"]),
    ]
)

然后运行 swift package update 以安装依赖项。

用法

首先要初始化一个 SwiftySHT20 实例。一旦您拥有了 sht20 对象,您就可以获取传感器的湿度和温度读数

import SwiftySHT20

// You can also initialize the object with SwiftySHT20() which defaults to .RaspberryPi3
let sht20 = SwiftySHT20(for: .RaspberryPi3) 

if sht20.isDeviceReachable() {
    let temperature = sht20.readTemperature()
    let humidity = sht20.readHumidity()

    print(String(format: "Temperature: %.2f °C, ", temperature.cValue))
    print(String(format: "Humidity: %.2f", humidity.value)+"%\n\n")
}

如果您想读取传感器的用户寄存器或修改其任何可配置的值,您可以使用以下函数轻松完成

// Reading User Register
func readUserRegister() -> UserRegister

// Modifying User Register
func setResolution(_ resolution: UserRegisterMask.Resolution)
func enableOnChipHeater(_ isEnabled: Bool)
func activateEndOfBatteryAlert(_ isActive: Bool)

如果万一您想重置传感器,您可以轻松地通过运行以下函数来完成,而无需移除电源

func softReset()

注意 🔍

如果您在连接到传感器时遇到一些问题,或者 sht20.isDeviceReachable() 一直返回 false,您可以参考此 i2c 调试指南