目录
前言
我的大学专业是物联网工程,临近毕业了,所以是时候考虑一个毕业项目了。经过我的一番研究,做一个无线的LED灯带控制系统是一个不错的选择。
可能很多人都觉得这玩意不是很简单吗?确实,如果只是实现一个端对端的LED控制,我半天就能写出来。但你仔细想想就会发现,其实这玩意的拓展性特别强。比如说,这个遥控器可以装个触摸屏,装个GUI,实现优秀的用户控制逻辑;这个LED控制器我可以设计各种各样的显示模式——呼吸、彩虹,甚至现在很流行的声音律动模式;硬件你又可以自己设计,自己设计电路板,焊接组装(物联网专业是不教硬件设计的,所以如果你掌握硬件设计,在这个专业是一骑绝尘的存在);还有就是我不单只有遥控器可以控制这个灯带,我写个安卓应用,这样手机也可以控制,我写个桌面应用,那么我的电脑也可以控制…
总之,这玩意的拓展性真的强得离谱,可以涉及的技术也是巨大的,再加上它的低门槛性,是毕业设计的不二选择。
因为这个项目是毕业项目,所以为了保险起见,等到我毕业了才会开源,但我会在这里分享除代码外的东西,希望能给各位一些灵感。
简介
该项目是一个可以通过WiFi进行远程操控的灯光系统。
初期目标是用户可通过遥控器上的触摸显示屏对远处的LED灯带进行操作,如调色、开关、切换显示样式等等。
后期目标有两大方向:
一是在用户体验和功能性上进行开发。用户体验上的开发,如,为遥控器加入与手机类似的WiFi配网机制、用户数据能自动保存在本地等等;功能性上的开发,如,加入更多的LED灯模式,像上面提到的声音律动模式、支持多种LED灯带等等。
二是在用户控制接入端上进行开发。比如说,开发对应的安卓、鸿蒙、IOS应用,使用户能使用手机进行控制、开发对应的桌面应用,使用户能使用电脑进行控制等等。
系统设计及方案
下面是该项目的简要系统结构图。
该系统由两部分组成,分别是遥控器和控制器,两者皆使用ESP32作为其主控,ESP32拥有优秀的WiFi协议栈,为本设计提供良好的连接能力。
在遥控器中搭载一块1.54寸的电容触摸屏,用于提供良好的用户操作体验,显示屏的软件UI采用LVGL库进行开发,提供简介、扁平化的UI设计。
在控制器上的LED灯带使用的是WS2812B灯珠,这种灯珠能显示完整的24bit真彩色,且具备阵列控制的能力,通过软件算法设计可以实现多种多样的灯光效果。
项目演示及进度
验证性演示 | 2022.07.18
在大二的暑假,我首次想到了这个项目,当时还未决定设为我的毕业设计。我用了手头的设备(一块STM32的学习板,上面自带一个ESP8266模块;一块ESP32S2开发板,上面自带一颗WS2812B灯珠)做了一个验证性的项目。
WiFi灯控验证性演示
LED控制器初期目标完成 | 2022.12.26
大三的寒假,正式将该项目设为毕业设计。首先完成了LED控制器的初期目标,即实现了4种LED显示模式——单色模式、呼吸模式、光束模式和彩虹模式;同时也实现了通讯方面的代码。
LED控制器灯光模式演示
遥控器初期目标完成 | 2022.01.10
完成了遥控器的GUI代码和通讯代码设计,使用遥控器能成功控制LED灯带。
LED灯带遥控器灯光控制演示
遥控器加入WiFi配网功能 | 2022.02.10
完成了遥控器的WiFi配网设计,现在用户能像手机一样操作遥控器进行联网,WiFi的连接信息会储存在遥控器本地,重启遥控器不再需要重新联网,遥控器会自动读取本地设置进行联网。
LED灯带遥控器WiFi配网演示
遥控器PCB设计完成 | 2023.02.20