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

振南技术干货集:制冷设备大型IoT监测项目研发纪实(3)

注解目录

1.制冷设备的监测迫在眉睫

1.1 冷食的利润贡献

1.2 冷设监测系统的困难

(制冷设备对于便利店为何如何重要?了解一下你所不知道的便利店和新零售行业。关

于电力线载波通信的论战。)

2、电路设计

2.1 防护电路

2.1.1 强电防护

2.1.2 弱电防护

(浪涌、脉冲群、静电、过压、雷击,你的电路扛得住吗?加些防护吧。)

2.2 电路复用(电路设计,仔细思考一下,不要作重复劳动。)

3、协议设计

3.1 内外机通信协议

(电力线通信环境是复杂而恶劣的。振南设计的时分复用与冗余编码协议,了解一下。)

3.2 主机与 WIFI Agent 通信协议

(乐鑫 ESP8266 连接 WIFI,数据上私有云。Json 了解一下。)

4、自动化生产与测试

4.1 自动化烧录

4.2 自动化测试

(芯片预处理、自动化烧录和测试,半个月生产 9000 套硬件,看看我是如何作到的。)

5、工程测试与安装

5.1 工程测试(手机蓝牙远程调试)

5.2 工程安装

(看我们上天入地安装设备。蓝牙调试,几十米外无线烧录,一部手机全搞定。)

6、冷设监测数据分析

(开放一些内部数据,看看实际效果。)

7、冷设监测故障预判作用评估

7.1 故障预判时效

7.2 对维修保养的验收指导作用

7.3 故障报警受气温的影响

(努力没有白费,省下的是实实在在的真金白银。)

8、冷设预警的典型案例

1)申虹路某店

2)恒通商务园某店

(这里有 ABC IOT 系统的内部监测数据,一切的努力都归结于这些曲线上。)

3

协议设计

3.1 内外机通信协议


先说一下电力线载波通信机制背景:

电力线载波通信硬件层面没有主从与寻址过滤机制,某一个节点发送数据,同一电力线网络下(同相,无变压器隔离),所有其他节点均可接收到数据(排除电力线干扰的理想情况下)如图 8.16 所示。


图 8.16 一个内机 +N 个外机的电力载波通信模型

即电力线载波通信仅工作在广播通信方式。

电力线载波通信的特点:带宽较小,即每次传输数据量较小;干扰大,可能导致数据通信失败率较高。

制定协议的原则:

(1)防止外机与内机通信时对电力线的争抢,即实现有序的无冲突的通信;

(2)外机与内机自 身通信故障 诊断,以便从通信故障中恢复;

(3) 容忍恶劣的干扰因素,保障最大限度数据传输;

(4)在有限的数据带宽下,尽量多的传输更多信息。

内外机之间的通信采用电力线载波通信,经过多次的筛选测试,最终振南选定了 ZBKJ的模块,如图 8.17 所示。


图 8.17 ZBKJ 的电力载波通信模块

这是一家实力蛮强的公司,模块上所使用的芯片是他们自主研发的,如图 8.18 所示

主机(内机)请求帧如下:


图 8.18 ZBKJ 自主研发的电力载波通信芯片


电力载波模块每次发送接收固定 20 字节数据,不足部分补 0。

请求帧为了防止数据丢失,采用重复编码,即 10 个 AA55BB66,从机只要接收到至少1个AA55BB66 则认为接收到请求。

外机回传数据帧:

外机回传一次数据长度固定为 40 字节,即两次电力线通信。采用 4 字节反码配对编码共可传输 10 组信息。



4 字节前 2 字节与后 2 字节可反码配对,则说明此组数据有效,进而进行解析。

这种方式在传输过程中就算有个别字节丢失,它也能最大限度的解析到足够的信息。

我们不光关心外机回传的采样数据,同时我们也很关心外机自身工作是否正常,所以我们继续做出了如下定义:




4 字节反码配对编码数据还可以表达更丰富的信息:





一共是 40 个字节,就可以将从机(外机)的采集数据、电路诊断信息、固件版本以及人机监控属性描述清楚了,而且任何字节的丢失并不影响其他数据的解析。

