在树莓派上使用GPIO的包是哪个?

huangapple go评论95阅读模式
英文:

Which package to use for using GPIOs on Raspberry Pi?

问题

你好!以下是翻译好的内容:

如何使用Go语言读取树莓派上GPIO的温度传感器数值?

请问有人可以帮我解决这个问题吗?

提前感谢!

英文:

How can I read the temperature sensor values on GPIO of a Raspberry Pi using the go language?

Please, anyone help me out.

Thanks in advance.

答案1

得分: 5

请注意,我是一个语言模型,我无法直接访问互联网或打开链接。但是,我可以为您提供翻译的文本。以下是您提供的内容的翻译:

请查看Dave Cheney的包:

那里有一个经典的闪烁示例

英文:

Check out Dave Cheney's package:

There's a classical blink example there.

答案2

得分: 3

http://embd.kidoman.io/

这是一个比Dave Cheney的gpio库稍微高级一点的抽象层。

除了gpio api外,还支持许多常见的传感器。

不确定你的传感器是什么,但是这里有一个示例是用于bmp180气压传感器的。

英文:

http://embd.kidoman.io/

this is a slightly higher level abstraction than dave cheney's gpio library.

In addition to a gpio api, there is support for many common sensors

not sure what your sensor is, but e.g. here is an example for the bmp180 barometric sensor

答案3

得分: 3

我已经为与树莓派的GPIO引脚交互创建了一个非常简单的包:

https://github.com/nathan-osman/go-rpigpio

一个简单的程序,让引脚2闪烁十次,可能会像这样:

package main

import (
    "github.com/nathan-osman/go-rpigpio"
    "time"
)

func main() {
    p, err := rpi.OpenPin(2, rpi.OUT)
    if err != nil {
        panic(err)
    }
    defer p.Close()

    for i := 0; i < 10; i++ {
        p.Write(rpi.HIGH)
        time.Sleep(300 * time.Millisecond)
        p.Write(rpi.LOW)
        time.Sleep(100 * time.Millisecond)
    }
}

更多文档可以在这里找到。

英文:

I have created an extremely simple package for interacting with the GPIO pins on a Raspberry Pi:

https://github.com/nathan-osman/go-rpigpio

A simple program that makes pin 2 flash ten times would look something like this:

package main

import (
    &quot;github.com/nathan-osman/go-rpigpio&quot;
    &quot;time&quot;
)

func main() {
    p, err := rpi.OpenPin(2, rpi.OUT)
    if err != nil {
        panic(err)
    }
    defer p.Close()

    for i := 0; i &lt; 10; i++ {
        p.Write(rpi.HIGH)
        time.Sleep(300 * time.Millisecond)
        p.Write(rpi.LOW)
        time.Sleep(100 * time.Millisecond)
    }
}

More documentation can be found here.

答案4

得分: 1

以下是2023年8月11日可用的一些Go模块,用于访问树莓派的GPIO引脚。然而,并非所有模块都得到定期维护。下表总结了这些模块,按照最后提交日期排序。

模块 星数 最后提交日期 许可证 备注
hybridgroup/gobot 8.4k 2023年7月 Apache2 机器人/物联网框架
warthog618/gpiod 321 2023年7月 MIT
periph/conn 48 2023年4月 Apache-2.0 periph库的一部分
warthog618/gpio 114 2022年12月 MIT 依赖已弃用的sysfs
stianeikeland/go-rpio 2k 2021年12月 MIT
mrmorphic/hwio 322 2018年5月 BSD-3
kidoman/embd 1.3k 2017年5月 MIT
nathan-osman/go-rpigpio 64 2016年6月 MIT
luismesas/goPi 74 2014年4月 MIT

读取温度传感器不仅取决于选择的Go模块,还取决于所使用的温度传感器。例如,您可以使用Adafruit的AM2302(有线DHT22)温湿度传感器,在这种情况下,您可以使用go-dht模块,该模块使用periph驱动程序提供DHT22、AM2302和DHT11接口。

英文:

There are quite a few Go modules to access the GPIO pins on a Raspberry Pi. However, not all of them are regularly maintained. The table below summarizes some of the available Go modules as of August 11, 2023. The table is sorted by last commit date.

Module Stars Last Commit License Notes
hybridgroup/gobot 8.4k Jul 2023 Apache2 Framework for robotics/IoT
warthog618/gpiod 321 Jul 2023 MIT
periph/conn 48 Apr 2023 Apache-2.0 Part of periph library
warthog618/gpio 114 Dec 2022 MIT Relies on sysfs which is deprecated
stianeikeland/go-rpio 2k Dec 2021 MIT
mrmorphic/hwio 322 May 2018 BSD-3
kidoman/embd 1.3k May 2017 MIT
nathan-osman/go-rpigpio 64 Jun 2016 MIT
luismesas/goPi 74 Apr 2014 MIT

Reading a temperature sensor depends not just on the chosen Go module but also on the temperature sensor being used. For instance, you could use the AM2302 (wired DHT22) temperature-humidity sensor from Adafruit in which case you could use the go-dht module, which provides DHT22, AM2302, and DHT11 interfaces using the periph driver.

答案5

得分: 0

另一个是goPi - 也支持piface

还有闪烁的示例

英文:

Another is goPi - also has support for piface

And the blink examples

huangapple
  • 本文由 发表于 2013年8月29日 08:49:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/18500628.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定