0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DIY一款基于arduino的自动浇花系统

454398 来源:DIY 作者:佚名 2015-11-25 18:31 次阅读

最近七夕快到了~又到了给妹子做礼物的时间了~,所以要做一点既有创意,又实用,又好看的东西!那么这个可以给植物自动浇水的……饭盒,是非常理想的选择。

首先放成品图:

左边的是土壤湿度探头,当土壤的干燥程度达到一定值的时候,打开电磁阀进行浇水。

左边是DC电源线(DC5.5*2.1mm),5V输入。可以直接使用USB转DC来做电源。右边就是进水口,直接与水龙头相连。

电磁阀使用的是饮水机的电磁阀,成本10元左右。电压12V,所以需要另外购买一个升压模块。

最上面的是升压模块,然后依次是土壤湿度检测模块,DHT11温湿度模块。

LCD1602,可以显示当前已经运行的时间,大气温湿度,以及土壤湿度值。

亮起来是这样子的:


俯视图。两根白色的管子一根是进水口,一根是出水,内部是电磁阀控制。


程序结构也非常简单:

土壤湿度探头检测到土壤干燥了,就打开电磁阀进行浇水,完毕关闭电磁阀,然后继续检测,就这样无限循环下去。每间隔3小时进行一次判断。

这是设计图(很初步的构想,实际实现和这个图有一些细微的区别):

(原谅我的灵魂画风→_→)

关于如何浇水,有两种方案:

方案一:使用电磁阀直接浇自来水。

方案二:使用水泵抽水。

在选择实用水泵还是电池阀的时候纠结了很久。最后决定用电池阀,因为如果使用水泵的话,要专门放个水盆来装水……而且要手动给水盆加水,不是一劳永逸的方案

(没错我就是这么懒……(╯‵□′)╯︵┻━┻)

首先来看材料一览表:

(你没有猜错,我就是把东西这么随手一扔,然后就拍了张照片……)

然后做一个供电的模块,一行接正极一行接负极,用来给各种模块供电。(因为我没有买arduino的Shields,只能这样做了)

这万能板的孔大小是M2的,被我强行扩展为M3大小,然后才能拧上M3的铜柱

然后目测一下摆放的位置,做好标记,准备钻孔:

直接电动手钻上吧,其实给这种塑料钻孔,感觉是摩擦产生的热量将塑料融化掉,并不是真正的钻出来的孔……所以有很多毛边。

拧上螺丝就可以了。



下面对LCD1602进行固定:

找大概的位置,做好标记

打孔,拧螺丝(其实这个孔我还打歪了……不过塑料盒子可以有一定的形变,所以还是强行拧上去了。)

打歪的孔……

还是强行拧上了。

继电器这种接口可以直接用杜邦线来插,只要把杜邦线黑色的塑料头拿掉就好了。就不用另外买专门的线。

杜邦线就可以解决!省钱!

关于杜邦线的处理,用美工刀把杜邦线头卡位的迷之凸起翘起来:

就可以很轻松的拿出来了。

之后就可以把露出来的金属部分插进去了。

再把继电器安装上去,无尽的打孔……拧螺丝

其实装得有点歪,不过不要紧。

然后突然觉得,这个饭盒太大了,还有每个模块都要我这样打孔,效率太低……

然后睡觉去了。睡觉的时候灵感来了,换了一种思路(没错,前面我做的全部都推到重做了!)

第二天,拿着一大堆模块,研究如何科学地进行组装……

然后……

。..。..。十分钟后,这两个叠在了一起

。..。..。..。二十分钟后(忙着摆弄,忘记拍照了→_→)

duang~~这就是成品!采用了多层的结构,布局合理,结构精巧(魔性BGM操起来:我的朋友我想骄傲的告诉你,哦我真的不错我真的很不错。)

因为是用来浇水的,整个电路板是固定不动的(这又不是智能小车!),所以连接的结构强度不是首要考虑的问题。

下面多角度展示,从上往下依次是实时时钟模块DS1307,温湿度模块DHT11,土壤湿度传感器,升压模块(用来获得12V的输出)。

已经预留了铜柱,可以很方便地固定在万能板上面。

这样……我就可以把你捧在手心了~(¯﹃¯)