有人可能会问一个问题。“我看这套系统是采用主机主动广播请求。从机来回复的方式工作,如何解决数据在电力线上碰撞的问题?”其实,这个问题就如同 RS485 总线的广播一样,从机接收到广播请求帧之后,并不能立即将数据进行回应。振南的做法是各自延时各自的ID值后再回应,如图 8.19 所示。


图 8.19 内机一次广播请求各从机延时发送回应

这样,主机(内机)在广播请求之后,等待约 10s,即可接收到来自各从机(外机)的数据了。

3.2主机与WiFi Agent 通信协议


主机获取到各个从机的数据并解析之后,最终需要将结果上传到云平台,以便进行进一步的展示或数据分析,在这套系统中主机通过 WiFi Agent 实现数据上传。WiFi Agent 是基于乐鑫ESP8266 进行单独开发的,这个由专门的嵌人式工程师来负责(它一方面对 8266 的开发方法比较了解,另一方面对 ABC IOT 云平台的数据接人也比较有经验),基本的示意如图 8.20 所示。


图 8.20 主机接收从机数据解析后通过 WiFi Agent 上传平台

所以这就涉及主机与 WiFi Agent 之间的协议设计,通过与开发人员商议,最终确定使用json 来进行传输。

json 来对数据进行编码,我们来举个例子:


json 实质上是一个字符串,其中包含了各分机的采集、诊断等信息,同时还有主机的相关信息,比如主机所在店的店号,这样将更加方便管理。主机将其通过串口发送给 WiFi Agent,然后它再将其处理为它与云平台之间的格式,进而上传。

相关文章:

振南技术干货集:制冷设备大型IoT监测项目研发纪实(3)

注解目录 1.制冷设备的监测迫在眉睫 1.1 冷食的利润贡献 1.2 冷设监测系统的困难 (制冷设备对于便利店为何如何重要?了解一下你所不知道的便利店和新零售行业。关 于电力线载波通信的论战。) 2、电路设计 2.1 防护电路 2.1.1 强电防护…...

1143. 最长公共子序列

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以…...

EASYEXCEL(一)

1.读取excel 读监听器 Slf4j public class StudentReadListener extends AnalysisEventListener<Student> {// 每读一样&#xff0c;会调用该invoke方法一次Overridepublic void invoke(Student data, AnalysisContext context) {System.out.println("data "…...

竞赛YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快&#xff0c;YOLOv6还没用熟YOLOv7就来了&#xff0c;如果有同学的毕设项目想用上最新的技术&#xff0c;不妨看看学长的这篇文章&#xff0c;学长带大家简单的…...

第一类曲线积分@对弧长的曲线积分

文章目录 abstract对弧长的曲线积分曲线形构件的质量第一类曲线积分曲线积分存在性利用曲线积分的定义描述曲线形构件质量问题推广曲线积分可加性闭曲线积分 曲线积分性质曲线积分的计算方法证明(部分推导) 小结曲线弧显函数形式方程下的曲线积分公式推广例例例 abstract 在积…...

【TypeScript】常见数据结构与算法(二):链表

文章目录 链表结构&#xff08;LinkedList&#xff09;链表以及数组的缺点数组链表的优势 什么是链表?封装链表相关方法源码链表常见面试题237-删除链表中的节点206 - 反转链表 数组和链表的复杂度对比 链表结构&#xff08;LinkedList&#xff09; 链表以及数组的缺点 链表…...

原型模式 (Prototype Pattern)

定义&#xff1a; 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它用于创建重复的对象&#xff0c;同时保持性能。这种模式的核心思想是通过复制一个已存在的实例来创建新的实例&#xff0c;而不是新建实例并对其进行初始化。原型模式适…...

项目总结报告(案例模板)

软件项目总结报告模板套用&#xff1a; 项目概要项目工作分析经验与教训改进建议可纳入的项目过程资产 --------进主页获取更多资料-------...

C++ Qt QByteArray用法介绍

作者:令狐掌门 技术交流QQ群:675120140 csdn博客:https://mingshiqiang.blog.csdn.net/ 文章目录 一、QByteArray的基本用法1、初始化和赋值2、访问和修改元素3、 常用方法4、数据转换二、QByteArray与文件操作三、QByteArray与网络编程四、QByteArray数据编码1、Base64 编解…...

蓝桥杯物联网竞赛_STM32L071_3_Oled显示

地位&#xff1a; 对于任何一门编程语言的学习&#xff0c;print函数毫无疑问是一种最好的调试手段&#xff0c;调试者不仅能通过它获取程序变量的运行状态而且通过对其合理使用获取程序的运行流程&#xff0c;更能通过关键变量的输出帮你验证推理的正确与否&#xff0c;朴素的…...

python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)

