Loading... #0x00 采用go语言编写,可编译直接运行 使用s8050三极管作为开关 使用14号针脚作为信号开关 2019-11-7 新增后台服务启动 #0x01 ```golang package main import ( "bufio" "flag" "fmt" "github.com/rehtt/gogpio" "github.com/kardianos/service" "log" "os" "strconv" "time" ) var ( max, min int showTemp, h bool ) func main() { flag.BoolVar(&h, "h", false, "help") flag.IntVar(&max, "m", 55, "开启风扇温度") flag.IntVar(&min, "n", 50, "关闭风扇温度") flag.BoolVar(&showTemp, "s", false, "查看当前温度") flag.Usage = help flag.Parse() if h { flag.Usage() } else { if !showTemp { //服务 cfg := &service.Config{ Name: "temp", DisplayName: "RPI CPU Temp", Description: "RPI CPU Temp", } prg := &program{} s, err := service.New(prg, cfg) if err != nil { log.Fatal(err) } // logger 用于记录系统日志 logger, err := s.Logger(nil) if err != nil { log.Fatal(err) } if len(os.Args) == 2 { //如果有命令则执行 err = service.Control(s, os.Args[1]) if err != nil { log.Fatal(err) } } else { //否则说明是方法启动了 err = s.Run() if err != nil { logger.Error(err) } } if err != nil { logger.Error(err) } } else { fmt.Println("当前温度:", t(), "°") } } } func t() int { txt, _ := os.Open("/sys/class/thermal/thermal_zone0/temp") defer txt.Close() buf := bufio.NewReader(txt) t, _, _ := buf.ReadLine() temp, _ := strconv.Atoi(string(t)) temp = temp / 1000 return temp } func help() { fmt.Fprintln(os.Stderr, `使用:temp [选项] [服务操作] 选项:`) flag.PrintDefaults() fmt.Fprintln(os.Stderr,` 服务操作: install 安装服务(开启服务必做) start 运行服务 stop 停止服务 uninstall 卸载服务 示例: temp -s 显示温度 temp install && temp start 安装服务并启动 temp stop 停止服务 temp -m 50 start 带参数启动服务 启动服务需要root权限`) } //服务 type program struct{} func (p *program) Start(s service.Service) error { log.Println("开始服务") go p.run() return nil } func (p *program) Stop(s service.Service) error { log.Println("停止服务") return nil } func (p *program) run() { // 这里放置程序要执行的代码…… pin, _ := gogpio.Open(14, gogpio.OUT) for ; ; { if t() >= max { pin.High() } else if t() <= min { pin.Low() } time.Sleep(30 * time.Second) } } ``` Last modification:September 6, 2020 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请随意赞赏