当前位置: 首页 > news >正文

基于单片机和组态王的温度监控系统的设计

摘 要 : 介绍了以 MSP430 单片机为核心 , 建立基于 DS18B20 和组态王的温度采集和监控系统。主要研究了单片机和组态王的通用通讯协议。按照 KingView 提供的通信协议 , 设计组态王与单片机的通信程序 , 实现了组态王与M SP430 单片机的直接串行通讯。在中药提取装置的温度监控系统应用中 , 该通讯方法可以将提取装置中的实时温度快速传输到上位机。实验证明, 该系统运行状况稳定、实时性好、硬件设计简单、数据传输稳定等特点。适合在工业场合中应用。
关键词 : M SP430 单片机 ; 组态王 ; 串行通讯 ; DS18B20

0 引 言

温度的测量和控制在工业过程和科学研究中非常重要, 所以在上位机对温度的实时监控是很有必要的。单片机以其强大的现场数据处理能力、低廉的价格、紧凑的系统结构、高度的灵活性, 微小的功耗等一系列优良特性已广泛应用于工业测量和控制系统中。组态王则以其工作性能稳定可靠、人机界面友善、硬件配置方便以及方便与管理或控制计算机联网通信等优良特性, 提供了对工业控制现场大量数据进行采集、监控、处理的解决方案, 在各种工业控制领域中同样得到了大量的使用。本文设计了基于单总线数字温度传感器 DS l8B20 的小型中药提取装置测温系统 ,主控芯片采用美国 T I 公司的 MSP430 单片机 , 采用通用单片机通讯协议, 通过串口实现了单片机与组态王的通讯 , 最后将采集到的数据通过串口传送到通用机或工控机, 由组态王对采集到的现场数据进行分析、存储或显示。

1 测温系统设计

1. 1 温度传感器的选择

传统的温度测量元件比如热电阻、热电偶之类的模拟传感器的优点是成本低, 但是为了实现精确的温度测量 , 需要比较复杂的电路设计。首先保证提供 1 个稳定的恒流源, 其次模拟传感器的输出信号都比较微弱 , 需要设计后续放大电路和A /D 转换电路 , 从而获取所测量到温度值的数字信号。目前 , 数字传感器由于其高精度、多功能和总线标准化广泛应用在工业生产中。在中药提取过程中, 提取液温度变化范围为室温到 80   , 误差不超过 0. 5 , 温度显示分辨率为 0. 1 。所以本系统选择美国 DA LLAS公司生产的单总线数字温度传感器 DS18B20 。单总线是美国 DA LLAS 公司专有的 1 种特殊的串行数据通信方式, 通 过 1 条连接线就可以实现控制、通信和供电。单总线技术的一大特点是可以在 1 根总线上挂接多个单总线器件 , 从而实现多点测量。DS18B20 采用 3 T O 92 封装 , 外形像三极管( 如图 1) 。测温范围 - 55~ + 125 , - 10~ + 85范围内精度可以达到 0. 5   , 测温分辨率 最高可 达0. 062 5

1. 2 硬件电路设计

测温系统主控芯片采用美国 TI 公司的超低功耗 16 位单片机 M SP430F149   , 温度检测采用单总线数字温度传感器 DS18B20, 本系统在单总线上挂了 3 个温度传感器 , 分别对提取装置3 个不同工作点进行检测 , 通过 RS232 接口近距离的和上位机进行通信, 由于单片机的串行发送和接收是 TT L 电平 , PC COM 1 EIA 电平 , 因此单片机需加接 M AX3232 芯片 , 通过串行电缆线和 PC 相连接。整个测温系统电路图如图 2 所示 , 采用 3. 3 V 供电 , 功耗低 ,结构简单。

1. 3 测温系统软件设计

该测温系统程序包括主程序、 DS18B20 温度采集子程序和组态王与单片机串口通信子程序。其中温度采集模块定时的采集 3 个温度传感器的温度值 ; DS18B20 的操作必须严格按照时序进行, 访问 DS18B20 的顺序如下 : 初始化、ROM 命令、 RAM 命令 。每次 DS 18B20 被访问时 , 都必须严格按照这个顺序进行操作, 否则 DS18B20 就不会有响应。系统在开始时要读取所有在线的 DS18B20 的序列号, 在读取一路温度之前要发送 1 DS18B20 序列号 , 进行寻址。温度采集模块流程图如图 3 所示。

