3915|9

65

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【2022得捷创新设计大赛】知心相框——基于STM32H745的网络天气数码相框(最终版) [复制链接]

  本帖最后由 xusiwei1236 于 2022-11-2 00:36 编辑

 

知心相框——基于STM32H745的网络天气数码相框

 

项目简介

宣传语:

是相框,也是日历; 可以放在床头,也可以摆在桌上; 记录你的欢乐,也懂得你的冷暖~

正式点的介绍:

电子相框是显示数码照片而非纸质照片的相框。与传统的纸质相框相比,它具有可自由打印,易于更新和可回收的优点。

在本项目中,我在STM32H745开发板上实现了基于RT-Thread和LVGL的网络天气数码相框。天气查询使用了高德的云服务,服务端是高德提供的开放接口,客户端是自己开发的。另外,由于ST和RT-Thread官方均没有对STM32H745上运行RT-Thread做支持,本项目也可以作为STM32H745上运行RT-Thread的基础版本。由于RT-Thread和LVGL的轻量性,该项目可以很容易地移植到类似的成本较低的硬件方案上。

本项目是 【赋能物联网——2022得捷创新设计大赛】 参赛项目,大赛链接:https://www.eeworld.com.cn/huodong/digikey_iot_contest_2022/?sid=102

作品帖首发于电子工程师世界论坛EEWorld.com,详情请移步论坛的大赛专区:https://bbs.eeworld.com.cn/forum-275-1.html

 

系统框图

硬件框图

整个作品中,硬件部分包括:

  • STM32H745-DISCO开发板,作为主控,同时使用了板上的按键、液晶触摸屏、eMMC、SDRAM等外设;

  • ESP-01S模组,用于实现Wi-Fi联网;

主控STM32H745片上硬件资源使用了GPIO、UART、I2C、LTDC、SDMMC、FMC,分别用于实现:

  • GPIO,用于支持用户按键;

  • UART,和ESP-01S模组连接,用于实现WiFi联网;

  • I2C,和触摸屏的触摸信号连接,用于支持屏幕触摸;

  • LTDC,和液晶屏LCD接口连接,用于支持图形用户界面(GUI)显示;

  • SDMMC,和eMMC存储芯片连接,用于支持文件系统,实现保存图片文件、配置信息;

  • FMC,和SDRAM芯片连接,用于扩展RAM空间,实现图片文件加载到内存;

 

 

软件框图

软件主要功能划分如下:

软件整体基于RT-Thread操作系统,使用了系统自带的一些组件和一些外加软件包。

业务功能通过几个线程实现:

  • 界面线程

  • 按键线程

  • 网络线程

  • 图片扫描线程(其实不用独立线程也可以,所以图上就没画出来了)

每个线程具体执行的工作如图中的文字描述;

 

功能说明

本节描述相关功能的软件实现原理。

 

基础软件移植

由于RT-Thread目前还不支持STM32H745芯片,这部分主要开发工作包括:

  • RT-Thread系统移植;

  • 基础外设支持(串口、片上SRAM、片上Flash);

本项目中 ,这部分主要工作在于移植了RT-Thread系统最小系统。

 

图形用户界面

图形用户界面主要基于开源的LVGL,以RT-Thread软件包形式集成到项目上。这部分除了LVGL开源代码外,本项目开发的部分有:

  • 添加了STM32H745-DISCO开发板的LCD屏幕对接LVGL;

  • 添加了STM32H745-DISCO开发板的触摸对接LVGL;

  • 添加了STM32H745-DISCO开发板的SDRAM芯片支持,用于支持显示png图片;

  • 添加了LVGL测试界面(benchmark、music、widgets);

  • 添加了作评的两个业务界面代码;

本项目中 ,这部分主要工作在于为LVGL开发了显示、触摸驱动、SDRAM支持,以及完成业务界面代码。

 

配置和照片保存

配置和照片保存,主要实现方式:

  • 为STM32H745-DISCO开发板的eMMC添加了RT-Thread块设备驱动;

  • 将eMMC块设备格式化为FATFS格式;

  • 添加了开机自动挂载eMMC到/mnt目录;

  • 添加了FlashDB软件包,用于支持用户配置保存;

  • 创建了/mnt/kvdb目录,用于保存用户配置的kvdb文件;

  • 创建了/mnt/img目录,用于保存照片;

本项目中 ,这部分主要工作在于为eMMC开发了RT-Thread驱动,以及实现了业务数据、图片文件的存储。

 

联网和天气查询

