**一、简介:**
**1.前段时间网上看到一个雪花灯设计,本想做一个的,但找不到源文件,自己又不想画PCB外框(无聊又难画),**
**于是就搁置了,在逛开源平台时看到有人画了雪花灯还不止一个,都用的STM32控制:**
**①STM32雪花灯:** [**https://oshwhub.com/chenyuxi/stm32xue-hua-deng**](https://oshwhub.com/chenyuxi/stm32xue-hua-deng)
**② 雪花LED灯:** [**https://oshwhub.com/mo-ming-dian-zi/xue-hua-LEDdeng**](https://oshwhub.com/mo-ming-dian-zi/xue-hua-LEDdeng)
**GOOD,不用画外框了,闲着没事也做一个!**
**2.功能介绍:**
> **①ESP-12S主控,基于Blinker物联网平台,实现WIFI联网控制**
>
> **②手机APP可实现256级亮度控制及全彩调色**
>
> **③天猫精灵语音控制,实现部分颜色调节(天猫精灵词条限制 )**
> **正面图:**
![雪花灯正面.png](//image.lceda.cn/pullimage/88KmjxPWN2afz3bo1sJvt3X48GVqH4qkeqSvNf2u.png)
**二、教程:**
**①软件部分教程**
> **1.下载并安装Arduino IDE及相关库**
>
> **2.下载并安装blinker APP,自定义控制组件**
>
> **3.修改程序并编译上传程序**
>
> **4.绑定天猫精灵(前提要有一台智能音箱)**
**详细教程:** [https://blog.csdn.net/kudianwanjia](https://blog.csdn.net/kudianwanjia)
**②完整程序在附件中下载,手机APP控制部分的程序代码如下,很简单:**
```
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_LIGHT
#include "Blinker.h"
#include "Adafruit_NeoPixel.h"
#define PIN 12
#define NUMPIXELS 6
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
char auth[] = "21d4f***74de";
char ssid[] = "12345678";
char pswd[] = "12345678";
/***************手机APP控制程序***************/
//创建颜色组件对象,对应APP中颜色主件的"数据键名"
#define RGB_1 "RGBKey"
BlinkerRGB WS2812(RGB_1);
//用于处理ESP8266收到颜色主件传来的数据的回调函数
void ws2812_callback(uint8_t r_value, uint8_t g_value, uint8_t b_value, uint8_t bright_value)
{
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
//红,绿,蓝三色值组合实现七彩效果
BLINKER_LOG("R value: ", r_value); //红灯值
BLINKER_LOG("G value: ", g_value); //绿灯值
BLINKER_LOG("B value: ", b_value); //蓝灯值
BLINKER_LOG("Rrightness value: ", bright_value); //亮度值
pixels.setBrightness(bright_value);//控制RGB灯亮度
//控制RGB灯颜色,循环一次点亮一颗灯,共点亮 NUMPIXELS 颗灯
//所有灯显示相同颜色
for(int i = 0; i < NUMPIXELS; i++){
pixels.setPixelColor(i, r_value, g_value, b_value);
}
pixels.show();
}
void setup()
{
//初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
//网络初始化,设置将要连接的WIFI
Blinker.begin(auth, ssid, pswd);
pixels.begin();
//设置颜色组件的回调函数, 当收到指令时会调用函数ws2812_callback控制彩灯
WS2812.attach(ws2812_callback);
}
void loop()
{
Blinker.run();
}
```
**三、图片展示及视频演示:**
**1.视频链接:**[天猫精灵音控雪花灯](https://www.bilibili.com/video/BV16a4y1v7EJ#reply2795695338)
**2.元件较密集,有恒温加热台的话建议把电容焊接上,手工焊接怕把灯焊坏可以不焊接电容**
**3.手工焊接,灯不耐高温,手工焊接时小心操作,别把灯焊坏了,焊接时间过长未录视频,按照丝印焊接即可**
> **PCB及成品图:**
![成品及PCB.jpg](//image.lceda.cn/pullimage/aH84nOEhUwXddWB0WkfPfLnNVnqqHRnCdNDhb6KK.jpeg)
> **正面图:**
![正面.jpg](//image.lceda.cn/pullimage/C3s3Z9tsIs8gNKTSibx968rQa5V0mF3MH4hypAWy.jpeg)
> **背面图:**
![背面.jpg](//image.lceda.cn/pullimage/Ic8CmabcC9vjFgUTLWqUPgKb2Vyw2ALJS6omopj5.jpeg)
> **演示视频**
ID |
Name |
Designator |
Footprint |
Quantity |
BOM_Supplier |
BOM_Supplier Part |
BOM_Manufacturer |
BOM_Manufacturer Part |
1 |
10uF/50V |
C33 |
C 0603 |
1 |
LCSC |
C149620 |
YAGEO |
AC0603KRX7R9BB104 |
2 |
100nF/50V |
C35,C34 |
C 0603 |
2 |
LCSC |
C149620 |
YAGEO |
AC0603KRX7R9BB104 |
3 |
300R/1% |
R3,R4 |
R 0603 |
2 |
LCSC |
C125916 |
YAGEO |
AC0603FR-07300RL |
4 |
RGB |
D14,D28,D27,D26,D25,D24,D23,D22,D21,D20,D19,D18,D17,D16,D15,D1,D13,D12,D11,D10,D3,D2,D30,D29,D9,D8,D7,D6,D5,D4 |
R-WS2812B |
30 |
LCSC |
C114586 |
Worldsemi |
WS2812B-B |
5 |
BOOT |
K2 |
轻触开关 |
1 |
LCSC |
C398053 |
SHOU HAN |
TS3625A |
6 |
RESET |
K1 |
轻触开关 |
1 |
LCSC |
C398053 |
SHOU HAN |
TS3625A |
7 |
ME6211A33M3G-N |
U1 |
R-SOT-23 |
1 |
LCSC |
C35259 |
MICRONE |
ME6206A33M3G |
8 |
J-CH340E |
UD1 |
J-MSOP-10 |
1 |
LCSC |
C99652 |
WCH |
CH340E |
9 |
CUS08F30 |
D0 |
SOD-323 |
1 |
LCSC |
C150183 |
TOSHIBA |
CUS08F30,H3F |
10 |
J-ESP-12S |
U3 |
J-ESP-12F |
1 |
LCSC |
C82898 |
Ai-Thinker |
ESP-12S |
11 |
J-MICRO USB |
USB1 |
J-MICRO USB |
1 |
LCSC |
C404968 |
SHOU HAN |
MicroQTJ |
12 |
104 |
C1,C17,C5,C4,C3,C29,C30,C21,C22,C23,C24,C28,C27,C26,C25,C6,C2,C8,C7,C12,C11,C13,C14,C15,C16,C9,C10,C18,C20,C19 |
C 0603 |
30 |
LCSC |
C149620 |
YAGEO |
AC0603KRX7R9BB104 |
13 |
1UF |
C31,C32 |
C 0603 |
2 |
LCSC |
C106858 |
YAGEO |
CC0603KRX7R8BB105 |
14 |
0.1UF |
C36,C37 |
C 0603 |
2 |
LCSC |
C335111 |
Darfon Elec |
C1608X7R104KGTS |
展开
79
194
收藏到专辑