振南技术干货集:制冷设备大型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,然后它再将其处理为它与云平台之间的格式,进而上传。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/158726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 中为什么需要虚拟DOM、VDOM 是如何生成的、VDOM 如何做 diff 的?

一、vue 中为什么需要虚拟DOM 1.1本概念 基本上所有框架都引入了虚拟 DOM 来对真实 DOM 进行抽象,也就是现在大家所熟知的VNode 和VDOM Virtual DOM 就是用js 对象来描述真实 DOM,是对真实 DOM 的抽象,由于直接操作 DOM 性能低但是is 层的操…

Jmeter执行某个请求时,先删除cookie信息

1、增加BeanShell PreProcessor 2、添加如下内容 import org.apache.jmeter.protocol.http.control.CookieManager;// Get the current threads cookie manager CookieManager cm sampler.getCookieManager();// Clear all cookies for this domain cm.clear();

力扣labuladong——一刷day45

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣270. 最接近的二叉搜索树值二、力扣404. 左叶子之和三、力扣617. 合并二叉树四、力扣623. 在二叉树中增加一行 前言 二叉树的递归分为「遍历」和「分解…

LeetCode:2304. 网格中的最小路径代价(C++)

目录 2304. 网格中的最小路径代价 题目描述: 实现代码: dp(dp有很多相似的经典题目,比较简单,不再给出解析) 2304. 网格中的最小路径代价 题目描述: 给你一个下标从 0 开始的整数矩阵 grid …

Redis篇---第十四篇

系列文章目录 文章目录 系列文章目录前言一、为什么Redis的操作是原子性的,怎么保证原子性的?二、了解Redis的事务吗?四、Redis 的数据类型及使用场景前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

旧电脑升级记录

我把家里的电脑搬来了北京,但是这个配置在今天已经完全不够用了,而且我也喜欢折腾,我就想着花点时间,画最少的钱来升级一下。我对电脑的硬件还是懂一点的,装机也完全不是问题。 H61的主板,所以cpu我从E3 1230V2&#…

前端js调取摄像头并实现拍照功能

前言 最近接到的一个需求十分有意思,设计整体实现了前端仿 微信扫一扫 的功能。整理了一下思路,做一个分享。 tips: 如果想要实现完整扫一扫的功能,你需要掌握一些前置知识,这次我们先讲如何实现拍照并且保存的功能。 一. windo…

了解1688API接口测试 | 1688 API接口测试指南

在当今电子商务快速发展的时代,1688作为中国最大的B2B电子商务平台之一,为商家提供了丰富的商品资源和交易平台。为了方便商家进行商品管理和交易操作,1688提供了一系列的API接口,通过这些接口,商家可以方便地获取商品…

什么是凸函数

假设函数是定义在某个向量空间的凸子集上的实值函数,并且,如果对于中的任何两个向量和,都满足: 则称为上的凸函数

ubuntu 安装 towhee

安装Towhee pip3 install towhee如果你想在 towhee 中安装模型 pip3 install towhee.models打开python终端 python3引入towhee 数据转换是 Towhee 的核心;管道只是在有向无环图中连接在一起的一系列转换。所有预构建的 Towhee 管道都有代表当前任务的名称。 fr…

Oracle数据库如何定位trace file位置

用一个示例来说明吧。 在导入master key时,出现错误: ADMINISTER KEY MANAGEMENTIMPORT KEYS WITH SECRET "my_secret"FROM /tmp/export.expIDENTIFIED BY keypwd5 WITH BACKUP; ADMINISTER KEY MANAGEMENT * ERROR at line 1: ORA-46655…

动态规划求 x 轴上相距最远的两个相邻点 java 代码实现

如图为某一状态下 x 轴上的情况,此时 E、F相距最远,现在加入一个点H,如果H位于点A的左边的话,只需要比较 A、H 的距离 和 E、F 的距离;如果点H位于点G的右边,则值需要比较 G、H 的距离 和 E、F 的距离&…

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…

[Python人工智能] 四十.命名实体识别 (1)基于BiLSTM-CRF的威胁情报实体识别万字详解

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章普及VS Code配置Keras深度学习环境,并对比常用的深度学习框架,最后普及手写数字识别案例。这篇文章将讲解如何实现威胁情报实体识别,利用BiLSTM-CRF算法实现对ATT&CK相关的技战术实体…

navicat --CSV导出数据乱码情况(三种情况解决方式)

CSV导出数据乱码情况分析及处理 在navicat 中有很多导出方式&#xff0c;大家都知道csv导出要比xlse要快很多&#xff0c;但是在使用csv导出时要防止乱码情况&#xff0c; 下面我列出三种处理方式&#xff08;如有其他方式大家可以帮忙补充一下&#xff09;&#xff1a; 文章目…

基于springboot实现班级综合测评管理系统项目【项目源码+论文说明】

基于springboot实现班级综合测评管理系统演示 摘要 随着互联网技术的高速发展&#xff0c;人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理&#xff0c;交易等&#xff0c;而且过程简单、快捷。同样的&#x…

C#实现本地服务器客户端私聊通信

&#xff08;一&#xff09;需求 在游戏中我们经常能够看到玩家与玩家之间可以进行私聊&#xff0c;在QQ或微信中最基本的功能就是用户与用户之间的通信。抽象成计算机网络&#xff0c;就是两个客户端通过服务器进行私聊通信&#xff0c;两个客户端可以互相看到对方发送过来的信…

redis的高可用之持久化

1、redis的高可用考虑指标 &#xff08;1&#xff09;正常服务 &#xff08;2&#xff09;数据容量的扩展 &#xff08;3&#xff09;数据的安全性 2、redis实现高可用的四种方式 &#xff08;1&#xff09;持久化 &#xff08;2&#xff09;主从复制 &#xff08;3&…

这是基础校园二手交易框架

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>校园二手交易</title> <style> /* Reset stylesheet */ * { margin: 0; padding: 0; box-s…

Hive小文件处理

MR任务 mr任务参考链接 set hive.exec.reducers.max3 set hive.exec.dynamic.partition.mode true; --使用动态分区时&#xff0c;设置为ture。 set hive.exec.dynamic.partition.mode nonstrict; --动态分区模式&#xff0c;默认值&#xff1a;strict&#xff0c;表示必须…