用Blynk整个WiFi小台灯

发布于 2020-08-24  130 次阅读


这次来整个可以用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的台灯,可以参考我之前做的小时钟的这编文章,可以自己试试在代码里头整合一下,这里我就不再啰嗦了

群体只会干两种事:锦上添花或落井下石——《乌合之众》