RS232 通信模块主要完成和上位机组态王的通信。RS232 接收组态王采用的是中断方式 , 发送给组态王采用的是查询方式 , 在具体软件编写过程中要注意 RS232 接收和发送切换的时序, 否则 RS232 不能正常工作。单片机与组态王通讯流程图如图 4 所示。

2 单片机与组态王的通信协议

单片机与组态王有 3 种通讯方法 : 1) 用户根据组态王提供的驱动程序开发包开发自己的通讯驱动程序; 2) 通过比较复杂的动态数据交换( DDE) 方式进行通讯 ; 3) 利用组态王提供的与单片机的通用通讯协议[8] 。本系统采用第3) 种方法 , 严格按照 K ingView 提供的通信协议 , 设计组态王与单片机通信。

2. 1 组态王的通讯设置

在组态王的工程浏览器中点击设备 COM 1, 在右面窗口中双击新建, 出现设备配置向导 , 选智能模块 单片机 通用单片机 HEX 串口 , 点下一步 , 设备命名为单片机 , 选择串口 COM 1, 配置设备地址为 0, 一直点下一步到完成( 如图 5 所示 )   , 需要注意的是组态王中配置的设备地址是单片机的 RA M 地址 , 由单片机中的程序决定。单片机这个设备建好后, 双击左侧设备 COM 1 对通讯参数进行设置, 与单片机程序中的一致即可   。本系统设置的通讯参数: 8 位数据位 , 2 位停止位 , 波特率为 9 600 bps, 无奇偶校验位( 如图 6 所示) 。

2. 2 采用串口调试助手研究组态王与单片机的通信协议

采用串口调试助手 S SCom3. 2 模拟组态王 , 对组态王与单片机通信协议 进行研究 : 运行单片机 , 串口调试助手发送 05000401, 即组态王发送地址请求格式 , 对照组态王与单片机的通用通讯协议中的数据传输格式 1, 05 是请求帧的开始代码 ENQ, 00 是设备地址 S ta, 04 是请求帧的结束代码 EOT , 对十六进制数 05 00、 04 做 CRC 校验 , 结果为01 。串口调试助手接收到 06000305 的字串 , 对照通用通讯协议, 可以看出收到的是格式 2 的数据 , 即单片机应答地址格式( 如图 7 所示 )

根据组态王读数据的时序 : 组态王发送地址请求格式1, 单片机应答地址格式 2, 接着组态王进行读数据请求格式 3: 0552010000010453, 对照格式 3, 05 是请求帧的开始代码 ENQ, 52 是读标志 R, 01 是需要交换的数据 类型DataType, 0000 为数据偏移地址 DataAddr, 01 为要读取的数据的数量 Dat aNum, 04 是请求帧的结束代码 EOT , 对十六进制数 05 、50、01、0000、01、04 做 CRC 校验 , 结果为 53
串口调试助手接收到 060100710305 的字串 , 对照组态王的协议, 可以看出收到的是格式 4 的数据 , 即单片机应答读数据格式( 如图 8 所示 )

2. 3 单片机通讯程序设计

