×

使用Arduino开发板构建室内花园

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

张龙祥

分享资料个

描述

现代园艺意味着用电子、比特和字节使事情变得更加复杂和艰巨。将微控制器和园艺相结合是一个非常流行的想法。我认为那是因为花园有非常简单的输入和输出,很容易让你头晕目眩。我猜人们(包括我自己)看到了一个出了名的简单和轻松的爱好,不禁感​​到不得不把它复杂化。

在这个项目中,我将向您展示如何使用 Arduino 开发板构建一个更简单的室内花园版本

我提供了完整的分步指南,向您展示如何打造自己的美丽花园,并详细解释硬件和软件部分,以便将本指南变成最简单的方法,引导您尝试您的拥有自己的电子制作技能。在获得我们从JLCPCB订购的定制 PCB 以改善我们汽车的外观后,这个项目非常方便,并且本指南中有足够的文档和代码,可让您创建您的自动花园系统。

我们只用了 7 天就完成了这个项目,仅用了 3 天就完成了硬件制作和组装,然后用 4 天准备了代码和 android 应用程序。为了通过它控制花园。在开始之前让我们先看看

您将从本教程中学到什么:

  • 根据您的项目功能选择正确的组件
  • 制作电路以连接所有选择的组件
  • 组装所有项目部件并开始测试
  • 使用安卓应用。通过蓝牙连接并开始操作系统

第 1 步:什么是室内花园!

 
poYBAGNOSZaAF_z5AABFHLBnWJ0034.jpg
 

 

 
poYBAGNOSZiAcq7PAAA7s5YHpC0697.jpg
 

大多数植物都有简单的需求。客人去的时候,他们的要求相对不高。在您决定邀请植物回家之前,您只需要了解三件基本的事情:光、水和空气。如果你能掌握这四个要素,从植物的角度来看,你几乎可以在世界任何地方和一年中的任何季节创造一个室内花园。

  • - 大多数园林植物每天至少需要六个小时的光照。但它必须是良好的光线。如果您将手放在窗前并且没有投下阴影,那么光线很可能不足以让大多数植物过上幸福的生活。但是,您总是可以用生长灯来补充弱光条件。如果您家中的自然光适中并且不想对特殊照明大惊小怪,请坚持使用通常需要弱光条件的植物,或者尝试将您的花园移至阳光明媚的窗台。
  • ——植物需要接近其原生栖息地的条件。以沙漠为家的植物比生活在沼泽中的植物需要更少的浇水。了解植物喜欢什么水条件是保持室内花园成功的第一步。这比您想象的要容易,因为植物本身通常会为您提供线索。具有厚橡胶叶的植物是水囤积者,通常比叶子薄而细腻的植物可以用更少的水生存。如果您讨厌给植物浇水,请选择可以少用的品种,或者选择带有隐藏水库的花盆来减少浇水工作。
  • 空气——作为光合作用的副产品,植物通过叶子产生氧气并过滤来自家庭环境的有害气体,如甲醛。为了保持植物健康,您需要保持叶子清洁并保持周围空气流动和湿润。为此,您可以将它们放置在空气流通良好的地方,或者为它们提供一个小风扇。

我将制作一个基于 Arduino 的系统来监控我工厂的温度和湿度状态,并自动提供其必要的需求,如光照强度、水和纯净的新鲜空气,为此我需要一些传感器来控制一些执行器。例如,我将根据从光亮度传感器接收到的信号来控制光强度,就像浇水一样.

第 2 步:传感器和执行器

制作这个系统是一些传感器和执行器的组装,以便访问工厂周围的物理数据,并能够找到工厂需要哪些东西以及何时应该提供它。

这就是为什么你应该使用一些传感器和执行器都连接到一个 Arduino 板的原因:

传感器

  • 光传感器 BH1750 : BH1750FVI 是一款数字光传感器,它是用于 I2C 总线接口的数字环境光传感器 IC。该IC最适合获取调整手机LCD和Keypad背光功率的环境光数据。可以在高分辨率下检测宽范围。(1 - 65535 lx)。
  • 土壤湿度传感器:测量两个触点之间土壤基质的电阻或电导率的湿度传感器基本上是垃圾。首先,阻力不是水分含量的一个很好的指标,因为它高度依赖于许多因素,这些因素可能因花园而异,包括土壤 ph 值、水中溶解的固体和温度。其次,它们大多质量差,触点容易腐蚀。在大多数情况下,你会很幸运能得到一个持续整个赛季的人。
  • 温度和湿度传感器:DHT11 是一种基本的、超低成本的数字温度和湿度传感器。它使用电容式湿度传感器和热敏电阻来测量周围的空气,并在数据引脚上输出数字信号(不需要模拟输入引脚)。它使用起来相当简单,但需要谨慎的时间来获取数据。该传感器唯一真正的缺点是您每 2 秒只能从中获取一次新数据,因此在使用我们的库时,传感器读数可能长达 2 秒。

执行器

  • 浅白色 LED:发光二极管 (LED) 是一种双引线半导体光源。激活时发光的是 ap-n 结二极管。 [5] 当对引线施加合适的电压时,电子能够与器件内的电子空穴复合,以光子的形式释放能量。
  • 水泵:泵是一种通过机械作用移动流体(液体或气体)或有时是泥浆的装置。泵可以根据它们用来移动流体的方法分为三大类:直接提升泵、位移泵和重力泵。泵通过某种机构(通常是往复式或旋转式)运行,并通过移动泵消耗能量来完成机械工作。体液。泵通过多种能源运行,包括手动操作、电力、发动机或风力,有多种尺寸,从用于医疗应用的微型泵到大型工业泵。
  • DC 12V 冷却风扇:了解冷却技术很重要,这些冷却技术可用于在需要保持植物处于健康状态时通过在植物周围移动新鲜空气来保护植物的生命。

第 3 步:PCB 制作(由 JLCPCB 生产)

 
poYBAGNOSayARm_rAACim8-TnYY794.jpg
 

 

 
pYYBAGNOSa6AZf1KAABKj9VSEyA696.jpg
 

 

 
poYBAGNOSbGAcpFiAABgBlntt38048.jpg
 

 

 
poYBAGNOSbOAVVqRAABhnG1NeDs769.jpg
 

 

 
pYYBAGNOSbeAeBwiAAA8tcu1LMI905.jpg
 

关于JLCPCB

JLCPCB(深圳市佳立创电子科技发展有限公司),是国内最大的PCB样板企业,是一家专业从事快速PCB样板和小批量PCB生产的高科技制造商。

JLCPCBh拥有超过 10 年的 PCB 制造经验,在国内外拥有超过 200,000 家客户,每天有超过 8,000 个 PCB 原型和小批量 PCB 生产的在线订单。年生产能力为200,000平方米。适用于各种 1 层、2 层或多层 PCB。JLC是一家规模大、设备精良、管理严格、质量上乘的专业PCB制造商。

回到我们的项目

为了生产PCB,我比较了许多PCB生产商的价格,我选择了JLCPCB最好的PCB供应商和最便宜的PCB供应商来订购这个电路。我需要做的只是一些简单的点击来上传 gerber 文件并设置一些参数,比如 PCB 厚度颜色和数量,然后我只花了 2 美元就在 3 天后得到了我的 PCB,我注意到那里是这个在线订购平台不时提供的一些免费送货优惠。

您可以从此处获取电路 (PDF) 文件。

正如您在上面的图片中看到的那样,PCB 制造得非常好,我的 PCB 叶子形状与我们设计的相同,所有标签和徽标都在那里指导我在焊接步骤中。

第4步:成分

 
poYBAGNOSbyANt9KAACaNOb-5DI665.jpg
 

