×

Netduino环境传感器项目

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

李玉兰

分享资料个

描述

描述

随着我们对周围环境的了解越来越多,我们需要更多关于它的信息。这种通过 Arduino 兼容引脚直接插入 Netduino 的屏蔽能够感应一大堆环境变量,包括测量 CO2 和 VOC 的数字气体传感器、测量气压和高度的高度计、单线温度传感器 DS18B20(非 I2C ),温度湿度传感器和最后但并非最不重要的电压电流传感器,它能够感应输入功率或使用电流表上的夹子,您可以感应您的房屋用电量。所有这些都在一个带有微型 LCD 的小板上实时发生的事情或在您离开时在线观看您的房子。

该项目由多个部分组成:

1. 传感器和威廉希尔官方网站 板设计

2. 焊接你的威廉希尔官方网站 板

3 编程您的 Netduino WiFi 3

4. 盒子设计和建造

1. 传感器和威廉希尔官方网站 板设计

我设计了这个板子,所以它与 NETDUINO WIFI 兼容

如果可以进行编辑,我将包含 Fritzing 文件以供编辑和您的享受。

 

 

 
poYBAGNomfiAVlR-AAGVUpVfOcs625.png
熔接设计
 

 

 
poYBAGNomf6AcDoGAAuMJ-vY4oI77.jpeg
来自 PCBway.com 的印刷威廉希尔官方网站 板
 

董事会的传感器

CCS811

CCS811 是一种超低功耗数字气体传感器解决方案,它集成了金属氧化物 (MOX) 气体传感器,可通过微控制器单元 (MCU) 检测各种挥发性有机化合物 (VOC),用于室内空气质量监测,其中包括模数转换器 (ADC) 和 I²C 接口。CCS811 基于 ams 独特的微热板技术,可为气体传感器提供高度可靠的解决方案、非常快的循环时间和显着降低平均功耗。集成的 MCU 管理传感器驱动器模式和测量。I²C 数字接口显着简化了硬件和软件设计,加快了产品上市时间。CCS811 支持智能算法来处理原始传感器测量值以输出 TVOC 值或等效 CO2 (eCO2) 水平,其中 VOC 的主要原因来自人类。CCS811 支持多种测量模式,这些模式针对主动传感器测量期间的低功耗和空闲模式进行了优化,可延长便携式应用中的电池寿命。CCS811 采用 10 引脚 2.7mm x 4.0mm x 1.1mm、0.6mm 间距 LGA 封装。

DS18B20

DS18B20 数字温度计提供 9 位至 12 位摄氏温度测量,并具有报警功能,具有非易失性用户可编程上下触发点。DS18B20 通过 1-Wire 总线进行通信,根据定义,该总线只需要一根数据线(和地线)即可与中央微处理器通信。此外,DS18B20 可以直接从数据线获取电源(“寄生电源”),无需外部电源。每个 DS18B20 都有一个唯一的 64 位串行代码,允许多个 DS18B20 在同一条 1-Wire 总线上工作。因此,使用一个微处理器来控制分布在大面积上的许多 DS18B20 是很简单的。可从此功能中受益的应用包括 HVAC 环境控制、建筑物、设备或机械内的温度监控系统,

Si7021 I2C

Si7021 I2C 湿度和温度传感器是一款集成了湿度和温度传感器元件、模数转换器、信号处理、校准数据和 I2C 接口的单片 CMOS IC。使用工业标准、低 K 聚合物电介质来检测湿度的专利用途使构建具有低漂移和迟滞以及出色长期稳定性的低功耗、单片 CMOS 传感器 IC 成为可能。湿度和温度传感器经过工厂校准,校准数据存储在片上非易失性存储器中。这可确保传感器完全可互换,无需重新校准或更改软件。Si7021 采用 3x3 mm DFN 封装,可回流焊接。它可以用作 3x3 mm DFN-6 封装中现有 RH/温度传感器的硬件和软件兼容的直接升级,具有在更宽范围内的精确感测和更低的功耗。可选的工厂安装盖提供了一种薄型、方便的方法,可在组装期间(例如,回流焊接)和产品的整个生命周期保护传感器,不包括液体(疏水/疏油)和微粒。Si7021 提供精确、低功耗、工厂校准的数字解决方案,非常适合测量湿度、露点和温度,应用范围从 HVAC/R 和资产跟踪到工业和消费平台。在组装期间(例如,回流焊接)和产品的整个生命周期保护传感器的方便方法,不包括液体(疏水/疏油)和微粒。Si7021 提供精确、低功耗、工厂校准的数字解决方案,非常适合测量湿度、露点和温度,应用范围从 HVAC/R 和资产跟踪到工业和消费平台。在组装期间(例如,回流焊接)和产品的整个生命周期保护传感器的方便方法,不包括液体(疏水/疏油)和微粒。Si7021 提供精确、低功耗、工厂校准的数字解决方案,非常适合测量湿度、露点和温度,应用范围从 HVAC/R 和资产跟踪到工业和消费平台。

LTC®2945

LTC®2945 是一款轨到轨系统监视器,用于测量电流、电压和功率。它的工作电压范围为 2.7V 至 80V,并包括一个用于 80V 以上电源的分流稳压器,以便灵活选择输入电源。0V 至 80V 的电流测量范围与输入电源无关。一个精度为 0.75% 的板载 12 位 ADC 测量负载电流、输入电压和辅助外部电压。通过将测得的 12 位负载电流和输入电压数据进行数字相乘,生成 24 位功率值。存储最小值和最大值,并且带有可编程阈值的超量程警报最大限度地减少了对软件轮询的需求。数据通过标准 I2C 接口报告。关断模式将功耗降低到 20µA。LTC2945 I2C 接口包括用于标准或光隔离 I2C 连接的独立数据输入和输出引脚。LTC2945-1 具有一个反相数据输出,用于与反相光隔离器配置一起使用。

MPL3115A2

MPL3115A2 是一款紧凑型压阻式绝对压力传感器,具有 I2C 数字接口。MPL3115A2 具有 20 kPa 至 110 kPa 的宽工作范围,该范围涵盖了地球上的所有表面高度。MEMS 使用片上温度传感器进行温度补偿。压力和温度数据被馈送到高分辨率 ADC 中,以提供完全补偿和数字化的输出,输出以帕斯卡为单位的压力和以°C 为单位的温度。然后可以使用第 9.1.3 节“压力/高度”中提供的以米为单位的公式将补偿的压力输出转换为高度。MPL3115A2 中的内部处理消除了系统 MCU 的补偿和单位转换负载,简化了系统设计。MPL3115A2 的高级 ASIC 具有多种用户可编程模式,例如省电、中断和自主数据采集模式,包括编程的采集周期时序和仅轮询模式。对于稳定的 10 cm 输出分辨率,典型的有源电源电流为每测量秒 40 μA。

物料清单和购买地点

 

 
 
 
 
poYBAGNomgOATbL0AAR4WyxYYbg154.png
 
1 / 3Digikey 购物车
 

********注意 ****** 请注意您购买的电压调节器..见下文

 

 
 
 
 
poYBAGNomgeAbHCcAAQdf0ZdPq499.jpeg
 
1 / 2请注意
 

 

2. 焊接你的威廉希尔官方网站 板

 
poYBAGNomimAItGwAAvQgA_8KQk65.jpeg
印刷威廉希尔官方网站 板
 

 

 

 
poYBAGNomjCARLD-AAp2s0g2TsA76.jpeg
少量涂抹焊膏
 

注意:我只将焊膏涂在电阻器和电容器的一侧,因为它们更容易焊接。

 
pYYBAGNomjWAXSjpAArzldNd5bM04.jpeg
准备烤箱
 

 

 
pYYBAGNomjuAJInPAAeDXggr_Hs45.jpeg
预热
 

 

 
poYBAGNomkGAXTkDAAb8cUxBRh454.jpeg
注意回流焊散开
 

 

 
poYBAGNomkeAcs9tAAl7Q_rkF_Q88.jpeg
当您看到焊料收缩并变成银时,等待 20 秒,然后小心地从烤箱中取出
 

 

 
pYYBAGNomlCATON8AAsumdRi7ik75.jpeg
清理干净,准备焊接小块的另一面
 

 

 
pYYBAGNomleADK5FAAeo4QtD80Y46.jpeg
现在焊接通孔件
 

 

 
poYBAGNoml-AB7YwAAfKmIaO4RU17.jpeg
平切侧铣刀是必需品
 

 

 
poYBAGNommWAIMLwAAh57c6Ja_k80.jpeg
焊接 DS181 温度传感器
 

 

 
 
 
 
pYYBAGNompSAAd5XAAiDmb2cBj464.jpeg
 
1 / 2焊接
 

 

 
poYBAGNompmAG_-CAApGBZX64jA02.jpeg
完成并准备好进行测试
 

插入 Netduino

 
pYYBAGNomp-APJNWAAkQwcIhGP096.jpeg
通电
 

