0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文搞懂用ZPC轻松拿捏数据上云

ZLG致远电子 2024-09-05 08:05 次阅读

ZPC是ZLG全新研发的显控一体机。开源AWTK,版权无忧!AWFlow流图编程,开发很简单!多种通信协议,设备互联超便捷!更有ZWS,数据上云很轻松!本文将介绍ZPC轻松拿捏数据上云。

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  ZPC简介

ZPC系列显控一体机 是广州致远电子全新研发的集“显示”+“控制”一体化的高性能显控终端产品。外框采用铝合金材质,简洁耐用;产品集成了多路隔离RS485、多路隔离CAN总线、多路千兆以太网等丰富外设。一触即发,随心控制。产品支持多种工业通信协议,工业互联超便捷!支持拖拽式开源AWTK GUI,版权无忧!支持AWFlow流图编程,应用开发很简单!还支持ZWS云,数据上云很轻松!

ZPC系列显控一体机

• RK3568处理器

• 显控一体机

• 国产显控

工业自动化

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  ZWS简介

ZWS IoT-PaaS云平台,是一个开放的物联网云平台,可以为用户提供多种协议设备的快速接入、设备管理、事件告警、数据统计分析等功能,帮助企业快速实现低成本搭建行业SaaS应用系统,助力企业实现数字化转型。8330c2b8-6b1a-11ef-bb4b-92fbcf53809c.png

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  原理介绍ZPC拥有多路隔离RS485、多路隔离CAN总线、多路DI/DO以及多路千兆以太网等丰富的外设接口资源。为了避免大家手头没有RS485传感器,本次我们将演示ZPC一机搞定数据轻松上云。原理是我们在ZPC上编程从RS-485-3接口输出1~100的数据,RS-485-4接口采集这些数据然后通过以太网接口采用MQTT协议上传到ZWS云。

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  准备工作

ZPC-101Q55RTW-01显控一体机1台;

安装Ubuntu虚拟机或Ubuntu系统的PC机1台;

USBRS232调试串口1个;

12V@2A的电源适配器1个;

MobaXterm上位机软件;

双公头网线1根;

杜邦线若干。

在开始前,我们先使用杜邦线将RS485-3和RS485-4接口连通,如下图所示位置(A3接A4,B3接B4)。

8361f18a-6b1a-11ef-bb4b-92fbcf53809c.png

调试串口连接到ZPC,网线连接到可以上网的电脑,然后给ZPC插上适配器上电。通过MobaXterm或者其它串口调试上位机登录ZPC,波特率为115200,8位数据位,1位停止位,无奇偶校验,无流控。超级用户账号密码同为root。然后使用ping指令进行测试对外网的连通情况,如下图所示即为可以上网。8377f4d0-6b1a-11ef-bb4b-92fbcf53809c.png
838dae56-6b1a-11ef-bb4b-92fbcf53809c.jpg  ZWS建模首先,需要准备一个ZWS云平台账号,注册并登录进入官网后,可以看到类似界面如下图所示。

839ac33e-6b1a-11ef-bb4b-92fbcf53809c.png

接着需要对设备进行建模,建模的意义在于创建一个设备类型,方便后续对同一类型设备和数据的管理。我们可以将ZPC一体机视为一个网关设备,也可以作为一个普通设备。如下图所示,依次点击设备建模、设备类型、自定义、添加设备类型。

83a8f6c0-6b1a-11ef-bb4b-92fbcf53809c.png

如下图所示填写所需的设备类型信息。其中类型名称只可为英文、数字或者一些特殊符号。

83c3fdb2-6b1a-11ef-bb4b-92fbcf53809c.png

填写完成后,即可在界面看到所创建的设备类型。

83cddb34-6b1a-11ef-bb4b-92fbcf53809c.png

创建完成设备类型后,还需要添加一个实际的设备。如下图所示,我们依次点击设备管理、设备列表、添加设备。

83d803e8-6b1a-11ef-bb4b-92fbcf53809c.png

然后这里需要填写设备类型、设备名称、设备ID和设备密钥。其中,ID和密钥我们可以通过串口助手使用opensslrand-hex16命令在ZPC一体机上生成一个长度为32的十六进制随机数来使用,如下图所示。

