[创新制造展示]

【21ic第二届设计大赛】+互联网信息展示器-LED点阵屏-源码....

[复制链接]
7552|47
手机看帖
扫描二维码
随时随地手机跟帖
chongdongchen|  楼主 | 2018-6-23 11:46 | 显示全部楼层 |阅读模式
本帖最后由 chongdongchen 于 2018-8-19 16:39 编辑

    源码在27楼。。
1、项目方案的构想和实施计划:

看到这么个活动,怎么说也得抽点时间来参加一下。
先确定显示器模块:
刚好这几天在DIY一个16*64的红绿双色LED点阵串口屏(已完成基本功能),此时不就刚好派上用场了吗。
将它作为本项目的显示器真是再好不过了,30cm*7.5cm的大小,放到客厅或者办公室,都是显得相当霸气!
有了显示器后,再确定核心部分——网络模块:
方案一:用树莓派或者香橙派。网络上例程很多,搞定这个项目相对比较简单。
方案二:用ESP8266模块,结合lua语言开发(nodemcu),但由于刚了解到lua,这个方案必定要走不少弯路。
两个方案比较:
1、成本。方案一的成本是方案二的很多倍,明显方案二胜出。
2、成品外观。虽然树莓派或者香橙派号称卡片电脑,但是明显比ESP8266模块大很多。ESP8266模块可以隐藏到LED点阵屏内部,看上去只有一个LED屏。所以方案二胜出。
3、开发难度。由于方案一玩的人很多,反而方案二由于玩的人相对很少,所以在技术资源上,方案一胜出。

4、个人愚见。很看好nodemcu和lua。
综上,选择方案二,配合正在DIY的LED点阵串口屏,做一个WiFi时钟(不用调时,没有累计误差)+天气预报显示。如果时间充裕,再增加其他功能(毕竟还要搬砖的哈)。
59365b2dc27b3b880.png 389695b2dc287b8ff9.png

相关帖子

一路向北lm| | 2018-6-25 12:46 | 显示全部楼层
拿来比赛还是不错的。

使用特权

评论回复
评论
一路向北lm 2018-6-25 18:51 回复TA
@chongdongchen :还在上班呢,读研的时候再玩。 
chongdongchen 2018-6-25 12:52 回复TA
是的,屏幕大,用来显示这类信息很合适。对了,你买到了吗? 
cazure| | 2018-6-25 20:45 | 显示全部楼层
你也玩香橙派?你加的是香橙派的几群?

使用特权

评论回复
评论
chongdongchen 2018-6-26 08:40 回复TA
@cazure :碰到老司机了,以后请多多指教啊。虽然便宜,但是也好用啊。 
cazure 2018-6-26 06:48 回复TA
@chongdongchen :我在1群2群都有号,我高中的时候就买了这个玩,主要是便宜 
chongdongchen 2018-6-25 21:14 回复TA
同学你好,我加的群2,去年买的,搞了个每天定时间开关的小小夜灯,就一直放在床头运行,到现在都没时间再折腾。。有空闲了还是想玩玩的。 
caijie001| | 2018-6-25 21:36 | 显示全部楼层
不错不错

使用特权

评论回复
21ic小喇叭| | 2018-6-26 08:58 | 显示全部楼层
加油,期待继续更新 ~               

使用特权

评论回复
chongdongchen|  楼主 | 2018-6-26 10:29 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-6-26 10:30 编辑

2)硬件设计过程分享:
一、显示部分-LED点阵屏:
1-1、材料的准备:
LED点阵屏买的是成品板,某宝上很多,最终买了一款价格比较便宜的红绿半板,它的前面显示部分由16*64个双色LED组成,后面部分是由列驱动芯片+行驱动芯片+电平转换芯片构成。接口是标准接口HUB08,此接口最多可以控制2*16*64个双色LED,也就是一个单元板,由于我买的是半板,所以只需要驱动上半屏即可。
一般这种LED点阵屏都要搭配相应的控制卡、电源才可以运行,当时也看了几款不同厂家的多种控制卡,打算买来作为开发板,程序自己重新写过(主要的乐趣所在)。
但是想起之前逛某宝的时候买过几个STM8S003的最小系统板,虽然性能比不过专业的控制卡(控制卡好像没见过用8位机做的),但是做为自用不商用,不要搞动画特效,我想应该是没有问题的。电源手上也有一个,是5V/3A的,也够用了,那么就都利用起来吧(省钱,)。
1-2、要完成那些指标:
a、自制的控制卡要求留出一个接口,供主机通讯。不用说,首选自然是串口。
b、通讯内容。主机只需要将待显示的字符串(要包括中文在内,毕竟我是中国人),发送给LED屏,就能显示出来。
    由于是双色屏,所以还要能通过串口设置字体颜色;又因为屏支持汉字,肯定要用到字库芯片(003单片机资源限制,必须外挂字库芯片),
    所以增加设置ASCII字体(汉字只有一种字体可选);另外还可以控制亮度和开关,暂时就这么多吧。
