树莓派上的CPU风扇温控模块
概述
详细
RaspberryPi Fan Control
树莓派上的CPU风扇温控模块。可提供三种风扇管理模式:自定义模式、强力模式、自动模式(正在更新中)。【RaspberryPi、WringPi、PWM调速】
自定义模式:可设置风扇的启动的温度阈值和关闭的温度阈值、风扇的转速等参数,根据此类参数对风扇进行控制。
强力模式:风扇以最大状态运行。
自动模式:正在更新啦
一、使用说明
1:准备前操作
(1)当前树莓派系统中包含GCC和wiringPI等开发工具。(官方的系统即可)
(2)需要的其他硬件设备:散热风扇(如图1所示),如果散热风扇不支持PWM调速,即风扇只有两个线,需要准备一个NPN型三极管,手动焊接出第三条信号线,具体见2小节风扇焊接部分;需要准备若干杜邦线等。
图1:不带PWM调速的散热风扇
2:风扇连接
(1)如果购买的散热风扇为三根线,即支持PWM控制,则分别将正极线接5V、负极线接0V、信号线接GPIO-2针脚,如图2所示。针脚的定义在include文件夹中fan.h文件中,可自行修改。
图2:连接阵脚图
(2)如果购买的散热风扇为二根线,则不支持PWM控制,需要准备一个开关三极管,我这里从收音机中拆出的一个8050型号的三极管。用电烙铁依照图3、图4的说明进行焊接,最后可用热缩管对焊接的部分和三极管针脚进行保护一下,防止短路。焊接完成之后,此风扇则已经支持PWM调速,则可依照(1)的说明将风扇连接到树莓派上。关于三极管型号的科普,我这里推荐一个简单的基础视频([三极管的应用基础介绍](https://www.bilibili.com/video/av8960413 "三极管的应用基础介绍")),其他的三极管知识可从Google上进行搜索。
图3:NPN开关三极管s8050
图4:焊接图示
3:编译
运行以下命令:
cd RaspberryPi_Fan_Control
make
4:运行
sudo bin/fan
二、效果
连接好的树莓派如图5所示:
图5:树莓派
程序运行效果如图6所示:
图6:程序运行结果
5.具体实现过程
采用多线程,信号中断等技术实现,满足多模块化设计。
调用过程如下:
int main(int argc, char* argv[]) { if (signal(SIGCHLD, signal_handler) == SIG_ERR) { //show_sys_info("登记信号SIGCHLD出错\n"); printf("登记信号SIGCHLD出错!\n"); exit(1); } //登记Ctrl+C(第九个信号) if (signal(SIGINT, signal_handler) == SIG_ERR) { printf("登记信号SIGINT出错!\n"); exit(1); } wiringPiSetup(); //wiringPi库初始化 /* *功能:初始化风扇管理 *参数:初始启动的模式、风扇的启动温度阈值(0-100)、风扇的关闭温度阈值(0-100),自定义模式下的风扇速度[25-100] */ fan_init(CUSTOM, 45, 39, 52); open_fan(); //开启风扇管理 while(1) { //执行其他模块的操作 sleep(18); } return 0; }
三、源码结构如下:
Contact me
If you have any questions, please contact me.
QQ: 1348351139
e-mail: wwptrdudu@gmail.com