×

LoRa基本模块的输入和监视器屏蔽

消耗积分:2 | 格式:zip | 大小:0.01 MB | 2022-08-04

王桂英

分享资料个

PCB图如下:
pYYBAGK5FACAUF87AABI5Cks3MI725.jpg
poYBAGK5FAOAWKkCAACrp7CdseQ534.jpg

 

描述

LoRa-Base 的 IO-Shield

LoRa 基本模块的输入和监视器屏蔽

pYYBAGK5FA2ACFoTAACToY1MhAw062.jpg

介绍

与我通常的 PCB 项目相比,这是一个简单的项目。这是完成我的 LoRa 监控系统的一系列设计之一,我计划在农场使用它来监控各个区域,例如入侵检测、电池电量等。

该防护罩设计用于安装在第一个LoRa 基本模块的顶部。它旨在实现与红外光束传感器、XYC-WB-DC 运动检测器的简单、整洁的连接,以及监控太阳能逆变器的电池电量(农场完全离网)。

运动传感器提供 +3v 信号,在运动检测时变为高电平,而红外光束传感器提供继电器触点,可用于提供类似的电压信号。由于我更喜欢​​在我的输入上使用上拉逻辑,我决定实现一个简单的晶体管威廉希尔官方网站 ,其中输入将切换晶体管的基极,然后在打开时将输入拉到信号地。本威廉希尔官方网站 采用S8050三极管,基极通过10k电阻下拉至信号地防止浮空,基极上接1k至1k8的限流电阻。集电极以及 LoRa 基本模块上的 D7 和 D8 GPIO 引脚通过 10k 电阻被拉高至 Vcc5v。

pYYBAGK5FBCANqprAAB5G5cZBYU735.jpg

电压监控是通过 LoRa 基本模块上的 ADC 完成的,4 个电池级别(12v、24v、36v 和 56v)中的每一个都通过电阻分压器网络连接到相关的 ADC 通道,以将各自的电压降低到电平在 0 到 5v 之间。(这是因为 ATMEGA328p 上的 ADC 只能处理 5.0v 的最大电压)

选择电阻器以提供稍大的输入电压范围,以适应太阳能充电器的波动(在非常明亮的晴天有时会上升到 65v)。我决定不直接在 PCB 上添加任何限流电阻,因为它们肯定会很笨重。它们将改为从外部连接到合适的散热器等......

pYYBAGK5FBOAAxZAAACrrCrp2-k863.jpg

由于这个 PBC 仍处于原型阶段,而且我的 LoRa 监控设备将来肯定会进行相当多的修改,我通过屏蔽板上的单独接头提供了对所有未使用的 GPIO 引脚的访问。最值得注意的是 SPI 头,用于对 ATMEGA328P MCU 进行编程,或连接其他 SPI 设备(我正在为该设备开发 CAN 总线插件,以节省需要安装的物理无线电节点的数量),UART 头,以及 I2C、A6、A7 和其他数字 IO 引脚(D3~、D4、D5~)。

在上面的照片中,您会注意到 UART 引脚上有一个额外的标头,这是为了帮助我在逻辑分析仪上进行调试而添加的,因为我在唤醒 ATMEGA328P 并让它通过 LoRa 发送事件时遇到了一个小问题。它会唤醒,通过 UART 打印状态消息,但永远不会执行实际的 LoRa 部分!现在已经修复了,并且标题已删除...

屏蔽的示意图如下。正如您将看到的,它确实非常简单。

poYBAGK5FBaAOA2FAABU4hxXm4o942.png

软件和库

LoRa 基本模块设计为使用Sandeep Mistry 的 LoRa 库。该 PCB 的其他版本也将直接支持 JGromes 的RadioLib 库。

提醒:

RA-02 模块 (SX1278) 与 ATMEGA328p 的连接如下:

NSS 到 D10 (CE)

MOSI 到 D11 (MOSI)

味噌至 D12 (味噌)

SCK 至 D13 (SCK)

重置为 D9

DIO0 到 D2(我们需要一个硬件中断引脚)。

当前版本的 LoRa 基本模块上没有断开 DIO1 到 DIO5

也无法直接访问 LoRa 基本模块或输入和监视器屏蔽上的引脚 D10、D9 和 D2。

如果您决定破解设备并添加对任何未断开引脚的访问权限,请记住在 ATMEGA328 和 SX1278 之间使用逻辑电平转换器,因为它们在不同的电压下运行,并且 SX1278 不支持 5v任何 IO 引脚!

代码

Sandeep Mistry LoRa 图书馆

https://github.com/sandeepmistry/arduino-LoRa

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

评论(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:'LoRa基本模块的输入和监视器屏蔽',//标题 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);