联网和天气查询,主要实现方式:

  • 添加了搜狐IP查询,实现查询当前公网IP地址;

  • 添加了高德定位,实现根据公网IP地址定位大概位置(可以精确到行政区县级别);

  • 添加了高德天气,实现根据所在区县查询当前天气;

  • 开启了RT-Thread的SAL组件、at_socket组件,用于和at_device对接;

  • 添加了at_device软件包,用于构造esp8266 AT命令,以及解析esp8266 AT的输出;

  • 配置了UART2,用于支持ESP-01S模组的输入输出;

本项目中 ,这部分主要工作在于开发了搜狐IP查询、高德定位、高德天气客户端代码,以及实现了WiFi联网等相关业务的实现。

 

图片上传到设备

图片传到设备,主要实现方式:

  • 通过WiFi网络,使用TFTP协议;

  • 设备端使用,RT-Thread的netutils软件包,提供了TFTP服务的实现,只需要打开相应配置即可;

  • PC端借助已有的TFTP客户端(如Linux的tftp命令,Windows MobaXterm也有tftp命令);

本项目中 ,这部分主要工作在于大量调试工作。

 

连接ESP-01S模组

开发板硬件修改

默认情况下:

开发板的STMOD#2连接的是PB15(通过SB13零欧电阻),STMOD#3连接的是PI2(通过SB11零欧电阻):

需要修改为:去除SB11和SB13两个零欧电阻,短接SB12和SB16两个空位;

 

修改后实物图:

 

模组连接方式

前面已经介绍了,模组用的ESP-01S(很容易买到)。

连接方式如下图:

(图中右下角黑色的是ESP-01S模组,蓝色是开发板附赠的STMod扩展板)

 

项目链接

源码仓库:

链接已隐藏,如需查看请登录或者注册

 

效果演示

 

演示视频: https://www.bilibili.com/video/BV1Re4y127JD/

 

项目总结

感谢得捷赞助本次大赛。

项目开发初期决定使用RT-Thread实时操作系统(RTOS)和LVGL图形用户界面(GUI)框架,不是ST官方CubeMX工具已经支持的FreeRTOS和STemWin,同时RT-Thread官方也尚未支持STM32H745芯片和开发板。因此,整个开发过程中,底层驱动的支持部分的难度和工作量均比预想的要大。

因为官方的CubeMX工具支持的FreeRTOS中所有片上硬件资源以及板载外设均已经支持了,而且经过了官方开发人员的测试验证。使用RT-Thread和LVGL,所有片上硬件和板上外设驱动需要自己移植、开发、验证。期间因为硬件功能调试,查阅了大量资料,花费了很多时间和精力。

另外,也正是因为使用了RT-Thread和LVGL,这一套非官方支持的基础技术架构。顺便复习了很多硬件相关的知识点,同时实操了RT-Thread的驱动开发,这也是过程中收获或者收益最大的内容。

 

模板Word文档:

2022得捷创新设计大赛-知心相框-作品文档.docx (1.97 MB, 下载次数: 8)

最新回复

谢谢分享,介绍的很全面,使用RT-Thread和GUI界面是个很强的方案,有很强的启发意义。   详情 回复 发表于 2022-12-9 18:04
点赞(3) 关注(1)
 
 

回复
举报

65

帖子

3

TA的资源

一粒金砂(中级)

沙发
 
PS:在管理员的建议下,重新整理了一下eeword这边的文档和作品帖(码云代码仓里面的文档变化不大),由于之前发的帖子已经超过三天不能修改了,所以重新发了一个帖子。
 
 
 

回复

7048

帖子

11

TA的资源

版主

板凳
 

用心写了这么多,看来不管得不得奖,还是很有收获的。

 
 
 

回复

330

帖子

5

TA的资源

纯净的硅(中级)

4
 

为许老师点赞!

 

设计规划详细,功能细致全面,是学习的好材料,实际落地也是棒棒的!!!

 
 
 

回复

156

帖子

1

TA的资源

一粒金砂(中级)

5
 

Dalao Xu is lihaility

点评

UUC
lihaility是什么意思,是不是very formidable,奥利给的意思  详情 回复 发表于 2022-11-3 09:17
 
 
 

回复

109

帖子

0

TA的资源

一粒金砂(中级)

6
 

写的很好

 
 
 

回复

421

帖子

7

TA的资源

纯净的硅(初级)

7
 

框架很有条理

 
 
 

回复

980

帖子

0

TA的资源

纯净的硅(高级)

8
 

lihaility是什么意思,是不是very formidable,奥利给的意思

个人签名

没有特别的幸运,就要特别的努力

 
 
 

回复

980

帖子

0

TA的资源

纯净的硅(高级)

9
 

介绍的很详细,成果展示也很不错,做个标记,抽空仔细阅读学习一下

个人签名

没有特别的幸运,就要特别的努力

 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

10
 

谢谢分享,介绍的很全面,使用RT-Thread和GUI界面是个很强的方案,有很强的启发意义。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

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

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