IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 树莓派检测核心温度,自动运行风扇 -> 正文阅读

[嵌入式]树莓派检测核心温度,自动运行风扇

需要准备的材料

1.带风扇的散热马甲一块,

2.S8550 三极管一颗

3.母口杜邦线一根

首先从中间剪断风扇的正极,把三级管的发射极和集电极分别接在正极两边,然后拿出杜邦线接到三极管的基极。如下图所示(水平有限将就看看)

?

?

然后正极连接树莓派第4脚,负极连接树莓派第6脚,蓝色杜邦线连接树莓派第8脚(如下图)

然后安装python RPi.GPIO库

sudo pip install RPi._GPIO

接下来执行代码就可以了:

sudo python3 rpi-gpio-fan.py

?

?

?

?

?

import RPi._GPIO as GPIO
import time


class RaspiFanControl:
    def __init__(self):
        self.max_temp = 45
        self.min_temp = 40
        self.run_time = 600  #  这里是运行时间,达到温度后运行10分钟,再停下来进入下一轮的检测
        self.gpio_ping = 14
        self.fan_status = 'Stop'
        self.temp_path = '/sys/class/thermal/thermal_zone0/temp'
        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.gpio_ping, GPIO.IN)

    def check_cpu_temp(self):
        with open(self.temp_path, 'r') as tmp:
            cpu_temp = int(tmp.read()) / 1000
        if cpu_temp >= self.max_temp:
            self.raspi_fan_no(cpu_temp)
        elif self.fan_status == "Running":
            if cpu_temp <= self.min_temp:
                self.raspi_fan_off(cpu_temp)
        else:
            self.raspi_fan_between(cpu_temp)

    def raspi_fan_no(self, cpu_temp):
        ping_status = GPIO.input(self.gpio_ping)
        if ping_status == 1:
            GPIO.setup(self.gpio_ping, GPIO.OUT)
            GPIO.output(self.gpio_ping, True)
        self.fan_status = 'Running'
        print('.' * 40)
        print('Current temperature: %s' % cpu_temp)
        print('Fan status: %s' % self.fan_status)
        print('DateTime: %s' % time.ctime())
        print('.' * 40)
        time.sleep(self.run_time)

    def raspi_fan_off(self, cpu_temp):
        if GPIO.input(self.gpio_ping):
            GPIO.setup(self.gpio_ping, GPIO.IN)
        self.fan_status = 'Stop'
        print('.' * 40)
        print('Current temperature: %s' % cpu_temp)
        print('Fan status: %s' % self.fan_status)
        print('DateTime: %s' % time.ctime())
        print('.' * 40)
        time.sleep(self.run_time)

    def raspi_fan_between(self, cpu_temp):
        print('.' * 40)
        print('Current temperature: %s' % cpu_temp)
        print('Fan status: %s' % self.fan_status)
        print('DateTime: %s' % time.ctime())
        print('.' * 40)
        time.sleep(60)  # 这里是温度没有达到的话,就每分钟检测一次,


if __name__ == '__main__':
    raspi_fan = RaspiFanControl()
    while True:
        raspi_fan.check_cpu_temp()

?

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:03:47  更:2022-01-24 11:04:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:35:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码