83e53fc2-6b1a-11ef-bb4b-92fbcf53809c.png

最后填写完毕设备信息如下图所示。(实际生产过程中,推荐使用机器序列号或其他唯一标识作为ID)

83ef369e-6b1a-11ef-bb4b-92fbcf53809c.png

填写完成并确认后,可以在设备列表中看到创建完成的设备。

8402dc1c-6b1a-11ef-bb4b-92fbcf53809c.png

接下来,需要对上报的数据进行编辑。我们点击设备建模、设备类型、自定义,找到刚才创建的设备类型,点击编辑。

84150a5e-6b1a-11ef-bb4b-92fbcf53809c.png

这里显示有两个功能组,其中common_fn是全局通用功能模块,其中包含上报原始数据(raw_data)的功能(本文不涉及,暂不展开);ZPC_101Q55RTW_01_fn是针对本次创建的设备类型的功能模块,点击ZPC_101Q55RTW_01_fn的编辑按钮。

84209f40-6b1a-11ef-bb4b-92fbcf53809c.png

创建对应的数据组和数据字段。

842a844c-6b1a-11ef-bb4b-92fbcf53809c.png

数据组可以将所有的同类型数据作为一个数据组。比如使用ZPC一体机进行检测被测设备的压力值,在此将压力值(pressure)作为一个数据组如下图所示。

84346ac0-6b1a-11ef-bb4b-92fbcf53809c.png

而数据字段代表了数据组下的一个数据字段内容。比如检测多个被测设备时,可以将某一节点作为一个字段,在此模拟将节点1的压力值作为一个pressure_node1数据字段,并将其设置为int类型数据,如下图所示。

843df9fa-6b1a-11ef-bb4b-92fbcf53809c.png至此,在ZWS上的准备工作完毕。

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  应用编程1. 搭建数据上云

首先下载ZWS SDK包到Ubuntu虚拟机下(建议使用ubuntu20.04),并安装gcc-aarch64-linux-gnu包。解压SDK包到工作目录后,进入到zws_sdk_r2/mqttproto_V2.0.3.240626目录。在根目录下创建一个新的zpc.mk文件,用于构建工程使用,程序清单如下。Z

MESSAGE(STATUS "BUILD FOR ZPC")#across compiler setting#include(CMakeForceCompiler)
set(CMAKE_SYSTEM_NAME Linux)set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
#set(CMAKE_FIND_ROOT_PATH ${TOOL_CHAIN_DIR})set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)

在工程根目录的CMakeLists.txt内添加以下内容,用于调用上文中的zpc.mk。

845ce3ec-6b1a-11ef-bb4b-92fbcf53809c.png

...#内置对zpc-101q55rtw-01/zpc-101q55rtw-02的支持if(ZPC)#ADD_DEFINITIONS(-DARM_LINUX=1) #经验证ADD_DEFINITIONS定义的变量,然后同一个文件引用该变量是无效的set(ARM_LINUX 1)execute_process(COMMAND ln -svf zpc.mk cross-linux.mk)endif()...

创建测试代码文件,路径为demos/src/zpc_test.c,详见在线文档https://manual.zlg.cn/web/#/331/13023 程序清单2的内容,实现了从RS-485-4(对应串口/dev/ttyS8)读取数据,并上报到ZWS,详细可以参考代码注释。

并在demos/src/CMakeLists.txt中添加如下内容用于编译测试demo。847590cc-6b1a-11ef-bb4b-92fbcf53809c.png

...set(PRJ zpc_test)add_executable(${PRJ} "")target_sources(${PRJ} PRIVATE zpc_test.c ${shared_src})set_target_properties(${PRJ} PROPERTIES FOLDER "demos")target_link_libraries(${PRJ} client network ${SYS_LIBS})...

接下来执行cmake . -DZPC=1,构建编译工程。

84854a12-6b1a-11ef-bb4b-92fbcf53809c.png

执行make指令,编译工程。可以看到成功构建zpc_test文件(如果不成功,请检查上述步骤)。

84904fca-6b1a-11ef-bb4b-92fbcf53809c.png

2. 搭建模拟数据

接下来,还需要实现从RS-485-3生成随机数据并传输。另外创建一个文件夹(最好和前文的工程分开),在文件夹下创建main.c文件,程序清单如下:

