ESPx网络点阵时钟入门指南
本篇文章给大家谈谈ESPx网络点阵时钟入门指南,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
先从张阿姨开始吧
时间
日期
温度
环境光感应
PART_0_圣坑警告
奉劝那些准备行动的人,DIY有风险,入坑要小心!风险大于或等于以下情况:
我把你带进坑里然后逃跑;
花时间、花钱、浪费发际线,却一事无成;
需要使用工具,可能会造成意外的人身伤害,如工具割伤、烙铁烫伤、焊锡中毒等;
错误的设计和操作可能会带来其他意想不到的后果。
PART_1_想法与设计
那些没有被说服退出的人都是男性。
1. 想法
我坚信,思想引领方向。在制作这个小工具的过程中,我一直坚持以下原则:
容易:材料容易获得,容易制作,容易成功;
便宜:尽量不要花哨,选择尽可能便宜的材料,并尽量利用手头有的一些部件;
实用:制作完成后即可使用,使用方便。
2. 计划
我看了一天,确定了最基本的要求:那就是可以通过SNTP调整网络时间并显示在屏幕上。其他一些附带功能可以放弃。需求的大致框图概述如下:
功能框图
整个系统输入电源、按键信息、灯光亮度信息和WiFi,输出信息到屏幕和蜂鸣器。
事实上,由于ESP8266和点阵屏的特性,该系统不仅可以显示时间,还可以通过WiFi获取各种想要的信息并显示出来,例如:天气?股票积分?比特币价格? CPU温度监控?此外,ESP8266芯片还可用于与服务器交互,向其他终端传输数据。这一切都可以通过修改程序来完成。
确实,开放式问题。
3. 设计
让我们把它分解一下。下面列出的是我经过三次尝试最终决定的计划。我已经尽我最大的努力填补了前两次的陷阱:
主控:使用ESP8266模块,价格便宜,功能强大,可以直接解决主控和WiFi两个问题。现在,除了官方固件外,还可以运行Arduino、Lua、MicroPython等框架。这次我们将使用Arduino框架;唯一的缺点是管脚太少,但这并不影响我们的项目;
RTC时钟:DS3231芯片,高精度,内置晶振,简单易用,不仅贵而且很棒;
显示:直接使用成品MAX7219 8*8点阵模块。我也考虑过自己制作,但是PCB布局非常困难。最终还是需要两层结构。最好还是买成品,省去很多麻烦;
电源:MICRO USB 5V输入,板载稳压至3.3V;
其他:蜂鸣器、光传感器、按钮等附属设备。
三代PCB设计处于同一屋檐下。从上到下分别是1、2、3,编码处是嘉利创的客户代码。你看到一点进步了吗?
同一屋檐下的三代PCB
我可以从之前的陷阱中总结出以下经验:
ESP8266模块同时作为主控和WiFi芯片就可以了。 DS3231模块太大,必须用芯片自己搭建;
成品显示模块还可以,但是固定孔位置有点麻烦,点两下也不准。另外,显示模块直接5V供电,可以更亮;
由于采用了点阵模块和ESP8266,所以整机的功耗并不低。单节锂电池(试过18650,但还是容量型)的续航意义不大;
有些LDO(低压差线性稳压器)是骗子,压差电压根本不低;
注意配套设备的尺寸。我还买了一个卡尺来测量部件的尺寸。
我最终设计的时钟就是这样的结构。由于是后来整理的,所以直接展示成品图。
整体结构1
整体结构2、分上下两层
带箭头的很容易理解,但是红框是空的。原因有二:第一,生产PCB的工厂有折扣,只有10cm以内才能享受。我现在已经控制到9.6cm了;其次,如果是安装在机箱内,可以在这里放置锂电池充放电模块。
PART_2_准备工作
进坑之前,需要准备的材料如下。材料丰富又节约,工具自己也能轻松使用:
1、材料及耗材
材料和耗材主要是电子元件,大部分来自Xbao。电子元件的单价非常便宜。最好在一家店全部购买,否则运费不划算:
1. ESP-12F模组实际上是Escinco(或其他公司)采用乐鑫的ESP8266芯片并进行二次封装的产品。 Escinco的稍微贵一点,我买的是DOIT的。关键词:ESP-12F。
多伊特ESP-12F
不是我手抖,廉价货的做工就是这样,你看到毛刺了吗……
2. DS3231芯片,Maxim的高精度时钟芯片,自带温度补偿,准确!关键词:DS3231。
3、MAX7219 LED 8*8点阵屏模块,大家都差不多,但是要注意孔位。关键词:MAX7219点阵。
4.SPX3819 LDO稳压芯片,低压差线性稳压芯片(LDO),具有低压差,可用电池供电。关键词:SPX3819。
5. MICRO USB母座是USB插座。关键词:MICRO USB母。
6.CR2032电池及电池座、纽扣电池。关键词:CR2032,CR2032电池座。
7. 拨动开关。这其实是没有必要的。毕竟,时钟关闭得不太好。如果有的话,烧录程序的时候会方便一些。关键字:12D07拨动开关。
8.轻触开关、微动开关。关键词:微动开关、轻触开关、三针。
9.12085无源蜂鸣器,无源蜂鸣器可以根据PWM频率发出不同的声音。关键词:无源蜂鸣器。
10、GL5539光敏电阻会随着光线强度的变化而改变电阻值,用于检测环境的亮度。关键词:光敏电阻。
11.0805贴片电容、0805贴片电阻、SS14二极管、小电容、电阻。这个尺寸可以手工焊接。不管多小,确实很难。具体数值见原理图。关键词:贴片电阻,贴片电容,0805,SS14。
12、排针和排母用于制作连接器。关键词:排针、排针。
13.M3铜柱、螺钉、螺母和硬件连接器。关键词:铜柱、螺钉、螺母。
14.焊料和助焊剂是非常便宜的消耗品,但是更好的焊料和助焊剂将使整个焊接过程变得更加容易。含铅焊料熔点低,使用方便,但污染较大。无铅焊料环保,但熔点高,使用困难。关键词:焊锡丝、助焊剂。
15、洗板水,焊接后用来清洗板子的有机溶剂,我用的是无水酒精。关键词:洗水。
2、软硬件工具
所需工具清单:
1、电脑和系统可选,但要确保有USB转TTL模块的驱动;
2、USB转TTL模块,用于烧录程序;
CP2102模块
3、电烙铁和焊接工具,我用的是传说中的“鲍鱼白光”;
4、镊子,焊接辅助工具,毕竟贴片电阻太小,镊子帮助我们夹住元件;
5、旧牙刷一把,用来清洁擦洗焊好的板子。
实际上需要用到三个软件:
1、使用力创EDA作为EDA工具。
这是一款国产的、基于HTML、简单易用的EDA工具。它配备了非常全面且开放的包装库,这对于初学者来说非常有用!经常!朋友!好的! [虚假警告]。
立创EDA
由于它基于Web,因此无需安装。只需打开浏览器并注册一个帐户即可。但有一个问题:当画布放大到很大尺寸时,拖动会卡住。反正我的Surface Pro 6(i5-8350U)无法运行它,因为我的古董台式电脑可以运行它(i3-530),所以感觉更像是一个优化问题。
2. 使用PlatformIO 进行编程。
按理说,Arduino IDE有同样的功能,但我不喜欢它.
【吐槽张阿姨编辑,怪网络没插入链接】,VSCode请自行搜索。
VSCode是PlatformIO的运行环境; PlatformIO可以直接安装在VSCode的插件模块中,简单易用!推荐!
聚氧乙烯醚
我的电脑已安装,“安装”已更改为“卸载”。一般情况下,点击“安装”即可,非常简单。由于此插件是基于Python的,安装时会自动安装Python,速度稍慢。
3.其他还需要USB转TTL模块的驱动。
这取决于模块的芯片。推荐使用CP2102和CH340。其他的则较差且更昂贵。在Windows 10环境下,插上系统,自动安装驱动,让您不用担心。
PART_3_构建肉体—— 硬件
毫无疑问,看到这一幕的每个人都已经是一名战士了……
1. 印刷电路板
首先你需要一块PCB。整个流程大致为:绘制原理图—— 绘制/选择元件封装—— 将原理图转换为PCB —— 布线—— 导出Gerber 文件—— 制作PCB。事实上,这并没有那么困难。您只需要用鼠标拖动一些组件并将它们连接到线上即可。这确实是最简单的EDA工具,系统还提供了非常详细的操作手册。
因为是他们做的,所以比X宝便宜。
书
回来啦~PCB的原理如下,我大致解释一下:
示意图
电源5V连接Micro USB接口。可以通过手机充电器或移动电源供电,并联排针用于外部供电,比如放在盒子里,用电池供电。电源经过开关连接到SPX3819 LDO,将电压稳定到3.3V。由于SPX3819的电压差足够低,所以电池供电没有太大问题。这里需要一些电容器。具体电路请参考SPX3819DataSheet提供的典型应用电路。
主控采用ESP8266,需要一些外围电路,如上拉、下拉电阻等。对此,请参考Essence官网提供的DataSheet。
DS3231模块的外围电路非常简单,只需要一个备用电源。我这里使用了CR2032,并通过电池座将其焊接到PCB上。
光敏电阻通过下面的限流电阻连接到ADC,以感应外部光线亮度的变化。
这里使用的蜂鸣器是无源蜂鸣器。与有源蜂鸣器相比,通电就发声比较麻烦。使用S8550晶体管作为开关。为了让声音小一些,我还是接了3.3V电压。司机,如果你喜欢响亮的声音,接5V就可以了。
触摸开关连接到GPIO0。该IO也是ESP8266的编程模式。。,因此该开关可以在运行时同时切换,并在启动时按住进行编程。
其余三个为插针和母接口。 TTL用于编程。 LED MATRIX引出SPI接口,匹配MAX7219点阵屏。 OUT是GPIO16接口,我没有使用。我单独引出,加上GND和VCC。用于扩展一些外设,目前没有使用。
将之前的原理图转换成PCB,调整位置和封装,布线完毕后就可以画PCB了。这张PCB是总结前两次失败经验的结果,凝聚了我很多无知的泪水:
印刷电路板
一次操作后,系统可以导出Gerber文件。所谓Gerber文件就是将电路板信息逐层打包成一个压缩包。通过一些软件,可以更直观的看到PCB的外观。
导出Gerber
有了Gerber文件,我们就可以将其制造成PCB。
现在已经是2020年了,现在是一个注重产业链的时代。我不建议在家里腐蚀PCB,因为自己动手不环保,废水也很难处理;第二,工艺太差,工业生产的质量和工艺都是手工制作。
我的PCB是在嘉利做的,因为他们有一个很强的活动:用他们电脑版的订货助手下订单。 PCB尺寸在10cm*10cm以内。普通工艺,5块板才5块钱!顺丰速运免运费!
精彩~
正是这个原因,大家可以看到我做的PCB没有点阵屏那么长,因为我想控制在10cm*10cm以内。 【又抱怨张阿姨的编辑,为什么我的word帖子放进去就变成250px了? 】
当然,你也可以在他们的网站上下单,同样的要求,20元包邮。疫情期间,5元特价暂停了一段时间。当时我的PCB是20块钱做的。如果你查一下以前制作一块PCB需要多少钱,你会发现20元并不贵。
在PC订单助手中上传Gerber文件
将之前的Gerber文件上传到系统中,然后设置一些工艺参数,填写地址,付款。就像在网上买东西然后休息一两天等待快递一样方便。
2、焊接组装
由于我做样品的时候工厂刚刚复工,所以我只能耐心等待……
顺丰快递小哥终于给我寄来了PCB:
包装精美
真空包装、干燥剂
印刷电路板
一般情况下,通过钱包邮寄仅需5元。这包装和工艺还是良心的。拿出来先标记一下,孔位置就OK了【请忽略纸巾】:
做出一个手势
然后烙铁开始工作,焊接完成。我少焊接了两个电容器。一时找不到型号,就暂时留空了,基本不影响使用。焊接后,用酒精和牙刷擦洗:
焊接并清洁
冲洗水更方便正常操作。我没有,不过你可以用无水酒精清洗板子。请注意,它是无水酒精。医用酒精的酒精含量只有75%,而且含有水!不能用!
另外,需要强调的是,焊锡、助焊剂的烟雾以及清洗水的挥发成分均有毒,因此请在通风处操作。细心的人可能会发现背景有些不同。上图是我的鼠标垫,焊接的时候不小心晃动了烙铁,就出现了一个洞……所以小心你们的小手……
Part_4_注入灵魂——程序
强者!先吃完这一碗吧!
OK~前面说了,我们的时钟程序是基于Arduino开发的。 ESP8266本身并不正式支持Arduino。其Arduino框架由第三方提供。
免责声明:我这里的代码是从各个开源项目复制过来的~
首先使用我们的开发工具——PlatformIO创建一个新项目:
PIO 新
PIO 新
点击Finish后,PlatformIO会自动安装相应的板卡和框架,并帮助您构建Arduino程序的基本框架。
需要修改2个文件
这里有一个问题:由于一些奇怪的网络问题,大家很难直接从PlatformIO下载并安装u8g2库。没关系,给他手动操作一下,下载并解压库文件,将u8g2lib文件夹放入lib文件夹即可。这里要注意层次,不要嵌套多个文件夹。具体操作在README中写得很清楚。
u8g2lib
好了,复制完程序后,点击下面的勾就可以编译代码了。一般情况下,代码会滚动一段时间。如果最后没有报错就一切OK了~
编译成功
2. 燃烧
连接USB转TTL模块和时钟PCB:
接线注意事项
GND很容易理解,接地;注意TXD和RXD是交叉连接的,交叉!叉!叉!为了方便,我把TTL引脚焊接到了后面,这样在插上屏幕的时候可以更方便地插拔:
我把TTL焊在背面
连接好电线后,准备采取行动:
给开发板插上电源并关闭开关;
将USB转TTL模块插入USB接口;
左手按住板上的轻触开关,右手点击上传。
上传固件
此时系统开始检测单板的连接状态。注意终端的输出。当您看到正在连接.(只需打开电源):
好了,开始烧写代码,进度会刷新百分比。当看到【成功】时,表示刻录完成。这里提醒一下,在达到100之前可能会失败,大多是因为TTL信号完整性问题。我已经遇到过好几次了。我想有两个原因。一是我的板子设计或者焊接有问题;二是USB转TTL模块本身或者杜邦线的质量问题。多试几次,就不会有问题了。
拔掉各种电线并关闭板子的电源开关。
然后开机后就可以使用了。第一次使用时,会根据程序输入校准时间:
当这种情况发生时,你就在等待网络分配。
然后使用手机配置网络:
选择该SSID
这
选择您要连接的WiFi并在下面输入密码
那挺好的
完毕。
第五部分其他
1. 不足与改进
目前还存在以下几个不足:
1.无壳。
事实上,制作外壳的方法有很多种。最方便的一种是3D打印。如果可以的话最好打印一个shell。
2. 仍需外接电源。
我为此预留了一个接口。在目前的设计下,软包锂电池和21700锂电池是不错的选择。它们可以内置于外壳中,但需要外部充电和放电模块。
3、PCB还是画错了。
线太粗
4、程序还是随便写的。闹钟硬件已经可用,但软件尚未启用。
还好我还有一个写代码的朋友【写代码的朋友也有朋友吗? 】,他对我的程序进行了修改,创造了闹钟、农历、滚动等各种功能。
毕竟他还没有女朋友……就别催他合并代码了。
提取码: k8yw
如果资源有问题请向我反馈,谢谢~
如果有一天我想到了,我会更新代码的~
3.新坑
疫情期间,我主要关注的其实是这个,一款基于ESP32的平衡车……
原型机已准备好站立起来
然后自己制定计划
用户评论
终于入手了 ESPx 网络点阵时钟,看这个指南感觉入门还是挺容易的!之前也想尝试一下,但一直找不到合适的教程。
有13位网友表示赞同!
看完这篇指南后觉得很有用!特别是硬件连接和程序配置的部分讲解非常详细。我已经开始动手操作了,期待效果能令人满意!
有15位网友表示赞同!
话说这种点阵时钟真的有那么好玩吗?感觉学习曲线挺高的呀...
有15位网友表示赞同!
俺也买了 ESPx 的网点阵时钟,但感觉这个指南的图有点复杂看不太懂... 有没有更直观的教程啊?
有9位网友表示赞同!
ESPx 点阵时钟的编程语言是什么呢?我看指南里提到了 Arduino IDE,我之前没有用过…需要先学习一下吗?
有12位网友表示赞同!
点阵时钟的确很有个性,可以自定义各种图案和文字,我想要做一款可以显示外挂的星期的点阵时钟,按照这个指南试试看是不是能实现!太期待了~~~
有5位网友表示赞同!
这篇文章写的真好!把入门指南和常用指令都囊括了,非常方便小白玩家上手,强烈推荐给想尝试 ESPx 点阵时刻表的伙伴们!
有15位网友表示赞同!
我之前用 Arduino 做过点阵时钟,不过 ESPx 的功能更强大吧?这个指南让我对它的能力有更大的了解。 以后可以试试用 ESPx 制作一个更加复杂的时钟。
有6位网友表示赞同!
感觉这个硬件的连接步骤太复杂了,是不是还有其他简便的方法呢?我手边有一些其他的单片机模块,不知道可以用不?
有17位网友表示赞同!
我已经按照指南安装了所有软件和配置好了硬件,但是当我开始编译代码的时候报错... 这里面有没有更详细的调试步骤?
有15位网友表示赞同!
话说ESPx 点阵时钟可以用来做其他应用吗?除了时间显示还可以用来做什么呢? 这篇文章好像只介绍了制作时钟的方法。
有9位网友表示赞同!
这个指南虽然很全面,但我感觉对于零基础的用户来说还是比较难理解,建议作者能添加一些更简单的入门教程或案例。
有5位网友表示赞同!
ESPx 点阵时钟真的很有趣!我打算用它做一个显示天气预报的设备。 希望这个指南能够帮我顺利完成项目!
有16位网友表示赞同!
买了一个 ESPx 网络点阵时钟,感觉它的价格有点高吧? 性能表现怎么样呢? 有没有人实际测试过它的稳定性和使用感受?
有17位网友表示赞同!
这篇文章写的太棒了!清晰简洁易懂,把所有关键信息都包含在内。我终于能够自己动手制作 ESPx 点阵时钟啦!
有10位网友表示赞同!
我也一直在想入手 ESPx 网络点阵时钟,看了这个指南后感觉可行性很高! 但是这个指南里缺少关于电源管理方面的介绍,不知道它耗电量大不大?
有16位网友表示赞同!
做点阵时钟确实很有挑战性,需要掌握一些电路和编程知识。这款 ESPx 点阵时钟的功能很强大,我可以根据自己的需求去定制不同的样式和功能!
有15位网友表示赞同!