用于 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 调试指南。