NanoPC-T4 上实现pwm风扇自动调速

 

    友善之臂推出的 NanoPC-T4 是一款采用 瑞芯微 RK3399 方案的嵌入式开发板,性能强大。发热量也杠杠的。 其板载PWM调速风扇接口采用GH1.25 插头,支持PWM调速。但查看了下 dts 并没有配置自动根据温度调节的选项。(注:pwm-fan, thermal_zone, cooling_device相关DTS节点) ,  不过这么做也可以理解,友善官方并没有配套的风扇出售。而这些跟风扇参数相关)

   这里给出 NanoPC-T4官方Wiki资料,有兴趣的自行了解。

 

shell 脚本 保存到 /sbin/fan 并添加执行权限

#!/bin/bash

echo $$ > /var/run/fan.pid

echo 0 > /sys/class/pwm/pwmchip1/export

echo 0 > /sys/class/pwm/pwmchip1/pwm0/enable
echo 50000 > /sys/class/pwm/pwmchip1/pwm0/period
echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable

while true
do
	temp=$(cat /sys/class/thermal/thermal_zone0/temp)
	if [ $temp -gt 55000 ]; then
		# 数字越大 转速越慢
		echo 1000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 43000 ]; then
		echo 20000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 38000 ]; then
		echo 30000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	elif  [ $temp -gt 32000 ]; then
		echo 45000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	else
		echo 49990 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle;
	fi
	sleep 1s;
done

文件 /lib/systemd/system/fan.service

[Unit]
Description=The PWM fan Script
After=syslog.target
 
[Service]
Type=forking
PIDFile=/var/run/fan.pid
ExecStart=/bin/bash -c "/sbin/fan "&
ExecReload=/bin/kill -s HUP 
ExecStop=/bin/kill -s QUIT 
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

最后执行如下命令:

systemctl enable fan.service
systemctl start fan.service

将该脚本配置为系统服务并自动启动。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
NanoPC-T4上使用QT实现DHT11的步骤与在Arduino上实现类似,只需要将传感器连接到NanoPC-T4上,并使用GPIO库读取传感器数据。下面是一个简单的步骤: 1. 首先,你需要在NanoPC-T4上安装QT,并在QT中安装GPIO库,这可以通过以下命令来完成: ``` sudo apt-get update sudo apt-get install qtbase5-dev sudo apt-get install qtdeclarative5-dev sudo apt-get install qml-module-qtquick-controls sudo apt-get install qml-module-qtquick-dialogs sudo apt-get install qml-module-qtquick-layouts sudo apt-get install qml-module-qtquick-window2 sudo apt-get install qml-module-qt-labs-settings sudo apt-get install libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5widgets5 libqt5serialport5-dev ``` 2. 将DHT11模块连接到NanoPC-T4上。将DHT11的VCC引脚连接到NanoPC-T4的5V引脚,将GND引脚连接到NanoPC-T4的GND引脚,将DHT11的数据引脚连接到NanoPC-T4上的GPIO引脚上(例如:GPIOA0)。 3. 在QT中创建一个新的项目,并在项目中添加以下代码: ```c++ #include <QCoreApplication> #include <QDebug> #include <wiringPi.h> #include <dht.h> #define DHTPIN 0 // DHT11数据引脚的GPIO引脚 #define DHTTYPE DHT11 // DHT11传感器类型 dht DHT; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); if (wiringPiSetup () == -1) // 初始化wiringPi库 { qDebug() << "Failed to setup wiringPi!"; return -1; } while(1) { int chk = DHT.read11(DHTPIN); // 读取DHT11传感器 qDebug() << "湿度: " << DHT.humidity << "%, " << "温度: " << DHT.temperature << "°C"; delay(1000); // 稍作延迟 } return a.exec(); } ``` 4. 编译并运行代码。你将在QT控制台中看到DHT11传感器的湿度和温度数据。 这就是在NanoPC-T4上使用QT实现DHT11的基本步骤。你可以根据你的需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值