【EsDA应用】如何利用AWFlow快速使用无线模组ZM602

原创 ZLG致远电子 2024-01-24 11:39
在物联网快速发展的今天,无线模组成为连接各种设备于互联网的关键组件。本文旨在介绍如何通过EsDA开发套件快速使用本公司自研的ZM602无线模组的内容。


  项目简介
无线模组可以使设备通过无线网络连接到互联网,也可以实现设备间的数据传输和通信,在现代社会中,无线模组广泛应用于智能家居、物联网设备、工业自动化等领域。本文基于EsDA开发平台,使用EPC6450-AWI开发板,以及图形化设计工具AWFlow Designer介绍如何快速上手本公司自研的无线模组ZM602。该项目主要用到了timer,fscript,zm602_data_in_ex,zm602_data_out_ex,adc节点,具体实现请见下文。

  项目概述
本文主要讲解ZM602无线模组TCP客户端/服务器通讯协议,UDP客户端/服务器通讯协议,可支持最多同时建立四条数据传输通道,按需快速构建稳定可靠的无线通信系统。

1、硬件上选择ZM602模组与EPC6450-AWI开发板连接通信的串口设备,并配置相关的波特率,数据位和停止位等串口通信参数。在EPC6450-AWI上选择四个普通的GPIO口分别连接ZM602模块上的RST引脚(复位模组),ISP引脚(让模组工作在应用模式),STATE引脚(检测模组是否处于正常工作的状态),DEF引脚(恢复出厂设置)。

2、选择网络工作模式

  • TCP服务器:配置ZM602模块的网络工作模式为TCP Server,在手机端或电脑端创建两个TCP客户端去连接ZM602模块。ZM602模块将每路TCP接收到的数据按照接收的时间顺序依次转发至EPC6450-AWI串口,且EPC6450-AWI开发板的数据通过ZM602模块分别发送至各个TCP客户端来实现双向数据传输。
  • TCP客户端:配置ZM602模块的网络工作模式为TCP Client,在ZM602模块上创建两条数据传输通道分别连接手机端或客户端上创建的TCP Server。ZM602模块将每路TCP接收到的数据按照接收的时间顺序依次转发至EPC6450-AWI串口,且EPC6450-AWI开发板的数据通过ZM602模块分别发送至各个TCP服务器来实现双向数据传输。
  • UDP服务器:配置ZM602模块的网络工作模式为UDP Server,在ZM602模块上创建一条数据传输通道连接手机端或客户端上创建的UDP Client并实现双向数据传输。需注意的是通信时要先由客户端发送UDP数据给模块,此后ZM602串口端接收到的数据就会转发给UDP客户端。
  • UDP客户端:配置ZM602模块的网络工作模式为UDP Client,在ZM602模块上创建一条数据传输通道连接手机端或客户端上创建的UDP Server并实现双向数据传输。


  前期准备

读者若有兴趣可以阅读以下文章对EsDA的其他模块项目进行学习:
  • 【EsDA应用】如何5分钟快速实现指纹采集与检测
  • 【EsDA应用】5分钟快速实现摄像头图像采集
  • 【EsDA应用】10分钟快速实现人脸识别
  • 【EsDA应用】5分钟快速实现图像人脸检测
  • 【EsDA应用】如何基于EsDA开发套件快速使用射频读卡器模块
用户可以点击访问ZM602资料下载的链接,对ZM602模块进行更多的了解。

https://www.zlg.cn/wireless/down/down/id/304.html

1. 硬件准备

  • 在标有丝印为TF Card 丝印的卡槽处,插入SD卡;
  • 在标有丝印为DUART的模块上,将TTL转USB串口模块的TX与板子丝印为RXD连接,TTL转USB串口模块的RX与板子丝印为TXD相连;并将串口模块的USB端口接入电脑;
  • 在标有丝印为Type-C 的接口处,插上Type-C线,并将Type-C线的另一端USB口插入电脑;
  • 在标有丝印为NET0 或 NET1的RJ45插座处接上网线的水晶头,网线另一端水晶头接在PC的网络插座上;
  • ZM602模块提供两个串口通道,本文使用U1串口。在标有丝印为 UTX5 的排针针脚处接上ZM602模块的 U1_RX 的引脚;在标有丝印为 URX5 的排针针脚处接上ZM602模块的 U1_TX 的引脚上;
  • EPC6450-AWI开发板需要提供四个普通GPIO。在标有丝印为 SDA 的排针阵脚处接上ZM602模块的RST引脚;在标有丝印为 SCL 的排针阵脚处接上ZM602模块的ISP引脚;在标有丝印为 MISO 的排针阵脚处接上ZM602模块的STA引脚;在标有丝印为 CLK 的排针阵脚处接上ZM602模块的DEF引脚。


  项目实施
