admin管理员组文章数量:1516870
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玩转物联网:带你揭秘控制风扇的小秘密 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/biancheng/1771294942a3263889.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
ESP8266遥控风扇转速:打造专属舒适风场
1. 概述 本文介绍如何使用 ESP8266 控制风扇转速,并通过 Web 服务器调整风扇速度及获取当前转速。该方案适用于支持 PWM 调速的 4Pin 风扇。 2. 所需工具 硬件:ESP8266
ESP8266玩转物联网:带你揭秘控制风扇的小秘密
1. 概述 本文介绍如何使用 ESP8266 控制风扇转速,并通过 Web 服务器调整风扇速度及获取当前转速。该方案适用于支持 PWM 调速的 4Pin 风扇。 2. 所需工具 硬件:ESP8266
详解本地连接下调整IP及DNS技巧
本地连接-IP和DNS设置: 自定义 IP和DNS 地址, 一般自己拉宽带的 不用设置(自动获取IP和DNS),有时连不上网 可能会设置一下 DNS 地址(电信或者网通或者铁通等提供给你的 地址); 一般 局域
从新手到高手:详解使用PPPoeconf优化宽带连接步骤
一、检测pppoeconf软件是否安装 $ dpkg -s pppoeconf 出现如下说明已安装: {{Package: pppoeconf St
无线路由器连接光猫遇阻?轻松解决E1630问题!
昨天整理了一个晚上,终于搞定无线路由器和猫的连接问题了。原本昨天上午电信过来安装宽带,上午都测试好了,唯一没做的就是给无线宽带设置密码,导致下午就被人盗了,也设置了密码。害得我和几个邻居都用不了了,没办法,只能
一文精通!ADB无线模式让你的开发旅程更便捷
前言:除了USB方式连接Android终端设备,还有一种方法是通过adb connect命令利用TCPIP协议来连接。毕竟,PC端的USB口也是有限的。 1.USB 连接手机 确保 adb
双屏大作战:一机如何完美兼容两个显示器?秘籍在这里!
目录在日常办公场景中,为了提高工作效率和增强交互体验,常需一台电脑同时连接两个显示器,正如我们在营业厅常见到的那样:工作人员屏幕方便内部操作,而另一屏幕则面向客户展示信息。对于广泛使用的Windows 7和Windows
MVC实战:通过HTTPS保护应用与授权过程解析
1 using System.Web.Mvc;23 namespace Snowdream.Demo.RequireHttps4 {5 public class RequireH
“打不出字的键盘?快速搞定,恢复输入流畅体验。”
电脑键盘打不了字,这是我们电脑使用过程中,偶尔会遇到的电脑故障问题。一般来说,电脑键盘打不出字,可能是硬件故障、驱动问题或系统设置错误等多种原因引起。本文将详细介绍一些常见的原因和解决方法,帮助用户恢复正常的键盘输入功能。 一
键盘失灵大作战:轻松搞定电脑打字难题
电脑键盘打不了字,这是我们电脑使用过程中,偶尔会遇到的电脑故障问题。一般来说,电脑键盘打不出字,可能是硬件故障、驱动问题或系统设置错误等多种原因引起。本文将详细介绍一些常见的原因和解决方法,帮助用户恢复正常的键盘输入功能。 一
从入门到精通:Linux环境下的WiFi-Direct Python模块实战指南
Wifi-Direct-on-Linux Python模块介绍 去发现同类优质开源项目: 模块简介 本文档介绍了名为 Wifi-Direct-on-Linux的Python模块,该模块用
告别卡顿!搞定电脑启动慢的三大秘籍
有些朋友觉得,电脑怎么开机越来越慢了,刚用的时候用二十秒就完成了开机,到后面都要一两分钟擦能开机,这是怎么回事呢?最近有位朋友发现电脑开机启动慢,有点无法忍受。那么电脑开机慢怎么解决呢?下面,小编就把电脑开机慢的解决方法分享给大家。
瑞星杀毒拖累上网速度?对考试登录有啥坏处?
最近一周来,我一直被一个问题所困扰,我在重装XP系统后发现了一个问题,就是在打开浏览器浏览网页、在线视频时,速度非常慢(尝试了搜狗、IE),大概只有1KBs,经常出现0速度(通过瑞星安全助手查看到的,我用的网通2Mbs)
一文掌握!Win7系统中快速搭建本地网络的技巧与方法
本地连接是指电脑中不同网络创建的连接,一般情况计算机有几个网卡就会出现几个本地连接。最近有不少小伙伴发现自己的电脑没有本地连接,想要创建又不知道怎么操作。今天小编就带着大家一起看看Win7电脑创建本地连接网络的操作方法吧! W
新设备不配合?教您轻松搞定Apple移动设备启动问题
关于爱思助手 下面是对Apple mobile device无法启动的问题描述和解决方法 一、问题描述在更换了华硕天选的笔记本后,用数据线连接ipad和电脑,爱思助手7.0提示无法检测到苹果设备,即驱动异常
电脑性能开挂?教你快速识别你的内存条品牌、型号及频率
要查看电脑内存条的数量、品牌、型号和频率,可以通过以下几种方法来实现:方法一:通过任务管理器查看(适用于Windows10和Windows11) 可查看内存的总容量、速度(频率)、已用插槽数量、外形规格等信息
远程桌面入门:本地设备与防火墙设置详解
远程桌面设置主要分为启用远程访问功能和进行远程连接两个阶段,需根据操作系统版本选择对应方法。 一、目标计算机被远程桌面开启设置通用条件 1、系统版本要求: Windows 专业版企业版旗舰版支持远程桌
一步到位:本地和跨网远程桌面连接攻略
远程桌面设置主要分为启用远程访问功能和进行远程连接两个阶段,需根据操作系统版本选择对应方法。 一、目标计算机被远程桌面开启设置通用条件 1、系统版本要求: Windows 专业版企业版旗舰版支持远程桌
Mac用户快速指南:连接Windows共享资源
MAC系统如何连接Windows共享文件?MAC系统和Windows是两个不同的系统,有时候我们想要MAC系统访问Windows共享文件,那么有什么方法呢,下面小编就为大家介绍一下。MAC系统连接Windows共享文件的方
Win10键盘操作提速术:轻松几步优化键盘响应
细心的用户发现win10 64位系统键盘时反应很慢,每次都要等上好几秒才有响应,降低工作效率,这是怎么回事?可能是键盘设置的灵敏度问题。 那么win10怎么加快键盘反应速度?只要调节一下键盘灵敏度即可。win10怎


发表评论