#include #include #include #include #include #include // 配置串口int configure_serial_port(int fd) {struct termios tty;if (tcgetattr(fd, &tty) != 0) {perror("tcgetattr");return -1;}// 设置波特率cfsetospeed(&tty, B9600);cfsetispeed(&tty, B9600);// 设置字符大小、无奇偶校验、一个停止位tty.c_cflag &= ~PARENB; // 无奇偶校验tty.c_cflag &= ~CSTOPB; // 一个停止位tty.c_cflag &= ~CSIZE;tty.c_cflag |= CS8; // 8个数据位// 设置为非规范模式tty.c_lflag &= ~ICANON;tty.c_lflag &= ~ECHO;tty.c_lflag &= ~ECHOE;tty.c_lflag &= ~ISIG;// 禁用软件流控制tty.c_iflag &= ~(IXON | IXOFF | IXANY);// 禁用硬件流控制tty.c_cflag &= ~CRTSCTS;// 设置读取阻塞行为tty.c_cc[VMIN] = 1;tty.c_cc[VTIME] = 0;// 刷新串口设置if (tcsetattr(fd, TCSANOW, &tty) != 0) {perror("tcsetattr");return -1;}return 0;}int main() {int fd;int random_number;char buffer[4];// 打开串口设备fd = open("/dev/ttyS7", O_WRONLY | O_NOCTTY);if (fd == -1) {perror("open");return -1;}// 配置串口if (configure_serial_port(fd) != 0) {close(fd);return -1;}// 初始化随机数生成器srand(time(NULL));while (1) {// 生成 1 到 100 之间的随机数random_number = rand() % 100 + 1;snprintf(buffer, sizeof(buffer), "%d\n", random_number);// 向串口发送随机数if (write(fd, buffer, sizeof(buffer)) == -1) {perror("write");close(fd);return -1;}// 延时 1 秒sleep(1);}// 关闭串口设备close(fd);return 0;}

保存文件后,执行aarch64-linux-gnu-gcc main.c -o rs485_test生成测试文件。

84ac8e10-6b1a-11ef-bb4b-92fbcf53809c.png

831a0028-6b1a-11ef-bb4b-92fbcf53809c.jpg  验证数据上云将上文中生成的测试程序zpc_test和rs485_test拷贝至ZPC一体机,并执行./rs485_test &,该程序将从RS485-3随机发送1~100的数据。由于RS-485-3(/dev/ttyS7)和RS-485-4(/dev/ttyS8)短接,可以直接使用cat /dev/ttyS8查看采集的数据,如下图所示。84c246ec-6b1a-11ef-bb4b-92fbcf53809c.png

最后执行./zpc_test,便开始将RS-485-4读取到的数据上报到ZWS。下图中标注的两点,为采集到的数据。

84d751ae-6b1a-11ef-bb4b-92fbcf53809c.png

打开ZWS IoT设备管理平台界面,并按下图所示选择对应类别,即可看到上报的实时数据。

85059866-6b1a-11ef-bb4b-92fbcf53809c.png

也可以使用历史数据功能查看历史数据。

851cc66c-6b1a-11ef-bb4b-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 一体机
    +关注

    关注

    0

    文章

    794

    浏览量

    32519
  • 终端
    +关注

    关注

    1

    文章

    1078

    浏览量

    29715
  • zlg
    zlg
    +关注

    关注

    1

    文章

    58

    浏览量

    38071
