×

可远程监控蜂巢的开源项目

消耗积分:0 | 格式:zip | 大小:0.80 MB | 2022-11-17

郭中

分享资料个

描述

十五年来,蜜蜂一直面临灭绝的威胁。事实上,在过去的十年里,欧洲有 30% 到 40% 的蜂群死亡。这对环境来说是一个令人担忧的情况,因为蜜蜂是最重要的传粉者,因此是我们生态系统不可或缺的一部分。此外,还会出现经济问题。事实上,例如在法国,蜂蜜生产是超过 54,000 名养蜂人的额外收入,也是大约 2,000 名其他养蜂人的主要收入。

我们的目标是让专业或业余的养蜂人能够远程监控他们的蜂巢。我们的解决方案旨在为他们节省不必要的生产现场之旅,从而节省时间。我们的设备是一个连接的传感器套件,每 10 分钟收集一次数据并将其发送给养蜂人。这让他了解了他的蜂群的状态和环境的质量。与其他商业化系统相比,我们的产品易于使用且价格合理(约 150 欧元)。

研究数据

为了监控蜂巢的完整性,我们选择研究:

  • 室内温度 (+/- 0.5 °C)
  • 室外温度 (+/- 0.5 °C)
  • 室外湿度 (+/- 2%)
  • 重量(+/- 0.2 公斤)

我们还花费了大量时间研究人工智能 (AI),它能够指示是否有蜂王以及是否有任何蜜蜂。不幸的是,我们无法实现我们的神经网络 (NN),因为导出它被证明比预期的更复杂。

pYYBAGN1I_GAGPkMAAEW7RHp77I348.png
系统图
 

 

软件

Mbed 源文件可在“代码”选项卡中下载。

为了使我们的系统正常工作,我们在 Mbed 上开发了该软件。使用代码我们可以:

  • 初始化所有传感器。

对于每个传感器,我们分配了一个引脚。

poYBAGN1I_SAXtTrAAAds-pEtQg595.png
传感器初始化
 
  • 每十分钟获取每个传感器的值测量值。
室内温度:我们选择使用 DS18B20 温度传感器。事实上,这种模式已经在之前的类似项目中证明了它的效率。
 
 
 
poYBAGN1I_aARso7AAA1LcK-y3w086.png
 
1 / 2DS18B20 实施
 
室外温湿度:我们选择了DHT22温湿度传感器。
pYYBAGN1I_iAHC6dAAAPJs_piY4815.png
DHT22 实施
 
重量:我们选择使用应变仪来收集重量值。
pYYBAGN1I_qAEKmWAAAT5-IiRM0435.png
应变计实现
 
  • 将我们收集的数据发送到 Sigfox 后端。
 
 
 
poYBAGN1I_yAOOtfAAAOl1jNu8w031.png
 
1 / 2Wisol 引脚分配
 
  • 当我们不发送数据时,让微控制器进入睡眠状态。

因为 Sigfox 限制了一个人每天可以发送的消息数量,所以我们只能在 24 小时内发送 140 条消息。因此,我们只能每十分钟测量一次。

poYBAGN1JACABw-1AAAIvAuQ8J4921.png
10 分钟睡眠实施
 

人工智能培训

为了创建我们的人工智能,我们决定训练一个神经网络来分析蜂巢中的声音频率。为此,我们使用了开发平台 Edge Impulse。它使您可以毫不费力地构想具有嵌入式机器学习功能的设备。

创建 Edge Impulse 帐户和项目后,我们可以选择两种方法来训练我们的神经网络。

第一个需要使用我们按照本教程连接到 Edge Impulse 的 IoT 发现套件然后,为了开发能够识别不同声音频率的 AI,我们按照此处所述的步骤进行操作

第二种方法不需要 B-L475E-IOT01A2 板。然而,这非常耗时。事实上,在搜索和下载数据集(蜜蜂或不蜜蜂The Hiveeyes 社区)之后,每个声音样本都必须手工剪切并上传到我们的设计中。对于我们的大部分项目,我们选择了这种方法,因为我们无法直接从蜂巢中收集样本。

首先,我们创建了一个脉冲设计并设置了训练我们的 AI 所需的参数。因为我们正在处理蜜蜂,所以我们需要采用比教程中演示的更大的窗口大小。我们选择使用 MFCC 块来训练我们的神经网络,但这不是我们唯一的选择。MFE 和 Spectogram 块也可以用来训练 AI。根据所研究的频率范围,任何一个集团都可能比其他集团工作得更好。

pYYBAGN1JAKAHKEnAACild1DdB0283.png
冲动设计
 

