Contents

智能浇花浇菜设备DIY

最近DIY了一个智能浇花浇菜设备。主要是给妈妈用的。她在楼顶种了一片菜,重庆天热的时候,每天都要提水上去实在太麻烦了。另外爸爸妈妈回老家时,我们想不起来替妈妈浇水,那菜岂不是要渴死了?还有,如果一家人出去旅游了,家里没有人,菜岂不是也会渴死?于是就DIY了这个设备。
硬件自己设计,基于小米iot嵌入式程序扩展开发固件,基于小米米家扩展app控制程序;

效果

先看一下最终的效果

特性

  • 12V低压供电,保障安全;
  • wifi模块实现连网、上云;
  • 可以用手机远程控制设备的开关;
  • 可以用传感器收集土壤信息,自动控制设备开关;
  • 可以一些扩展;
  • 接入小米iot平台:
    • 支持米家APP控制,不需要另外安装应用;
    • 可以扩展支持小爱同学语音控制(暂未实现);
    • 可以扩展支持小米智能化场景;

DIY过程

背景

爸爸妈妈在楼顶种了一些菜,需要从家里提水上去浇水。重庆夏天太热,几乎每天都需要浇,提水很累;爸爸妈妈每年都要回老家照顾老人,所以每年都会有一段时间,那些菜就没有人照顾了。我们小两口太懒,刚开始两天还挺兴奋地去浇水,过几天就坚持不了了。另外,家里人如果出去游玩,几天时间家里都没有人,菜也会没有人浇水。于是我就想在DIY一个自动浇水的设备,要控制自来水在适当的时候浇到菜。
市面上似乎没有便宜的家用的自动浇水的设备。
网上有一些DIY浇花的,一般也是比较简单,例如从水盆里,用小型水泵,或者不能联网等,或者用开发板实现…都满足不了我的想像。

我想自己设计硬件,而不是用开发板,连接各种线;
基于小米iot平台,方便嵌入式开发,控制程序开发,便于后期扩展支持语音控制和智能化场景;

可行性分析,能力预研

先看一下架构概览图

需要具备的能力

  • 硬件设计,锡焊等电工能力
  • 嵌入式开发(c语言),其实不难,基于小米iot提供的项目,做扩展开发就行了。设备的连网、设备管理等基础能力都不用管,只需要开发设备的功能就行了;
  • 前端能力(React Native),基于小米iot的项目,进行扩展开发即可,也不难;
  • 水工能力,要修改水路;

作为一个后端程序员,最擅长云端服务的设计和开发,但这次DIY过程,没有任何后端服务需要我开发,小米iot平台已经做了所有一事儿;

行动

一、小米云平台

  1. 申请企业账户并认证;
  2. 在云平台上创建产品(定义产品),定义功能等;
  3. 采购核心芯片,小米iot平台为企业用户免费提供一定量的模组。也可以不在小米iot平台上采购,但价格比较感人;

二、设计硬件

开发板验证

在小米平台上申请的模组很快就到了。如图,包含一个开发板,一排排针,5个esp32-wroom-32d(我申请了5个)模组,模组并未焊接到开发板上,需要自己焊上去。
下面第二个图中红色圈起来的,就是我焊上模组之后的开发板(焊的过程没有拍照)

ESP32-WROOM-32D 是乐鑫出品的,基于ESP32芯片封装的,有板载wifi天线的模组,小米跟他有合作,可以以9.9元的价格采购到(量产的产品才能批量采购,好像500个起吧);
这个模组包含wifi和蓝牙模组,有很多可以用于扩展的引脚,支持外置flash等,可以通过乐鑫的官方网站了解详情;

基于小米iot的嵌入式程序进行二次开发这个MCU的固件,再烧入,就能让这个设备连上小米iot平台了。
小米iot相关的程序是保密的,合作企业可以获取,但不能外传,签有保密协议,所以这里不能帖相关开发过程。
这个时候,还没有开发米家APP的扩展程序,还不能用手机控制;但可以通过小米iot平台的控制台控制了。打开开关、查看固件版本、查看硬件信息等。
这样就能验证自己扩展开发的固件已经能远程控制继电器的开合了。这就可以继续下一步了。

