×

无人机气象站开源分享

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

尤立虔

分享资料个

描述

 

该项目包括一个无人机套件,其中包括一个电子设备,用作气象站,用于监测环境温度、大气压力和湿度的值。得益于Arduino/Genuino MKR1000 ,整个设备都能正常工作

电子设备内部将具有 GPS 定位器,以便了解不同传感器的模拟读数的准确位置。

获取的值将保存在 microSD 上的KML文件中,您只需导入KML文件即可使用 Google 地球或 Google 地图查看它们。

可以使用 Smatphone、平板电脑或 PC 通过 Wi-Fi 热点实时监控它们。

除了气象数据,该设备还可以获取高度、地理坐标和无人机的速度(以 m/s 为单位)。

由于 mkr1000 板的潜力,该设备功耗极低,可以由 3.7V LiPo 供电。

综上所述,该设备将具有以下特点:

您将能够获得:

  • 温度
  • 气压
  • 湿度
  • 速度
  • 高空无人机
  • 地理坐标

购物清单

在继续项目的组装之前,请确保您具有以下组件:

  • 1x Arduino MKR1000(或 Arduino Zero + Arduino WiFi Shield 101
  • 1x MicroSD 分线板
  • 1x DHT22 或 DHT21 或 DHT11
  • 1 个 BMP180
  • 1 个 GPS UBLOX NEO-7M 或 NEO-6M
  • 3x LED(红色、黄色和绿色)
  • 2x 电阻 4.7k
  • 1x 电阻 10k
  • 1 个按钮
  • 1x 开关
  • 金属丝

原理图

这里是组装整个项目的示意图:

poYBAGNYsNaAMSUWAAT3J_R65BM179.png
标题(可选)
 

完成所有连接后,我建议在 GitHub 上下载我的存储库的整个软件部分,并将库复制到 Documents/Arduino/libraries/...

在 GitHub 上,您将找到要上传到 Arduino/Genuine MKR1000的草图 ( WeatherStation_v1.0.ino )。

MKR1000 板可通过 USB 或通过至少 3.7V 和 700mAh 的 Lipo 电池供电。

整个项目通电后必须等待 GPS 信号。

GPS 捕获卫星后,您会注意到绿色 LED 亮起。

之后,如果一切顺利,您必须按下按钮创建KML文件并开始将数据写入 SD。在此阶段,黄色 LED 将保持亮起,直到再次按下按钮以停止在 SD 上写入。红色 LED 指示传感器和 microSD 与 Arduino 的通信错误。如果您要打开红色 LED,我建议您检查连接。

在任何情况下,为了更快地识别问题,您可以通过 USB 将 MKR1000 板连接到 PC,然后打开出现在 Arduino IDE 上的串行监视器。

串行监视器也可用于调试目的。

转变

Switch 用于选择是通过 Smatphone、平板电脑或带 WiFi 的 PC 在 HTML 页面上显示来自传感器和 GPS 的数据,还是决定将数据写入 SD。

通过将开关设置为HIGH ,您可以按照以下步骤通过网页查看传感器数据和 GPS:

    1. 通过设备连接到Wi-Fi热点“WeatherStation”。

    2.打开任何浏览器

    3.在地址栏中输入以下 IP:192.168.1.1

    4.享受:) 

结果:

pYYBAGNYsNmAdyWzAAC8xW6zgQE207.png
 

SD 上的KML文件可以直接从 Google 地球打开或按照本指南导入到 Google 地图上

这是谷歌地球的一个例子:

pYYBAGNYsOKAFtBhABCPnYP8c7o024.png
 

最初,该项目还旨在支持应用程序“ Windows Virtual Shield for Arduino ”,但由于应用程序本身存在问题,我决定暂时不实现此功能。

PS:我也实现了一个PCB,你可以在GitHub上的“ eagle ”文件夹中找到整个项目 

poYBAGNYsOeARZXvAAJQ9r2aSWY845.jpg
 

对于项目的任何问题,请随时联系或发表评论。

再见 :) ...


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

评论(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);