3. 为您的 Netduino WiFi 3 编程

提交时请注意,我的 1/2 的 I2C 传感器和 Adafruit LCD 显示器缺少一些草图文档。但我会努力坚持下去,尽可能多地编程,并提供必要的指导……我是 C# 新手,所以这会很有趣……

第一步是按照入门步骤下载并安装 Microsoft Visual Studio 2015 而不是 2017 并下载必要的程序..

打开 Visual Studio 并创建一个新项目..

 

 
poYBAGNomqKANIRrAAFib7SdYmw998.png
 

 

 
poYBAGNomqaAfzSMAAFzeMsqneQ582.png
 

 

 
pYYBAGNomquAdzh6AAFOJXbpGj8227.png
 

 

 
pYYBAGNomq-ACkk5AAFO2ZbCnlg034.png
 

 

 
poYBAGNomrKAIGjaAAFF8_CtBY8186.png
 

 

 

 
poYBAGNomraAQh4KAAFbNmYlAiU524.png
 

 

 
pYYBAGNomruAVoa8AAFjPaA-GwA400.png
 

这是我在该程序的所有 200 次尝试中缺少的部分,您需要在此处添加您将在草图中使用的 NuGet 包。

 
poYBAGNomr2ABJd3AAGbJK6IAe8005.png
 

 

 
pYYBAGNomsCAZvn8AAFccF7gtUs219.png
 

 

 
poYBAGNomsOAGadLAAFl3Yl4G4I014.png
项目所有已安装的依赖项
 

接下来是Programing双击program.cs

 

 
pYYBAGNomsiAROoLAAFeMP-REBk574.png
 

它会打开这个屏幕

 

 
poYBAGNomsyAPh1RAAFBlSkPsmw821.png
 

 

我将 Blinky 粘贴到草图中并上传以测试连接,这将是程序的开始

using System.Threading;
using Microsoft.SPOT.Hardware;
using SecretLabs.NETMF.Hardware.Netduino;
namespace Blinky{ 
public class Program   { 
public static void Main() { 
// Create an output port (a port that can be written to)  
// and wire it to the onboard LED           
OutputPort led = new OutputPort(Pins.ONBOARD_LED, false); 
// run forever 
while (true)          
 {             
led.Write(true); // turn on the LED               
Thread.Sleep(250); // sleep for 250ms               
led.Write(false); // turn off the LED              
 Thread.Sleep(250); // sleep for 250ms         
  }       
}  
 }
}

点击运行后,调试窗口中的输出应该是这样的......如果它没有修复错误并重试:)

 
poYBAGNomtCAa1pXAAKwU4nSbcA674.png
构建程序并将其发送到 Netduino
 

重新启动您的 Netduino

http://netduino.foundation/Library/Sensors/Barometric/MPL3115A2/

要集成的高度计代码

using System.Threading;
using Microsoft.SPOT;
using Netduino.Foundation.Sensors.Barometric;

namespace MPL3115A2Test 
{  
public class Program 
{ 
public static void Main() 
{ 
Debug.Print("MPL3115A2 Polling Example");
 var mpl3115a2 = new MPL3115A2(updateInterval: 0);
 while (true) { mpl3115a2.Update(); 
Debug.Print("Temperature: " + mpl3115a2.Temperature.ToString("f2") + ", Pressure: " + mpl3115a2.Pressure.ToString("f2")); Thread.Sleep(1000);
 } 
} 
}
}

 

 

4. 盒子设计和建造

 
poYBAGNomtWAH9r1AAfYZBq_QoE722.jpg
 

 

 

 
poYBAGNomtuARBS3AAjPthjmoNQ73.jpeg
漂亮的紧凑盒子
 

 

 
pYYBAGNomuGABgYcAAhFHzee7dg50.jpeg
如果需要,用于电源输入的前端口
 

 

 
pYYBAGNomuiAW6kzAAgQp_2aoiE21.jpeg
用于添加传感器的后端口
 
pYYBAGNomvCAKxmHAAQuOV4j-8c300.png
 

 

我将电线而不是接头焊接到屏蔽层上。

 
poYBAGNomvaAZoR5AAg-J5QHEU866.jpeg
焊接接线
 

硅用于将其固定在盖子上。

 
poYBAGNomvuAOr-IAApj2Z1qjhk661.jpg
 

 


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

评论(0)
发评论

下载排行榜

全部0条评论

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

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"//m.obk20.com/www/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:'Netduino环境传感器项目',//标题 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:"https://www.elecfans.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);