×

利用Nano 33 BLE Sense板功能尾随大象

消耗积分:0 | 格式:zip | 大小:0.05 MB | 2022-10-31

倪山骋

分享资料个

描述

大象偷猎统计

非洲象分为两个不同的物种:非洲丛林象,最普遍的物种,以及较小的非洲森林象。丛林象是世界上最大的陆生动物。在两种非洲象中,雄性和雌性都有象牙。这些是经过改良的门牙,可以长到几十公斤,用于大象日常生活中的各种基本用途。这些象牙是象牙的重要来源,用于象牙饰品和珠宝。

在过去的 100 年里,偷猎、栖息地丧失和人类冲突导致非洲数百万大象遭受毁灭性损失。

例如,在乍得的扎库马国家公园,由于偷猎,在短短八年内,大象的数量从 4、300 头骤降至 450 头。

pYYBAGNY4_qAEZI5AADCjp0uwS8859.png
 
poYBAGNY4_yAJ0WUAACZlwZPbhM520.png
 
pYYBAGNY4_-ASlg6AAC_y3NrdrQ323.png
 
poYBAGNY5AGASRllAAB2enu5hBs566.png
 
poYBAGNY5ASAcfXxAAHv98Dp8Os585.png
 

硬件

建议的硬件(Packet'u'Tracker)利用了 Nano 33 BLE Sense 板的功能,因为板载无数传感器和对机器学习的舒适支持,并结合了 BLE5.0。

pYYBAGNY5AeAMrcKAACZAF9ww9Y972.png
 

除了上述之外,Packet'u' 还结合了 SX1276-(IN867) LoRa 模块、U-Blox NEO-6M GPS 接收器、FET 供电的振动盘(hap-feed)以及用于 GPS 和 LoRa 的外部天线,通过 3x1/ 供电2 节 AA 锂亚硫酰氯原电池(非常适合此用途,如网络研讨会中所述)。

pYYBAGNY5AqAdN7iAAC0-zvIMMk455.png
硬件(原型在环)
 

这个想法是将 Packet'u'Tracker 安装在大象的尾巴上,这与传统的颈部项圈不同。!!这个想法不应该被误判为硬件安全或动物不适!

采用上述方法的主要原因是:较高的附着成本,轻微的持续负载,即使对于陆地上最大的动物(想象一下在您的脖子上扛一块砖头十年::正常的配重和腰带数量超过10 公斤),动物行为的最小输入。

与之相反,该设备应该更轻、更隐蔽并提供动物行为分析的主动方法。

通过将传感器单元直接安装在尾巴上,人们可以获得行为洞察力,例如:大象对尾巴运动的控制程度非凡,当大象的尾巴左右摆动时,它会很高兴。一旦尾巴变得僵硬,通常向一侧伸出,这意味着大象很焦虑。在这一点上,它甚至可能开始从你身边跑开,通常会在它的肩膀上旋转以注视你,因为它试图逃跑。

上述事实可以与传感器融合和机器学习模型结合使用,以预测遇险模式或动物行为。

Packet'u'的特点

  • 获取 GPS 定位/天(默认)或 2 个定位定位(达到特定条件)。
  • 广播原始加速度计以及 Roll、Pitch 和 Yaw 值。
  • 根据颜色传感器 (APDS9960) 的值预测环境光水平。
  • 已提供振动盘(实验性)以确认感官反馈(达到特定条件)。
  • 广播编程的大象 ID 和环境温度值 (HTS221)。
  • 如果目标(装备有 Packet'u' 的大象)达到地理围栏的区域外限制,则参考并报告 LoRa RSSI 信号,以提供比较 GPS 位置。
  • 如果目标在指定的时间间隔内保持零活动,则通过振动盘产生本地反馈以调用目标的感觉反馈,如果失败,则将紧急信标与当前位置、定位和附加信息一起发送到网关卫星数据。

并与网关建立 LoRa NLOS/LOS 链路。

