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

2023-11-23 08:28

本文主要是介绍振南技术干货集:制冷设备大型IoT监测项目研发纪实(4),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注解目录

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 系统的内部监测数据,一切的努力都归结于这些曲线上。)

4

自动化生产与测试

ABC 便利店单单在北京就已经超过 1000 家,全国算下来足有 3000 家左右。这套系统需要在每家店进行部署,而且要赶在 2019 年 5 月份之前完成(这套系统研发完成大约是在 2019年3月),2个月完成几千家店的部署,先不说安装调试是一个浩大的工程,这首先对代工厂的生产能力就提出了很高的要求,保证在半个月的时间里把几千套冷设监测设备生产制造出来,而且还要做到很高的良品率。这要求代工厂加工设备、人员人力等方面都要跟得上,更重要的是要有一整套非常高效成熟的测试手段。在如何实现自动化生产及测试方面,振南下了大功夫,来一起看看振南是怎样做的。

此时有人可能会问:“说了这么多,我们还没有看到这套冷设监测设备的庐山真面目呢?”好,振南在这里放一些照片,如图 8.21~7.24 所示。


图 8.21 冷设监测设备一主一从通过电力线进行通信

4.1 自动化烧录


有过电子产品批量化生产经历的人都会知道,生产过程中的固件烧录是一件耗时费力的工作。如果我们想办法实现自动化烧录,那生产效率将会有很大的飞跃。


图 8.22 冷设监测设备主机


图 8.23 冷设监测设备从机(图中所示为温度探头及互感器接口)

冷设监测整套系统一共包括好几个嵌入式软件,如表 8.1 所列。


我们将这些嵌入式文件统一打包成一个大文件,俗称“大 BIN”,如图 8.25 所示。


图 8.24 冷设监测设主机安装于室内(直接插在墙插插座上即可与从机通信)


图 8.25 用于将诸多 BIN 打包成一个大 BIN 的软件

最终会生成一个体积为1MB的 out.bin 文件。

我们在进行批量 SMT 焊接之前,将此 out. bin 文件事先烧录到板上的片外 spiFlash 中还有所有的STM32 芯片都事先烧录好 BL.bin(即 Bootloader),如图 8.26 所示OK,经过 SMT 焊接后的 PCBA 是已经内置了所有嵌入式固件的。上电后,STM32 的BL 会判断此次启动是否为首次启动,依据是其 APP 区是否为空(擦除或未经编程的内部Flash 为全 FF)。若为首次启动,BL 将判断此电路是主机还是从机,依据是所插接的模块是WiFi模块还是采集模块,然后从片外 spiFlash 中读取相应的嵌入式固件烧录到 APP 区中,再


图 8.26 将嵌入式固件事先烧录到片上 spiFlash 与 STM32 中

完成 WiFi Agent 的固件烧录。这样,就实现了自动化烧录。

“你说起来倒是轻描淡写,自动化烧录应该没那么简单,比如如何判断插接的是什么模块?再比如 BL 如何烧写 Wifi Agent(ESP8266),这个烧写协议应该不简单吧?”

振南在主板与模块的接口中专门留了一个 I/0 用于模块的识别,不同的模块对此 I/0 进行了上拉或下拉。BL 依此 I/0 的高低电平状态来确认需要烧录哪个固件(关于 BL 更深入的内容请参见“深人浅出话 Bootloader”一章或者振南的《高手C》课程)。而 ESP8266 的烧写,其实并没有很复杂,感兴趣的读者可以看一下串口 SLIP 协议(ESP8266 的烧写不是本章的重点,故不在这里展开来讲,网上这方面的教程比较多,大家可以自行学习)。

4.2 自动化测试


自动化测试是依靠测试工装来实现的(关于测试工装我想我不必赘述,有经验的工程师都知道测试工装是什么)。振南还是直接上图吧,如图 8.27 所示。

从这张流程图中可以看到,我们需要在 PCBA、工装及上位机之间制定一套协议,以便PCBA 告知上位机其当前的状态,是因为首次上电而准备进行程序烧录,或是即将以主机或从机身份进行自测试,再或是已完成某一项自测试,成功还是失败。自测试项涵盖电路上所有重要功能,比如电力线通信、WiFi 模块工作状态、温度检测、电流检测等等。嵌入式进入自测试程序之后,会依次完成所有自测试项,并将测试结果告知上位机。最终由上位机裁决自测试是否通过,对于测试通过的主机,会直接打印二维码标签(此二维码的意义就是主机的 MAC 地址),由人工贴于 PCBA 上;而对于从机则会打印接线图,以便指导人员对温度探头和互感器进行安装,这样起到一个简易说明书的作用。如果测试未通过,则将未通过的测试项打印出来,仍然由人工贴在 PCBA 上,以便检修。

“打签这个想法确实非常新颖,不错!”为了提高生产和测试,乃至于后期工程安装的效率我们确实想了很多的办法。大家可以猜一下,那个主机上的二维码贴签有什么作用(可以扫一扫试试),如图 8.28 所示。在后面要讲到的工程安装中,它将大有用处。

有这些自动烧录和自动测试手段的加持,我们在半个月内完成了 9000 套电路的生产(包含 3000台主机和 6000 台从机)。


图 8.27 依靠工装及上位机实现自动化测试


图 8.28 主机上贴有用于表达其 MAC 地址与 SN 号的二维码标签

这篇关于振南技术干货集:制冷设备大型IoT监测项目研发纪实(4)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416627

相关文章

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

IDEA运行spring项目时,控制台未出现的解决方案

《IDEA运行spring项目时,控制台未出现的解决方案》文章总结了在使用IDEA运行代码时,控制台未出现的问题和解决方案,问题可能是由于点击图标或重启IDEA后控制台仍未显示,解决方案提供了解决方法... 目录问题分析解决方案总结问题js使用IDEA,点击运行按钮,运行结束,但控制台未出现http://

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

Python实现高效地读写大型文件

《Python实现高效地读写大型文件》Python如何读写的是大型文件,有没有什么方法来提高效率呢,这篇文章就来和大家聊聊如何在Python中高效地读写大型文件,需要的可以了解下... 目录一、逐行读取大型文件二、分块读取大型文件三、使用 mmap 模块进行内存映射文件操作(适用于大文件)四、使用 pand