选型
  1. 水龙头电磁阀的工作电压为12V(其实也有24V甚至更高的,但12V更容易获取);
  2. 继电器工作电压为5V;
  3. 芯片工作电压为3.3V;

开发板能正常工作,可行性已得到验证,但开发板不够友好,还是自己设计硬件好,其实这个设备硬件上并不复杂。核心是esp32-wroom-32d这个模组,板子上需要有三种电压:12V,5V,3.3V;其实5V这个可以中间电压可以不要,但我想到后期扩展外设可能需要5V的驱动电压,在板子上预留一个5V电压,可以满足大部分电子设备的驱动;
设计前,用手边的现有条件继续测试验证,中间产生了好几个版本:

中间版本


上图:先在万能的淘宝买了几个esp32-wroom模组的洞洞板。


上图:先用开发板配合验证按键功能,下载固件按键、重启按键。


上图:加上手边现有的12V转5V的模块、继电器模块; 这个时候,已经能实现想要的功能了。只是样子太难看;


上图:这个是我设计的第一个版本的板子:左上角为原理图; 右上角为PCB板;下图为在嘉立创生产的板子;板子上只帖上了小零件(SMT),芯片和一些大的零件是我另外采购的,回来自己焊;
右上角PCB图上,有两个用绿色框起来的元件,是这个版本的缺陷,7805这个线性稳压器( LDO)芯片,在我的工作环境,会发烫。可能是因为输入电压太高(12V多一点);
这个版本的设计有个bug,AMS1117-3.3芯片引脚顺序用错了;
因为可能要自己修改一些零件,所以选元件时很多选了0805规格的,稍大一些,可以自己焊;
嘉立创是DIY人员制造pcb板子的平台,5片起造; 很便宜;


上图:嘉立创出的板子只让他们帖了小元件,核心芯片和大元件自己焊。


上图:这是第一个完成的成品,部署到环境中,可以工作,但7805芯片发烫严重;


上图:设计中的7805芯片发烫严重,怕长时间工作会有问题,我就用之前的12v转5v的模块临时替代一下,部署在露台上工作了一段时间,一节正常;

最终版本

上个版本中有两个缺陷:7805选型工作起来发烫;AMS1117-3.3引脚顺序错了;所以重新设计了板子;


上图:这是2.0版本的设计,上:原理图;中:PCB图;下:设计过程中的3D预览
硬件设计用的是立创EDA,国产、免费电子设计软件,工程保存在云端,支持版本管理,有丰富的功能,还有防真模式。与嘉立创有一定程度的集成。


上图:到货的PCB板,焊上了芯片以及其他元件,安装到了指定位置

上图:安装到户外的露台上,所以,外面是个防雨的罩子;


上图:罩子当时买成了透明的,为了防止板子被暴晒,外面帖了一层黑色的纸壳;

硬件到此就结束了。
这个硬件后面还可以用于扩展其他设备。例如氛围灯等。12V,5V的都可以,只需要修改嵌入式固件;

三、水工施工

水工部分,技术含量并不高。只需要将电磁阀接入到水路中就行了。


上图:这是一个简略,描述电路板如何与水路的电磁阀连接的。




上图:采购了6米长4分的PPR水管;还买了剪裁工具,其实工具都很便宜,万能的淘宝;淘宝发货长度限制为2米,所以6米的水管分成了3个,需要拼接,并且水路有不少拐角,还是采购了一些水管的辅件


上图:电磁阀已经被接到了水路中。两头都用了活接口,如果哪天要换,就很简单了。




上图:根据需求,将水管接到了楼上,就是要给楼上的菜浇水;

四、电工施工

电路的施工就更简单了。买了线盒,直接铺线就行了。


上图:之前DIY的一个娱乐角(用一个汽车的车机DIY的娱乐角)里,有12V电源适配器,直接引出需要的12V直流电。




上图:用线盒将线引到设备安装处就行了。设备其实也可以不用安装到户外,只需要将电磁阀的线引过去就行了。这样可以更好的防水。但当时考虑要扩展接入土壤的湿度,设备要离土壤近一些。