网关的特点

  • 使用 Raspberry Pi 3B+ 作为传入 Packet'u' 信号的处理器。
  • 基于 ESP32 的 14 通道(单独)扫描 25-30m 半径内的 wifi 信号并记录到 Wireshark 进行后处理和分析。

由 Stefan Kremser aka Spacehuhn 编写的 PacketMonitor32,(为了通过 SerialShark 脚本在 WinOS 上对 Wireshark 的分叉支持进行了轻微修改。)

  • 基于 Realtek RTL2832 的软件定义无线电与PiSDR OS (支持 Gpredict、rpitx、Soapy Remote、GNURadio 等功能)相结合,可用于捕获和嗅探 RF 信号(针对 GSM/CDMA 载波信号执行的测试)以检测人类存在于特定扫描区域内。
  • 通过专用的 STMicroelectronics B-L072Z-LRWAN(Helium Dev base board)与 Packet'u' 建立 LoRa 链接。

测试和构建。

poYBAGNY5A2AXpW3AAD_AAtrSpg933.png
 
pYYBAGNY5A-AGjjvAAC1EmNn0Ho313.png
Packet'u' [Nano33+SX1276+Vib.disc]
 
poYBAGNY5BGAC_cBAACmfdj0mn8285.png
Packet'u'(返回)[NEO-6M GPS Rx+ANT]
 

设置物联网连接

1. 注册 Avnet IoT Connect。

2. 安装 IoT Connect Python SDK(标准支持对称密钥和基于 x509 证书的 Azure iothub 身份验证),(用于 Raspberry Pi)推荐 Python 3(/2)。

3. Pi上电并登录终端,进入IoTConnect文件夹,使用pip3安装iotconnect SDK

cd /boot/iotconnect-sdk-python-v2.0-1/iotconnect-sdk

pip3 安装 iotconnect-sdk-2.0.tar.gz

4. 在 IoTConnect 中设置设备仪表板:

  • 在 IoTConnect 仪表板中创建模板。设备 -> 模板 -> 创建模板。
  • 填写信息后保存模板。
  • 创建属性示例并保存。
  • 创建双属性并保存。
  • 在 IotConnect 仪表板中,转到设备 -> 设备 -> 创建设备。
  • 使唯一 ID 和显示名称对您来说是唯一的。选择您的实体并选择 Basic_1 模板。选择保存。完毕。

5. 运行 IoTConnect 示例(从 SDK 示例文件夹运行example_py3.py或 firmware.py)。

python3./example_py3.py

6. 从 Company Profile 选项卡获取 UniqueID 和 CPID。

7. 片刻之后,您将在 IoT Connect 仪表板中看到数据提示。此外,您还可以访问 Twin Property 或根据要求创建自定义仪表板。

pYYBAGNY5BSAXUA5AAD8C7jNHdc148.png
 

 

poYBAGNY5BeAPf3aAADEmsfUG5w999.png
 

 

pYYBAGNY5BmAe7h_AAEUzNkl_mI191.png
 

- 此外,根据方便,我们还可以将设备数据通过管道传输到 IBM Watson Cloud。

网关可能会哭..

poYBAGNY5ByALSlwAAINQNUEf1g121.png
ESP32 在附近传输可用的 WiFi 数据包。
 
pYYBAGNY5B6AZEGPAAFBnLNPd-Y016.png
装配无线电。
 
poYBAGNY5CKAFhb1AADz_TD8v0Q920.png
展望 PiSDR 桌面 [SETI 风格]!
 
poYBAGNY5CWAE2U6AALVLqCjPyc477.png
接收 Packet'u' 日志
 
poYBAGNY5CiAHH1OAAIOljAtOWo446.png
在 RPi 上运行 Gpredict 和本地网络嗅探器实例
 
poYBAGNY5CuARtqmAAGiD50dTAg276.png
就在那里!(寻找载波信号峰值)
 

结论

进一步改进硬件和(可能利用)Lacuna Network 和基于云卸载星历的位置估计的能力仍然是实现的梦想。


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

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'利用Nano 33 BLE Sense板功能尾随大象',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);