加入交流群  

扫一扫,添加管理员微信
备注:参考设计,即可被拉入群
和也在搞设计小伙伴们碰一碰

收藏 

评论 

JFET 发布

esp8266迷你像素灯

 
设计简介

1 成品效果展示

B站视频:[开源]迷你像素灯,四种模式,多种风格~点亮你的桌面!网页控制~可自定义内容~

 

2 硬件方面

2.1 使用本项目硬件

硬件原理图与PCB图以及BOM见文章末尾,焊接完成效果如下图所示。

外壳3D打印模型在附件中,安装外壳后的效果如下所示。

 

2.2 使用开发板硬件

为了令像素灯实现更小尺寸,使用了更小尺寸的WS2812B-2020幻彩灯珠,也增加焊接难度。如不追求尺寸小巧,结构紧凑,也可直接esp8266开发板和8x8全彩像素屏进行硬件搭建。只需要用杜邦线连接以下3处:

ESP8266开发板 8x8 WS2812B像素屏
5V VCC(V+)
GPIO4(D2) IN
GND GND(V-)

 

 

3 软件方面

3.1 开发工具

该项目使用Arduino进行开发,需要安装Arduino的ESP8266支持,如未安装,请自行查找相关资料进行安装。

 

3.2 Arduino 库

使用Arduino Library 管理工具安装下面五个依赖库:

ArduinoJson

FastLED

Time

WebSockets

WiFiManager

 

3.3 程序编译下载

1.下载附件中的程序,用arduino打开文件夹同名的.ino文件;

2.选择开发板为Generic ESP8266 Module,选择相应的端口;

3. 点击下载,若使用本项目硬件,则在编译完成下载时,需要在屏幕显示Connecting...时点按一下RST按键(出现下划线前),方能进行下载。

 

3.4 固件烧录下载

若不想通过arduino进行编译下载,也可进行固件烧录下载,步骤如下:

1.烧录工具esptool下载

地址:https://www.espressif.com.cn/zh-hans/support/download/other-tools

2.打开esptool,选择如下:

3.下载附件中的固件,并在esptool中选择并勾选该固件,烧录地址为0x0。

4.连接开发板,选择相应的串口,先点击ERASE按键,待擦除成功后点击START下载,待烧录成功即可。(本项目硬件需按RST键进入下载)

 

4 功能实现

4.1 YuePixel文件夹说明

1.与文件夹同名YuePixel_x.x.x.ino文件为主程序所在文件(x.x.x为版本号)。

2.Config.h文件为配置文件,包含引用库、配置参数、全局变量、函数定义等。

3.AnimationPage.ino、ClockPage.ino、Character.ino、Pic.ino、ShowPage.ino文件分别为动画、时钟、文字显示、图片显示和IP滚动显示功能所在文件。

4.Function.ino为一些常用基础函数功能的实现;NTP.ino中为通过NTP获取时间相关函数实现;WebServer.ino为网络配置界面功能实现。

5.Cnfont.h、Pixfont.h 、Image.h、MyPalette.h中方便为中文字库、英文字库、图片、调色板相关数据。

 

4.2 整体框架说明

 

 

 

项目的总体框架及开发思路如上图所示。

1.ESP8266作为一款物联网芯片,本项目中首先对像素灯进行联网,方便后续功能的开发。这里使用的是ESP8266第三方库:WiFiManager库。其能够通过网页方便快速地实现实现设备的配网。有关资料可参考GitHub:https://github.com/tzapu/WiFiManager

本项目灯珠使用WS2812B型号,可通过FastLED库实现灯珠色彩亮度的控制。通过编写相关程序,使其适配矩阵方式控制,并可实现图案、字符、动态画面等显示功能。

2.项目硬件上未设置按键,由于ESP8266可作为服务器使用,因此使用ESP8266WebServer库并编写相应的HTML代码来实现网页控制。网页间的切换通过POST方法来实现,网页配置结果通过WebSocket传回设备,该过程中使用WebSocketsServer库来获取数据。在高级配置界面中,需要回传的数据类型较多,因此采用了JSON格式存储,在接受数据后,使用ArduinoJson库对高级配置信息进行解析。

3.为使像素灯能进行时钟显示功能,需要对时间进行获取。由于硬件上未添加时钟模块,因此时间获取需要在联网后通过网络获取。这里基于WiFiUdp库通过NTP获取时间。获取时间后通过Time库将时间同步到本地,以实现后续时钟显示功能。

4.在程序中为实现网页处理与像素灯显示同时运行,使用Ticker库来实现多任务的处理。在程序中,为节省RAM空间,因此将字符字体及网页等通过PROGMEM功能,将字符串放入闪存中。

 

5 日常使用

5.1 WiFi连接

本项目使用WiFiManager库来实现网页配网,如果为首次使用,在上电后,在WiFi中连接名为YuePixel的网络,连接成功后将自动跳转至配网界面,在配网界面中点击Configure WiFi,并在页面中选择WiFi并填写密码,保存后即可自动将设备连接WiFi。首次配网后,将保存相应WiFi配置,后续在同一网络下无需再次配网。

 

5.2 登录网页配置界面

当像素灯成功联网后,会显示像素灯在该局域网下的IP地址,使用同一局域网下的其他设备(如电脑、手机)等,在浏览器中输入该IP地址并跳转,即可进入配置界面。

 

5.3 显示内容配置

关于各模式下的内容及配置,可观看B站视频:

[开源]迷你像素灯,四种模式,多种风格~点亮你的桌面!网页控制~可自定义内容~

 

6 其他事项

6.1像素灯排列方式

本项目硬件灯珠排列方式为蛇形排列,若购买像素屏搭建硬件,像素屏非蛇形排列时,需在程序的config.h中将kMatrixSerpentineLayout设置为false,方可正常显示。

 

6.2显示镜像解决方法

若显示结果为镜像,则可以在源程序里修改,在Function.ino里的XY函数最开始加一行 x=7-x; 

 

6.3电池供电

本项目硬件未设置开关,故使用电池供电时将一直处于开启状态。

 

6.4网页程序

网页程序可见附件。

 

 

 

参考设计图片
×

!注意:请使用浏览器自带下载,迅雷等下载软件可能无法下载到有效资源。

 
群聊设计,与管理员及时沟通

欢迎加入EEWorld参考设计群,也许能碰到搞同一个设计的小伙伴,群聊设计经验和难点。 入群方式:微信搜索“helloeeworld”或者扫描二维码,备注:参考设计,即可被拉入群。 另外,如您在下载此设计遇到问题,也可以微信添加“helloeeworld”及时沟通。

 
查找数据手册?

EEWorld Datasheet 技术支持

论坛推荐 更多
更新时间2024-11-14 09:08:49

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD参考设计中心

站点相关: TI培训 德州仪器(TI)官方视频课程培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved