体验 Shifu
Shifu 安装包 中准备了五个设备(AGV,温度计,酶标仪,PLC,机械臂)供您进行试玩,体验 Shifu 的能力。
物联网设备是指可以与其他设备、系统、服务进行本地或在线地连接和交流的设备,例如:
- 一个制造厂里的机械臂,它可以接收来自本地的自动化控制系统传来的命令并完成相应的动作。
- 一辆自动导引车,操纵者可对其进行远程控制。
- 一辆汽车上的温度计,它向车载空调发出命令使其升温或降温,并上传实时温度数据到云端。
在安装 Shifu 安装包 时,我们创建了五个虚拟设备,并连接到您的电脑上。这五个设备与实际的物联网设备是等价的。
准备
在继续之前,请确保按照快速安装将 Shifu 安装在您的本地系统上。
完成快速安装指南后,使用以下命令将目录切换到 shifudemos:
cd shifudemos
启动 Nginx 服务
我们需要启动一个 nginx 来和数字孪生设备 deviceShifu 交互,请运行下面的命令:
sudo kubectl run --image=nginx:1.21 nginx
sudo kubectl get pods -A | grep nginx
可以看到 nginx 已经在运行:
在实际的情况中,物联网设备的用户使用应用程序或者监控平台与数字孪生 deviceShifu 交互。这里 nginx 相当于一个应用程序或者一个监控平台。
1. 与AGV交互
Details
点此查看AGV细节
Q:什么是AGV?A:AGV是一种自动导引运输车,具体介绍可以查看百度百科。
Q:这个试玩中如何与AGV交互?
A:当AGV的数字孪生接收到get_position命令时会生成并返回设备当前位置的x、y轴坐标。
创建数字孪生
您刚才通过 Shifu 安装包 安装了 Shifu,AGV的数字孪生 deviceShifu 已自动创建,所以您无需进行手动的创建过程,可以直接和AGV的数字孪生进行交互。
数字孪生的状态会和实际设备的状态一致,与数字孪生交互相当于与实际物联网设备交互。

执行下面的命令,我们可以看到AGV的数字孪生已经正常启动:
sudo kubectl get pods -A | grep agv
![]()
与数字孪生交互
我们需要先进入 nginx:
sudo kubectl exec -it nginx -- bash
我们可以与AGV的数字孪生通过 http://deviceshifu-agv.deviceshifu.svc.cluster.local 进行交互,得到AGV的当前 x, y 坐标:
curl http://deviceshifu-agv.deviceshifu.svc.cluster.local/get_position; echo
交互结束后按下 ctrl D 即可退出 nginx。
2. 与温度计交互
Details
点此查看温度计细节
Q:在这个试玩中如何与温度计交互?A:当温度计的数字孪生接收到read_value命令时会生成并返回当前温度计的读数。
创建数字孪生
首先,我们创建一个温度计的数字孪生:
sudo kubectl apply -f run_dir/shifu/demo_device/edgedevice-thermometer
我们可以看到温度计的数字孪生已经正常启动:
sudo kubectl get pods -A | grep thermometer
![]()

与数字孪生交互
我们需要先进入 nginx:
sudo kubectl exec -it nginx -- bash
我们可以与温度计的数字孪生通过 http://deviceshifu-thermometer.deviceshifu.svc.cluster.local 进行交互,得到温度计的测量温度(以下结果随机):
curl http://deviceshifu-thermometer.deviceshifu.svc.cluster.local/read_value; echo
我们也可以通过 get_status 命令得到温度计当前运行状态(以下结果随机):
curl http://deviceshifu-thermometer.deviceshifu.svc.cluster.local/get_status; echo
curl http://deviceshifu-thermometer.deviceshifu.svc.cluster.local/get_status; echo
交互结束后按下 ctrl D 即可退出 nginx。
3. 与酶标仪交互
Details
点此查看酶标仪细节
Q:什么是酶标仪?A:酶标仪是一种实验室设备,具体介绍可以查看百度百科。
Q:在这个试玩中如何与酶标仪交互?
A:当酶标仪的数字孪生接收到命令get_measurement会返回8*12的矩阵,其中的每一个数字代表一个样本中光谱分析扫描的结果数值。
创建数字孪生
首先,我们启动酶标仪的数字孪生:
sudo kubectl apply -f run_dir/shifu/demo_device/edgedevice-plate-reader
我们可以看到酶标仪的数字孪生已经启动:
sudo kubectl get pods -A | grep plate
![]()

与数字孪生交互
我们需要先进入 nginx:
sudo kubectl exec -it nginx -- bash
我们可以和酶标仪的数字孪生通过 http://deviceshifu-plate-reader.deviceshifu.svc.cluster.local 进行交互,得到酶标仪的测量结果:
curl "deviceshifu-plate-reader.deviceshifu.svc.cluster.local/get_measurement"

交互结束后按下 ctrl D 即可退出 nginx