APP下载

基于Arduino与AppInventor设计的植物管家系统

2018-11-26龙祖连宁爱民幸敏

电脑知识与技术 2018年22期

龙祖连 宁爱民 幸敏

摘要:本设计是通过Arduino开发板将温湿度传感器(DHT11)对土壤温湿度信息的采集,然后将采集到的信息经过蓝牙模块传输到我们制作的手机App中,从而实现我们对植物浇水的远程自动或手动管理。

关键词:Arduino;App Inventor;DHT11传感器

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)22-0063-02

1 设计原理

1)设计背景:我们的家庭经常种植一些盆景,给我们的生活增添一些绿色;但是在对这些植物的管理,有时候都被我们忽略(比如浇水),从而导致一些植物生长不好或是死亡。基于这个问题,我们设计了“植物管家”系统,来解决这个问题。

2)工作原理:传感器当检测到植物土壤的信息(及土壤的湿度和温度)时,并将信息通过我们的Arduino开发板经蓝牙模块传输到我们的手机上,我们就可以实时监测到植物土壤的情况;同时我们的Arduino开发板在对我们的传感器采集到的信息进行分析,等待我们手机App发出命令控制对植物浇水或关水;当我们Arduino开发板接收到命令后就开始对浇水装置进行控制浇水或关水,从而使我们的植物生长在适宜的土壤环境,健康成长。设计框图:如图1所示。

2 硬件设计

在本系统中我们选择的是Arduino开发板,作为主控的系统,它是一个开源,对于做创新创意或电子DIY的之类的电子产品,相当方便;它提供了很多函数库给我们选择使用,使用C语言编程,容易理解。在信息采集部分,我们选择了DHT11温湿度传感器,它是集成温度与湿度一起的,接线简单,测量范围(湿度:20-90%RH,温度:0-50°C),合适在我们的设计的系统中使用。在无线传输方面,我们选择的是蓝牙模块来进行传输,蓝牙模块是低功耗,只要手机开启蓝牙就可以连接,不需要其他中间介质。浇水装置,我们通过继电器来控制水泵开与关。电源部分,整个“植物管家”系统设计是按低功耗来设计的,因此我们使用的电池供电即可。

3软件设计

3.1 DHT11传感器数据的采集

DHT11与微处理器之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零。操作流程如下:

一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据

+8bi温度整数数据+8bit温度小数数据

+8bit校验和

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。

3.2 手機端“植物管家”App的设计

在手机App的设计,我们采用的是App Inventor。App Inventor 是由Google实验室所设计,由来自麻省理工学院(MIT)有“App Inventor 之父”之称的哈尔艾贝尔森教授及其团队负责主导开发。它以图形化界面为主要特色,是一种简单、快速开发Android的应用程序的开发平台。主要面向没有程序设计基础、想快速学会移动应用程序设计,以及想迅速开发出App的初学者。App Inventor 最大的特点是不需要编写代码,开发程序就如拼图、堆积木般简单,能够帮助读者快速完成专属的、能够运行在模拟器、Android手机或平板电脑,App Inventor易学、易用、有助于锻炼逻辑思维,是帮助移动开发初学者的好工具。

1)植物管家App界面设计

我们通过App Inventor设计界面如下图2所示。

1)搜索蓝牙的设计

在界面设计中用列表选择框1来设计我们的搜索蓝牙功能,程序设计如下图3所示。

3)连接蓝牙的设计

在界面设计中用按钮1来设计我们蓝牙的连接,在“连接蓝牙”按钮行为设计里增加了两个行为;一是蓝牙连接时启动定时器;二是蓝牙断开时,关闭定时器;如下图4所示。

4)浇水模式选择设计

设计界面的时候,我们用按钮2表示“自动浇水”,当按钮按下时,App像手机发送一个数字0,当Arduino板子经过蓝牙模块接收到字符0的时候,就自动对比我们设置好的湿度值,档低于我们设置的湿度值,就去控制我们的水泵开始工作一定的时间;当高于我们设置的湿度值,就控制水泵停止工作。设计编程如下图5所示。

总结,我们对设计好的植物管家系统进行测试,在手机App端可以显示相应的数据,同时也可以实现手机端的操控,达到我们的设计效果。

参考文献:

[1] 赵志.Arduino开发实战指南[M].北京:机械工业出版社,2016.

[2] 谢作如,郑详,张洁.跟我学AppInventor 2[M]. 北京:清华大学出版社,2017.