从零开始安装EdgeX ONVIF Camera Device
本文将介绍从拿到一台新电脑开始,如何一步一步安装EdgeX ONVIF Camera Device Service,并找到ONVIF IP Camera
第一步, 安装Ubuntu20.04, 安装完毕后,可以获得系统信息如下所示:

第二步,安装向日葵远程控制软件 或者 Teamviewer,方便用笔记本远程控制这台安装了Ubuntu20.04的设备
第三步,在Software & Updates中配置Ubuntu国内源

然后禁止自动升级。

第四步 将IP Camera接入与NUC相同的局域网,并处于同一网段,然后为IPC设置用户和密码。本文使用的是TP-Link的TL-IPC43KP-4

第五步,由于ONVIF Device Camera Microservice依赖Docker和Docker Compose工具,所以需要安装Docker 和 Docker Compose。Docker和Docker Compose的安装教程,官网写的非常详细,按照 安装Docker engine 和 Docker compose for Ubuntu,一步一步安装即可。安装成功后,如下图所示

第六步,为了docker拉取镜像方便,为Docker添加国内镜像源。添加成功后,重启docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
然后可以用docker info查到

第七步,参考EdgeX ONVIF Camera Device Service Demo,首先Git Clone代码仓如下:
- https://github.com/edgexfoundry/edgex-compose.git
- https://github.com/edgexfoundry/device-onvif-camera.git
- https://github.com/edgexfoundry/edgex-examples.git
注意,若git clone速度慢,可以使用FastGithub加速
git clone 代码仓到本地后,执行 -- 待华乔老师确认
> git checkout kamakura
切换到发布的最新分支上。因为V2.1Jakarta V2.2Kamakura V2.3Levski 都是bug fixing为主的小版本,ds差不太多,推荐用最新的或者次新的。
第八步,设置并启动EdgeX微服务。在edgex-compose/compose-builder/ 目录下,运行
sudo make run no-secty ds-onvif-camera

注意, 若没有完成第六步为Docker添加国内镜像源,则该步骤非常容易因为拉取镜像超时而失败。
运行
确保所有EdgeX微服务已经正常运行了sudo docker ps

上图中可以清晰看到,edgex UI已经在4000端口处运行起来了,打开浏览器,输入http://localhost:4000,可以启动EdgeX UI

第九步,设置IP Camera。你需要把IP Camera连入同一个网段,并设置好用户名和密码。在厂家提供的配置工具中找到IP Camera的IP 地址和MAC地址

第十步,到device-onvif-camera/bin目录下,sudo ./map-credentials.sh 创建新的credentials001 ;用户名密码就是第九步配置摄像头的用户名密码。

接着运行./configure-subnets.sh配置子网络

第十一步,刷新EdgeX UI界面,可以发现EdgeX已经找到了IPCamera。


到此,安装EdgeX ONVIF Camera Device Service成功,EdgeX自动发现了IPCamera,并且能够操作它了。使用命令
可以在NUC上获取实时视频图像ffplay -rtsp_transport tcp rtsp://"admin":"edgex2022"@192.168.0.9:554/stream1