M SP430F149 单片机工作在多机通信位方式时 , 单片机的U RXWIE 置位为 1 。当组态王开始运行后 , 就向单片机不停的发送地址请求格式, 单片机收到请求后 , 首先 , 对其进行 CRC 校验 , 然后对地址请求格式中的地址与单片机程序中预设的地址进行匹配, 如果满足条件 , 则按单片机答应地址格式通过串行口进行应答, 并将 URXWIE 复位为 0, 即单片机下次接收数据处于正常状态。下位机进行地址 判断的程序框架如下:      

   
if( ( rx0dat a[ 0] = = 0x05) & & ( rx0data[ 1] = = 0x00)
& & ( rx0data [ 2] = = 0x04) & & ( U RCTL0& URXWIE)
& & ( CRCok= = 1) ) / / 判断是否为本机地址
{
/ / 准备发送区数据
URCT L0& = ~ URXWIE;
}
组态王接收到单片机的应答地址格式后发出读数据请求格式, 单片机收到请求后 , 把温度模块 DS18B20 采集的数据, 按单片机应答读数据的格式组成应答帧 ( 格式 4) , 通过串口发送给组态王, 并把 URXWIE 置位为 1 完成一次完整通信。读数据请求程序框架如下:
if( ( rx0data[ 0] = = 0x05) & & ( rx0data [ 1] = = 0x52)
& & ( rx0data[ 2] = = 0x03) & & ( ! ( URCTL0& URXWIE) )
& & (CRCok= = 1) ) / / 判断组态王要求的数据格式
{
/ / 准备发送区数据
URCT L0= URXWIE;
/ / 只有收到地址字符时才允许中断
}

3 系统验证

将所设计的系统 , 应用在超声波中药提取过程中 , 对提取过程中的温度实时监测, 并将装置顶部、中部以及底部的温度测量值进行平均值计算和显示, 如图 9 所示。从监控画面中可以看出提取装置中的顶部温度为 24. 375 , 中部温度为24. 375 , 底部温度为 24. 500 0   。结果表明该通讯系统实现了温度的实时显示, 并且达到了很高的精度。

4 结 论

本文采用通用单片机通讯协议 , 设计了基于组态王和M SP430 单片机的测温系统 , 实现了温度曲线的实时显示和历史曲线的查询。实践表明, 该系统运行状况稳定 , 实时性好, 设计简单 , 成本低廉 , 适合在工业场合中应用。

相关文章:

基于单片机和组态王的温度监控系统的设计

摘 要 : 介绍了以 MSP430 单片机为核心 , 建立基于 DS18B20 和组态王的温度采集和监控系统。主要研究了单片机和组态王的通用通讯协议。按照 KingView 提供的通信协议 , 设计组态王与单片机的通信程序 , 实现了组态王与M SP430 单片机的直接串行通讯。在中药提取装置的…...

unity 导入的模型设置讲解

