栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间:发布时间: 百科书网 趣学号

目录
  • 前言
  • 1,关于edgex2.0
  • 2,使用2.0 http api 注册
  • 3,swagger HTTP API
  • 4,总结

前言

相关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

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/294665.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号