DS18B20.swift

用于 DS18B20 数字温度传感器的 Swift 库

Linux-only Swift 4 compatible License: MIT

DS18B20

概述

这是一个用于 DS18B20 温度传感器的库,该传感器有多种形式,从经典 IC 到防水探头。

该传感器使用 1-Wire 协议进行通信。

硬件细节

传感器可以使用 3.3V 电源供电,信号引脚需要一个 4.7KΩ 的上拉电阻,连接到相同的电压。

RaspberryPi 上的 1-Wire 端口(引脚 4)需要通过 raspi-config 启用后才能使用(需要重启),启用 1-Wire 后,您将失去将该引脚用作标准 GPIO 的能力。

用法

传感器返回的温度由 DS18B20 对象的唯一属性提供:Temperature

该值以摄氏度为单位,如果您需要华氏度值,则需要手动转换。

与其他库一样,要初始化此对象,您需要首先从 SwiftyGPIO 获取一个 OneWireInterface 实例,然后通过提供从机 ID 来初始化 DS18B20 传感器

let onewires = SwiftyGPIO.hardware1Wires(for:.RaspberryPi2)!
let onewire = onewires[1]

let slaveId = onewire.getSlaves()[0]

let ds = DS18B20(onewire,slaveId: slaveId)

print(ds.Temperature())

从机 ID 是唯一的,用于标识特定的传感器,因为可以将多个传感器连接到同一条 1-Wire 总线。

在大多数情况下,您只需硬编码您想要的从机 ID,而不是从可用从机设备的列表中选择一个,因为列表有时可能会以不同的顺序返回项目。

支持的开发板

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

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

下面的示例将使用 RaspberryPi 2 开发板,但您可以轻松修改示例以使用其他支持的开发板之一,Examples 目录中提供了 RaspberryPi2 的完整工作演示项目。

安装

有关 Swift 安装说明,请参阅 SwiftyGPIO 的 readme 文件。

一旦您的开发板运行 Swift,如果您的版本支持 Swift Package Manager,您可以简单地将此库添加为项目的依赖项,并使用 swift build 进行编译

  let package = Package(
      name: "MyProject",
      dependencies: [
        .Package(url: "https://github.com/uraimo/DS18B20.swift.git", majorVersion: 2),
      ]
  ) 

Examples 目录包含使用 SPM 的示例项目,编译它并使用 ./.build/debug/TestDS18B20 运行示例。

如果不支持 SPM,您需要手动下载库及其依赖项

wget https://raw.githubusercontent.com/uraimo/DS18B20.swift/master/Sources/DS18B20.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/SwiftyGPIO.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/Presets.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/SunXi.swift https://raw.githubusercontent.com/uraimo/SwiftyGPIO/master/Sources/1Wire.swift 

一旦所有文件都已下载,创建一个额外的文件,其中将包含您的应用程序代码(例如 main.swift)。当您的代码准备就绪后,使用以下命令编译它

swiftc *.swift

编译器将创建一个 main 可执行文件。