咱们先讲Model这一栏 Model Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子。 Scale Factor:缩放因子(也就是模型导入后大小如果小了或者大了在这里直接改是相当于该模型的大小的,而且在…...

汽车 vSOC安全运营管理平台开发解决方案

汽车 vSOC 安全解决方案 一、引言 随着汽车行业的快速发展,汽车的智能化和互联化程度越来越高,汽车网络安全问题也日益凸显。汽车 vSOC(Vehicle Security Operations Center)作为汽车网络安全的重要组成部分,其作用越来越受到重视。本方案旨在提供一套可实施落地的汽车 vS…...

python 第三方库

一、什么是第三方库 python的三方库指的是,需要通过pip install 安装后才能使用的 python 工具 三方库有很多: 做web自动化测试的库:selenium单元测试框架:pytest、unittest做app自动化测试:Python-Appium-Client做接…...

VMware Workstation环境下,DHCP服务的安装配置,用ubuntu来测试

需求说明: 某企业信息中心计划使用IP地址17216.11.0用于虚拟网络测试,注册域名为xyz.net.cn.并将172.16.11.2作为主域名的服务器(DNS服务器)的IP地址,将172.16.11.3分配给虚拟网络测试的DHCP服务器,将172.16.11.4分配给虚拟网络测试的web服务器,将172.16.11.5分配给FTP服务器…...

CSS实现文字颜色渐变

直接上代码和效果图&#xff1a; <p class"linecolor">文字颜色渐变</p><style type"text/css">.linecolor{font-size: 30px;background-image:-webkit-linear-gradient(bottom,red,#fd8403,yellow);-webkit-background-clip:text;-web…...

《每天5分钟用Flask搭建一个管理系统》第4章:模板渲染

第4章&#xff1a;模板渲染 4.1 模板的概念和使用 模板是一种用于生成输出的方法&#xff0c;它允许您将Python代码和HTML标记混合在一起&#xff0c;从而创建动态网页。 示例代码&#xff1a;基本模板 <!-- templates/home.html --> <!DOCTYPE html> <html…...

逆向学习汇编篇:指令的操作

本节课在线学习视频&#xff08;网盘地址&#xff0c;保存后即可免费观看&#xff09;&#xff1a; ​​https://pan.quark.cn/s/660c759dea95​​ 在逆向工程中&#xff0c;深入理解汇编语言的指令操作是至关重要的。汇编指令是计算机硬件与软件之间的桥梁&#xff0c;它们直…...

VB.net实战(VSTO):VSTOwpf体验框架打包教程

如果是考虑到Wps用户较多&#xff0c;就不建议采用侧边栏的形式 只是个体验框架&#xff0c;界面未作美化&#xff0c;office的用户可以用任意一种窗体&#xff0c;喜欢那个界面就写那个界面&#xff0c;wps的侧边栏只能弹出一部分&#xff0c;每次需要的手动拖动。 打包了案例…...

Jquery 获得Form下的所有text、checkbox等表单的值

Jquery使用表单我主要是想获得某一个表单下的所有text获得checkbox的值: 可以这样写: var parameter{}; $("input[typetext]",document.forms[0]).each(function(){ alert(this.name); }); 获得所有名为hobby的选中的checkbox的值和form2下的所有text的值 function s…...

stl之string

构造函数 void test1() {string s1;//不传参cout << s1 << endl;string s2("123456");cout << s2 << endl;string s3(s2);cout << s3 << endl;string s4(s2, 1, 5);cout << s4 << endl;string s5("123456&quo…...

Vue3学习笔记<->nginx部署vue项目

安装nginx vue项目通常部署到nginx上&#xff0c;所以先安装一个nginx。为了方便安装的是windows版nginx&#xff0c;解压就能用。 项目参考上一篇文章《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》《Vue3学习笔记&#xff1c;-&#xff1e;创建第一个vue项目》…...

使用 WebGL 创建 3D 对象

WebGL Demohttps://mdn.github.io/dom-examples/webgl-examples/tutorial/sample5/index.html 现在让我们给之前的正方形添加五个面从而可以创建一个三维的立方体。最简单的方式就是通过调用方法 gl.drawElements() 使用顶点数组列表来替换之前的通过方法gl.drawArrays() 直接…...

百度地图3d区域掩膜,最常见通用的大屏地图展现形式

需求及效果 原本项目使用的是百度地图3.0,也就是2d版本的那个地图&#xff0c;客户不满意觉得不够好看&#xff0c;让把地图改成3d的&#xff0c;但是我们因为另外的系统用的都是百度地图&#xff0c;为了保持统一只能用百度地图做 经过3天的努力&#xff0c;最后我终于把这个…...

小区物业管理收费系统源码小程序

便捷、透明、智能化的新体验 一款基于FastAdminUniApp开发的一款物业收费管理小程序。包含房产管理、收费标准、家属管理、抄表管理、在线缴费、业主公告、统计报表、业主投票、可视化大屏等功能。为物业量身打造的小区收费管理系统&#xff0c;贴合物业工作场景&#xff0c;轻…...

C++实现一个简单的Qt信号槽机制

昨天写这个文章《深入探讨C的高级反射机制&#xff08;2&#xff09;&#xff1a;写个能用的反射库》的时候就在想&#xff0c;是不是也能在这套反射逻辑的基础上&#xff0c;实现一个类似Qt的信号槽机制&#xff1f; Qt信号槽机制简介 所谓的Qt的信号槽&#xff08;Signals …...

微信小程序常用的传值

1.通过 URL 传参 在页面跳转时&#xff0c;可以在 URL 中携带参数进行传递&#xff0c;然后在目标页面的 onLoad 生命周期中获取参数。 // 在页面 A 中跳转到页面 B 并传递参数 wx.navigateTo({url: /pages/detail/index?id123 });// 在页面 B 的 onLoad 生命周期中获取参数…...

SQL面试真题解答 数据统计分析,求“同比、环比”等(SQL窗口函数使用)

SQL面试真题解答 数据统计分析&#xff0c;求“同比、环比”等&#xff08;SQL窗口函数使用&#xff09; 环比、环比增长率、同比、同比增长率&#xff0c;根据百度百科上的 说明&#xff1a; 环比增长率 环比增长率&#xff0c;一般是指和上期相比较的增长率。 环比增长率&a…...

【递归、搜索与回溯】floodfill算法二

floodfill算法二 1.被围绕的区域2.太平洋大西洋水流问题3.扫雷游戏4.衣橱整理 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.被围绕的区域…...

Dataease安装,配置Jenkins自动部署

Dataease安装&#xff0c;配置Jenkins自动部署 一.安装Dataease 安装前准备&#xff1a;1.Ubuntu20.04 LTS国内源安装指定版本Docker 2.docker-compose安装 下载离线安装的安装包&#xff0c;下载地址&#xff1a;https://community.fit2cloud.com/#/download/dataease/v1-…...

关于IDEA启动报错 【JAVA_HOME does not point to a valid JM installation】

希望文章能给到你启发和灵感&#xff5e; 感谢支持和关注&#xff5e; 阅读指南 一、基础环境说明1.1 硬件环境1.2 软件环境 二、起因 一、基础环境说明 考虑环境因素不同&#xff0c;大家适当的对比自己的软硬件环境情况分析&#xff5e; 1.1 硬件环境 MacOS Monterey 版本 1…...

设置小蓝熊的CPU亲和性、CPU优先级再设置法环的CPU亲和性

# 适用于Windows系统 # 时间 : 2024-06-28 # 作者 : 三巧(https://blog.csdn.net/qq_39124701) # 文件名 : 设置小蓝熊的CPU亲和性、CPU优先级再设置法环的CPU亲和性.ps1 # 使用方法: 打开记事本&#xff0c;将所有代码复制到记事本中&#xff0c;保存文件时候修改文件后…...

Oracle中的序列(Sequence)是一种数据库对象

Oracle中的序列&#xff08;Sequence&#xff09;是一种数据库对象&#xff0c;用于生成数字序列&#xff0c;通常用于为主键列生成唯一、连续的数值。以下是一些使用序列的案例&#xff1a; 1. **为主键生成唯一值**&#xff1a; 在Oracle中&#xff0c;序列最常用的场景是…...

热点观察 | 《姜饼人王国》新作来袭、《Monopoly GO!》荣登5月全球畅销榜榜首

本周出海热点&#xff1a; 1. 中国品牌借欧洲杯打响知名度 2. 米哈游玩家切割二次元 3. 6月27日&#xff0c;Steam游戏《六月衷曲》上线TapTap 4. 《Monopoly GO!》荣登5月全球畅销榜榜首 5. 《地下城与勇士》拿下本周亚洲T1市场畅销榜冠军 6. 《姜饼人王国》新作强势登顶…...

智能网络构建:探索大模型在网络领域的应用

网络领域以其高度复杂性和快速迭代为特点&#xff0c;完成从网络设计、配置、诊断到安全的网络任务需要广泛的专业知识。这些任务的固有复杂性&#xff0c;加上网络技术和协议不断变化的格局&#xff0c;为传统基于机器学习的方法带来了显著的障碍。这些方法在泛化和自动化网络…...

C++编程逻辑讲解step by step:定义一个Person类,它的每个对象表示一个人。

题目 定义一个Person类,它的每个对象表示一个人。数据成员必须包含姓名、出生年份、死亡年份&#xff0c;一个构造函数&#xff0c;一析构函数&#xff0c;读取数据的成员函数&#xff0c;一个print()成员函数显示所有数据。 #include <iostream> using namespace std;…...

DBdoctor产品介绍

基本信息 DBdoctor是一款企业级数据库监控、巡检、性能诊断、SQL审核与优化平台&#xff0c;致力于解决一切数据库性能问题。采用eBPF技术可对数据库做细粒度的扫描&#xff0c;帮助您一分钟内找到数据库性能问题&#xff0c;实现性能诊断百倍提效。针对数据库性能诊断门槛高、…...

一加Ace3 刷机救砖简化说明

注意&#xff1a;工具使用英文目录&#xff0c;支持救砖和降级。PJE110国行版&#xff0c;CPH2609国际版。目前国行版不能完美转换国际版&#xff0c;每次升级都需要刷oplusstanvbk&#xff0c;不建议使用。跨国转换或ROOT一定先解锁Bootloader&#xff0c;可以使用“一加全能工…...

【服务器05】之【登录/注册账号成功转至游戏场景】

Unity登录注册数据库 打开【服务器01】的文章项目 导入新UI系统 点击2D 双击输入栏位置 修改输入框尺寸及位置 放大字体 修改默认输入文字 发现中文字变成了口口口口 原因是新UI系统不支持中文&#xff0c;解决这个问题需要更换字体 并且修改输入时字体大小 我们取电脑中找Fon…...

平价蓝牙耳机推荐性价比高,性价比高的蓝牙耳机学生党推荐

市场上的蓝牙耳机价格从几十元到几百甚至上千不等&#xff0c;性能与价格也呈现多样化&#xff0c;对于学生党来说&#xff0c;一个理想的选择是那些性价比高的平价蓝牙耳机&#xff0c;它们在不牺牲必要功能的同时&#xff0c;提供了可接受的音质和足够的便利性&#xff0c;接…...

【华为战报】5月、6月HCIP考试战报!

华为认证&#xff1a;HCIA-HCIP-HCIE 点击查看&#xff1a; 【华为战报】4月 HCIP考试战报&#xff01; 【华为战报】2月、3月HCIP考试战报&#xff01; 【华为战报】11月份HCIP考试战报&#xff01; 【HCIE喜报】HCIE备考2个月丝滑通关&#xff0c;考试心得分享&#xff…...

OBD诊断

文章目录 OBD 参考标准OBD 服务OBD服务中的DTCOBD服务中0x03和0x07的区别参考 OBD 参考标准 OBD的标准&#xff1a; ISO 15031 Road Vehicles-Communication between vehicle and external equipment for emission-related diagnostics OBD 服务 序号ID服务说明服务详解10x0…...

Elasticsearch 聚合查询

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…...

adb remount fails - mount: ‘system‘ not in /proc/mounts 解决办法

mount -o rw,remount /挂载根 mount -o ro,remount /将状态重置为“ro” 以下是我个人的一些话 我热衷于在网络上分享我遇到的问题和解决方案。如果你有任何问题或需要帮助&#xff0c;欢迎留言交流&#xff0c;在共同学习的道路上一起进步。我很高兴结识那些在学习上积极进取…...

百元蓝牙耳机推荐2024哪个好?蓝牙耳机性价比之王推荐

现在的百元价位的蓝牙耳机成为了许多消费者入门级的选择&#xff0c;它不仅需要满足基础的通话需求&#xff0c;更要在音质、舒适度、续航能力等多方面达到一定的标准&#xff0c;随着技术的发展和市场的竞争激烈&#xff0c;各大品牌在这一价格区间推出了极具竞争力的产品&…...

Spring项目报错解读与全部报错详解

你好,我是Qiuner. 为帮助别人少走弯路和记录自己编程学习过程而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 &#x1f604; (^ ~ ^) 想看更多 那就点个关注吧 我…...

10秒教会你mysql的连接

连接MySQL数据库通常可以通过多种方法实现&#xff0c;以下是几种常见的方法&#xff0c;我将按照您的要求以清晰、分点的方式归纳说明&#xff1a; 1. 使用MySQL命令行客户端 打开终端或命令提示符&#xff1a;首先&#xff0c;打开您的计算机上的终端或命令提示符窗口。输入…...

万物皆可爬——亮数据代理IP+Python爬虫批量下载百度图片助力AI训练

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【导航大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…...

OpenCv形态学(一)

目录 形态学转换 结构元素 腐蚀 膨胀 开运算 闭运算 形态学梯度 顶帽 黑帽 图像轮廓 查找轮廓 绘制轮廓 形态学转换 形态变换是一些基于图像形状的简单操作。通常在二值图像上执行。它需要两个输入&#xff0c;一个是我们的原始图像&#xff0c;第二个是决定操作性…...

CSS基础汇总

CSS 1. 选择器 标签选择器 通过标签名找标签&#xff08;把指定的样式应用到某一个、组、类标签上&#xff09; id选择器 通过id属性值找标签&#xff0c;关键符号#id值{样式} 复合选择器 1、并列选择器&#xff1a;关键符号&#xff0c;用法&#xff1a;选择器1&#xff0c…...

cocos creator让所有button点击时播放音效

原理&#xff1a; 利用prototype属性&#xff0c;通过重写 cc.Button.prototype._onTouchEnded 方法&#xff0c;以便在按钮被点击时播放音频。通过重写其 _onTouchEnded 方法&#xff0c;可以添加自定义行为&#xff0c;如播放音频。 概念解释&#xff1a; prototype&#…...

mybatisplus自带的雪花算法(IdType.ASSIGN_ID)无法自动生成弊端缺点,以及改进方法

前言 今日在使用mybatisplus的雪花算法自动给id赋值时发现怎么都是null的情况&#xff0c;这尼玛测了半天&#xff0c;终于发现巨坑&#xff0c;废话不多说&#xff0c;直接上干货 IService.save 只有调用IService中的save方法才能正常生成id&#xff0c;像IService.saveBatc…...

单位转换:将kb转换为 MB ,GB等形式

写法一&#xff1a; function formatSizeUnits(kb) {let units [KB, MB, GB, TB, PB,EB,ZB,YB];let unitIndex 0;while (kb > 1024 && unitIndex < units.length - 1) {kb / 1024;unitIndex;}return ${kb.toFixed(2)} ${units[unitIndex]}; } console.log(for…...

优思学院|「按计划推动型」与「需求拉动型」的生产模式

针对生产架构做对比分类的用语&#xff0c;主要有按计划推进型与需求拉动型。 「按计划推动型」与「需求拉动型」两者乃是生产架构上常使用、成对比的两个用语。不过&#xff0c;有时不只用来指单纯的生产现场架构&#xff0c;也有人把它应用在更广泛的生产架构设计上。 按计划…...

解释什么是lambda函数?它有什么好处?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...

码农:如何快速融入团队

问题&#xff1a; 码农如何快速融入团队&#xff1f; 记住一个标准&#xff1a;能干事、能抗事。 总结一个字&#xff1a; 靠谱。 适用范围&#xff1a;新手码农、老司机码农、测试、DBA、运维、产品经理、项目经理、架构师、技术专家、。。。。适用于任何行业的打工者。 下面要…...

Android 通知组

一. 通知组简介 从 Android 7.0&#xff08;API 级别 24&#xff09;开始&#xff0c;您可以在一个组中显示相关通知。如下所示: 图 1. 收起&#xff08;顶部&#xff09;和展开&#xff08;底部&#xff09;的通知组。 注意 &#xff1a;如果应用发出 4 条或更多条通知且未…...

【机器学习】ChatTTS:开源文本转语音(text-to-speech)大模型天花板

目录 一、引言 二、TTS&#xff08;text-to-speech&#xff09;模型原理 2.1 VITS 模型架构 2.2 VITS 模型训练 2.3 VITS 模型推理 三、ChatTTS 模型实战 3.1 ChatTTS 简介 3.2 ChatTTS 亮点 3.3 ChatTTS 数据集 3.4 ChatTTS 部署 3.4.1 创建conda环境 3.4.2 拉取源…...

宏集物联网工控屏通过 S7 ETH 协议采集西门子 1200 PLC 数据

前言 为了实现和西门子PLC的数据交互&#xff0c;宏集物联网HMI集成了S7 PPI、S7 MPI、S7 Optimized、S7 ETH等多个驱动来适配西门子200、300、400、1200、1500、LOGO等系列PLC。 本文主要介绍宏集物联网HMI如何通过S7 ETH协议采集西门子1200 PLC的数据&#xff0c;文中详细介…...

C语言学习记录(十一)——指针基本知识及运算

文章目录 前言1. 指针的概念2.指针变量的说明3. 指针的含义4. 指针运算①指针加减&#xff1a;②指针的关系运算符 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 1. 指针的概念 在C语言中&…...