python-opencv轮廓检测&#xff08;外轮廓检测和全部轮廓检测&#xff0c;计算轮廓面积和周长&#xff09; 通过cv2.findContours&#xff0c;我们可以进行轮廓检测&#xff0c;当然也有很多检测模式&#xff0c;我们可以通过选择检测模式&#xff0c;进行外轮廓检测&#xff…...

LeetCode [简单] 1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…...

C++设计模式之工厂模式(下)——抽象工厂模式

抽象工厂模式 介绍示例示例使用运行结果抽象工厂模式的优缺点优点缺点 总结 介绍 抽象工厂模式是一种创建型设计模式&#xff0c;它提供了一种封装一组相关或相互依赖对象的方式&#xff0c;而无需指定它们具体的类。它允许客户端使用抽象接口来创建一系列相关的对象&#xff…...

2023亚太杯数学建模A题思路分析 - 采果机器人的图像识别技术

1 赛题 问题A 采果机器人的图像识别技术 中国是世界上最大的苹果生产国&#xff0c;年产量约为3500万吨。与此同时&#xff0c;中国也是世 界上最大的苹果出口国&#xff0c;全球每两个苹果中就有一个&#xff0c;全球超过六分之一的苹果出口 自中国。中国提出了一带一路倡议…...

关于Flink的旁路缓存与异步操作

1. 旁路缓存 1. 什么是旁路缓存? 将数据库中的数据,比较经常访问的数据,保存起来,以减少和硬盘数据库的交互 比如: 我们使用mysql时 经常查询一个表 , 而这个表又一般不会变化,就可以放在内存中,查找时直接对内存进行查找,而不需要再和mysql交互 2. 旁路缓存例子使用 dim层…...

MyBatis-Plus的分页插件和乐观锁插件

MyBatis-Plus: 探索分页查询和乐观锁插件 在现代的Web应用开发中&#xff0c;高效的数据处理是不可或缺的一部分。MyBatis-Plus&#xff0c;作为MyBatis的增强版&#xff0c;提供了多种插件来简化和优化数据库操作。在这篇博客中&#xff0c;我们将重点介绍两个非常实用的插件…...

批量将本地N个英文Html文档进行中文翻译-操作篇

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…...

解决cad找不到vcruntime140.dll的方法,实测有效的5个的方法

最近&#xff0c;我在使用CAD软件时遇到了一个困扰我已久的问题&#xff1a;由于找不到vcruntime140.dll文件而导致CAD无法正常运行。经过一番努力和尝试&#xff0c;我终于找到了解决这个问题的方法。那么&#xff0c;如何解决vcruntime140.dll丢失的问题呢&#xff1f;本文将…...

2023亚太杯数学建模C题:我国新能源电动汽车的发展趋势,思路模型代码

问题C 我国新能源电动汽车的发展趋势 赛题思路&#xff1a;获取思路见文末名片&#xff0c;第一时间更新 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料&#xff09;&#xff0c;将先进技术进行汽车动力控制…...

英语学习-爆破音

英文爆破音有&#xff1a;[p],[b],[t],[d],[k],[g]。 同时爆破音的发音会根据前后音的不同&#xff0c;发音不同&#xff0c;具体如下&#xff1a; ⒈ [p],[b],[t],[d],[k],[g] 中的任何两个音素相邻时&#xff0c;前面的发不完全爆破音&#xff0c;后面的就要完全地爆破。如…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程&#xff08;限时至2025/5/15&#xff09; Oracle AI Vector Search 1Z0-184-25考试&#xff0c;都顺利拿到certified了没。 各行各业的AI 大模型的到来&#xff0c;传统的数据库中的SQL还能不能打&#xff0c;结构化和非结构的话数据如何和…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...