c、通讯协议。第一个想到的就是modbus,可以通用市面上很多产品。
    再一个就是自由协议,由于modbus待crc校验,如果要减轻低端主机的计算量,那么就不合适。
    最终决定先做好modbus(仅支持16命令,因为已经够用了),最后比较空闲的时候再增加自由协议,让两者兼容。
d、屏幕的刷新率。一般认为,LED动态显示时,刷新率只要大于30帧/秒就够了,人眼就感觉显示内容是静止不动的。
    不过我认为是远远不够的,虽然看上去“静止”了,实际很晃眼,会有点晕的感觉,做LED灯具的应该懂这个,叫频闪,对眼睛很不好。
    所以决定最起码做到100帧/秒以上。上限是003单片机的极限(目前已经实现稳定的250帧/秒)
附上原理图,手工搭棚,无PCB:
582175b31a14680f30.png

二、网络模块
材料:WiFi模块——ESP-12F
831495b31a40a70cf2.png
由于STM8S003最小系统板上面已经有1117-3.3稳压芯片,所以只需要把3.3V电源和串口接到ESP-12F模块即可。
不过这里要注意ESP-12F模块发射瞬间电流较大,所以电源这里要加电解电容提高稳定性。

下一步就是先把LED屏程序完善好,再去开发ESP-12F程序。
理科生文笔不好,将就看看吧。。

使用特权

评论回复
ADS4069| | 2018-6-28 21:13 | 显示全部楼层
期待期待

使用特权

评论回复
publicpeople| | 2018-6-30 20:08 | 显示全部楼层
期待期待,牛人是一波一波的呀!

使用特权

评论回复
lihui567| | 2018-6-30 23:12 | 显示全部楼层
8266在无线控制这块运用较多,性能怎么样?

使用特权

评论回复
评论
chongdongchen 2018-7-1 11:42 回复TA
没有在产品上用过,无法评价 
chongdongchen|  楼主 | 2018-7-9 11:13 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-7-9 11:17 编辑

3)搭建平台;
4)程序设计;
5)调试过程;
由于工作任务重,进展比较慢。
这段时间主要完成了LED点阵屏的程序补充,以及ESP8266的联网测试。
LED点阵屏基本功能:
1、字符串显示。可以显示两行ASCII码字符,或者一行汉字+ASCII码字符,并且可以设置左右移动和上下移动,左右移动对长字符串的显示很有帮助。
2、通讯功能。外部主机可以通过串口和LED点阵屏通讯,主要的特点如下:
串口硬件参数:TTL3.3V,115200,N,8,1
通讯协议,完成了两种,自动识别:
    1、modbus:支持命令:16(0x10),具备标准的正常应答和异常应答。modbus测试软件测试通过不丢帧,有时间再用PLC或组态屏测试下。
    2、自由协议:通过串口助手测试同步时间成功。
3、RTC功能。由于频率源使用的是STM8S003的内部IRC,所以对于RTC来说精度是完全不够的,需要8266在每分钟的第0秒主动同步一次,而8266的频率源是晶振,精度相对好很多,所以只需要每隔十几分钟,通过WiFi和NTP时间服务器同步一次即可。

ESP8266使用NodeMCU开发,它是一个开源的物联网平台, 使用Lua脚本语言编程。
硬件使用的是某宝的开发板(自带虚拟串口比较方便),完成后在连接到LED点阵屏。
ESP8266已经实现的功能:
1、NTP时间服务器时间同步。同步成功后通过串口把时间发送出来,用串口调试助手观察。
2、天气预报。找了好多有相应接口的网站,最后选择了免费的,相对收费的信息量会少点,访问次数有限制(400次/小时),不过日常用足够了。现在已经通过ESP8266获取到了想要的数据。
目前LED点阵屏和ESP8266都是分开独立调试,还没有进行通讯测试。

使用特权

评论回复
古美门| | 2018-7-17 14:11 | 显示全部楼层


你好,看到你提及DIY做出来的LED点阵串口屏,其实还可以做成WiFi时钟(不用调时,没有累计误差)+天气预报显示,从卖产品的层面来看,这个有望是一个爆款
1. 这个应用可以重叠於入门级智能音箱应用之上,分走一部分的市场份额。
    青年人中,拖延症这麽流行,这应用该好切中大家的日常习惯痛点。
2. 因为已经有wifi,所以,其实加上扩音机後,便可实现播放音乐。软件用DuerOS就可以,当中有海量的音乐资源。
3. 音箱功能之上,另一个可以考虑的是,通过和协作类app做联动(都有ap开放接口),这就可以深挖时钟的功能。
   例如, 团队之间的工作,时钟可以做到一对一或者一对多的提醒。
4. 如果在无印良品,网易严选,名创优品上出货,那就是最合适的to C渠道了。对应to B的话,得力及晨光,应该也是很合适的渠道。

因为我也有关注这类的应用,所以想和你交流一些意见。

使用特权

