【IoT开发】基于机智云物联网的智能浇花教程

描述

摘要:随着近年来物联网技术的发展,相关的技术已经广泛应用于人们的生产和生活中。文章针对长期无人在家时花卉植物的浇水问题,设计了一套基于物联网的智能浇花系统。系统采用STM32与51增强型单片机作为控制器,esp8266物联网模块作为通信设备,底层采用MQTT协议,连接到物联网云平台—机智云,共同构成一个具有实用和推广价值的浇花系统。


 

作者简介:张晓光(1980—),男,吉林梅河口人,讲师,硕士;研究方向:电子信息工程,自动化,单片机与嵌入式系统的教学与应用。

鲜花可以装点生活,让家更有自然美感,然而,有时候遇到工作繁忙或出差旅行等情况,家里的这些植物就可能因为没有人照顾而缺水枯死,为了解决这个问题,就需要一种可以自动浇花的设备。市面上现有的浇花设备分为两种[1]。第一种是采用虹吸式的原理来浇花;第二种采用定时开启电磁阀的方式浇花。这两种方式都过于简单或不够灵活。


 

本文设计一套基于物联网的智能浇花系统,可以根据传感器检测数据及环境温度等因素自动浇花,又可以通过物联网远程控制植物的状态进行手动浇花,能够很好地解决浇花问题。


 

 

1 系统总体方案

解决无人在家的浇花问题,需要从两个方面考虑。(1)要知道土壤的湿度,以此作为判断是否需要浇水的依据。(2)要具备远程数据交换及控制的能力。主人不在家里时,要么自动浇水,要么远程控制浇水。


 

本系统采用主机与从机协调工作的方式。从机负责土壤湿度及环境温度采集,并对这些数据进行初步处理,将结果发送给主机,主机进行运算和决策,并且将数据通过WiFi模块上传到物联网平台。用户可以在手机、平板或个人电脑上通过网络及APP获得家中花卉植物的状态数据,并且根据当前的状态数据发出浇花指令或修改参数。控制命令由终端发出并通过物联网云平台发给智能浇花系统。


 

随后由主机将数据和命令送到从机,从机将内容和状态显示在液晶屏12864上。此外,从机也负责控制执行机构—水泵。之所以选择水泵的方案,是因为采用水泵时,可以提前在水箱中调入肥料或营养液,并且水泵方案不用将水管从水龙头上引出来,这使系统具有较大的灵活性,可以摆在任何地方。而整个系统的供电也采用太阳能供电系统,同样满足了系统摆放位置的灵活性。通信方面本系统的主机采用STM32系列单片机,配合ESP8266WiFi模块[2],实现与物联网云端的通信。系统的原理框如图1所示。


 

2 硬件组成及功能设计

系统主要由控制器、传感器、显示器、电源、以及通信等部分构成。这些部分又可以分成如下几个模块,各部分作用及简介如下。


 

2.1主机模块

 

主机由STM32单片机系统与ESP8266WiFi模块构成。STM32是基于ARMCortexM处理器内核的32位闪存微控制器,集高性能、实时性、数字信号处理、低功耗、低电压于一身,同时保持高集成度和开发简易的特点。


 

主机采用速度更快,配置更高的STM32可以更好地处理大量的数据、协议与网络的通信。而且方便以后拓展多媒体功能。主机配合ESP8266负责与物联网云端进行通信,同时也把数据和控制命令传给从机。


 

2.2从机模块

从机模块采用STC12C5A60S2作为控制器。它是增强型51单片机。因为这款芯片引脚排布完全和89C51相同,对于熟悉51的用户来说开发就更加容易了。并且它内置A\D转换功能,共8路10位精度ADC,具有双串口,包含2路PWM,同样晶振的情况下,速度是普通51的8~12倍。由于包含这些功能,可以在不增加硬件的基础上方便后续开发和扩展。


 

从机的作用包括连接显示器,显示器采用12864液晶,连接各种传感器,控制水泵驱动器,并且通过串口与主机进行数据交换。概括来说,从机负责数据采集及外设控制,并且将数据传给主机。接收主机的控制命令,并协调工作。


 

图1智能浇花系统总体方案框


 

2.3电源模块

本系统的供电采用太阳能电池板配合蓄电池。电池采用电压12V大容量免维护蓄电池,太阳能电池板采用18V功率10W。太阳能电池板通过控制器与蓄电池相连,控制器可以保证蓄电池充电的安全。在系统供电中,还要提供12V转5V再转3.3V的电源,用来给不同的控制板供电。


 

2.4传感器模块

传感器主要包括两种:土壤湿度传感器和温湿度传感器。

土壤湿度传感器的原理,是采用两个电极插入土壤里,由于土壤中含水分多少影响传感器两电级间的导电性能[3]。土壤湿度与电阻值之间存在一定的关系[4]。


 

本系统采用多个土壤湿度传感器组成传感器组。按照花卉需水量的不同,分成3个小组,每组至少两个。这样做的好处是既可以更准确地感知是否缺水,又可以起到一定的保护作用,避免因传感器被拔出误触发水泵。


 

 