收藏 人收藏

    评论

    相关推荐

    PCB阻抗设计12问,轻松带你搞懂阻抗!

    阻抗,工程师们都接触过,但能把阻抗说清楚的工程师少之又少。阻抗看似简单,实则难以言表。   下面我们快问快答的方式,轻松帮你搞懂阻抗! 0 1    问:什么是阻抗?   答:在有电阻、电感和电容
    的头像 发表于 01-03 08:40 951次阅读
    PCB阻抗设计12问,<b class='flag-5'>轻松</b>带你<b class='flag-5'>搞懂</b>阻抗!

    教你轻松将CC3200接入机智

    教你轻松将CC3200接入机智下面介绍的是如何将CC3200 LaunchPad 接入机智服务器。具体的操作请参考附件的PDF。请注意这份代码只是份基础的展示CC3200如何与机
    发表于 02-22 14:26

    数据库SQL Server 2008 R2版推出OSS版本数据

    通过外网迁移,则OSS会收取外网流出流量的费用。使用步骤也十分简单,轻松三步搞定:是准备好本地数据库,二是将本地备份文件上传到OSS并获取文件的URL,三是将备份文件从OSS迁移至RDS,就可以
    发表于 01-17 11:10

    搞懂UPS主要内容

    导读:UPS是系统集成项目中常用到的设备,也是机房必备的设备。本文简单介绍了UPS的种类、功能、原理,品质选择与配置选择方式,基础维护等相关的内容。搞懂UPS本文主要内容:UPS种类、功能
    发表于 09-15 07:49

    搞懂开关电源波纹的产生

    参考搞懂开关电源波纹的产生、测量及抑制开关电源纹波的产生上图是开关电源中最简单的拓扑结构-buck降压型电源。随着SWITCH的开关,电感L中的电流也是在输出电流的有效值上下波动的。所以在输出端
    发表于 12-30 08:31

    了解透传基础知识

    了解透传基础知识讲透传,我们先了解它的定义,首先了解下****透传透传: 透明传输。即在传输过程中,不管所传输的内容、数据协议形式,
    发表于 02-25 10:32

    轻松云系列之:本地数据迁移上

    AnalyticDB使用kettle将本地数据导入分析型数据数据库和应用迁移服务 ADAM传统 IT 系统 +
    发表于 12-18 17:15 382次阅读

    轻松云系列之二:其他数据迁移至阿里

    迁移到OSS又拍 USS迁移到OSS七牛迁移到OSS通用迁移场景使用OssImport迁移数据从DNSPOD迁移至阿里解析更多迁移场景文档轻松
    发表于 12-19 16:16 380次阅读

    希捷携手Backblaze 让海量数据轻松

    近日,备份和存储领先厂商Backblaze与全球领先的数据存储解决方案提供商希捷科技达成合作,Backblaze借助希捷存储产品打造云端备份及存储解决方案,将海量数据
    发表于 07-10 13:42 589次阅读

    搞懂几种常见的射频电路类型及主要指标

    搞懂几种常见的射频电路类型及主要指标。
    发表于 07-27 10:26 9次下载
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞懂</b>几种常见的射频电路类型及主要指标

    加速数智化升级,华为这款服务器让企业轻松

    (以下称:耀 L 实例)成为焦点之,通过其独特的性能和功能,助力广大中小企业实现数智化升级,轻松应对企业
    的头像 发表于 12-01 09:55 192次阅读

    PCB阻抗设计12问,轻松带你搞懂阻抗!

    阻抗,工程师们都接触过,但能把阻抗说清楚的工程师少之又少。阻抗看似简单,实则难以言表。下面我们快问快答的方式,轻松帮你搞懂阻抗!01问:什么是阻抗?答:在有电阻、电感和电容的电路里,对交流电所起
    的头像 发表于 01-05 10:44 1622次阅读
    PCB阻抗设计12问,<b class='flag-5'>轻松</b>带你<b class='flag-5'>搞懂</b>阻抗!

    教你在ZPC快速移植AWTK

    ZPC是ZLG全新研发的显控体机。开源AWTK,版权无忧!多种工业通信协议,工业互联无壁垒!ZWS数据
    的头像 发表于 09-04 08:04 70次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>教你在<b class='flag-5'>ZPC</b><b class='flag-5'>上</b>快速移植AWTK

    ZPC是如何轻松拿捏严苛工况的?

    随着新能源的快速发展,储能柜的应用越来越普及。显控体机作为储能柜中的重要部件之,在严苛的工况环境中面临着诸多挑战。我们该如何选择合适的显控体机产品呢?ZPC简介
    的头像 发表于 09-06 08:02 96次阅读
    <b class='flag-5'>ZPC</b>是如何<b class='flag-5'>轻松</b><b class='flag-5'>拿捏</b>严苛工况的?

    详解企业数据库是干嘛的

    数据库是企业将其数据库系统从传统的本地数据中心迁移到由第三方服务提供商管理的远程服务器
    的头像 发表于 09-13 11:49 106次阅读