原创 【开源案例】双STM32和机智云,一起打造“优美”的数字仪表

2021-3-24 12:42 1267 12 12 分类: 物联网
本文是非常全面、细致的一篇,关于开发智能化数字仪表的案例,从硬件、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
  • 机智云平台开发者账号



开发步骤:





片版开发步骤更清晰
文字说明版步骤可以了解更多详情
代码详解版请访问https://club.gizwits.com/thread-165606-1-1.html

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 软件设计文件

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/vVrOHG

POWER_Design_Package: http://weibo.ws/yLiMNf

STM32F767ZG_Design_Package:http://weibo.ws/McnFqY

STM32G071RB_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

文章评论0条评论)

登录后参与讨论
我要评论
0
12
关闭 站长推荐上一条 /2 下一条