Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Dec 13, 2023. It is now read-only.
/go-dhtPublic archive

Golang DHT22 / AM2302 / DHT11 interface using periph.io driver

License

NotificationsYou must be signed in to change notification settings

MichaelS11/go-dht

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang DHT22 / AM2302 / DHT11 interface using periph.io driver

GoDoc ReferenceGo Report Card

Please note

Please make sure to setup your DHT22 / AM2302 / DHT11 correctly. Do a search on the internet to find guide. Here is an example of a guide:

https://learn.adafruit.com/dht/connecting-to-a-dhtxx-sensor

The examples below are from using a Raspberry Pi 3 with GPIO 19 for the pin. Your setup may be different, if so, your pin names would need to change in each example.

Side note, in my testing the sensor has a fairly high level of read errors, suggest using ReadRetry or ReadBackground rather then just Read.

Tested on Raspberry Pi 3 with AM2302. Please open an issue if there are any issues.

Get

go get github.com/MichaelS11/go-dht

ReadRetry example

package mainimport ("fmt""github.com/MichaelS11/go-dht")funcmain() {err:=dht.HostInit()iferr!=nil {fmt.Println("HostInit error:",err)return}dht,err:=dht.NewDHT("GPIO19",dht.Fahrenheit,"")iferr!=nil {fmt.Println("NewDHT error:",err)return}humidity,temperature,err:=dht.ReadRetry(11)iferr!=nil {fmt.Println("Read error:",err)return}fmt.Printf("humidity: %v\n",humidity)fmt.Printf("temperature: %v\n",temperature)}

ReadBackground example

package mainimport ("fmt""time""github.com/MichaelS11/go-dht")funcmain() {err:=dht.HostInit()iferr!=nil {fmt.Println("HostInit error:",err)return}dht,err:=dht.NewDHT("GPIO19",dht.Fahrenheit,"")iferr!=nil {fmt.Println("NewDHT error:",err)return}stop:=make(chanstruct{})stopped:=make(chanstruct{})varhumidityfloat64vartemperaturefloat64// get sensor reading every 20 seconds in backgroundgodht.ReadBackground(&humidity,&temperature,20*time.Second,stop,stopped)// should have at least read the sensor twice after 30 secondstime.Sleep(30*time.Second)fmt.Printf("humidity: %v\n",humidity)fmt.Printf("temperature: %v\n",temperature)// to stop ReadBackground after done with reading, close the stop channelclose(stop)// can check stopped channel to know when ReadBackground has stopped<-stopped}

Read example

package mainimport ("fmt""github.com/MichaelS11/go-dht")funcmain() {err:=dht.HostInit()iferr!=nil {fmt.Println("HostInit error:",err)return}dht,err:=dht.NewDHT("GPIO19",dht.Fahrenheit,"")iferr!=nil {fmt.Println("NewDHT error:",err)return}humidity,temperature,err:=dht.Read()iferr!=nil {fmt.Println("Read error:",err)return}fmt.Printf("humidity: %v\n",humidity)fmt.Printf("temperature: %v\n",temperature)}

About

Golang DHT22 / AM2302 / DHT11 interface using periph.io driver

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp