Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将Mainflux物联网代理连接到EdgeX网关_Linux_Iot_Gateway - Fatal编程技术网

Linux 将Mainflux物联网代理连接到EdgeX网关

Linux 将Mainflux物联网代理连接到EdgeX网关,linux,iot,gateway,Linux,Iot,Gateway,我目前正在尝试设置一个最小的EdgeX-Mainflux设置,以监控我们公司的特定传感器数据 为了进行原型设计,我设置了2台Linux服务器 EdgeX网关 Mainflux服务器 网关接收来自硬件设备的读数,并将其传递给mainflux服务器进行进一步处理 为此,我遵循了官方mainflux文档中的示例 创建了一个用户 创建了一个“网关事件” 创建了2个通道(数据通道、控制通道) 已将网关连接到两个通道 已创建引导配置 gateway\u thing\u id=“43259265-394

我目前正在尝试设置一个最小的EdgeX-Mainflux设置,以监控我们公司的特定传感器数据

为了进行原型设计,我设置了2台Linux服务器

  • EdgeX网关
  • Mainflux服务器
网关接收来自硬件设备的读数,并将其传递给mainflux服务器进行进一步处理

为此,我遵循了官方mainflux文档中的示例

  • 创建了一个用户
  • 创建了一个“网关事件”
  • 创建了2个通道(数据通道、控制通道)
  • 已将网关连接到两个通道
  • 已创建引导配置
  • gateway\u thing\u id=“43259265-394c-4cc4-bf50-58ABA3432CE”
    控制信道id=“18599c67-2699-4654-8eac-016133875932”
    数据通道id=“ba67f32e-1912-4038-9515-6d4dd6024413”
    自举配置
    {
    “外部id”:“44:e1:2d:e6:cf:03”,
    “物品id”:“43259265-394c-4cc4-bf50-58ABA3432CE”,
    “外部_键”:“边缘”,
    “名称”:“边缘”,
    “频道”:[
    “ba67f32e-1912-4038-9515-6d4dd6024413”,
    “18599c67-2699-4654-8eac-016133875932”
    ],
    “内容:“{\”日志级别\“:”调试\“,”http \“:”9000 \“,”mqtt \”url \“:\”tcp://localhost:1883\“,\“edgex\u url\”:\”http://localhost:48090/api/v1/\"}"
    }'
    
    切换到EdgeX服务器

  • 为代理创建了环境变量
  • export MF\u AGENT\u LOG\u LEVEL=debug
    导出MF\U代理\U引导\U键=边缘
    导出MF\U代理\U引导\U ID=44:e1:2d:e6:cf:03
    导出MF\u代理\u引导\u URL=http://192.168.137.95:8202/things/bootstrap/'
    
  • 启动代理
  • 因为指令要求我安装natsd,所以我通过docker启动了一个实例。 现在一切正常。我可以在EdgeX Mainflux服务器上发布和订阅消息。 这些说明没有包括如何从那里开始

    据我所知,代理需要安装在EdgeX服务器上,因为它充当Edge和Mainflux之间的桥梁。代理连接到EdgeX端的mqtt服务器,以便能够来回发布和接收控制/数据命令


    我不知道代理如何连接到网关,也不知道NATSD实例在做什么。是否有人知道如何将数据从edgex服务器转移到mainflux实例上?

    假定您在同一网关/PC上同时运行
    edgex
    agent

    要从edgex服务器API端点接收数据,请向代理发送mqtt消息

    例如:

    mosquitto_pub -u <thing_id> -P <thing_key> -t channels/<channel_id>/messages/req -h localhost -m '[{"bn":"1:", "n":"control", "vs":"edgex-config, edgex-support-notifications, edgex-core-data"}]'
    
    mosquitto_pub-u-P-t channels//messages/req-h localhost-m'[{“bn”:“1:”,“n:“control”,“vs:“edgex配置,edgex支持通知,edgex核心数据”}]
    
    这将使代理向edgex端点发送请求 http://localhost:48082/api/v1/config

    和检索的配置数据
    edgex支持通知,edgex核心数据

    要观察响应,您必须订阅
    频道//消息/res

    edgex上支持的端点有
    /config
    /metrics
    /operation
    /ping

    至于NAT,它不用于与edgex通信
    NAT正用于其他服务,这些服务可能订阅通过
    代理从Mainflux接收的命令


    其他服务也可以通过发布NAT上的
    heartbeat
    主题来报告它的活跃性,该主题由代理获取,并可通过mqtt获取。

    非常感谢您花时间写下如此详细的答案。我现在可以让它工作了:)