这次来整个可以用WIFI控制的小台灯,使用材料和代码都很简单,我在这里使用的是一个坏了驱动电路的杂牌小台灯.由于灯只是坏了电路,LED灯板是没有坏的,外观完好扔了怪可惜的,所以就拿来改造一下了.本文中使用的是有2个灯板的分开控制的台灯,所以视频中的灯用了2个场效应管模块,实际情况按大家自己的需要而定,大家看了以后有想法的可以自己扩展一下加入其他功能,具体完成效果请看下面的视频演示.
演示视频
**拆解后的状态在视频的2P里**
实现功能
- WIFI控制(异地远程)
- 无极调光(APP实现)
- 快捷键档位(APP实现)
材料
名称 | 数量 | 单位 | 备注 |
---|---|---|---|
ESP8266 | 1 | 个 | 最好使用D1 Mini |
场效应管模块 | 1 | 个 | 你要驱动多少个灯就用多少个,代码里也要相应添加 |
有改造空间的台灯 | 1 | 个 | 选你自己适合的,这里用的是5V灯板 |
LED电源 | 1 | 个 | 可以是USB电源,功率选择大小视乎你选的灯功率大小 |
杜邦线 | 若干 | ||
导线 | 若干 | 0.3平方左右就行 |
接线
ESP8266 | 场效应管MOS模块 | 电源 | LED灯板 |
---|---|---|---|
D2 | PWM | ||
GND | GND(即标记OUT -的一端) | GND | GND |
VCC | 5V(即标记OUT +的一端) | 5V | VCC |
需要多一个灯和场效应管的自行加一个虚拟引脚和无论引脚,ESP8266全部引脚支持PWM信号输出,详细请自行百度搜索:"ESP8266 Pin out"之类,查看你的板子引脚定义
代码
#define BLYNK_PRINT Serial
#define BLYNK_DEBUG
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
const int ledPin = D2;
char auth[] = "你的设备 KEY ";
char ssid[] = "你的 WIFI SSID";
char pass[] = "你的 WIFI 密码";
// 用于APP端里的按键开关的虚拟引脚,用于一键开灯,需要多一个灯和场效应管的自行加一个虚拟引脚
BLYNK_WRITE(V4){
int buttonState = param.asInt();
if (param.asInt() == 0) {
// 关
digitalWrite(ledPin, LOW);
} else {
// 开
digitalWrite(ledPin, HIGH);
}
}
// 用于APP端控制亮度用的滑动条的虚拟引脚,以控制单片机给场效应管发生PWM信号ESP8266的PWM精度为0-1023,APP端同样设置成0-1023,需要多一个灯和场效应管的自行加一个虚拟引脚
BLYNK_WRITE(V5){
analogWrite(ledPin, param.asInt());
}
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(ledPin, OUTPUT);
}
//开机时同步一下APP端的滑动条状态
BLYNK_CONNECTED() {
Blynk.syncVirtual(V4,V5);
}
void loop() {
Blynk.run();
}
补充
- 想要了解MOS场效应管和PWM信号原理的可以去百度一下
- 虚拟引脚的用法在Blynk官方文档里头都有详细说明
- 如果你打算做成可以随时重置WIFI的台灯,可以参考我之前做的小时钟的这编文章,可以自己试试在代码里头整合一下,这里我就不再啰嗦了