零代码搭建一个温度传感器数据采集与显示软件
1 概述
传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
传感器按用途可以分为力敏传感器、位置传感器、液位传感器、能耗传感器、速度传感器、加速度传感器、射线辐射传感器、热敏传感器等。
随着集成度的不断提高,多种传感器集成到一个模块,已经非常普遍。模块的生产厂商,对外提供一组通信协议,供模块使用者和模块进行通信,从而方便的获取传感器的测量数值。
本文通过一个实际的例子,介绍如何通过上位机软件,对一个多轴传感器模块的温度数据进行采集并用曲线图表显示温度数据。本例子的硬件架构如下图所示。
传感器模块数据输出: 温度、加速度、角速度、磁场等
传感器模块数据接口: 串口,波特率9600(默认)
传感器模块串口上位机连接:使用USB-TLL串口模块连接,VCC接VCC,TX接RX,RX接TX,GND接GND。
本例子上位机使用格西测控大师编写,最终效果如下图所示。
2 通信协议
数据采集系统和设备通信有两种方式,一种是DirectIO方式,也就是直接通过设备通信协议进行访问,这种方式需要了解设备的通信协议;另外一种是间接调用动态库的方式,这种方式只需要了解动态库的接口函数即可。
本文的实验例子是通过DirectIO方式进行通信。下面我们来介绍一下所用到的采集通信命令,通信命令帧结构如下图所示。传感器模块持续的向串口发送通信命令帧。
3 创建项目、设备接口和变量
3.1 第1步 新建项目
启动格西测控大师,在左上角菜单中选择“新建项目”,然后在弹出的“新建项目”对话框中,填写项目名称“温度采集与显示项目”,然后点击“浏览…”按钮,选择保存路径和填写项目文件名“温度采集与显示项目”,最后点击“确定”按钮。
3.2 第2步 添加串口设备
在项目管理器中选择“设备与接口”节点,然后点击鼠标右键,在弹出菜单中选择“新建设备…”。
弹出新建设备对话框中,选择“串口”,点击“确定”。
弹出设备属性对话框,填写“设备名”和其他设备参数,最后点击“确定”按钮。其中,“设备名”是设备的标识,可以是任意字符串,引用设备必须使用设备名。
3.3 第3步 添加变量
本例子用到变量容器、表达式变量和TXT文件变量。
TXT文件类型变量:当其所有子变量都改变过后,形成一条记录,保存到文件中。本例子中的时间数据通过表达式变量自动生成,而温度数据,每次采集完毕后通过数据绑定的方式把采集序列中的温度值分别赋给“温度值”变量,即可生成一条记录。
表达式变量:保存采集时间和温度值,采集时间使用系统当前时间,温度值通过采集到的数据经过表达式运算得到。
其中,Frequency表示变量数据每秒钟的触发次数, 每次触发,根据表达式计算产生变量的值;如果 Frequency<=0,则不能定时触发表达式计算,只有对 Value 属性赋值,才可以触发表达式计算进而产生新的变量值。
4 编写采集序列
本例子用到的步骤类型: While和Message。
其中Message步骤是报文步骤,可以通过自定义报文结构来编写通信协议,可以自定义任意结构的通信协议,非常方便和设备进行通信。
运行测试的时候,我们可以打开序列数据面板查看通信的过程数据。
5 设计用户界面
本例子用到的控件:LineChart(曲线图)、TableGrid(数据表)。
控件关键配置:
LineChart:
ChartSeries属性(格式为“<系列名称 1>,<X变量名>,<Y变量名>;<系列名称 2>,<X变量名>,<Y变量名>;…“ ;本例子设置为:温度曲线,时间,温度值)
DataProvider属性:绑定“采集变量表/温度数据”变量容器
TableGrid:
DataSeries属性(格式为“<变量1名>,<列1名称1>; <变量2名>,<列2名称>;…“ ;本例子设置为:时间,时间;温度值,温度值 )
DataSource属性:绑定“采集变量表/温度数据”变量容器
6 编写仿真序列进行调试
实际开发中,我们经常使用仿真的方式进行软件调试,使得开发进程更加可控。下面,我们从这个例子出发,探讨一下如何编写仿真序列。
本例子的传感器模块是串口通信的,故在仿真时我们选择用虚拟串口软件(VSPD虚拟串口软件)虚拟一对串口来实现仿真程序和实际程序的对发。
按以下步骤创建仿真序列:
1、创建串口“串口-仿真器”,保证和“串口”是虚拟软件创建的一对交叉互联的串口。
2、创建循环发送的序列,其中一个Message类型步骤用于发送仿真的帧到“串口-仿真器”。
3、编写“发送温度帧”步骤的脚本,生成随机温度值。
7 总结
随着测控软件开发平台的日益成熟,测控系统的开发越来越注重低代码、配置型系统,也就是说整个测控系统的构建,就像搭积木一样,把各个功能硬件,通过低代码型、配置型的测控软件开发平台,有机的组合起来,达到多快好省的“量身定制”自动化系统。
下载例子工程
零代码搭建一个温度传感器数据采集与显示软件相关推荐
- 华为云平台零代码搭建物联网可视化大屏体验:疫情防控数据大屏
目录 一.介绍 二.准备 三.搭建 1.创建疫情防控大屏应用 2.组件放置 3.组件配置 4.应用打包 一.介绍 零代码搭建物联网可视化大屏 :自定义物联网场景,根据个人理解实现基于华为云IoT以及可 ...
- 零基础搭建一个基于PHP+MYSQL网站教程,个人建站全过程
零基础搭建一个基于PHP+MYSQL网站教程,个人建站全过程 一.网站计划编写. 1.定位,网站名称,关键字,描述,分类目录,内容 [这里推荐用脑图软件,可以用百度脑图] 2.想好域名 二. ...
- 《嘎!RSS》如何零成本搭建一个免费私有化舆情监控系统?
RSS是一种标准的网站内容投递协议,通过解析RSS我们可以获取网站的内容更新. Github Actions是Github推出的一个免费服务, 可以帮我们跑任何程序,每月2000分钟. zhaoole ...
- 搭建一个独立网站用什么软件或系统?
这个资讯爆炸的时代,网络的普及下,连日记也被搬到网络上,称为Blog(博客.网络日志).相信人人都有一个属于自己的Blog,但你了解Blog吗?我们在现实中,常常会听到这么一句话:「你有没有新浪?」新 ...
- 基于零代码搭建你自己的设备管理系统
在信息化技术高速发展的今天,产品呈现傻瓜化趋势,不是设计师也能用美图秀秀把自己的相片处理得美美的:不是摄影师也能用抖音.手机剪辑软件制作出很燃的视频.当然,不会编程也能在零代码平台上搭建出一个设备管理 ...
- python实现局域网攻击_牛逼了!一行Python代码搭建一个局域网服务器
不知道大家有没有遇到过这样的情况, 在做项目或者研发的时候,迫切想要将一个文件传输给另一台电脑,却找不到U盘,于是麻烦的通过登陆qq.微信等社交软件 ,或者邮箱等工具进行传输,十分麻烦,让人苦恼. 都 ...
- 一行代码搭建一个简易的本地文件服务器_附带外网教程_一蓑烟雨任平生
文章目录 前言 一.提前准备 1.首先你要有Python环境 2.下载个utool 3.cmd查看本地ip 二.三步搭建 1.一行代码 2.启动服务 三.测试 1.内网测试 2.外网测试 1.配置ut ...
- 教你如何用 19 行代码搭建一个女朋友!
公众号关注 "GitHubDaily" 设为 "星标",每天教你学编程! 许多同学经常私信跟小G抱怨说,学编程好枯燥啊,经常学到一半就跑去刷剧.打王者混分了.其 ...
- 不写代码不建模!万字长文带你在 Cocos Creator 中零代码搭建 3D 户外场景
点击文末[阅读原文]在线预览最终效果. 对于接触过 3D 游戏美术资源的程序来说,可能心中都出现过类似这样的独白: 这些 3D 模型是怎么用的,为什么我导入的时候老是报错? 这些花花绿绿的图片是干什么 ...
最新文章
- opencv角点检测学习总结
- 1年将30PB数据迁移到Spark,eBay的经验有何可借鉴之处?
- 查看自己设置的jvm参数
- 博客园自动添加版权说明,自动添加文章链接
- 7天后自动更新cookie
- Cloud一分钟 | 一脚踏入云计算2.0时代,京东云这回拼的是“朋友 圈”;8400万元私有云招标...
- 火星民众彻夜排队接种飞鸽传书
- 深入理解SVM之对偶问题
- 如何实现二级菜单 html,javascript,html5_如何用vue实现二级菜单栏,javascript,html5,html,vue.js - phpStudy...
- 【转】计算机键盘功能键作用
- 轻度体验威马Living Pilot智行辅助系统:前期刺激,后期依赖
- 【C语言】求方程式 ax^2+bx+c=0 的根, 分别考虑: 1、有两个不等的实根 2、有两个相等的实根
- xson 1.0.2 发布,新增byte[] buffer,支持XCO
- RabbitMQ第二话 -- Springboot基于四种Exchange(Direct、Fanout、Topic、Heders、延时队列)的实现和多虚拟主机下的生产消费者实现
- 东芝笔记本出现w ndows,夏日白色清新范 13.3英寸东芝L830评测
- 基于ESP8266称重式压力传感器(接入阿里云物联网平台)
- CI框架教程5——整合PHPExcel库应用
- 物联网编程语言_编程语言以学习物联网实施
- 计算机网络教学优秀教案,线上教学优秀案例:计算机网络基础公开课
- 实验室信息管理系统(LIMS)可解决实验室的哪些问题?