接下来,我们确定了训练周期数、学习率和要设置的最小置信度,因为这些参数会极大地影响模型的准确性。最后,混淆矩阵显示了我们的神经网络的准确性。当我们对结果不满意时,我们上传了额外的数据并重新训练我们的模型。

pYYBAGN1JASAfr7sAABOEcoeOuY693.png
神经网络精度
 

如您所见,我们的神经网络很难识别何时有蜜蜂。由于缺乏数据和时间,我们无法对其进行重新训练。

最后一步是在我们的 STM 板上导出我们的 AI

PCB制作

包含所有源的 Kicad 项目文件可在 Schematics 选项卡中下载。

PCB制作的第一步是为每个组件制作电气原理图。

poYBAGN1JAeAZOJxAAFlZVHe8dY304.png
Kicad 电气原理图
 

之后,我们按照教程构思了我们的威廉希尔官方网站 板,并将我们的温度传感器与 Grove 连接器打印相关联,以获得更坚固的设备。

在设计印刷威廉希尔官方网站 板时,我们注意到一些引脚(D7、D8 和 A7)不允许我们收集所需的数据集。这是由于 Nucleo STM32 是如何制造的,因此在打印威廉希尔官方网站 板之前,请确保测试每个引脚。

在整个项目中,我们生产了 2 个 PCB。如前所述,起初我们希望能够研究蜂巢的声音频率。因此,我们设计并印刷了一块威廉希尔官方网站 板,可以让我们用麦克风收集声音样本。

 
 
 
poYBAGN1JAqAZsUYAAHcx45Q-k0085.png
 
1 / 2PCB - 版本 1
 

从那时起,我们不得不设计第二个来减少我们的能源消耗。考虑到当时我们辞职不实施人工智能这一事实,我们决定尽可能缩小我们的系统。

 
 
 
pYYBAGN1JA2AdgzHAAEYHUXraRA058.jpg
 
1 / 2PCB - 版本 2
 

设计完成后,我们生成了打印威廉希尔官方网站 板所需的 Gerber 文件。对于这个项目,我们可以使用台式 PCB 铣床进行所有打印,但您可以将文件发送给制造商。

Sigfox 和 Ubidots

为了从远程位置收集数据,我们使用了 Sigfox 网络。

要进行此设置,我们必须在此处激活我们的 Wisol 设备然后,我们创建并登录了一个Ubidots帐户并添加了一个新设备。

pYYBAGN1JA-AJKsqAAAw8PUxBEY824.png
 

下一步是我们按照本教程配置回调

最后,我们在 Ubidots 上创建了一个带有仪表板的用户界面,以方便数据检查。

pYYBAGN1JBKAV30IAAEmH1dD0J4801.png
用户界面 - Ubidots
 

系统能源

为了使我们的系统自主,我们选择使用电池。后者可以通过太阳能充电,这要归功于 Lipo Rider Pro 板,该板将从太阳能电池板接收到的能量转换为可存储的能量。

然后,为了给我们的系统供电,我们焊接了从 Lipo Rider Pro 到我们的 PCB 的电线。我们添加了一个 ON/OFF 开关,使我们的系统更易于使用。

为了降低能耗,我们决定使用 5 - 3.3 伏转换器 (LDO),而不是使用嵌入在控制器中的转换器。实际上,通过执行此步骤,我们能够取出微控制器底层的焊桥 SB9 和 SB14。我们还移除了 LED,如下图所示。

拆焊这些元件必须最后完成,因为之后重新编程威廉希尔官方网站 板是不可能的。

 
 
 
poYBAGN1JBWAISjqAADXtlyK-ro211.jpg
 
1 / 2Nucleo-32 板顶部布局
 

系统组装

首先,我们建议您使用双层 H 底盘来固定应变片并稳定蜂巢。一些制造商可以为您建造它。否则,你可以自己做,如下图所示。

pYYBAGN1JBeASWXJAABNWhJdBf4101.png
双H底盘
 

应变片(灰色)用螺丝固定在顶部 H 机箱(深棕色)的底部和底部的上侧(浅棕色)。我们建议使用坚固且防水的材料,例如铝。

一旦系统经过测试并处于正常工作状态,我们就选择了一个适合尺寸的密封盒。之后,我们精心布置了每个元素,以优化空间。我们必须在盒子的侧面钻孔,以便我们的传感器可以在蜂巢内读取。一旦每个组件都在其指定的位置,我们拧上盖子并热粘在传感器周围以使其防水。

 
 

 


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

评论(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:'可远程监控蜂巢的开源项目',//标题 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);