亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino 室内花园

组件和用品

Arduino Nano R3
× 1
mbientLab 蓝牙转 USB 适配器
× 1
JLCPCB定制PCB
× 1

关于这个项目

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

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

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

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

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

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

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

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

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

我将制作一个基于 Arduino 的系统来监控我工厂的温度和湿度状态,并自动提供其必要的需求,如光强度、水和纯净的新鲜空气,为此我需要一些传感器来控制一些执行器。例如,我将根据从光亮度传感器接收到的信号来控制光强度,浇水时我使用湿度传感器打开和关闭水泵,使用温度/湿度传感器来控制 12V DC 风扇的打开和关闭.

第 2 步:传感器和执行器

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

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

传感器

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

执行器

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

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

关于JLCPCB

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

JLCPCB拥有超过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 步:配料

现在让我们查看此项目的必要组件,您可以找到在线订购的所有相关链接,因此我们需要:

  • - 我们从 JLCPCB 订购的 PCB
  • - Arduino Nano:http://amzn.to/2C7g0YW
  • - ESP01 模块:http://amzn.to/2CCRVdL
  • - HC-05 或 HC-06 蓝牙模块:http://amzn.to/2CCRVdL
  • - 光传感器 BH1750:http://amzn.to/2CCRVdL
  • - 温度和湿度传感器:http://amzn.to/2CCRVdL
  • - 湿度传感器:http://amzn.to/2CCRVdL
  • - 水泵:http://amzn.to/2CCRVdL
  • - 12V 直流风扇:http://amzn.to/2CCRVdL
  • - 白光 LED:http://amzn.to/2CCRVdL
  • - 一些标题连接器:http://amzn.to/2CCRVdL-

第 5 步:组装

显示全部 9 个项目

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

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

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

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

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

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

第 6 步:Android 应用。

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

你可以从这个链接免费获得这个安卓应用

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

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

正如你所看到的,每个按钮都有系统的功能,但我真正欣赏的是灯光亮度控制的自动模式,我将光传感器放在房子的底部,然后当我们选择这种模式时,系统将控制亮度前灯 LED 的数量取决于传感器信号。还可以直接在智能手机的屏幕上读取温湿度值,非常棒。

代码

  • Arduino 源代码
Arduino 源代码Arduino
/**************************************************** ****************************************************** ****************************************************** ********************** * - 作者:BELKHIR Mohamed * * - 职业:(开发者)MEGA DAS 所有者 * * - 主要用途:工业应用 * * -版权所有 (c) 持有人:保留所有权利 * * - 许可证:BSD 2-Clause 许可证 * * - 日期:20/11/2017 * * ******************* ****************************************************** ****************************************************** ****************************************************/ / *********************************** 笔记 ************** ************************////以源代码和二进制形式重新分发和使用,无论是否修改//都允许,前提是以下条件满足:// * 源代码的重新分发必须保留上述版权声明、此// 条件列表和以下免责声明。// * 二进制形式的重新分发必须复制上述内容ve 版权声明,// 文档中的此条件列表和以下免责声明// 和/或随分发提供的其他材料。// 本软件由版权所有者和贡献者“按原样”提供// 和任何明示或暗示保证,包括但不限于//对特定用途的适销性和适用性的暗示保证不予承认/*________________________________________________________________________________(`v)________________________________________________________________________________(`^())____.________________________________________________________________ _)__(`())____________________________________________________________________________________(`v)(_.^._)____________________________________________________________________________________(`())(`v)_________________________________________________________________________ ____________________________________(_.^._)(`())________________________________________________________________________________________(`v)_____ (_.^._)(`v)_______________________________________________________________________________________ (`())_ (`v)___(`())______________________________________________________________________________________________ (_ .^._)_(`())___(_.^._)________________________________________________________________________________________ (`v) (_.^._) (`v)________________________________________________________________________________________(`())____(`())_____________________________________________________________________________________________(_ .^._)_____(_.^._)____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ _______________________________________.______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ ________________________________________ __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________(`v)____________________________________________________________________________________(`())__________________________________________________________________________________________ (_.^._)___________________________________________________________________________________________________ (`v)____________________________________________________________________________________________ (`()) _____________________________________________________________________________________________(`()) _____________________________________________________________________________________________(`()) ______________________(`v)________________________________________________________________________________________________(`())__________________________________________________________________________________________________(_.^._)__________________________________________________________________________________________________________________________________________________________________________________ */#include "DHT.h" // 包含 dht 库以与 DHT 传感器接口#include  //使用光传感器的IC库#include  //导入BH1750库以便能够使用光传感器//------------------- ----------------------------- 定义控制引脚 ----------------- ---------------------------------------const int Pump=4; // 我们使用这个引脚来控制电机泵 const int Fan=5; //将此引脚用作PWM输出来控制Fan speedconst int Light=6; // 使用此引脚来控制 LED 亮度const int TempHum=7; // DHT sensorconst int Moisture=8 的输入引脚; // 数字输入引脚读取水分指令信号const int TestLED=9; // 使用此输出引脚通过打开和关闭测试 LEDsconst int Brightness=12 来测试 PCB 上的正确焊接; // 读取光传感器信号的输入引脚const int analogMoistue=0; // 模拟输入读取来自湿度传感器的模拟信号//------------------------------------ -------------------------------------------------- -------------------------------------------#define DHTTYPE DHT11 // DHT 22 (AM2302), AM2321DHT dht(TempHum, DHTTYPE); // 温湿度传感器构造函数BH1750 lightMeter; // 光传感器构造函数char Data='x'; // 在这个变量中存储串行数据String cmd=""; // 读取android appint发出的完整指令flagModeAuto=0; // 激活自动模式的标志int sprayCMD=0; // CMD 限制 Sprayint LightCMD=0; // CMD 限制亮度int lightLevelPlus=0; // 控制灯光亮度的变量float temperature=0; // 存储温度值的变量float湿度=0; // 存储湿度值的变量uint16_t lux=0; // 从光传感器读取光亮度的变量//------------------------------------ ----------- 开始管脚配置 --------------------------- ---------------------void setup() { Wire.begin(); // 初始化 I2C 总线(BH1750 库不会自动执行此操作) dht.begin(); // 启动温湿度传感器读数 lightMeter.begin(); // 启动光传感器读取 Serial.begin(9600); // 将波特率设置为 9600 BPS 以通过蓝牙 Serial.setTimeout(100) 与 android 应用程序通信; // 设置关闭串口前等待数据的时间(100ms后) pinMode(Pump,OUTPUT); pinMode(风扇,输出); pinMode(光,输出); pinMode(水分,输入); pinMode(TestLED,INPUT);延迟(1000);数字写入(泵,低);数字写入(风扇,低); digitalWrite(Light,LOW);}//---------------------------------------- -------- 启动进程代码---------------------------------------- ------------------void loop() { while(Serial.available()) // 一旦可用就读取串行数据 { delay(10);数据 =Serial.read(); cmd+=数据; } if(cmd=="dt") // 将湿度值发送到安卓应用程序 { Serial.print(hydrity); } if(cmd=="dh") // 将亮度值发送到安卓应用程序 { Serial.print(lux); } if(cmd=="db") // 将温度值发送到安卓应用程序 { Serial.print(temperature); } if(cmd=="o") // 开启自动模式 { flagModeAuto=1; } if(cmd=="m") // 关闭自动模式 { flagModeAuto=0; } if(flagModeAuto==1) { autoPump();光亮度();自动风扇(); } if(flagModeAuto==0) { if(cmd=="f") // 打开风扇 {analogWrite(Fan,255); } if(cmd=="x") // 关闭风扇 { analogWrite(Fan,0); } if(cmd=="l") // 打开灯 {analogWrite(Light,255); } if(cmd=="k") // 关灯 { analogWrite(Light,0); } if(cmd=="w") // 打开泵 {analogWrite(Pump,255); } if(cmd=="y") // 关闭泵 {analogWrite(Pump,0); } } cmd=""; // 清除 cmd 变量以使其可用于下一条指令 lux =lightMeter.readLightLevel(); // 从光传感器中获取亮度级别 temperature=dht.readTemperature(); // 从 DHT 传感器获取温度值 (C) 湿度 =dht.readHumidity(); //从DHT传感器获取湿度值(%)}//--------------------------------- -------------- 泵喷自动控制功能------------------------------ --------------------------void autoPump() { if(analogRead(analogMoistue)30) {analogWrite(Fan,255); // 如果温度超过 30C,则打开风扇 } else { analogWrite(Fan,0); // 如果温度超过 30C,请关闭风扇 }}

定制零件和外壳

dxf_mdf_5mm_s0PEHuez4w.rar

示意图


制造工艺

  1. 使用 Arduino 制作流光溢彩监视器
  2. Arduino Pong Game - OLED 显示器
  3. 音频检测器
  4. Arduino Tamagotchi Clone - Digital Pet
  5. 无线灯开关操纵器
  6. Tech-TicTacToe
  7. 运动感应水枪
  8. Arduino 倒数计时器
  9. Arduino 向日葵:电子太阳舞者
  10. 遥控保时捷汽车(Arduino 项目)
  11. 如何用 Arduino 制作音乐
  12. 超酷室内导航机器人