×

智能项圈和智能网关的框架

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-26

1123127317

分享资料个

描述

大象边缘挑战为将保护技术的想法应用于该领域提供了令人兴奋的机会。在这个特殊的挑战中,技术可以在减轻人与动物的冲突和深入了解大象的短期和长期行为方面发挥双重作用。

在这个项目中提出和展示的想法是一个结合了智能项圈和智能网关的框架。

印度的人象冲突

在印度,2015 年至 2018 年间,人象冲突导致1713 人死亡和 373 头大象死亡在某些情况下,技术可以帮助减少死亡人数。例如, 2016 年至 2018 年期间,有 49 头大象因火车事故而死亡。越来越多的游客使用的咖啡和茶园道路正成为越来越多的冲突场景大象对农作物的袭击破坏了农民的生计,对人类和大象来说变得越来越危险。一些研究还表明,人象冲突的热点围绕保护区、种植园和河流走廊的边缘。

技术解决方案的要求

针对不同类型的人象冲突的技术框架解决方案的共同要求包括:

  • 在确定的热点部署准确可靠的预警系统。
  • 智能衣领传感器数据与边缘机器学习相结合,提供实时警报,可以是基于基本传感器和更复杂的基于机器学习的警报检测,例如人员存在、枪声、鞭炮等。
  • 用于洞察复杂大象行为的传感器和机器学习数据。
  • 与项圈通信并通过云将数据发送到公园/森林官员的仪表板的网关。
  • 在人象冲突期间,网关向当地受影响的人们发出本地警报。

通用框架解决方案

该项目提出了一个框架来满足这些要求。以下是框架解决方案的细分:

O网关塔具有基于地理周长的分级和可配置的早期预警系统。例如,塔可以配置警告和警报边界。这些可用于在大象项圈进入/离开这些周边时发送适当的通知。

O通知分为两部分:

  • 可以适应区域环境的本地通知。例如,农场中的蓝牙mesh/SMS警报、林道和火车轨道上的数字显示器、向火车司机发送的蓝牙mesh跳消息等。
  • 云通知到仪表板以及公园/森林官员远程监控的推送警报等。

O以下常见数据类型:

  • 实时衣领数据
  • 网关塔配置数据
  • 仪表板数据的网关
  • 活动历史数据
  • 机器学习 (ML) 历史数据

O使用实时衣领数据,我们可以:

  • 发送项圈识别信息
  • 发送传感器数据
  • 发送实时 ML 检测到的事件

O使用网关塔式配置,我们可以:

  • 在人与动物冲突的任何关键区域周围设置地理范围

O使用仪表板数据网关,我们可以:

  • 通过网关监控、传感器和机器学习组合来自网关、项圈和事件的数据,并将它们发送到云仪表板。

O有了活动历史,我们可以:

  • 当项圈不在任何网关塔的范围内时,存储通过传感器检测到的大象活动以进行广播。

O借助机器学习历史,我们可以:

  • 存储事件、行为和环境预测。这些可以为大象更复杂的行为提供短期和长期的见解。

O通过添加一些传感器读取代码,可以将来自项圈的真实传感器数据通过给定的代码推送到网关。

O类似地,不同的区域背景或冲突地区特定的机器学习解决方案可以“即插即用”到这个框架中。

O还可以想象,为这一挑战编写的软件可以指导在该领域开发和部署一个强大的版本(使用更本地的语言,如 C)。

上述提出的框架可应用于:

  • 大象频繁袭击农作物的农田
  • 事故发生率较高的铁路轨道路段
  • 看到人象冲突的保护区边界
  • 盗猎风险高的森林区域
  • 对人类危害很大的种植园道路
  • 大象一般监测的森林观察点
  • 与人类发生冲突的其他濒危物种的类似设置。

代码

该代码已使用以下功能编写:

  • 从 JSON 文件中读取网关塔配置信息。
  • 监控 JSON 文件中定义的塔的地理周长。
  • 当大象项圈在范围内并突破定义的边界时生成事件消息。这是通过检查大象项圈位置与周边四个侧面的交叉轨道距离来完成的。到目前为止,这适用于矩形周长,但不适用于任何四边形多边形。
  • 本地和仪表板通知的不同事件消息生成。
  • 将数据(包含塔、项圈和事件信息)从设备发送到 IoT Connect 仪表板

添加了以下函数来模拟传感器和 LoRa 和蓝牙设备之间的通信

数据

实时衣领数据示例:

{
  "collar_id": "Elephant214KLIN",
  "animal_species": "Elephant",
  "animal_name": "yaanai",
  "animal_position": {
    "latitude": 8.969345,
    "longitude": 77.130787
  },
  "orientation": "North",
  "activity": {
    "current_state": "WALKING",
    "mag_orientation": "UPRIGHT",
    "duration": 13.5,
    "acceleration": {
      "x-axis": 0.5,
      "y-axis": 0.21,
      "z-axis": 0.03
    }
  },
  "sensor_events": [
    {
      "level": "WARNING",
      "event": "Low battery",
      "value": 9
    }
  ],
  "tiny_ml_detected_events": [
    {
      "level": "DANGER",
      "event": "Firecracker sounds detected",
      "confidence": 87.5
    },
    {
      "level": "ALERT",
      "event": "Human voices detected",
      "confidence": 91.2
    }
  ],
  "collar_charge": 75,
  "last_gateway_sync": "2020-10-25 15:27:13"
}

在这个数据结构中,我们已经包含了字段:“animal_position”和纬度和经度。出于此模拟的目的,将其包括在内。实际部署时的领口位置将由连接LoRa Cloud的网关塔计算。

仪表板云数据的示例网关:

{
  "dataArray": [
    {
      "data": {
        "tower_id": "FarmlandGateway1",
        "tower_area": "Theni",
        "tower_position": {
          "latitude": 8.955328,
          "longitude": 77.13456
        },
        "tower_type": "FARM_LAND_TOWER",
        "tower_zone": "CONFLICT",
        "event_message": {
          "level": "WARNING",
          "text": "Yaanai inside FarmlandGateway1 warning perimeter"
        }
      },
      "uniqueId": "FarmlandGateway1",
      "time": "2020-10-27 19:12:34"
    },
    {
      "data": {
        "collar_id": "Elephant214KLIN",
        "animal_species": "Elephant",
        "animal_name": "yaanai",
        "animal_position": {
          "latitude": 8.969345,
          "longitude": 77.130787
        },
        "orientation": "North",
        "activity": {
          "current_state": "WALKING",
          "mag_orientation": "UPRIGHT",
          "duration": 13.5,
          "acceleration": {
            "x-axis": 0.5,
            "y-axis": 0.21,
            "z-axis": 0.03
          }
        },
        "collar_charge": 75,
        "last_gateway_sync": "2020-10-25 15:27:13"
      },
      "uniqueId": "collarInfo",
      "time": "2020-10-27 19:12:34"
    }
  ]
}

样本活动历史数据:

