【开源案例】双STM32和机智云,一起打造“优美”的数字仪表!! 本文是非常全面、细致的一篇,关于开发智能化数字仪表的案例,从硬件、APP应用、Web端开发三方入手,详细讲述了如何去开发一个智能设备。项目所有源码、相关设计均公开,支持利用这个项目去开发数字示波器、激光测距仪、设备手持操作器、信号发生器、空气质量分析仪、水质检测仪等智能化手持式数字仪表设备。为了更好的让大家快上手仪表开发,几乎所有开发步骤都有图文版、视频版说明。
由于本文篇幅太长,将分成连载的形式公布。今天这个是第一篇。
项目介绍 使用STM32G0 和STM32F7的硬件平台和机智云AIoT平台,搭载最新GUI的TouchGFX技术,开发数字仪表, 实现底层的测量感知,炫酷的显示,远程控制,云端连接等功能。用户可以通过手机连接到机智云云平台,并且可以随时随地获取设备的信息以及对设备进行控制。项目开源,且支持二次开发。
主要实现功能: 产品功能: - 在MCU设备端,美观漂亮的温度和湿度数据的UI展示
- 在机智云云端,实现MCU设备端连接机智云,及数据采集并展示
- 在Android⼿手机端,实现通过机智云读取MCU设备端温度和湿度数据并展示
静态效果:
系统结构: - STM32F767+STM32G071双MCU设计,易于扩展
- STM32G071读取传感器数据和机智云的连接
- STM32F767负责UI界面的展示
可支持二次开发: - 软硬件设计资源全部公布(参考第5、6条,设计文件下载和相关源码)
- 可以根据自己的应用,接入不同传感器, 设计自己的炫酷界面,连接各种公有云
- 可基于此项目设计数字示波器、激光测距仪、设备手持操作器、信号发生器、空气质量分析仪、水质检测仪等智能化手持式数字仪表设备。
相关材料准备 硬件:STM32F767 、STM32G071数字仪表硬件开发套件 软件:STM32CubeG0固件库、STM32CubeMX、MDK 或者 IAR、机智云平台开发者账号
开发步骤 1、F7子板开发: 1.1 在F7子板上从零开始创建TouchGFX UI项目 分别配有图文版、视频版的方式,介绍如何在F7板子上创建TouchGFX UI项目。
1.2 数字仪表GUI应用开发 按照TouchGFX MVP架构来分层,通过根据原理图,STM32CubeMX配置G0通过USART2与F7子板通信外设,串口接收G0子板传感器数据,传感器读取任务StartsensorTask数据处理来实现GUI界面功能,再通过可视化UI界面和少量核心代码,实现手持设备(数字仪表)的屏幕保护界面、配网界面、温湿度显示及具体按钮的操作代码。
1.3 G0子板读取传感器与F7通信 读取传感器数据STM32CubeMX配置I2C外设,STM32CubeMX配置G0通过USART2与F7子板通信外设。
2、STM32连接机智云 2.1 云端开发:讲述机智云云端开发 进行云端开发前,有必要了解一下机智云平台的模式,以及常见的功能、相关的专业术语,以便后续开发的时候能节省时间。
2.1 MCU端开发 :包含MCU通过WIFI模块与机智云通信、通过机智云OTA升级MCU固件 根据项目需求,此处是通过WiFi模块接入机智云,让MCU获得实时数据传输的功能,所以这里要进行对MCU进行代码移植——通过STM32CubeMX移植机智云自动生成代码。为了让设备具备自动升级功能,也需要了解机智云OAT升级固件的方法。
2.3 手机端开发:包含Android端APP使用方法、Android端APP应用开发 首先介绍如何进行APP配网,然后再介绍在机智云平台定义产品的相关数据点(功能)后,在线生成APP代码包(基于机智云开源框架),通过AS再次开发和优化界面,最终实现我们想要的效果。
2.4 Web端页面开发: 具体包括Web端使用方法、Web端网页开发及部署。介绍了如何实现网页版本仪表显示页面,具体实现内容如下两个页面:初始页面和设备页面。请注意,只有初始化成功后,才会进入设备页面,以及页面部署,使得能在个人电脑或者是通过外网访问初始页面和设备页面。由于此次设计代码比较多,将讲解核心代码以及相关的实现流程。其余代码可根据源码中的注释自行了解,亦可下载全部源码。
3、整机软件烧录测试文档 3.1 F7部分 3.2 G0/机智云部分 此处分门别类介绍固件少写,主要是为实现MCU具有远程控制功能、OTA升级功能服务。
4、演示效果 4.1 DIY数字仪表单机 4.2 DIY数字仪表单机+机智云 Android APP配网和数据展示 4.3 DIY数字仪表单机+机智云 Web页面配网和数据展示
5、设计文件下载 5.1 软件设计文件
5.2 硬件设计文档
6、相关源码
7、参考文档
8、补充说明 如需要查看图文版内容、相关代码解析,后续奉上。
|