2.5功能设计

2.5.1手动浇花

如果主人在家里,也可以享受手动浇花的乐趣。本系统设有感应开关,只要动动手就可以启动水泵浇花。


 

2.5.2自动浇花

根据花卉需要浇水量的不同,我们把其类型分为喜湿型、普通型和耐旱型三类。每一种类型的花随机选两盆,插入土壤湿度传感器,完成对3种类型花卉土壤湿度的采样。然后以ad转换器采集到的数据作为基础,设定不同的阈值。定义不同种类花卉饱水和缺水的状态值。自动浇花可以根据状态选择一定的策略进行浇花,更复杂些可以设计成根据光照、环境温度、时间、传感器检测是否缺水等因素,综合判断形成浇花策略。

2.5.3远程浇花

自动浇花可以在主人不在的时候,根据土壤湿度来判断是否需要浇水。但如果想知道花卉的具体情况,就需要设计远程浇花功能。从机显示界面如图2所示。

图2从机显示界面


 

本系统采用手机、平板或PC等终端访问物联网云端数据。智能浇花系统则在本地联接路由器,并通过其与云端实时进行数据交换。这样就可以通过云端获得花卉数据,并且向浇花系统发送控制命令。


 

远程浇花功能可以用终端远程开关水泵启动关断,可以显示家里的温湿度,花卉缺水或饱水的状态。设定各传感器启动浇水的阈值,以及各种错误状态报警。


 

3 物联网云平台接入

要对系统进行远程控制。可以选择的物联网云平台有很多。如华为云、阿里云、Yeelink云平台[5]、中国移动的onenet[6]等等。


 

本设计采用的云平台为机智云物联网平台。机智云的接入比较简单和人性化,通过傻瓜式开发工具、MCU自动生成代码、APP开源框架、IoTSDK、开放API,最大限度降低IoT设备开发的技术门槛和开发成本,提高开发、测试、部署效率。


 

接入分为几个步骤。

(1)定义产品的功能,每个功能对应相应的数据点。

(2)机智云会根据用户定义的产品数据点自动生成mcu代码,包括复杂的通信协议等,在机智云的整个架构里面,GAgent实现了从模块到云端的数据交互,其实GAgent里面就是用MQTT协议实现的。用户就可以只专注于功能开发,不用花大力气来研究入网与协议。

(3)机智云根据你定义的产品数据点,可自动生成APP源代码,并且可以生成微信sdk,对微信的支持更增加了平台的潜在用户,满足大众的需求,使产品更易推广。

(4)功能调试。在未接入硬件设备时机智云也可根据用户定义的数据点生成虚拟设备,对APP进行功能调试,大大提高了开发效率。

本系统需要设置一个远程手动开关,可以在手机或其他终端上选择浇花模式的菜单,不同花卉的湿度阈值设置温度等参数,缺水或饱水报警等。主要数据点设置及APP界面如图3所示。其中需要注意选择正确的数据类型,比如设置工作模式应选择枚举型。


 

4 调试与保护措施


 

本系统安装与调试按以下步骤进行:首先布置安装喷头。根据花盆和架子的距离布好主管线和支管线,测量好长度,剪切并插接好管线和喷头。然后将管线拿到外面草地,接上水泵,进行喷头调整,喷雾和喷水量调好,确保装在花盆里不会喷到外面。然后拿回来布置好管线,将喷头插在花盆里。接下来按花卉需水类型布置好传感器,连接好机箱。接下来连接蓄电池与太阳能控制器,然后连接机箱和水泵,最后再接入太阳能充电板。注意这个顺序不要错,不然可能造能太阳能控制器工作错误。


 

在测试的过程中发现或想到一些问题,针对这些问题,设计了如下保护措施。

(1)光控措施:为了解决太阳能供电系统与功耗的矛盾,本系统设计了光控开关,一般夜晚不需要浇花,所以系统在晚上自动关闭。

(2)探头拔出报警:这是为了避免探头被意外拔出,系统就会显示缺水,从而触发水泵工作,虽然已经用探头数量(每组两个)加了保险,但若恰好两个都掉出来,会根据AD转换值判断,并发出报警。

(3)缺水报警:水箱设置一水位传感器,缺水会发出报警。

(4)每天最大工作时间限制:考虑到各种可能的误触发情况,设置每天水泵启动时间累计不超过如5分钟。因为超过这个水量,对植物的生长也是不利的。自动浇花系统测试机如图4所示。

 

图3数据点设置及APP界面

图4自动浇花系统测试机


 

5 结语

 

本文介绍的自动浇花系统,可以满足一般家庭使用。具有结构简单、功能全面等特点。采用水泵而非使用电磁阀的好处是可以将营养液加入到水箱中,将控制对象改为更大功率的水泵或者电磁阀,本系统完全可以胜任苗圃等大规模种植。加入广泛发展的物联网控制技术,使人们走到哪儿都能了解植物的状态并加以控制。整个系统具有一定的应用价值和推广价值。

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

全部0条评论

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

×
20
完善资料,
赚取积分