{
  "collar_id": "Elephant214KLIN",
  "animal_species": "Elephant",
  "animal_name": "yaanai",
  "activity_log": [
  	{
  	  "timestamp": "2020-10-25 15:21:45",
  	  "state" : "RESTING",
  	  "duration" : 27.5,
  	  "orientation" : "UPRIGHT",
  	  "acceleration": {
	      "x-axis": 0.01,
	      "y-axis": 0.03,
	      "z-axis": 0.00
	    },
	  "mag_orientation": "North"  
  	},
  	{
  	  "timestamp": "2020-10-25 15:21:45",
  	  "state" : "RESTING",
  	  "duration" : 27.5,
  	  "orientation" : "UPRIGHT",
  	  "acceleration": {
	      "x-axis": 0.01,
	      "y-axis": 0.03,
	      "z-axis": 0.00
	    },
	  "mag_orientation": "North"  
  	},
  	{
  	  "timestamp": "2020-10-25 15:21:45",
  	  "state" : "RESTING",
  	  "duration" : 27.5,
  	  "orientation" : "UPRIGHT",
  	  "acceleration": {
	      "x-axis": 0.01,
	      "y-axis": 0.03,
	      "z-axis": 0.00
	    },
	  "mag_orientation": "North"  
  	}
  }

领子数据的机器学习历史示例:

{
  "collar_id": "Elephant214KLIN",
  "animal_species": "Elephant",
  "animal_name": "yaanai",
  "ml_prediction_log": [
    {
      "timestamp": "2020-10-25 15:21:45",
      "event_prediction": {
        "event": "WITH_HERD",
        "level": "INFO",
        "confidence": 94.7
      },
      "beaviour_prediction": {
        "behaviour": "Agitated",
        "confidence": 56.2
      },
      "environment_prediction": {
        "environment": "RIVER_BANK",
        "confidence": 65.3
      }
    },
    {
      "timestamp": "2020-10-25 15:45:06",
      "event_prediction": {
        "event": "WITH_HERD",
        "level": "INFO",
        "confidence": 95.1
      },
      "beaviour_prediction": {
        "behaviour": "Normal",
        "confidence": 86.2
      },
      "environment_prediction": {
        "environment": "RIVER_BANK",
        "confidence": 43.4
      }
    },
    {
      "timestamp": "2020-10-25 16:23:21",
      "event_prediction": {
        "event": "WITH_HERD",
        "level": "INFO",
        "confidence": 97.8
      },
      "beaviour_prediction": {
        "behaviour": "Normal",
        "confidence": 86.2
      },
      "environment_prediction": {
        "environment": "THICK_FOREST",
        "confidence": 43.4
      }
    }
  ]
} 

模拟

使用该项目中包含的代码和示例数据,我们可以模拟:

  • 一头或多头大象移动并广播实时项圈信息。
  • 一个或多个网关塔监听领广播。
  • 基于周界、传感器和 ML 的事件。

该项目包括两个可重复的模拟。

场景一:大象离开保护区穿越铁轨

对于本次演示,我们选择了位于印度喀拉拉邦 Edapalayam 的地点。这里有一条穿过森林区域的铁路轨道。增加了两座塔来监控这个潜在的冲突区。

poYBAGNY496AXs29AAHaYZySyeU819.png
模拟的选定位置;带注释的
 

一头大象离开保护区,穿过铁轨,前往对面森林的模拟路径:

pYYBAGNY4-GABJc9AAFsWQ9M2s4274.png
大象的模拟路径
 

这些塔已经配置了警告和警报周边。但是,它们的行为不同。

  • Sanctuary 边缘塔在大象项圈离开警告/警报范围时发出通知。
  • 当大象项圈在警告/警报范围内时,铁路塔会发出通知。

两个塔的警告和警报区域的表示。

poYBAGNY4-WAFn5fAAKybzV7XcQ682.png
两座塔的想象周长和范围
 

要重现此模拟,您需要以下内容:

第 1 步:Avnet IoT Connect 仪表板设置。

在Avnet IoT Connect上设置一个帐户在 Avnet IoT Dashboard 上设置网关设备。该文档将指导您创建模板、网关设备、设置仪表板等。仪表板上配置的网关设备 ID 应与推送到云的数据中的唯一 ID 匹配。还有关于为发送到 IoT Connect 的数据中的事件设置规则匹配的文档。

模板设备的规则可以通过以下方式配置:

poYBAGNY4-iAAFq3AAFlw9Z3958620.png
在 Avnet 上为模板设备配置规则
 

 

为此模拟设置的仪表板:

poYBAGNY4-yAQ75_AAIo2lcu6VU088.png
安富利物联网连接仪表板
 

第 2 步:一台计算机和(或)一个 RaspberryPi。

模拟大象路径已编号为 1 至 8。已添加农田门户塔。

pYYBAGNY4-6AIjOlAABSxuNjxcY187.png
编号为 1 至 8 的农场附近的大象运动以供订购
 

塔的配置周长和范围如下所示:

 

pYYBAGNY4_GABkk-AADL_1S9Ngs770.png
具有配置周长和范围以及大象路径的农场网关塔
 

为了重现这个模拟,前一个模拟的步骤 1 到 4 是相同的。

第 5 步:LoRa 范围

对于此模拟,塔的 LoRa 范围为 1200 米。lora_range在 中的变量中检查此值edge_gateway_tower.py

第 6 步:运行模拟

从命令行,可以使用以下命令启动塔:

python edge_gateway_tower.py farm_land_tower.json

对于您想要的机器的衣领模拟,执行:

python roaming_elephant_simulation.py  farm_with_sensor_ml_events_collar_path.json

模拟现在应该正在运行。在执行塔代码的控制台中,您应该会看到本地边界警报。在 Avnet IoT Connect 仪表板中,您应该会看到有关边界、传感器和 ML 检测到的通知的仪表板消息。您可以为模板设备配置规则以在事件匹配规则时显示 UI 警报。

poYBAGNY4_WARYXeAAJI2Vq_WhE612.png
模拟过程中仪表板的屏幕截图
 

 

参考资源:

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !