EdgeX(9): 使用最新的 edgex2.0干啥,硬件是一方面,重要的另外一方面是软件的匹配,也要做好相关的开发,新的API V2接口学习,实现设备的注册、服务的注册

95 篇文章 9 订阅
19 篇文章 34 订阅

前言


相关EdgeX Foundry 全部分类:
https://blog.csdn.net/freewebsys/category_9437788.html

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/120615729

未经博主允许不得转载。
博主地址是:http://blog.csdn.net/freewebsys

1,关于edgex2.0


上次讲了 edgex 2.0 如何本地进行按照使用,这次开始研究具体的 API 接口了。
之前1.0 的版本的 python 脚本不管用了需要升级 API了。
两年前,edgex 还是 1.0 的时候就有人通过 python 的程序进行使用 api的方式注册设备。

但是2.0 开始这个接口都不好用了。需要升级下。:
https://github.com/jonas-werner/EdgeX_Foundry-Device_Creation

2,使用2.0 http api 注册


第一个改变就是端口的升级。
从 48081 修改成了 59881,api 接口路径 从 v1 变成 v2 了。

还有就是 profile 的定义变了,结构变了。


def createDeviceService():
    url = 'http://%s:59881/api/v2/deviceservice' % edgex_ip
    # new payload v2 body.
    payload = [{
        "apiVersion": "v2",
        "service": {
            "name": "sensor cluster control device service",
            "description": "Manage sensor clusters delivering humidity and temperature readings",
            "adminState": "UNLOCKED",
            "labels": [
                "Raspberry Pi",
                "Sensor cluster"
            ],
            "baseAddress": "humidity-device-service:59990"
        }
    }]
    headers = {'content-type': 'application/json'}
    response = requests.post(url, data=json.dumps(payload), headers=headers, verify=False)

    print("Result of create device service: %s with message %s" % (response, response.text))
    


def addNewDevice():
    url = 'http://%s:59881/api/v2/device' % edgex_ip

    # new payload v2 body.
    payload =     [
        {
            "apiVersion": "v2",
            "device": {
            "name": "Temp_and_Humidity_sensor_cluster_01",
            "description": "Raspberry Pi sensor cluster",
            "adminState": "UNLOCKED",
            "operatingState": "UP",
            "labels": [
                "camera","counter"
            ],
            "location": "{lat:45.45,long:45.45}",
            "serviceName": "sensor cluster control device service",
            "profileName": "Manage sensor clusters delivering humidity and temperature readings",
            "protocols": {
                "camera-protocol": {
                "camera-address": "localhost",
                "port": "1234",
                "unitID": "1"
                }
            },
            "notify": False
            }
        }
    ]

    headers = {'content-type': 'application/json'}
    response = requests.post(url, data=json.dumps(payload), headers=headers, verify=False)
    
    print("Result of creating the device: %s with message %s" % (response, response.text))

3,swagger HTTP API


上面的接口信息的具体参数,都可以通过下面的API 接口文档找到。
有标准的SDK 可以使用,同时也可以有 API 接口文档可以使用。

core-data event 事件
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-data/2.0.0
core-command 设备控制
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-command/2.0.0
core-metadata 设备,服务注册
https://app.swaggerhub.com/apis-docs/EdgeXFoundry1/core-metadata/2.0.0

其他 API 说明
https://docs.edgexfoundry.org/2.0/api/Ch-APIIntroduction/

4,总结


edgex 是个不错的和设备打交道的服务。
要同时慢慢的也有越来越多的设备厂商开始支持,加入到edgex中了。
edgex设计的比较好的就是 profile 定义设备的类型、参数。
可以把不同的设备的定义都规定好。大家都按照一套标准去执行。

一直有个想法,edgex 可以在边缘端做服务器,其实也可以在云端做服务。
然后暴露相关的服务,都是可以的。
可以修改下做成个 IOT的设备云服务。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/120615729

博主地址是:https://blog.csdn.net/freewebsys

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值