然后下一步计划固定到万能板上,右边用来放电磁阀,中间的缝隙可以焊两排排针,用于给各种模块供电。


有个非常巧合的地方,这个万能板的宽度,正好和继电器模块的长度完全一样~边角的孔完全对的上,强迫症看了表示非常舒服。

顺便说一下板的尺寸是5x7的

固定这堆模块,只需要钻两个孔。用小刀刻出要钻孔的位置,避免钻歪(就是图中Q和R之间刻了一个标记):

警告:对玻璃纤维板切割、钻孔,一定要注意粉尘污染!

吸入这些粉尘是非常危险的。所以我是把整块电路板放到水里面进行钻孔的。(过程因为有水,就没有拿手机出来拍照)

准备钻孔之前,先把所有模块扔到饭盒里面测试一下布局:

饭盒大小是1000ml的:


好了各位我钻完孔回来了。这次钻的不错,都能对上,误差不是很大。

果断拧上螺丝,感受一下:

然后计划在这里焊两排排针,一排接正极,另一排是负极。

然后又拆下其他模块,专心焊接电路板:

放上元件:

准备进行焊接:

然后这就是效果……光滑圆润的焊点?臣妾做不到啊!

……我承认焊电路我一点都不在行,所以就不要吐槽这个焊点丑了= =

最后我用万用表测了,能用,所以也并没有什么问题。

焊好当然要得瑟一下:于是我又装上去了(感觉我拆了又装中浪费了不少时间……)

然后给电磁阀焊接两个排针,就可以直接插杜邦线了,这样各种模块还是独立的,以后拆卸也方便。(保证接口统一,才能方便调用!)

焊点是这样的……其实这里是虚焊了,我后来重新焊了一遍=_=。所以看到这么圆的焊点,一般都是虚焊。

然后又一天过去了……晚上临睡前东西都是这样扔一堆的。


第三天起来~今天我们来讲解一下如何给arduino pro mini写程序,使用FT232RL,和arduino pro mini直接六个引脚一对一进行对接(非常方便的说):

如果给arduino单独供电的话,只需要接三个引脚。但是要记得两个芯片要共地,不然是传不上去的。

首先连接的是LCD1602,对应的电路图是这样子的:

根据LCD1602的引脚定义,和arduino的连接方法如下:

LCD VSS 接地

LCD VDD 接5V电源

LCD VL 用于调节对比度,通过电位器再接地。

LCD RS pin 链接数字口 pin12

LCD R/W pin 接地

LCD Enable pin 链接数字口 pin11

LCD D4 pin 链接数字口 pin5

LCD D5 pin 链接数字口 pin4

LCD D6 pin 链接数字口 pin3

LCD D7 pin 链接数字口 pin2

LCD BLA 光源正极

LCD BLK 光源负极

但是我稍稍修改了引脚的位置,为了更方便接线:

RS-》8

Enable -》7

D4 -》6

D5-》5

D6-》4

D7-》3

R/W-》GND

然后接好了就密密麻麻这么多线了:

然后连DHT11模块,VCC和GND分别接电源和接地,OUT接2号数字口。

然后连接电位器,COM 和NO就是开关的两端:

可以很轻松地插入~

完全插入(不能裸露太多金属部分):

拧紧螺丝,大功告成:

这里线太多,也是要用钳子进行连接了……

两个继电器分别接9号数字口和10号数字口。


写点小程序测试一下,继电器1和继电器2都可以正常开关。

接下来花了很多时间,一个一个连接模块,两个电源分别独立,一个电源长期供电,连接arduino,继电器1,升压模块,LCD1602。另一路电源可以关闭,给DHT11,土壤湿度模块,LCD1602的背景光LED,还有给继电器2进行供电,平时会关掉这部分的电源,达到节能的目的。

密密麻麻的连接线……

这个是实时时钟模块DS1307,实际并没有派上用途。所以就把它拆了下来(没用你为什么要把人家装上去(╯‵□′)╯︵┻━┻)。

然后把所有模块接好线,预组装一下,看看能否放下:

在规划好模块的位置,又要进行标记……打孔:

然后打孔完毕。过程和前面说的大同小异,就不放图了。

然后拧上螺丝看看,右边很多空白空间,以后可以用来放锂电池,或者移动电源:

俯视图:

放一个移动电源进去,测试一下,刚好能放下呢。

饭盒的容积是1000ML的,逼格than逼格!

通电后,点亮LCD背景灯的效果

然后又调试程序……如此循环。其中调试程序的苦逼过程就没有记录了……代码放到github了,地址在帖子的最下面:

然后链接水管。直接用电钻开一个6mm的孔就可以插进去了。

链接好的样子。因为这个饭盒可以很容易地形变,所以很容易调节:

紧密结合:

发现电源线插不进去,用1cm的钻头进行开孔:

1cm开孔效果

接入电源线,也是刚好可以插入

总体效果,一边进水,另一边出水:

入水口是这样的一个转接口,可以直接固定在水龙头上,而且不影响正常使用。某宝搜索就可以了(关键字:2分 万能接头 净水器)。

上面有个开关,可以不影响正常出水的情况下,引入水流。

最终展示


arduino pro mini芯片

2015年8月10日09:37:32更新物品清单:

arduino pro mini (或者其他任意可以兼容的都可以)

FT232RL(USB转串口,用于给arduino pro mini编程

LCD1602(用于显示)

DHT11温湿度模块(只是用来显示温湿度,目前程序并没有根据温湿度数据来判断浇水量的功能)

杜邦线(10cm和21cm的都买点)

万能板,焊锡,烙铁。(如果你使用arduino uno 加上传感器shield就不需要自己焊电路)

排针

DC接头(或者micro usb接头,用于供电)

DC供电线

电磁阀(或者水泵)

升压模块/降压模块(根据电磁阀或水泵的电压进行选择)

土壤湿度检测模块

水管(我用的是2分管,具体要根据电磁阀或者水泵的尺寸来选择)

水龙头转接口(用于电磁阀方案,水泵方案不用买)

M3螺丝,M3铜柱若干

继电器(如果不是太阳能供电,不用省电的话,只需要1个。如果采用太阳能供电的方案,可以模仿我的做法)

光敏电阻

2015年8月13日15:09:30 更新,增加光敏电阻:

如果你百度搜索“arduino如何接光敏电阻”,结果一般都是让你接一个电阻,再和光敏相连。实际上这样并没有必要,因为AVR单片机内部就有一个电阻:

只需要利用这个电阻就好了。将一个模拟口设置为高

#define PHOTO_RESISTOR_PIN A2

pinMode(PHOTO_RESISTOR_PIN, OUTPUT);//设置引脚模式为输出

digitalWrite(PHOTO_RESISTOR_PIN, HIGH);//拉高引脚

Serial.println(analogRead(PHOTO_RESISTOR_PIN));//调试输出

光敏电阻一端与A2相连,另一端直接接地。这样结构非常简单。实测全黑条件下读取数值为1023,强光手电照射读取数值623,户外阴天环境(没有阳光直射),读取数值为981,虽然不是很精确,但是一般情况下判断是白天还是黑夜还是够用了。设置阈值为1000,读取数值小于这个值,则表示是白天,不进行土壤湿度检测。

环境为阴天,没有阳光直射,连接光敏电阻的引脚数值为981

还有拆的时候不小心太暴力,把饭盒拆破了= =。

两处破损……挺严重的,只能换饭盒。

就这样放着,今晚去买了新的饭盒再修理了。

================分割线=========================

代码下载地址:直接打包ZIP下载 或者 访问github主页

里面有个ino格式的文件,就是arduino程序的文件。要使用arduino软件打开。arduino软件下载

虽然我用的是arduino pro mini,但是理论上arduino uno之类的板子都可以兼容使用。

下一步计划:

加入根据气温判断浇水量的功能。如果温度低则少浇水(不知道有没有这种需求?据说有些花冬天不能浇太多的水。有多年种花经验的童鞋来传授点经验吧~)

增加tf卡模块。将土壤湿度的变化数值写入tf卡。

增加光敏模块,检测到有光再进行浇水。

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

    关注

    14

    文章

    607

    浏览量

    52574
  • DHT11
    +关注

    关注

    19

    文章

    277

    浏览量

    57577
  • FT232RL
    +关注

    关注

    0

    文章

    5

    浏览量

    8728
收藏 人收藏

    评论

    相关推荐

    懒人DIY自助浇花系统

    `如果您工作太忙或者懒得发霉,不想给自己众多的植物浇水的话,可以DIY台自助浇水机。国外位牛人使用台小型水泵、个湿度感应器以及两个胶
    发表于 08-07 14:47

    Arduino DIY 必备:10种Arduino板原理图及PCB文件下载

    Arduino是当下一款十分火爆的开源开发板,很多人都在使用Arduino开发板来开发有趣的、创意的产品原型。自己动手的DIY
    发表于 12-16 17:26

    10Arduino开发板原理图

    Arduino是当下一款十分火爆的开源开发板,很多人都在使用Arduino开发板来开发有趣的、创意的产品原型。自己动手的DIY
    发表于 06-12 14:43

    一款可编程可DIY开发的手表T-watch,你觉得怎么样呢?

    `一款可编程可DIY开发的手表T-watch自带开发平台,兼容 Arduino、Scratch、Atmel Studio 等编程平台,可自行在手表上开发各种应用,功能你来定!`
    发表于 08-14 11:43

    LLAKG:Arduino 自动浇花系统(第1集:系统构想与功能简介)

    `我叫张柏峦,今年9岁,我喜欢电子科学这个视频,是我用 Arduino 制作的自动浇花系统,在本集视频里,介绍了
    发表于 02-07 00:09

    LLAKG:Arduino 自动浇花系统(第2集:C 语言程序与功能实现)

    ... ... ,很高兴能与大家分享。这个视频,是我用 Arduino 制作的自动浇花系统,在本集视频里,介绍了
    发表于 02-07 20:09

    LLAKG:Arduino 自动浇花系统(第3集:C语言程序升级与功能优化)

    Arduino 测量土壤电阻偏差,导致水泵不停的给小花浇水,将小花淹没甚至溢出的错误,我们在原有自动浇花系统的基础上,增加了防止浇水溢出的雨水传感器,当浇水溢出土壤表面,雨水传感器就
    发表于 02-12 08:37

    怎样去设计种基于单片机的士壤湿度检测自动浇花系统

    单片机土壤湿度检测自动浇花系统是由哪些部分组成的?单片机土壤湿度检测自动浇花系统具体有哪些功能?
    发表于 07-01 07:05

    DIY一款自己专属的手柄

    玩游戏的小伙伴都知道,有的游戏需要使用游戏手柄体验才会更好,今天就我们来DIY一款自己专属的手柄!1.设计思路电脑游戏手柄和鼠标键盘样属于USBHID设备,Window系统和Linu
    发表于 07-21 09:32

    如何选择一款适合自己的Arduino控制器?

    Arduino是什么?为什么Arduino广受欢迎?如何选择一款适合自己的Arduino控制器?
    发表于 09-23 06:37

    基于51单片机的自动浇花系统设计

    51单片机自动浇水系统/51单片机自动浇花系统整个设计由51单片机模块、湿度传感器模块(土壤湿度传感器或者温度传感器或者温湿度传感器,都可以
    发表于 11-18 08:27

    基于blinker物联网平台使用3D打印制作的浇花系统

    flower care sys基于arduino Blinker的物联网植物养护系统背景信息:这是个开源的;基于arduino;基于blinker物联网平台;使用3D打印制作的
    发表于 12-08 06:25

    一款改进的DIY Arduino UNO R3兼容开发板

    描述Eduino Eduardo 是一款改进的 DIY Arduino UNO R3 兼容开发板。我设计它是为了教孩子们焊接、电子和编程。
    发表于 07-04 08:01

    基于AT89S52自动浇花系统的设计

    基于AT89S52自动浇花系统的设计
    发表于 04-11 11:15 63次下载

    自动浇花系统的设计及制作 基于Arduino

    对于家里有养花草的人来说,旦到外地出差或者出门远游,他们会纠结个问题:家里的植物交给谁来打理呢?外出期间没有人浇水,它们很有可能会枯死。如果真的找不到别人来帮忙的话,可以试着按照下面的教程DIY
    的头像 发表于 08-21 16:16 2.5w次阅读