《Goodwe Modbus协议》是Goodwe公司发布的一份关于其逆变器产品与外部设备进行Modbus通信的规范文档。这份文档详细介绍了如何通过Modbus RTU模式与Goodwe的逆变器进行数据交互,涵盖了协议的基本结构、数据格式、通信帧格式以及读写寄存器的操作。 Modbus是一种广泛应用的工业通信协议,RTU(Remote Terminal Unit)模式则是其中一种数据传输方式,它使用串行连接,并以固定长度的数据包传输数据,波特率在本协议中设定为9600bps。 1. 字节格式: 每个字节由8位二进制组成,传输时附加一个起始位和一个停止位,总共10位。数据传输遵循低字节优先的原则,即D0是最小有效位,D7是最大有效位。 2. 通讯数据格式: 数据以字或双字的形式回送。整型数据占1个字节,一次回送;长整型数据占2个字节,高字在前,低字在后;浮点数据则占3个字节。 3. 帧格式: 读取和写入寄存器的帧格式都有明确规定。例如,读取寄存器(功能码03H)的帧格式包含机器地址、功能码、起始寄存器地址和个数,以及CRC16校验。如果起始地址或寄存器个数有误,逆变器将返回错误码(功能码83H)。写入寄存器(功能码10H)的帧格式则包括目标寄存器地址和要写入的数据。 4. Modbus寄存器操作: Goodwe协议对读取和写入寄存器的细节进行了定义,比如0x0100到0x0105寄存器的读写规则。在某些版本的更新中,如1.4版,储能机的部分寄存器被删除,而在1.5版中,对0x0100到0x0105寄存器的定义进行了修改,需要注意的是,0x0100到0x0105的读功能在单相机中可能不支持。 5. CRC16校验: 所有数据帧都包含CRC16校验,用于检测数据传输过程中的错误。 《Goodwe Modbus协议》是Goodwe逆变器与其他设备间进行通信的重要指南,提供了详细的操作步骤和错误处理机制,确保了通信的准确性和可靠性。对于需要与Goodwe逆变器进行数据交换的系统集成商和开发者来说,这份协议是必不可少的参考资料。
2025-05-06 16:49:24 391KB
1
OPNET 是目前广泛使用的可用于网络仿真及协议分析等的仿真工具软件。本文以L EACH 协议为例,阐述了基于OPNET 平台进行 无线传感器网络协议仿真的一般过程。首先本文简要描述了L EACH 协议的网络模型以及能量模型,随后介绍了利用OPNET 进行L EACH 协议建模的步骤,最后给出并分析了仿真结果。 ### 基于OPNET的无线传感器网络仿真 #### 一、引言 网络仿真技术是一种重要的工具,它能够帮助研究人员和工程师理解复杂网络的行为,评估网络设计的有效性,并预测网络性能。网络仿真通过建立网络设备和链路的数学模型,模拟实际网络中的数据流传输过程,进而获取有关网络性能的关键指标。这种技术特别适用于中大型网络的设计和优化,其优势在于能够在网络实际部署之前,通过模拟的方式评估不同设计方案的优劣。 目前,市场上存在多种网络仿真工具,其中OPNET是一款功能强大且广泛应用的仿真软件。它不仅支持多种网络协议的仿真,还能精确模拟无线通信的各个方面,如802.11标准、WiMAX、UWB(超宽带)技术、蓝牙技术以及3G/4G等无线通信技术。OPNET具备模块化、层次化的结构,能够充分利用工作站的图形界面,非常适合进行复杂网络系统的建模与分析。 #### 二、LEACH协议简介 LEACH(Low-Energy Adaptive Clustering Hierarchy,低能量自适应聚类分层)协议是一种针对无线传感器网络设计的节能型数据路由协议。传感器网络通常由大量无线传感器节点组成,这些节点分布在待监测区域内,用于收集环境数据并将其传输至汇聚节点(sink node)或基站。汇聚节点负责将收集到的数据进一步转发至远程服务器或用户端。为了提高网络的整体效率和延长网络寿命,LEACH协议引入了聚类的概念,将网络划分为多个集群(cluster),每个集群选举出一个簇头(cluster head)节点,负责收集并汇总该集群内部节点的数据,并将其转发给汇聚节点。这种方式能够显著减少网络中数据传输的能量消耗。 #### 三、基于OPNET的LEACH协议建模步骤 1. **网络模型与能量模型定义**:首先需要定义LEACH协议下的网络模型和能量模型。网络模型包括传感器节点的数量、分布位置、通信范围等;能量模型则涉及到节点的能量消耗模型,例如传输数据时的能量消耗、接收数据时的能量消耗等。 2. **创建OPNET模型**:利用OPNET软件创建基本的网络拓扑结构,包括定义传感器节点、汇聚节点的位置以及它们之间的连接关系。 3. **实现LEACH算法**:在OPNET环境中实现LEACH协议的核心逻辑,包括簇头的选择机制、数据收集和传输过程等。 4. **设置仿真参数**:定义仿真时间、节点能耗阈值等关键参数,确保仿真结果能够反映真实的网络行为。 5. **运行仿真**:启动仿真并记录关键性能指标,如节点能耗、网络吞吐量、数据延迟等。 6. **结果分析**:分析仿真结果,评估LEACH协议在网络中的表现,并与其他路由协议进行对比分析。 #### 四、仿真结果分析 通过对LEACH协议在OPNET上的仿真结果进行分析,可以得出以下几个方面的结论: 1. **能量效率**:LEACH协议能够有效降低节点能耗,特别是通过采用轮换簇头的方式,避免了部分节点过早耗尽能量而失效的问题。 2. **网络寿命**:由于LEACH协议能够均衡网络负载,因此整个网络的生命周期得到了显著延长。 3. **数据传输质量**:通过合理分配簇头节点和优化数据传输路径,LEACH协议提高了数据传输的可靠性和效率。 4. **扩展性**:仿真结果还显示了LEACH协议在网络规模增大时的良好扩展性,这意味着它适用于大规模的传感器网络部署。 #### 五、总结 OPNET作为一款先进的网络仿真工具,在无线传感器网络的研究与开发中扮演着重要角色。通过对LEACH协议在OPNET上的仿真分析,不仅可以深入了解该协议的工作原理及其在网络性能方面的表现,还能为进一步优化无线传感器网络的设计提供有价值的参考。未来,随着无线通信技术的不断发展,OPNET等仿真工具将继续发挥重要作用,推动无线传感器网络技术的进步。
2025-05-06 12:49:53 791KB
1
根据给定文件的信息,我们可以提炼出以下相关的IT和信号处理领域的知识点: ### 信号与系统的概念 信号与系统是通信工程、电子信息工程等专业的重要基础课程之一,它主要研究信号的表示方法、信号通过系统时的行为变化以及系统本身的性质。 #### 信号 - **定义**:信号是携带着信息的时间函数。 - **分类**: - **连续时间信号**:信号的时间变量可以取任意实数值。 - **离散时间信号**:信号的时间变量只能取离散值。 - **周期信号**与**非周期信号**:周期信号在时间上呈现出一定的周期性规律;而非周期信号没有这样的周期性。 - **能量信号**与**功率信号**:能量信号是指在整个时间轴上的能量有限的信号;功率信号是指信号的平均功率有限。 #### 系统 - **定义**:系统是对输入信号进行处理以产生输出信号的实体。 - **分类**: - **线性系统**与**非线性系统**:线性系统满足叠加原理,即输入信号的线性组合经过系统后的输出也是这些输入信号经过系统后的输出的相同线性组合;非线性系统则不满足此条件。 - **时不变系统**与**时变系统**:时不变系统的参数不随时间变化而变化;时变系统的参数会随时间发生变化。 - **因果系统**与**非因果系统**:因果系统只依赖于当前和过去的输入,而不依赖于未来的输入;非因果系统则可能依赖于未来的输入。 ### 信号的基本操作 #### 时域操作 - **时间平移**:将信号沿时间轴移动一段距离。 - **时间反褶**:将信号关于时间原点进行对称变换。 - **时间尺度变换**:改变信号的时间比例,如压缩或扩展。 #### 频域操作 - **傅里叶变换**:将信号从时域转换到频域,用于分析信号的频率成分。 - **拉普拉斯变换**:一种更为通用的频域分析工具,适用于更广泛的信号和系统分析。 ### 例题解析 1. **选择题**:“f(5-2t)是如下运算的结果”: - 正确答案是“f(-2t)右移 2.5”。这是因为f(5-2t)可以理解为先将f(t)关于时间轴进行缩放(-2t),然后再向右移动2.5个单位。这符合信号处理中的时间尺度变换和时间平移的概念。 2. **是非题**: - “偶函数加上直流后仍为偶函数。”这个说法是**正确**的。因为偶函数关于y轴对称,加上一个常数(直流分量)后,仍然保持这种对称性。 - “不同的系统具有不同的数学模型。”这个说法是**正确**的。不同的系统因其内在特性的差异,需要采用不同的数学模型来准确描述其行为。 - “任何信号都可以分解为偶分量与奇分量之和。”这个说法是**正确**的。根据信号的性质,可以将其分解为两个部分:一个是对称于时间轴的偶分量,另一个是反对称于时间轴的奇分量。 - “奇谐函数一定是奇函数。”这个说法是**错误**的。奇谐函数指的是频率为基波频率奇数倍的周期函数,它们可以是奇函数也可以不是。 - “线性系统一定满足微分特性。”这个说法是**错误**的。线性系统的基本性质包括叠加性和齐次性,并不意味着所有的线性系统都必须满足微分特性。 3. **填空题**: - 对于信号与系统的积分运算,例如求解$\delta$函数与其他信号的乘积的积分值,这些题目考察的是信号与系统的积分性质及其与$\delta$函数的关系。例如,对于$\int_{-\infty}^{+\infty} \delta(t) \cdot \cos(\omega_0 t) dt = 1$这类问题,体现了$\delta$函数作为单位冲激信号,在积分运算中起到提取信号特定值的作用。 通过以上知识点的梳理,我们可以看出信号与系统的学习涵盖了信号的分类、基本操作以及系统的基本性质等多个方面,是理解和掌握现代通信技术、数字信号处理等领域的基石。
2025-05-06 10:54:12 974KB 重庆大学 期末考试 试卷及答案
1
基于MATLAB的遗传算法及其在稀布阵列天线中的应用,毫米波雷达天线,稀疏阵优化,matlab源代码
2025-05-06 10:04:01 1KB matlab
1
IMX225 Datasheet,相关寄存器和配置都讲的很细,有需要的网友可以下载。
2025-05-05 23:15:12 1.47MB IMX225
1
爱德万测试(Advantest)的V93000系列测试系统是一个高度模块化和可扩展的平台,专为复杂和高性能的半导体器件测试而设计,包括系统级芯片(SoC)、存储器、射频(RF)和混合信号器件等,附件为advantest 93000 7.10.8 pdf资料文档 爱德万测试(Advantest)V93000系列测试系统是一套专门为半导体器件测试而设计的高度模块化和可扩展的测试平台。该系列支持多种复杂及高性能的半导体设备测试需求,包括系统级芯片(SoC)、存储器、射频(RF)和混合信号器件等。它为用户提供了强大的测试能力,能够满足现代集成电路设计中的严格测试标准。该系统的核心设计理念在于通过模块化的设计让用户可以根据自己的需求进行定制,无论是对于小规模的测试还是大规模的生产,均能够提供相应的解决方案。 附件中提到的“advantest 93000 7.10.8 pdf资料文档”是该测试系统的一份详细资料,文档编号为7.10.8,估计涵盖了该版本的测试系统使用的详细指南、操作手册及维护服务说明等重要信息。文档可能包含了从基本操作到复杂测试程序的全面指导,旨在帮助测试工程师熟悉和掌握V93000测试系统的所有功能。 文件列表中包含的各个PDF文档则是与V93000测试系统相关的各类指导手册,具体涵盖了多个不同的方面。例如,“TMU_Training.pdf”可能是关于测试模块单元(Test Module Unit,简称TMU)的培训资料,用于指导用户如何有效地使用测试模块单元进行各种测试操作。“Z4_Maintenance_Service_Guide.pdf”可能是一份针对V93000系列的维护和服务指南,用于指导技术人员如何进行日常的维护和故障排除。“SmartShell_7_Command_Reference.pdf”与“SmartShell_7_Quick_Start.pdf”则可能涉及SmartShell 7软件的命令参考和快速入门指南,SmartShell 7是V93000系列可能附带的软件工具,用于测试程序的开发和管理。 “convmgr_manual.pdf”、“SE-UDPS-user-manual_200.pdf”、“vcdstil_tutorial.pdf”、“vcd93k_manual.pdf”、“ste_manual.pdf”和“stileditor_manual.pdf”这些文档则分别对应于不同的测试工具或软件,可能包括转换管理器、用户数据包服务、VCD样式表教程、VCD93K管理手册、测试执行器和样式表编辑器的使用说明。这些手册共同构成了一个全面的技术文档资源库,为测试人员提供了从设备安装、软件操作到测试程序开发等全方位的支持。 这份资料集合包含了丰富的技术信息,不仅包括了V93000系列测试系统的操作指导和维护手册,还涵盖了软件工具的使用说明和快速入门教程。这些资料对于确保半导体测试工程师能够高效、准确地使用V93000测试系统至关重要。它们共同构成了一个完整的学习和参考体系,对于爱德万测试设备的用户来说,是不可或缺的技术支持。
2025-05-05 21:35:08 12MB
1
《Matlab数字图像处理》是张德丰编著的一本经典教材,主要针对数字图像处理技术进行了深入浅出的讲解,结合Matlab编程语言,使读者能够更好地理解和应用相关理论。该书的第二版源代码提供了书中各章节的实例代码,帮助读者实践和验证书中的算法,加深对图像处理原理的理解。 1. 图像处理基础 数字图像处理的基础包括图像的获取、表示和基本操作。在Matlab中,我们可以使用imread函数读取图像,imshow显示图像,imwrite保存图像。此外,还有imadjust用于调整图像的对比度和亮度,imresize用于图像的缩放,imrotate用于图像的旋转。 2. 图像增强 书中02章节可能涉及图像增强技术,如直方图均衡化,它可以改善图像的全局对比度。在Matlab中,使用histeq函数可以实现直方图均衡化。还有低通滤波、高通滤波等,通过滤波器平滑图像或突出边缘,例如使用imgaussfilt进行高斯滤波。 3. 图像分割 04章节可能涵盖图像分割,这是将图像划分为具有不同特征的区域的过程。常见的分割方法有阈值分割、区域生长、边缘检测等。Matlab的imbinarize函数可以进行二值化分割,bwlabel用于连通组件标记,imfill可以填充孔洞。 4. 边缘检测 07章节可能会讨论Canny、Sobel、Prewitt等边缘检测算法。在Matlab中,edge函数可以实现这些算法,通过设置不同的参数,提取图像的边缘。 5. 彩色图像处理 08章节可能涉及到彩色图像处理,如RGB到其他颜色空间的转换,例如从RGB转为灰度图像(rgb2gray),或者从RGB转到HSV空间(rgb2hsv)。 6. 图像几何变换 10章节可能涵盖图像的几何变换,如仿射变换、透视变换等。Matlab的imtransform函数可以实现这些变换,需要提供相应的变换矩阵。 7. 图像金字塔 03章节可能介绍图像金字塔的概念,包括高斯金字塔和拉普拉斯金字塔。在Matlab中,可以使用pyramid_up和pyramid_down函数构建图像金字塔。 8. 图像特征提取 11章节可能涉及到SIFT、SURF等特征提取算法,这些在机器学习和计算机视觉领域有广泛应用。 9. 图像编码与压缩 09章节可能讨论图像的编码方法,如JPEG、JPEG2000等,以及图像压缩的基本原理。 通过这些源代码,读者可以学习到如何在Matlab中实现这些图像处理技术,同时也可以根据自己的需求修改和扩展代码,加深对数字图像处理的理解和应用能力。这些实例代码是理论知识与实践操作相结合的重要桥梁,对于学习者来说极具价值。
2025-05-05 21:10:09 99KB Matlab
1
程序员简历程序员简历.pdf
2025-05-05 19:37:20 195KB 简历模板
1
### QTP教程知识点详解 #### 一、QTP简介与自动化测试的好处 **1.1 自动化测试的好处** 自动化测试相较于传统的人工测试具备显著优势。人工测试不仅耗时耗力,还容易因人为因素导致测试结果的不准确性。自动化测试能够克服这些局限性,具体优势包括: - **快速性**:自动化测试执行速度远超人工测试,极大地提高了测试效率。 - **可靠性**:自动化测试每次都能执行相同的操作,减少了人为失误的可能性。 - **可重复性**:同一套测试脚本可以在不同时间重复运行,便于验证软件更新后的功能稳定性。 - **程序化**:支持编写复杂脚本来模拟用户行为,挖掘深层次的问题。 - **广泛性**:能够覆盖更多测试场景,确保软件功能的全面测试。 - **可重用性**:随着软件界面的变化,测试脚本可以通过调整继续使用。 **1.2 QuickTest工作流程** QuickTest的工作流程分为几个关键步骤: 1. **录制测试脚本前的准备**:在开始录制之前,需确保应用程序与QuickTest兼容,并明确测试目标及预期结果。同时,还需检查QuickTest的设置,例如测试设置(Test Settings)和选项设置(Options),确保软件能正确记录相关信息。 2. **录制测试脚本**:通过操作应用程序或浏览网站,QuickTest会自动记录操作过程,并在关键词视图(Keyword View)中展示为一系列操作步骤。 3. **加强测试脚本**:通过添加检查点(checkpoints)来验证应用程序的行为是否符合预期。此外,还可以使用参数化来处理动态数据,以及添加逻辑判断语句提高测试的复杂度。 4. **调试测试脚本**:修改测试脚本后需要进行调试,确保其能够在新的应用程序或网站版本上正确执行。 5. **执行测试脚本**:在新版应用程序或网站上运行测试脚本,检查功能是否正常。 6. **分析测试结果**:评估测试结果,定位问题所在。 7. **生成测试报告**:如果安装了TestDirector(QualityCenter),可以通过它来管理测试结果和问题追踪。 **1.3 QuickTest程序界面** QuickTest的主界面直观易用,通常包含以下组件: - **关键词视图(Keyword View)**:展示测试脚本中的操作步骤。 - **对象仓库(Object Repository)**:存储测试过程中涉及到的对象。 - **参数设置(Parameter Settings)**:用于配置测试脚本中的参数。 - **检查点设置(Checkpoint Settings)**:用于定义检查点,验证应用程序的状态。 - **调试工具(Debug Tools)**:帮助调试测试脚本,解决执行过程中遇到的问题。 #### 二、录制与执行测试脚本 **2.1 录制前的准备** 在开始录制之前,需要做好充分的准备工作,包括但不限于: - 明确测试目的。 - 确认测试环境已准备好。 - 检查QuickTest的设置,确保其符合测试需求。 **2.2 录制测试脚本** - **2.2.1 录制测试脚本**:通过操作应用程序或浏览网站,QuickTest会自动记录用户的交互行为。 - **2.2.2 分析录制的测试脚本**:检查关键词视图中的操作步骤,确保每一步都符合预期。 **2.3 执行测试脚本** - **2.3.1 执行脚本**:通过点击“运行”按钮启动测试脚本的执行。 - **2.3.2 执行脚本出现错误**:当测试过程中遇到问题时,需要查看日志并调试脚本。 **2.4 分析测试结果** 分析测试结果,确定哪些测试成功通过,哪些失败,并进一步探究失败的原因。 #### 三、建立检查点 **3.1 QuickTest检查点种类** - **对象检查**:验证对象属性是否符合预期。 - **网页检查**:检查网页元素的状态。 - **文字检查**:确保页面上的文本内容正确无误。 - **表格检查**:验证表格数据的完整性。 **3.2 创建检查点** - **3.2.1 对象检查**:通过选择对象并设置相应的属性值来进行检查。 - **3.2.2 网页检查**:选择网页元素并指定期望的状态或值。 - **3.2.3 文字检查**:检查文本内容是否与预期相符。 - **3.2.4 表格检查**:验证表格中的数据是否正确。 **3.3 执行并分析使用检查点的测试脚本** 执行包含检查点的测试脚本,并根据结果调整测试策略。 #### 四、参数化 **4.1 参数化步骤和检查点中的值** - **4.1.1 参数化对象和检查点的属性值**:允许测试脚本使用不同的数据集进行测试。 - **4.1.2 参数化操作的值**:使测试更加灵活,适用于多种情况。 **4.2 参数种类** - **4.2.1 使用数据表参数**:从外部文件加载数据进行测试。 - **4.2.2 使用环境变量参数**:利用系统环境变量作为参数来源。 - **4.2.3 使用随机数字参数**:在需要随机数值的情况下使用。 **4.3 参数化测试脚本** - **4.3.1 定义参数**:在测试脚本中定义需要参数化的变量。 - **4.3.2 修正受到参数化影响的步骤**:调整测试脚本以适应参数化的需求。 - **4.3.3 执行并分析使用参数的测试脚本**:执行参数化后的测试脚本,并评估其效果。 #### 五、输出值 **5.1 创建输出值** - **5.1.1 输出值类型**:根据测试需求选择合适的输出值类型。 - **5.1.2 存储输出值**:指定输出值的存储位置,以便后续分析。 **5.2 输出属性值** - **5.2.1 定义标准输出值**:为测试脚本中的对象定义输出值。 - **5.2.2 指定输出类型和设置**:配置输出值的具体格式和保存方式。 **5.3 在脚本中建立输出值** - **5.3.1 建立输出值**:在测试脚本中插入输出值指令。 - **5.3.2 执行并分析使用输出值的测试脚本**:运行包含输出值的测试脚本,分析输出结果。 以上就是从给定文件的标题、描述、标签及部分内容中提取的相关知识点的详细解释。通过理解这些概念和技术,可以帮助软件测试工程师更好地掌握QTP工具,提高测试效率和质量。
2025-05-05 19:36:48 1.58MB 软件测试教程
1
ESP8266 NodeMCU 是一款基于 ESP8266 芯片的开源硬件平台,常用于物联网(IoT)项目。NodeMCU v3 版本引入了 CH340 USB 转串口芯片,方便用户通过 USB 接口与电脑进行通信,进行固件升级和数据传输。 在原理图中,我们可以看到以下几个关键部分: 1. **GPIOs(通用输入/输出)**: ESP8266 提供了多个 GPIO 引脚,如 GPIO0、GPIO2 和 GPIO15 等,这些引脚可以配置为输入或输出,用于控制外部设备或接收外部信号。其中,GPIO15 在启动/复位/唤醒时必须保持低电平,GPIO2 必须保持高电平,而 GPIO0 的高低电平状态决定了设备运行模式(高:运行模式,低:编程模式)。 2. **睡眠模式**: 如果需要使用睡眠模式,GPIO16 应与 RST 连接。当唤醒时,GPIO16 输出低电平以重置系统。 3. **电源管理**: 电路中包括电容 C1(100nF)、C2(100uF)等,用于滤波和稳定电源。VDD3V3 代表 3.3V 电源,VDD5V 代表 5V 电源,VDDUSB 代表来自 USB 的电源。 4. **USB & UART**: U1(CP2102)是 USB 转 UART 模块,用于通过 USB 接口与电脑进行通信。DTR、RTS、DTR、CTS、RXD 和 TXD 是 UART 通信的控制和数据线。 5. **CH340**: U3(CH340)是 USB 转串口芯片,它将 USB 信号转换为 TTL 电平的串口信号,便于与 ESP8266 进行通信。 6. **SPI 接口**: SPI 接口由 MOSI(SPI_MOSI)、MISO(SPI_MISO)、SCK(SPI_CLK)和 SS(SPI_CS)组成,用于高速数据传输,例如连接 SD 卡或其他 SPI 设备。 7. **ADC(模拟数字转换器)**: ESP8266 有一个内置的 ADC 引脚,可以读取模拟信号并转换为数字值。 8. **RESET 电路**: 包括 R1、R3、R4、R5 和 R8(均为 12kΩ 电阻)等,用于控制 ESP8266 的复位操作。 9. **自动编程电路**: 这部分电路与 DTR、RTS、GPIO0 和 RST 相关,用于通过 USB 自动进入编程模式。 10. **UART 接口**: 包括 TXD0、RXD0、TXD1、RXD1、TXD2 和 RXD2,支持多个串行通信接口,增强设备通信能力。 11. **GPIO 扩展**: 如 GPIO3、GPIO4、GPIO5 等,可以连接到各种外设,实现不同功能。 12. **J1 和 J2**: 两个 1x15 针插孔,用于扩展连接其他模块或设备。 ESP8266 NodeMCU 的设计使得开发者能够轻松地利用其强大的无线连接和处理能力,构建各种 IoT 应用,如智能家居、远程传感器监控等。通过了解原理图,开发者可以更好地理解硬件工作方式,从而更有效地利用 ESP8266 NodeMCU 的所有功能。
2025-05-05 17:20:42 47KB esp8266 nodemcu
1