【开源案例】双STM32和机智云,一起打造“优美”的数字仪表
本文是非常全面、细致的一篇,关于开发智能化数字仪表的案例,从硬件、APP应用、Web端开发三方入手,详细讲述了如何去开发一个智能设备。项目所有源码、相关设计均公开,支持利用这个项目去开发数字示波器、激光测距仪、设备手持操作器、信号发生器、空气质量分析仪、水质检测仪等智能化手持式数字仪表设备。为了更好的让大家快上手仪表开发,几乎所有开发步骤都有图文版、视频版说明。
使用STM32G0 和STM32F7的硬件平台和机智云AIoT平台,搭载最新GUI的TouchGFX技术,开发数字仪表, 实现底层的测量感知,炫酷的显示,远程控制,云端连接等功能。用户可以通过手机连接到机智云云平台,并且可以随时随地获取设备的信息以及对设备进行控制。项目开源,且支持二次开发。
主要实现功能:产品功能:
[*]在MCU设备端,美观漂亮的温度和湿度数据的UI展示
[*]在机智云云端,实现MCU设备端连接机智云物联网平台,及数据采集并展示
[*]在Android⼿手机端,实现通过机智云读取MCU设备端温度和湿度数据并展示
效果展示:
https://club.gizwits.com/data/attachment/forum/202103/24/121103r4x8o697579ryh4r.png.thumb.jpg
系统结构:
[*]STM32F767+STM32G071双MCU设计,易于扩展
[*]STM32G071读取传感器数据和机智云物联网平台的连接
[*]STM32F767负责UI界面的展示
可支持二次开发:
[*]软硬件设计资源全部公布(参考第5、6条,设计文件下载和相关源码)
[*]可以根据自己的应用,接入不同传感器, 设计自己的炫酷界面,连接各种公有云
[*]可基于此项目设计数字示波器、激光测距仪、设备手持操作器、信号发生器、空气质量分析仪、水质检测仪等智能化手持式数字仪表设备。
材料准备:
硬件:
[*]STM32F767
[*]STM32G071数字仪表硬件开发套件
软件:
[*]STM32CubeG0固件库
[*]STM32CubeMX
[*]MDK 或者 IAR
[*]机智云平台开发者账号
开发步骤:
https://club.gizwits.com/data/attachment/forum/202103/24/121226r3778b4hwe84h73l.png.thumb.jpg
片版开发步骤更清晰
文字说明版步骤可以了解更多详情
代码详解版请访问https://club.gizwits.com/thread-165606-1-1.html
1、F7子板开发:
[*]1.1 在F7子板上从零开始创建TouchGFX UI项目
分别配有图文版、视频版的方式,介绍如何在F7板子上创建TouchGFX UI项目。
https://club.gizwits.com/data/attachment/forum/202103/24/121315q53zj5n5js58nmn5.png.thumb.jpg
[*]1.2 数字仪表GUI应用开发
按照TouchGFX MVP架构来分层,通过根据原理图,STM32CubeMX配置G0通过USART2与F7子板通信外设,串口接收G0子板传感器数据,传感器读取任务StartsensorTask数据处理来实现GUI界面功能,再通过可视化UI界面和少量核心代码,实现手持设备(数字仪表)的屏幕保护界面、配网界面、温湿度显示及具体按钮的操作代码。
[*]1.3G0子板读取传感器与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再次开发和优化界面,最终实现我们想要的效果。
https://club.gizwits.com/data/attachment/forum/202103/24/121454kwbhmmglgbbq60hb.png.thumb.jpg
[*]2.4Web端页面开发:
具体包括Web端使用方法、Web端网页开发及部署。介绍了如何实现网页版本仪表显示页面,具体实现内容如下两个页面:初始页面和设备页面。请注意,只有初始化成功后,才会进入设备页面,以及页面部署,使得能在个人电脑或者是通过外网访问初始页面和设备页面。由于此次设计代码比较多,将讲解核心代码以及相关的实现流程。其余代码可根据源码中的注释自行了解,亦可下载全部源码。
https://club.gizwits.com/data/attachment/forum/202103/24/121517tkarsq5k653u3y5q.jpg.thumb.jpg
3、整机软件烧录测试文档
[*]3.1 F7部分
[*]3.2 G0/机智云部分
此处分门别类介绍固件少写,主要是为实现MCU具有远程控制功能、OTA升级功能服务。
4、演示效果
[*]4.1DIY数字仪表单机
https://club.gizwits.com/data/attachment/forum/202103/24/121538ynerjuam6yvj3u95.png.thumb.jpg
4.2DIY数字仪表单机+机智云 Android APP配网和数据展示
https://club.gizwits.com/data/attachment/forum/202103/24/121621gbqk7k750c5nmb2c.png.thumb.jpg
4.3DIY数字仪表单机+机智云 Web页面配网和数据展示
https://club.gizwits.com/data/attachment/forum/202103/24/121648xsgq9zeskkq6u9yq.png.thumb.jpg
5、设计文件下载
[*]5.1 软件设计文件
F7:http://weibo.ws/vSMAVWG0 Bootloader:http://weibo.ws/UFJjlfG0 App:http://weibo.ws/EsSxHAWIFI固件 : http://weibo.ws/CkSLHH机智云AndroidAPP : https://www.pgyer.com/gizwits访问密码 2019机智云Web APP : https://club.gizwits.com/webapp/demo/index.html
[*]5.2 硬件设计文档
Sensor_Design_Package : http://weibo.ws/vVrOHGPOWER_Design_Package: http://weibo.ws/yLiMNfSTM32F767ZG_Design_Package:http://weibo.ws/McnFqYSTM32G071RB_Design_Package:http://weibo.ws/jlSyXP
6、相关源码APP源码地址:https://github.com/xuhongv/AndroidGizWitsSTDiyMeter websocket源码地址:https://github.com/gizwits/gizwits-wechat-js-sdk
7、参考文档Websocket API 指南:http://docs.gizwits.com/zh-cn/Cloud/WebsocketAPI.htmlWebsocket 网页控制设备: http://docs.gizwits.com/zh-cn/UserManual/UseWebsocket.htmlChart.js:https://www.chartjs.org/JavaScript教程:https://www.w3school.com.cn/js/index.asp
8、补充说明如需要查看图文版内容、相关代码解析,访问下面的网址
https://club.gizwits.com/thread-165606-1-1.html
页:
[1]