1. TCP Server模式

在TCP Server模式下,模块最多支持 4 个客户端(Client)同时建立 TCP 连接(可在节点中配置最大连接数来限制模块允许的接入TCP个数)。ZM602模块将每路TCP接收到的数据按照接收的时间顺序依次转发至EPC6450-AWI串口,且EPC6450-AWI开发板的数据通过ZM602模块分别发送至各个TCP客户端来实现双向数据传输

1.1 流图绘制

添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到画布中并连线如下图。

1.2 节点配置

双击timer节点,配置周期性的向TCP客户端发送数据的时间。

双击timer的消费者节点fscript,设置ZM602模块TCP Server模式下向TCP客户端发送的数据内容。
output.payload = "hello zlg client"
双击zm602_data_out_ex节点,点击属性为数据流配置右边的铅笔图标,创建一个数据流通道并配置网络工作模式相关参数。
在打开的zm602_stream_ex节点属性页面下,配置连接类型为TCP Server,配置本机IP地址为172.16.1.1,本地端口号用户可自定义配置(遵循端口号分配规则即可),本项目配置为4000。配置完成之后点击wifi配置旁边的铅笔图标配置通信的串口参数以及Wi-Fi工作模式。
在打开的zm602_wifi节点属性界面中,设置通信串口的相关参数;设置RST(本文硬件上连接的是丝印为SDA的GPIO引脚),ISP(本文硬件上连接的是丝印为SCL的GPIO引脚),STATE(本文硬件上连接的是丝印为MISO的GPIO引脚),DEF(本文硬件上连接的是丝印为CLK的GPIO引脚)引脚编号;在此设置Wi-Fi工作模式为AP模式(ZM602模块发出热点供客户端连接)并配置相关参数如下图所示。
双击zm602_data_in_ex节点,在打开的属性界面中勾选事件通知,并点击数据流配置旁边的铅笔图标如下图所示。
zm602_data_in_ex的配置节点所有的属性参数均与zm602_data_out_ex的zm602_stream和zm602_wifi两个配置节点属性参数一致。在此不再赘述。
双击zm602_data_in_ex的消费者节点fscript,本节点主要是打印客户端连接的信息等。
print("client: " + msg.peer_addr + "  port: " + str(msg.peer_port))print("receive: " + str(msg.payload, true))

1.3 下载验证

绘制完流图后,点击CTRL+S 即可保存流图,点击下载流图。

在手机端打开网络调试助手,创建两个TCP客户端,配置客户端连接的主机IP为zm602_stream节点的属性本地IP地址的值172.16.1.1,端口号为zm602_stream节点的属性本地端口的值4000;配置好TCP客户端相关参数后发送消息给服务器,并点击连接,日志显示如下。由下图可知ZM602模块的TCP服务器模式可以同时连接两个TCP客户端进行通信。

2. TCP Client模式

TCP Client模式下,模块最多支持向 4 个服务器(Server)同时建立 TCP 连接(可在流图中创建多个数据流通道,一个数据流通道代表一个客户端)。ZM602模块将每路TCP接收到的数据按照接收的时间顺序依次转发至EPC6450-AWI串口,且EPC6450-AWI开发板的数据通过ZM602模块分别发送至各个TCP服务器来实现双向数据传输。

2.1 流图绘制

添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到画布中并连线如下图。

2.2 节点配置

双击timer节点,配置周期性的向TCP服务器发送数据的时间。

双击timer的fscript节点,设置ZM602模块TCP Client模式下向TCP服务器发送的数据内容。
output.payload = "hello server,i am client1"
双击第一排的zm602_data_out_ex节点,点击属性为数据流配置右边的铅笔图标,创建一个TCP客户端(一个数据流通道)并配置网络工作模式相关参数。
在打开的zm602_stream_ex节点属性页面下,配置连接类型为TCP Client,配置对端IP地址为192.168.43.1(根据用户创建的TCP服务器具体配置),对端端口号也需根据用户创建的TCP服务器具体配置。配置完成之后点击wifi配置旁边的铅笔图标配置通信的串口参数以及Wi-Fi工作模式。
在打开的zm602_wifi节点属性界面中,设置通信串口的相关参数;设置RST(本文硬件上连接的是丝印为SDA的GPIO引脚),ISP(本文硬件上连接的是丝印为SCL的GPIO引脚),STATE(本文硬件上连接的是丝印为MISO的GPIO引脚),DEF(本文硬件上连接的是丝印为CLK的GPIO引脚)引脚编号;设置Wi-Fi工作模式为STA模式(ZM602模组不断尝试和设置的热点建立连接),目标wifi名和目标wifi密码以用户开设的移动共享热点为准,具体配置如下图所示。

