Realtek RTL8722DM+学生作业显示器 002-功能实现,评测完成

上一篇介绍了开箱过程,并搞定了开发环境。这一篇介绍评测过程和我的作品开发细节。
首先介绍我的设计初衷。这个作品的创意来源是现在老师给学生留作业总是发在微信上,学生看作业就得拿到手机,自制力差的学生往往拿到手机就不务正业,玩游戏看小说,很浪费时间。结合这次开发板的网络功能,我想到做一个学生作业显示器,这个设备只有显示功能,每次留作业,家长把作业内容转发到这个显示器上,就避免学生无节制玩手机的可能。
接下来说一下整体方案。如下图。整个系统由几部分组成:RTL8722DM开发板通过串口连接一个串口屏,用来显示作业信息,上次评测手头留有一块串口屏,这次正好用来做显示。RTL8722DM开发板本身运行一个精简http服务器,连着路由器。手机APP创建一个http客户端,通过路由器连接服务器,将作业文本post到服务端,RTL8722DM程序解析文本内容,摘取出来,按照串口屏格式打包发送,就能在屏幕上显示了。
01-ch.jpg
1,系统框图

一、各个模块实现
1、串口显示屏编程和调试
串口显示屏使用上次申请的topway模块,该模块为5吋屏,具备800*480分辨率,用来显示作业内容非常合适。串口屏接口简单,操作方便,不需要大量的UI工作,适合快速开发应用。
02-tft1.jpg
2,串口屏
使用该串口屏专用软件,创建一个页面,创建一个文本框,建立VP字符串变量,后续只需通过串口按照协议发送字符就能显示,非常简单快速。
03-tft2.png
3,串口屏开发环境

2、RTL8722DM开发板硬件连接和编程
本次作品用到了RTL8722DM开发板的串口和WiFi功能。串口用来和屏幕通讯,使用UART0IO21IO22)连接串口屏,如图4。这个串口在ARDUINO库中映射为Serial1,在setup() 里面要记得初始化。
04-IO.png
4,硬件连接
程序是在SimpleServerWiFi例程基础上进行更改,实现一个超级简单基础的http服务器,单片机将客户端post过来的信息进行筛选,我把要显示的文字放在0x0D0x0A0x0D0x0A字符串后面,程序只需定位“0x0A0x0D0x0A”即可找到字符串的起始位置,然后截取出来进行转发即可。
05-core code.png
5,核心代码
其中注意程序中我做了限制,只截取了125个字符,见上图箭头部分,是因为串口屏一个文本框最多只能接收127个字符,再多就会出错。此处也是用现成屏的局限性。
06-max char.png
6,最多127个字符
具体的代码可以参照附件程序,此处为了方便查看,我把源文件扩展名改为txt了,使用时改为ino即可被ARDUINO IDE支持。

3、手机APP实现
由于是搞硬件出身,对APP开发不太擅长,此处选用了简单易用的App Invertor作为手机软件开发工具。这个采用代码块方式编写逻辑,非常简单快捷。中学生都可以快速上手。我设计了一个简洁而且巨丑的UI(请原谅我没有美工天赋),如下图。只有4个元素,一个地址输入框,一个清空按钮,一个发送按钮,一个文本编辑框。基本要实现的功能都有了。
07-app0.png
7APP界面
程序逻辑也巨简单,点击发送按钮,将文本框里的文字发送到上面的地址上。点击清空按钮,清空文字,省的一个个字删除。逻辑图如下。其中要注意的是:字符串格式要定义成GBK,否则默认是UTF-8,单片机收到会显示乱码。
08-app1.png
8APP逻辑编程
具体的代码和apk安装包可以参照附件压缩包。

二、联调
程序调试遇到问题还是比较多的,我先是把开发板Serial1连接到电脑,采用串口调试工具接收程序发出的数据包,确保是正确的,再把Serial1连接到串口屏。这里需要注意的是发送的不全是字符,不能使用Serial1.println直接发送整个数组,要用Serial1.print单个字节发送。为了方便显示的字符出转移,最好把包头和包尾拆分出来。
09-log1.jpg
9,调试记录
网络通讯也是采用SSCOM自带的TCPClient功能连接开发板的服务端,进行模拟数据收发。其中要注意的是开发板和电脑必须在一个局域网内,否则没有DNS支持不能成功连接。
10-logo0.jpg
10,调试记录
经过几个晚上的不懈努力,终于把预期的作品搞出来了,如下图,在手机上输入作业内容,会立即在液晶屏上显示。
11-ok.jpg
11,最终成品

三、总结
通过本次测评,又学习了一些关于网络通讯方面的知识,也了解到RTL8722DM这颗芯片虽然电路简单,设计却很全面,强大的软硬件资源基本能满足常见的物联网设备需求。在调试过程中,我还测试BLE蓝牙、自动配网、模拟输入网络显示等功能,感觉只能用两个字形容:真香!
由于本人水平所限,这次作品还比较简陋,本来还想做成BS结构,直接从浏览器输入信息,在屏幕上显示,但是怎么将网页搞到单片机里面没整明白,最终没有实现,如果有大神知道怎么做,也请指点一下。
SimpleServerWiFi_TCP.txt (3.17 KB, 下载次数: 3)
交流单片机MCU、处理器、ARM技术、DSP,以及嵌入式系统硬件与软件的平台
  • 帖子 5138
  • 回复 5688
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
请点击举报理由
关闭 站长推荐上一条 /2 下一条
  • 返回顶部