评论回复
评论
古美门 2018-7-23 15:51 回复TA
@chongdongchen :再加了一次,也没反应呢。505280087 
chongdongchen 2018-7-20 11:08 回复TA
@古美门 :没收到呢 
古美门 2018-7-19 14:39 回复TA
@chongdongchen :请问这是你Q吗?我已加你 
chongdongchen 2018-7-17 21:36 回复TA
你好,感谢你的关注!WiFi时钟(不仅限于此)确实是个很好的产品(至少我也是这么认为的),但是身边的朋友都认为用处不大(早前稍微调查过几个朋友)。如何把一个冷门的东西变为热门,一般的技术人员还真不懂。既然都有兴趣,我们可以再详细交流,加我三八零七七八一二三 
chongdongchen|  楼主 | 2018-7-17 22:12 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-7-19 10:30 编辑

经过努力,已经实现了时间同步、天气预报、热点新闻。。
全家福和组装好的样子:
317805b4df4f1c24d9.png 351065b4df50f38a59.png
366735b4df5326337a.png 973635b4df58dc8317.png
开机效果图:
288065b4df5f6a4372.png 357835b4df5fd29da4.png
985125b4df61617a6a.png 423325b4df61e24530.png
9585b4df6c840c5f.png 496295b4df75a05fbb.png
视频效果(终于改成直接显示视频了,第一次只发了个播放地址):





使用特权

评论回复
chongdongchen|  楼主 | 2018-7-17 22:20 | 显示全部楼层
通过网页配置WiFi的功能也已经实现,到时候也拍起来看看

使用特权

评论回复
一路向北lm| | 2018-7-18 08:17 | 显示全部楼层
不错,点阵屏玩的 666的

使用特权

评论回复
评论
chongdongchen 2018-7-18 10:22 回复TA
感谢支持! 
chongdongchen|  楼主 | 2018-7-18 10:22 | 显示全部楼层
ESP12F模块应用原理图,焊接的时候没画,现在补上一张。
241585b4ea3f055c06.png

使用特权

评论回复
评论
chongdongchen 2018-7-18 10:27 回复TA
R1,R2阻值和实物反了,不过不影响,估计直接接VCC也没问题 
chongdongchen|  楼主 | 2018-7-18 14:00 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-7-18 14:04 编辑

为了能够方便的切换到不同环境的WiFi,需要
通过网页配置WiFi-ssid。

原理:手机或电脑等设备连接到ESP8266的热点,进入到配置主页192.168.1.1,配置成功后,ESP8266
会记住自动连接
此ssid。

开机后,按住按钮5秒以上,就可以开始配置WiFi了:

屏幕显示:

303705b4ed4beb0659.png

配置主页画面,看到两个输入框,可以手动输入ssid和密码,或者按下灰色按钮进行周边无线网扫描:

591995b4ed500e747e.png

懒得输,扫描了一下,再点击第一个输入框,就可以选择自己需要连接的WiFi了,这时又想手动输入的话,点击灰色按钮有回到上个画面:

670935b4ed583c2370.png 53155b4ed5c4bd5d5.png 892375b4ed6733222d.png

好了后点击绿色按钮进行保存操作:

847625b4ed69cb28c4.png

现在这个网页可以关掉了,等一会就可以使用新配置的WiFi了。


使用特权

评论回复
chongdongchen|  楼主 | 2018-7-18 17:19 | 显示全部楼层
一直开着,时不时地看看,这样就能发现一些细节问题并优化,比如这里,原来格式是:xx"热点新闻标题",现在:TOPxx"热点新闻标题"
好了,先运行个几天看看有没有bug
197365b4f051989bc3.png

使用特权

评论回复
评论
古美门 2018-7-19 15:12 回复TA
非常棒 
chongdongchen|  楼主 | 2018-7-20 11:08 | 显示全部楼层
本帖最后由 chongdongchen 于 2018-7-20 22:35 编辑

修复了一个热点新闻显示的瑕疵:原先是ESP8266定时间轮流给LED点阵屏发送热点新闻,这是因为STM8S003的RAM不够用,所以每次发一条,每条在STM8S003中预留100字节,对于热点的标题足够了。因为LED点阵屏这边显示周期不固定,所以会导致显示内容“假随机”,比如上一次显示TOP01,下一次可能就是TOP03。
现在这样解决:LED屏每当把收到的热点新闻转存到缓冲区的时候,向ESP8266回应一个消息,ESP8266收到此消息后才会发送下一条。现在已经实现顺序循环播放了。
另外,热点新闻每2分钟从服务器更新一次,存在ESP8266中。天气预报也是2分钟一次。

使用特权

评论回复
chongdongchen|  楼主 | 2018-7-20 11:22 | 显示全部楼层
再更新一个功能,人体感应。
原来是指定每天的时间段开启显示,但是加班或者放假的问题不好解决,那干脆加一个人体感应功能吧,有人显示,否则延时关闭。
模块隐藏到屏后面,不影响美观。

就是这个感应模块:
608175b51552207cf6.png

使用特权

评论回复
chongdongchen|  楼主 | 2018-7-21 10:00 | 显示全部楼层
至此,这个设计算是完成了 ,接下来先运行并观察一段时间。工作如果不忙一些的话会再丰富一些功能(最近实在太忙)。
抽空再写一份总结。感谢大家的支持!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

54

主题

1229

帖子

10

粉丝