双击第二排的zm602_data_in_ex节点,在打开的属性界面中勾选事件通知,并点击数据流配置旁边的铅笔图标如下图所示。

第二排的zm602_data_in_ex的配置节点所有的属性参数均与第一排zm602_data_out_ex的zm602_stream和zm602_wifi两个配置节点属性参数一致。在此不再赘述。
双击第二排zm602_data_in_ex的消费者节点fscript,本节点主要是打印传输的信息等。
print("receive: " + str(msg.payload, true))
双击第三排timer节点,配置周期性的向TCP服务器发送数据的时间。
双击第三排timer的fscript节点,设置ZM602模块TCP Client模式下向TCP服务器发送的数据内容。
output.payload = "hello server,i am client1"
双击第三排的zm602_data_out_ex节点,点击属性为数据流配置右边的铅笔图标,创建一个客户端(一个数据流通道)并配置网络工作模式相关参数。
在打开的zm602_stream_ex节点属性页面下,配置连接类型为TCP Client,配置对端IP地址为192.168.43.1(根据用户创建的TCP服务器具体配置),对端端口号也需根据用户创建的TCP服务器具体配置。配置完成之后点击wifi配置旁边的铅笔图标配置通信的串口参数以及Wi-Fi工作模式。

在打开的zm602_wifi节点属性界面中,设置通信串口的相关参数;设置RST(本文硬件上连接的是丝印为SDA的GPIO引脚),ISP(本文硬件上连接的是丝印为SCL的GPIO引脚),STATE(本文硬件上连接的是丝印为MISO的GPIO引脚),DEF(本文硬件上连接的是丝印为CLK的GPIO引脚)引脚编号;设置Wi-Fi工作模式为STA模式(ZM602模组不断的去尝试和设置的热点建立连接),目标wifi名和目标wifi密码以用户开设的移动共享热点为准,具体配置如下图所示。
双击第四排的zm602_data_in_ex节点,在打开的属性界面中勾选事件通知,并点击数据流配置旁边的铅笔图标如下图所示。
第四排的zm602_data_in_ex的配置节点所有的属性参数均与第三排zm602_data_out_ex的zm602_stream和zm602_wifi两个配置节点属性参数一致。在此不再赘述。
双击第四排zm602_data_in_ex的消费者节点fscript,本节点主要是打印传输的信息等。
print("receive: " + str(msg.payload, true)

2.3 下载验证

绘制完流图后,点击CTRL+S 即可保存流图,点击下载流图。

本项目是由手机共享移动网络给ZM602模块,配置如下图所示。

在手机端打开网络调试助手,创建两个TCP服务器,配置两个不同的服务器端口号;配置好TCP服务器相关参数后发送消息给客户端,并点击连接,日志显示如下。由下图可知ZM602模块的TCP客户端模式可以同时连接两个TCP服务器进行通信。

3. UDP Server模式

配置ZM602模块的网络工作模式为UDP Server,本模式不需要设置目标地址,所以可以应用在目标地址不确定的场合,通信时需要由客户端(目标地址)首先发送UDP数据给模组,然后模组自动记录此客户端的 IP 地址和端口,此后,串口接收到的数据将会转发到此客户端。

3.1 流图绘制

添加timer,fscript,zm602_data_out_ex和zm602_data_in_ex到画布中并连线如下图。

3.2 节点配置

双击timer节点,配置周期性的向UDP客户端发送数据的时间。

双击timer的fscript节点,设置ZM602模块UDP Server模式下向UDP客户端发送的数据内容。

output.payload = "i am udp server"
双击zm602_data_out_ex节点,点击属性为数据流配置右边的铅笔图标,创建一个数据流通道并配置网络工作模式相关参数。
在打开的zm602_stream_ex节点属性页面下,配置连接类型为UDP Server,配置本机IP地址为172.16.1.1,本地端口号用户可自定义配置(遵循端口号分配规则即可),本项目配置为6666。配置完成之后点击wifi配置旁边的铅笔图标配置通信的串口参数以及Wi-Fi工作模式。
在打开的zm602_wifi节点属性界面中,设置通信串口的相关参数;设置RST(本文硬件上连接的是丝印为SDA的GPIO引脚),ISP(本文硬件上连接的是丝印为SCL的GPIO引脚),STATE(本文硬件上连接的是丝印为MISO的GPIO引脚),DEF(本文硬件上连接的是丝印为CLK的GPIO引脚)引脚编号;设置Wi-Fi工作模式为AP模式(ZM602模组发出热点供客户端连接)具体配置如下图所示。
双击zm602_data_in_ex节点,在打开的属性界面中勾选事件通知,并点击数据流配置旁边的铅笔图标如下图所示。
zm602_data_in_ex的配置节点所有的属性参数均与zm602_data_out_ex的zm602_stream和zm602_wifi两个配置节点属性参数一致。在此不再赘述。
双击zm602_data_in_ex的消费者节点fscript,本节点主要是打印客户端连接的信息等。
print("client: " + msg.peer_addr + "  port: " + str(msg.peer_port))print("receive: " + str(msg.payload, true))

3.3 下载验证

绘制完流图后,点击CTRL+S 即可保存流图,点击下载流图。

在手机端打开网络调试助手,创建一个UDP客户端,配置客户端连接的主机IP为zm602_stream节点的属性本地IP地址的值172.16.1.1,端口号为zm602_stream节点的属性本地端口的值6666;配置好UDP客户端相关参数后发送消息给服务器,并点击连接,日志显示如下。由下图可知实现了ZM602模块UDP服务器模式和UDP客户端的正常通信功能。

4. UDP Client模式

配置ZM602模块的网络工作模式为UDP Client,本项目将EPC6450-AWI开发板上采集到的ADC电压值上传到UDP服务器,实现数据采集的远程访问等操作。

4.1 流图绘制

添加adc,fscript,zm602_data_out_ex和zm602_data_in_ex到画布中并连线如下图。

4.4.2、节点配置

双击adc节点,选择需要采集的ADC通道号。

双击timer的fscript节点,设置ZM602模块UDP Client模式下向UDP服务器发送的数据内容。

output.payload = "adc channel voltage value is"+msg.payload+" mv"
双击zm602_data_out_ex节点,点击属性为数据流配置右边的铅笔图标,创建一个数据流通道并配置网络工作模式相关参数。
在打开的zm602_stream_ex节点属性页面下,配置连接类型为UDP Client,配置对端IP地址为192.168.43.1(根据用户创建的UDP服务器具体配置),对端端口号也需根据用户创建的UDP服务器具体配置。配置完成之后点击wifi配置旁边的铅笔图标配置通信的串口参数以及Wi-Fi工作模式。
在打开的zm602_wifi节点属性界面中,设置通信串口的相关参数;设置RST(本文硬件上连接的是丝印为SDA的GPIO引脚),ISP(本文硬件上连接的是丝印为SCL的GPIO引脚),STATE(本文硬件上连接的是丝印为MISO的GPIO引脚),DEF(本文硬件上连接的是丝印为CLK的GPIO引脚)引脚编号;设置Wi-Fi工作模式为STA模式(ZM602模组不断尝试和设置的热点建立连接)具体配置如下图所示。
双击zm602_data_in_ex节点,在打开的属性界面中勾选事件通知,并点击数据流配置旁边的铅笔图标如下图所示。
zm602_data_in_ex的配置节点所有的属性参数均与zm602_data_out_ex的zm602_stream和zm602_wifi两个配置节点属性参数一致。在此不再赘述。
双击zm602_data_in_ex的消费者节点fscript,本节点主要是打印传输的信息等。
print("receive: " + str(msg.payload, true))

4.3 下载验证

绘制完流图后,点击CTRL+S 即可保存流图,点击下载流图。

在手机端打开网络调试助手,创建一个UDP服务器,配置服务器端口号如下图所示;配置好UDP服务器相关参数后发送消息给客户端,并点击连接,日志显示如下。由下图可知EPC6450-AWI开发板采集到的ADC电压值经由ZM602模块的UDP客户端模式,上传至UDP服务器实现了数据采集的远程访问。


  关联产品

  技术交流群
长按识别如下二维码可加入“EsDA嵌入式系统设计自动化交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。

更多往期文章,请点击“ 阅读原文 ”。

评论
  • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
    万象奥科 2024-12-03 10:24 86浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 138浏览
  • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
    coyoo 2024-12-03 12:20 164浏览
  • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
    Industio_触觉智能 2024-12-03 11:28 109浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 103浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 111浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 131浏览
  •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
    锦正茂科技 2024-12-03 11:50 141浏览
  • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
    紫光展锐 2024-12-03 11:38 121浏览
  • TOF多区传感器: ND06   ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。                 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
    esad0 2024-12-04 11:20 97浏览
  • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-02 23:58 92浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