现在让我们回顾一下这个项目的必要组件,您可以找到在线订购的所有相关链接,因此我们需要:

  • - Arduino Nano
  • - ESP01 模块
  • - HC-05 或 HC-06 蓝牙模块
  • - 光传感器 BH1750
  • - 温度和湿度传感器
  • - 湿度传感器
  • - 水泵
  • - 12V 直流风扇
  • - 白色 LED
  • - 一些接头连接器

第 5 步:组装

 
pYYBAGNOSb-AFdoYAABR3xUCQIE512.jpg
 

 

 
pYYBAGNOScGAM0R7AAA_1mE_g6g579.jpg
 

 

 
pYYBAGNOScWABGNsAABTlsXUrBE787.jpg
 

 

 
poYBAGNOSceAddZDAAAT9xL1jKA431.jpg
 

 

 
poYBAGNOScmAR-9HAAATWQvvMag289.jpg
 

 

 
poYBAGNOScuADn-cAAAUpumcAgg680.jpg
 

显示所有 9 项

我们现在准备好了,让我们开始焊接组件,不要忘记遵循标签以避免焊接错误。我们首先焊接 Arduino 连接器来测试电源,您还可以编写一些基本的测试代码来验证每个传感器(如光传感器)的正确连接以及 LED 的正确连接,因为它们都直接连接到电路板(Arduino ) 所以你可以完全访问它们。

注意:您需要保持烙铁干净整洁。这意味着每次使用时都要在海绵上擦拭。烙铁头应该干净有光泽。每当您看到烙铁头被助焊剂或氧化变脏时,这意味着失去光泽,您应该清洁它。即使您正在焊接。拥有干净的烙铁头可以更容易地将热量传递到焊接目标。

我们从JLCPCBw订购的 PCB 将指导您将所有物品放置在正确的位置,因此如果您想查看我们制作的 PCB 并进行在线订购,请随时访问此链接。

如您所见,由于其质量,使用此 PCB 非常方便,并且可以肯定那里的所有标签都为您提供了最佳指导,因此您将 100% 确定您不会犯任何焊接错误。

我已将每个组件焊接到其位置,您可以使用 PCB 的两侧来焊接电子部件。

现在我们已经准备好 PCB 并且所有组件都焊接得很好,之后我准备了这个设计来进行 CNC 激光切割,以便将电子部件和植物插入一个支架中,所以如果你想制作相同的设计我的在这里找到(DXF)文件

第 6 步:Android 应用程序。

 
pYYBAGNOSc2AfxyiAABXleYLpP4615.jpg
 

 

 
poYBAGNOSdGAI75aAAAcpWKcOek728.jpg
 

 

 
pYYBAGNOSdOASdkJAAAW_3n34cE429.jpg
 

这个应用程序将允许您通过蓝牙连接到您的 Arduino,并使用手动模式,您可以访问风扇、灯以及水泵以进行 ON 和 OFF 控制,而不会忘记可以读取数据的传感器按下“获取数据”按钮,所有适当的数据将显示在您的智能手机屏幕上。

您可以从此链接免费获取此 android 应用程序

第 7 步:Arduino 代码和测试验证

 
poYBAGNOSdWARjqRAABR5Km7hHU323.jpg
 

 

 
pYYBAGNOSdeAF76oAAAeeJgQ4bs441.jpg
 

 

 
pYYBAGNOSdmAewKTAABhcEGkhkc947.jpg
 

 

 
poYBAGNOSd2ARfXiAAA0FzZDZUw103.jpg
 

 

 
poYBAGNOSd-AZ578AAAr42UGIHQ018.jpg
 

该代码可用,您可以像往常一样从此链接下载它。正如您在照片中看到的那样,代码非常简单并且注释很好,因此您可以理解它。

正如你所看到的,每个按钮都有系统的功能,但我真正欣赏的是自动控制灯光亮度的模式前灯 LED 的数量取决于传感器信号。我们还可以直接在智能手机的屏幕上读取温度和湿度值,这真是令人印象深刻。


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

评论(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.lene-v.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:'使用Arduino开发板构建室内花园',//标题 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.lene-v.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);