我需要一个灯
我需要一个多彩灯
我需要一个可以智能控制的多彩灯
来了,它就是
大家好,这就是我要是说的小夜灯
别看我的图片很简约的不能再简约
它可是集众多功能于一身哦
且看我一 二 三 四 变
身为一个灯,接入 HA 控制那是最基本的
小程序控制,那也是妥妥的~
苹果手机还可以这样控制
Siri 控制也不是不行
你以为这是它的全部吗
No,No,No
身为一个灯,这点追求太少了
再加
音乐灯
结合 LedFx
添加设备可以直接变身音乐灯带
以上是控制方式
接下来给大家挨介绍这个灯的结构,工程,控制,和源码
结构
这是外壳结构
里面分为两层,上层就是灯珠,有 25 棵均匀分布在板子上,板子正好放在孔柱上,孔为 M3 螺丝孔,正好固定
下层是控制电路,正好穿过孔柱放到下面托盘上
安装需安装下层,然后螺丝母固定,在放上层,继续固定
最下面放一张 1.5 厚的乳白透光板,实现即透光,也不会刺眼
充分满足小夜灯使用
板子尺寸为 100mm 正园,符合白嫖思想
透光板直接说好尺寸,淘宝店家就给切割
就是外壳不能晒光,最近测试,放桌上,已经发黄了
实物图长这样,底板没加
一方面是打算等 5000 积分后换两块 M61 模组在装,省钱
控制
小夜灯控制主要在两个方面
一个是 MQTT 控制,实现 RGB 各种颜色的切换
这种也就是 HA 控制模式
不过缺点也很明显,只能控制单一颜色 亮度,也就是 25 个灯要什么颜色就是什么颜色
苹果 homekit siri 都是这种控制的衍生品
另外一种就是 UDP 控制
这种小程序和 LEDFX 就是这种
可以实现每个灯控制什么颜色
当然要是都一个颜色还是得一个个都输入灯的颜色
彩蛋模式
隐藏彩蛋,直接在对应主题发送数字,就可以显示各种炫酷动画
这个会在视频中详细演示
彩蛋模式定义的值,这个在 ws2812.h 里面定义
这里的值只到初始化灯模式,UDP 模式放在这里是为了内部切换的
发送 UDP 对应值程序会报错
LEDFX模式
这是 ledfx 的 github
GitHub - LedFx/LedFx: LedFx is a network based LED effect engine designed to deliver advanced real-time audio effects to a wide variety of devices.
介绍:
LedFx 让您的 LED 随着音频跳舞!LedFx 提供的是接收音频输入的能力,并即时将音频处理成实时灯光秀到多个 LED 灯条/矩阵。无需花费数小时来编程一首歌曲来编程您的 LED,因为 LedFx 将为您完成这一切!
LedFx 实时 LED 灯带音乐可视化效果控制器采用的是基于网络的设备(ESP8266/ESP32/Raspberry Pi 4),支持先进的实时音频效果!LedFx 可以控制多个设备,并且与廉价的 ESP8266/ESP32 节点配合使用,从而在整个房屋中实现经济高效的同步效果!
配置
下载安装就不介绍了,直接讲配置,点击设备
默认这里时没设备的,添加就行
上面选择 UDP,下面安图配置
最后点击进去
这里就可以选择各种模式了
选择好模式,这里点开始,就可以看到效果了
补充下苹果手机接HA
苹果有自带的 homekit,HA 有集成,可以生成 homebrige,桥接苹果和 HA,这样在苹果家庭里面就可以控制 HA 的设备了,在集成里面搜 homekit。
选择 apple
bridge 选择
选择灯
设置区域
点完成
在通知里面有个二维码
打开苹果手机,家庭,扫码添加就可以了
添加完成后就可以在苹果手机上控制了,Siri 也可以了
工程架构
主要工程在 components 文件夹里面
mmqtt 主要是负责 MQTT 连接订阅
User 各种功能 Task 调度
wifi 连接 wifi
ws2812 LED 显示代码
灯这里我没用莫哥的库,但是处处都是莫哥库里面的精华
不管是这个工程模板 还是 MQTT wifi 连接 都是
整个工程调度是在 user_state.c 中 state_task 函数
开机给这个函数发送系统启动状态后,
就是这个函数负责消息处理 LED 显示
工程的复刻记得修改 makefile 文件即可
遗憾
其实还想加麦克风的
傅里叶变换还没搞懂
虽然 ledFx 也可以,但是毕竟不是自己的
如果大家有啥好的思路或想法,能把麦克风也加上,也可以根据律动变化,欢迎给我建议
感谢大家看到这里