admin 管理员组文章数量: 1184232
1. 概述
本文介绍如何使用 ESP8266 控制风扇转速,并通过 Web 服务器调整风扇速度及获取当前转速。该方案适用于支持 PWM 调速的 4Pin 风扇。
2. 所需工具
硬件:
- ESP8266 开发板(NodeMCU / Wemos D1 Mini)
- 4Pin PWM 风扇
- 大 4Pin 转小 4Pin 线(2 个小 4Pin 12V 接口,2 个小 4Pin 5V 接口,每个小4pin有2个引脚,2个空的,空的可以插入杜邦线引脚,某宝几块钱,如果没有这线也可以其他方法实现供电)
- 杜邦线
- 电源(12V,适配风扇功率)
软件:
- Arduino IDE(安装 ESP8266 开发板库)
- Postman 或浏览器(用于发送 HTTP 请求)
3. 连接示意图
风扇引脚说明
| pwm风扇 | 功能 | 连接 |
|---|---|---|
| 黄 | 12V 供电 | 小4pin 12v |
| 黑 | GND | 小4pin GND |
| 蓝 | PWM 调速 | esp8266 D1 |
| 绿 | TACHO 反馈 | esp8266 D2 |
ESP8266 供电
| 线材 | 功能 | 连接 |
|---|---|---|
| 5V(红) | 供电 | 小 4Pin 5V -> ESP8266 VIN |
| GND(黑) | 接地 | 小 4Pin GND -> ESP8266 GND |
| D1 | PWM 调速 | 接风扇 |
| D2 | TACHO 反馈 | 接风扇 |
4. 代码实现
代码功能
- 连接 WiFi
- 通过 HTTP 请求调整风扇转速(PWM 输出)
- 读取风扇 TACHO 信号,计算 RPM
- 通过 Web API 获取当前风扇转速
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
const char* ssid = "yang1234"; // wifi名字
const char* password = "y123456789"; // wifi密码
const int pwmPin = 5; // D1, 控制风扇速度
const int tachPin = 4; // D2, 读取风扇转速反馈信号
ESP8266WebServer server(80);
volatile int pulseCount = 0;
unsigned long lastTime = 0;
int fanSpeed = 255; // 默认全速
void IRAM_ATTR countPulse() {
pulseCount++;
}
int getFanRPM() {
unsigned long elapsedTime = millis() - lastTime;
int rpm = (pulseCount * 30) / (elapsedTime / 1000); // 计算 RPM
pulseCount = 0;
lastTime = millis();
return rpm;
}
void handleSetSpeed() {
if (server.hasArg("speed")) {
fanSpeed = server.arg("speed").toInt();
fanSpeed = constrain(fanSpeed, 0, 255);
analogWrite(pwmPin, fanSpeed);
server.send(200, "text/plain", "Speed set to(0-255) " + String(fanSpeed));
} else {
server.send(400, "text/plain", "Missing 'speed' parameter");
}
}
void handleGetRPM() {
int rpm = getFanRPM();
server.send(200, "text/plain", "Current RPM: " + String(rpm));
}
void setup() {
Serial.begin(115200);
pinMode(pwmPin, OUTPUT);
pinMode(tachPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tachPin), countPulse, FALLING);
analogWrite(pwmPin, fanSpeed);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
Serial.println(WiFi.localIP());
server.on("/setSpeed", HTTP_GET, handleSetSpeed);
server.on("/getRPM", HTTP_GET, handleGetRPM);
server.begin();
}
void loop() {
server.handleClient();
}5. 使用方法
1️⃣ 连接 ESP8266
-
上电后,ESP8266 连接
yang1234WiFi,并获取 IP 地址(串口监视器查看)。 -
假设 IP 地址为
192.168.31.100(可以通过路由器查看esp8266的ip)
2️⃣ 设置风扇速度
在浏览器或 Postman 访问:
speed=0:最低速度(有些风扇会停止)speed=128:50% 速度speed=255:100% 速度
3️⃣ 获取风扇当前转速
在浏览器或 Postman 访问:
返回:
Current RPM: 12006. 说明
analogWrite(pwmPin, speed);控制风扇转速attachInterrupt(digitalPinToInterrupt(tachPin), countPulse, FALLING);监听 TACHO 信号, 有风扇差异,计算rpm可能不一样,根据情况修改getFanRPM()计算风扇 RPM
7. 结论
本方案通过 ESP8266 控制风扇 PWM 实现调速,并获取风扇实时转速数据。用户可以通过 Web API 远程控制风扇运行状态,适用于 DIY 智能风扇控制系统。
最后上图
版权声明:本文标题:ESP8266与智能风扇联手:从新手到高手的进阶指南 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1771293821a3542961.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
轻松掌握Linux中WiFi-Direct与Python的奇妙组合,从原理到实践
Wifi-Direct-on-Linux Python模块介绍 去发现同类优质开源项目: 模块简介 本文档介绍了名为 Wifi-Direct-on-Linux的Python模块,该模块用
自动连接宽带不再是难题!详解如何在Windows 10下实现开机即连网
工具原料 Windows 10 专业版。 方法步骤 用“如何在 Windows 10 里创建、断开宽带连接”的方法,建立一个宽带连接,确保其能够正常连接。 在“开始”按钮上右键—
解锁PDCN路由器设置魔法:安装与登录技巧详解
注:使用期间千万不要恢复出厂! 切记。 麻烦评价不要写敏感词,非常感谢哈!路由器初始无线 WIFI名称 : PDCN
升级VS至2019后,快速链接CAD2019的C#技巧分享
目录我是想用Qt连接CAD的,而且主要应用2D部分,之前找的Free CAD挺好的,只是它主要是发展3D部分,综合来看还是得用autocad,最开始我电脑里只有vs2013,因为之前出现过卸载不干净然后重做系统的大坑情况
Win7下开辟移动Wi-Fi网络:为Android设备提供稳定宽带接入点构建教程
XP 下共享internet 方式建立的AD Hoc 在android 设备上不能成功连接,只有windows Mobile
跨平台共享无界限:在Win7中建立全能Wi-Fi热点
XP 下共享internet 方式建立的AD Hoc 在android 设备上不能成功连接,只有windows Mobile
只需一分钟,让你的电脑恢复黄金般的开机速度
有些朋友觉得,电脑怎么开机越来越慢了,刚用的时候用二十秒就完成了开机,到后面都要一两分钟擦能开机,这是怎么回事呢?最近有位朋友发现电脑开机启动慢,有点无法忍受。那么电脑开机慢怎么解决呢?下面,小编就把电脑开机慢的解决方法分享给大家。
电脑开得像蜗牛?这里有几个小窍门帮你解决
有些朋友觉得,电脑怎么开机越来越慢了,刚用的时候用二十秒就完成了开机,到后面都要一两分钟擦能开机,这是怎么回事呢?最近有位朋友发现电脑开机启动慢,有点无法忍受。那么电脑开机慢怎么解决呢?下面,小编就把电脑开机慢的解决方法分享给大家。
轻松配置PDCN路由器:从入门到精通的登录地址进阶之路
注:使用期间千万不要恢复出厂! 切记。 麻烦评价不要写敏感词,非常感谢哈!路由器初始无线 WIFI名称 : PDCN
一文学会:从基础到精通的SWF播放器使用手册
注:使用期间千万不要恢复出厂! 切记。 麻烦评价不要写敏感词,非常感谢哈!路由器初始无线 WIFI名称 : PDCN
Windows平台上的Apple设备连接挑战?一文助你轻松破解,终极驱动安装宝典
Windows苹果驱动终极安装指南:彻底解决iPhone连接问题 还在为Windows系统无法正常识别iPhone而困扰吗?当你的苹果设备在电脑上只能显示为普通媒体设备,USB网络共享功能完全不可用时,这个完整的驱动安装方案将
'射雕游戏'与数据库之战:一场关于连接、解决与胜利的故事
启动游戏发现,初始化数据库失败,错误信息为:dial tcp 127.0.0.1:3306: connect: connection refused mysql -uroot -p 之后输入密码提示:Can 't con
Windows 10键盘操作提速大揭秘
细心的用户发现win10 64位系统键盘时反应很慢,每次都要等上好几秒才有响应,降低工作效率,这是怎么回事?可能是键盘设置的灵敏度问题。 那么win10怎么加快键盘反应速度?只要调节一下键盘灵敏度即可。win10怎
一键提升效率:Win10键盘灵敏度调整秘籍
优化Win10键盘灵敏度:提升输入体验的全面指南 键盘,作为计算机与用户之间最直接、最频繁的交互工具,其性能和舒适度直接关系到用户的工作效率与使用体验。特别是在快节奏的工作与游戏环境中,键盘的灵敏度显得尤为重要。一个设置得当的
电脑打印机连接入门指南:USB、WiFi、共享,轻松搞定,打印无忧
本文是一篇关于“ 电脑怎么连接打印机”的终极技术指南,旨在解决从家庭用户到办公室环境中的各类打印机连接难题。文章将系统性地讲解四种核心连接方法:传统的 USB有线连接、主流的
重启路由器的深层奥秘:为何能改善网络速度?
问题描述: 路由器为什么每隔一周重启一下,清理历史数据可以改善网速呢? 问题解答: 路由器定期重启有助于改善网速的原因主要包括以下几点: 1. 内存和缓存清理:路由器在运行过程中会积累临时数据和缓存,这
Ubuntu18.04 宽带拨号连接_ubuntu连接宽带
我这里重点讲的是用宽带拨号连接。 首先关闭以太网连接!!如图。有线连接那里有个重要的设置:就是自动连接那里不要勾!!!! 然后就是 终端命令 sudo pppoeconf 根据提示 输入用户名和密码,接下的不懂
电脑怎么连接wifi?【图文详解】笔记本电脑怎么连接无线wifi?笔记本电脑连不上wifi怎么办?_笔记本电脑怎么连接wifi
一、问题背景 现在不管是上班办公、居家追剧,还是在线学习, 都离不开笔记本电脑连WiFi。但很多人,尤其是刚接触电脑的新手,一看到没弹出WiFi列表、不知道点哪里输入密码,就会犯难。 还
显卡闪一下就断电?这里有快速解决步骤
当我们开启电脑时,突然遇到闪烁的问题并随即断电,这可能是由于硬件或软件问题引起的。以下是一些可能的解决方案,帮助您解决这个问题。 检查电源连接:首先,确保电脑的电源线正确连接到电源插座,并且连接牢固。还要检查电源线是否受损
手机连WiFi后CSDN访问不了?看这里快速解决
首先说明一下,我的手机是华为Y220T,手机配置比较低。以前用过一个无线路由,用Y220T连接WiFi以及上网都没有任何问题,最近买了一个新的无线路由,设置完毕之后,发现手机能连上新路由的WiFi,但是却不能上网。浏览器上不了网,
发表评论