# serial
___
在一些场景中,我们需要使用到本机串口与设备进行一些通讯,这时候我们用到serial控件与串口进行通讯
## 一、案例使用工具
1. **NetAssist(网络调试助手)** 本案例中用于创建TCP服务,让虚拟串口将接收到的信号转发到该端口上
- 下载地址 [NetAssist](http://am-file.gkiiot.com/file/NetAssist.exe)
- 打开软件
- 创建TCP服务 这边创建端口为8000
![](https://box.kancloud.cn/dd2047a04a5360099e17dae78447424e_637x575.png)
- 服务创建完毕
![](https://box.kancloud.cn/bc9684fc56665148ab174811d3bf88ca_637x575.png)
2. **USR-VCOM** 本案例中使用虚拟串口通讯,使用本工具可以创建虚拟串口,使用教程如下
- 软件下载地址[USR-VCOM](http://am-file.gkiiot.com/file/USR-VCOM_V3.7.1.520_Setup.zip)
- 解压安装
- 创建一个串口,这边选择本机没有的串口COM1,协议选择TCP Clienti,端口填刚才我们创建的8000
![](https://box.kancloud.cn/80ac674bbf4705ab59a37092907caba5_1126x652.png)
- 虚拟串口创建完毕,并显示网络已连接
![](https://box.kancloud.cn/3d6a727af99a554f56fd1e2662ee8575_1126x652.png)
## 二、案例使用控件
1. **定时器** 周期性触发输入时间戳或者相应的字符
![20190319192401.png](https://i.loli.net/2019/03/19/5c90d154165f7.png)
2. **serial** 系列控件用于与本机串口通讯
![](https://box.kancloud.cn/a3e24e6ae5c379e9c82ddfb789a5d5f9_75x74.png)![](https://box.kancloud.cn/4170b899fd78a10992603d13f0413dd1_75x72.png)![](https://box.kancloud.cn/21766bee83b38299ad6c324390081443_77x75.png)
3. **调试** 用于在调试窗口输出调试内容
![20190319194748.png](https://i.loli.net/2019/03/19/5c90d6e68653a.png)
## 三、案例
1. 案例一:使用**serial in**向串口输入信息
### 配置界面
按如下界面连接相应的控件
![](https://box.kancloud.cn/eaa1c37015971e5a099099a585ae1d36_1384x821.png)
### 节点属性配置
![20190319192401.png](https://i.loli.net/2019/03/19/5c90d154165f7.png)
**定时器** 本案例中用于触发向**serial in**控件输入消息,这边我的消息选择 **json** 内容为`{"statu":"ok"}`,重复点击`周期性执行`,间隔选择`1秒`,配置相应属性后点击`完成`保存
![](https://box.kancloud.cn/99117179fe3330a89795daaa19a1c12f_527x489.png)
![](https://box.kancloud.cn/bc687309b3b397acfba0cb10958ba45e_77x75.png)
**serial in** 用于向串口输入信息。本案例中选择配置串口端口`COM1`,波特率`9600`,数据位`8`,校验`None`,停止位`1`,配置完成后点击`完成`进行保存
![](https://box.kancloud.cn/ca15ef929f0644c663593e0d2d3fe5aa_512x297.png)
![](https://box.kancloud.cn/8e5e4ea5ceb254dde29caa87696c1671_524x569.png)
### 部署调试
按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。
![](https://box.kancloud.cn/d4bd0e558431fa6cd98447c888ea9280_1400x860.png)
打开 **NetAssist(网络调试助手)** 可以看到我们的TCP服务每隔一秒就会接受到虚拟串口转发的消息
![](https://box.kancloud.cn/5ad81b0868e0510cbf74e44ab111db4c_637x575.png)
### 示例代码
以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用
```js
[
{
"id": "a7a23325.99c",
"type": "serial out",
"z": "41f61d2.fbe09e4",
"name": "",
"serial": "deea0d.bec835f",
"x": 375,
"y": 160,
"wires": []
},
{
"id": "e9b19dd.063fe6",
"type": "inject",
"z": "41f61d2.fbe09e4",
"name": "",
"topic": "",
"payload": "{\"statu\":\"ok\"}",
"payloadType": "json",
"repeat": "1",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 240,
"y": 160,
"wires": [
[
"a7a23325.99c"
]
]
},
{
"id": "deea0d.bec835f",
"type": "serial-port",
"z": "",
"serialport": "COM1",
"serialbaud": "9600",
"databits": "8",
"parity": "none",
"stopbits": "1",
"newline": "\\n",
"bin": "false",
"out": "char",
"addchar": false,
"responsetimeout": "10000"
}
]
```
<br>
2. 案例二:使用**serial out**监听来自串口的信息
### 配置界面
按如下界面连接相应的控件
![](https://box.kancloud.cn/412ea32ffb18ba81e1400c4b5793f9c7_1384x821.png)
<br>
<br>
### 节点属性配置
![](https://box.kancloud.cn/c86f8ea67032b06b941777dffafb648c_73x72.png)
**serial out** 本案例中用于监听来自串口的消息,本案例中选择配置串口端口`COM1`、波特率`9600`、数据位`8`、校验`None`、停止位`1`、拆分输入`静默之后`,配置完成后点击`完成`进行保存
![](https://box.kancloud.cn/57c8214754f81a2e8214be74115e2ca4_521x561.png)
<br>
![](https://box.kancloud.cn/a84ed2a1d2b611dab0abe329e77f0673_74x76.png)
**调试** 用于在调试窗口输出监听到的消息,连接好后无需配置
<br>
<br>
### 部署调试
按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。我们使用 **NetAssist(网络调试助手)**软件搭建的TCP服务的`数据发送`窗口内输入`{"return":"ok"}`,点击`发送`
![](https://box.kancloud.cn/c02c7f04bb0a3f143a213183e971582c_637x575.png)
打开`海创IIoT软件`可以在调试窗口看到 **serial out** 控件从虚拟串口监听到的消息
![](https://box.kancloud.cn/979e8c3009303cb065299a28792e79e6_1384x821.png)
### 示例代码
以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用
```js
[
{
"id": "47429129.272a4",
"type": "serial in",
"z": "41f61d2.fbe09e4",
"name": "",
"serial": "deea0d.bec835f",
"x": 200,
"y": 200,
"wires": [
[
"a88b05bf.78a2f8"
]
]
},
{
"id": "a88b05bf.78a2f8",
"type": "debug",
"z": "41f61d2.fbe09e4",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 335,
"y": 200,
"wires": []
},
{
"id": "deea0d.bec835f",
"type": "serial-port",
"z": "",
"serialport": "COM1",
"serialbaud": "9600",
"databits": "8",
"parity": "none",
"stopbits": "1",
"newline": "0",
"bin": "false",
"out": "interbyte",
"addchar": false,
"responsetimeout": "10000"
}
]
```
<br>
<br>
3. 案例三:使用**serial request**向串口发送、接收数据
### 配置界面
按如下界面连接相应的控件
![](https://box.kancloud.cn/c661980b68db673bca24605145e49dec_1384x821.png)
<br>
<br>
### 节点属性配置
**定时器** 本案例中用于触发向**serial in**控件输入消息,这边我的消息选择 **json** 内容为`{"statu":"ok"}`,重复点击`周期性执行`,间隔选择`1秒`,配置相应属性后点击`完成`保存
![](https://box.kancloud.cn/99117179fe3330a89795daaa19a1c12f_527x489.png)
<br>
![](https://box.kancloud.cn/c99b7631f310279362a3858dd351014c_74x73.png)
**serial out** 本案例中用于监听来自串口的消息,本案例中选择配置串口端口`COM1`、波特率`9600`、数据位`8`、校验`None`、停止位`1`、拆分输入`静默之后`,配置完成后点击`完成`进行保存
![](https://box.kancloud.cn/57c8214754f81a2e8214be74115e2ca4_521x561.png)
<br>
![](https://box.kancloud.cn/a84ed2a1d2b611dab0abe329e77f0673_74x76.png)
**调试** 用于在调试窗口输出监听到的消息,连接好后无需配置
<br>
<br>
### 部署调试
按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。可以看到**serial request**控件向虚拟串口发送了一条消息,并处于等待接收状态
![](https://box.kancloud.cn/c1266934ba126db52561ea9057e5b943_1384x821.png)
打开 **NetAssist(网络调试助手)** 可以看到我们的TCP服务接收到虚拟串口转发的消息,`数据发送`窗口内输入`{"return":"ok"}`,点击`发送`
![](https://box.kancloud.cn/9e3c32b82e527024c73f487dd1359585_637x575.png)
打开`海创IIoT软件`可以在调试窗口看到 **serial out** 控件从虚拟串口监听到的消息
![](https://box.kancloud.cn/9b6b7e827db683cd284bc3c392c3957e_1384x821.png)
### 示例代码
以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用
```js
[
{
"id": "42ab587d.656478",
"type": "inject",
"z": "41f61d2.fbe09e4",
"name": "",
"topic": "",
"payload": "{\"status\":\"ok\"}",
"payloadType": "json",
"repeat": "1",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"x": 175,
"y": 240,
"wires": [
[
"cc2a51ae.39ee7"
]
]
},
{
"id": "cc2a51ae.39ee7",
"type": "serial request",
"z": "41f61d2.fbe09e4",
"name": "",
"serial": "deea0d.bec835f",
"x": 315,
"y": 240,
"wires": [
[
"d2f7ae7e.03215"
]
]
},
{
"id": "d2f7ae7e.03215",
"type": "debug",
"z": "41f61d2.fbe09e4",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"x": 455,
"y": 240,
"wires": []
},
{
"id": "deea0d.bec835f",
"type": "serial-port",
"z": "",
"serialport": "COM1",
"serialbaud": "9600",
"databits": "8",
"parity": "none",
"stopbits": "1",
"newline": "0",
"bin": "false",
"out": "interbyte",
"addchar": false,
"responsetimeout": "10000"
}
]
```
- 海创IIoT可视化平台
- 简介
- 使用说明
- 安装
- 注册
- 控件使用说明
- serial
- mongodb-node
- websocket
- function
- Modbus连接接口
- Modbus连接说明
- Modbus连接示例
- 设备连接案例
- 单相智能电表(DL/T645-2007协议)
- 单相智能电表(Modbus协议)
- PLC连接案例
- 西门子PLC
- 三菱PLC
- 欧姆龙PLC(HostLink协议)
- 欧姆龙PLC(Fins协议)
- 西门子s7-200 smart跑马灯场景效果
- 松下PLC
- 传感器连接案例
- 温湿度变送器
- PM空气质量检测仪
- 数据上报阿里云
- 数据上报百度云
- 微信公众号连接示例
- 获取阿里云数据
- 使用OPCUA