查看: 27688
回复: 37
参赛作品《智能浇花系统》(已完成)

主题

回复
发表于2017-06-22 23:24:13 | 显示全部楼层
1# 电梯直达

【报名阶段需要填写的内容】

1. 参赛者姓名(必填项):李哲哲
2. 单位或学校名称(必填项):北京凌阳爱普科技有限公司
3. 当前职务或职称(必填项):系统工程师
4. 参赛作品的名字(必填项):智能浇花系统
5. 简要陈述您的idea和作品(必填项):本人喜欢养花,但是经常出差在外不能即使浇花,经常导致花草干枯。于是本人就想着做这样一个系统,在我出差的时候,这个系统能帮我浇水。
6. 拟用到的立创商城在售物料(必填项):STM32F103
7. 拟用到的非立创商城物料或其它补充(必填项):小水泵,软管,塑料瓶,LCD12864

【作品正式发表(报名成功后进入设计阶段)需要填写的内容】

一、作品简介

例如,可以包括但不局限于以下内容:

1.作品的整机外观图片或焊接组装好的PCBA图片;

   作品完整外形图片(全新的第二代浇花系统

 

   专门制作了APP logo

   

   手机端APP

 

     云端湿度曲线:根据十几天观察的经验值,当白天湿度小于70%的时候就需要浇水了。

      

    晒一张家花照片

 

2.作品的研究背景、目的和功能、市场应用前景;

    研究背景:笔者两年前用STM8S做过一个定时浇花的系统,当时做的比较简陋,基本功能就是完成定时浇花的功能。看下图就知道了,是不是比较low啊。不过我告诉你,有一次出差24天回来发现花的长势依然不错,对于喜欢花草的主人来说当然是欣喜万分。

  但是,后来发现如果出现连续阴天的情况,定时浇花系统就会出现严重积水现象。这样对植物的生长来说有些不合理,所以笔者这次决定做一次升级工作。让这个系统更加人性化(植性化)!

  下图是第一代,确实low了点。。。

     

    目的和功能:

    这次呢会在上一次的基础上将MCU更换为STM32,继电器控制方式更换为电机驱动,给整套系统添加传感器和智能硬件。

    最终能够实现以下功能

   (1)远程实时查看土壤温湿度情况。

   (2)远程手机端控制浇水开关实现浇水功能。

   (3)湿度过低报警功能。

3.作品在创新性、趣味性、实用性甚至公益性方面,有哪些亮点可体现?

    本系统最大的特点就是在控制硬件上添加了一块wifi模块,然后结合云服务,实现远程控制浇花。这对于经常需要出差,但有偏爱花草的人来说,无疑是一种两全的方式。

二、系统构架图

用流程图或思维导图等形式,描述您的作品的组成构架,即方案图。

 点击查看大图

三、硬件部分的描述

1.附上原理图&PCB实物图的图片或者源文件(官方建议大家尽量用源文件上传),如果是图片,请确保图片是清晰可辨的;

   (1) 原理图如下

     点击查看大图

 

    

     点击查看大图其中WIFI模块连接在UART

    (2)PCB已经回来,开始焊接了,有一些电路为以后其他开发用,暂时把需要的器件先焊接上。

     

    (3)买了一个温湿度传感器,不过好像不能埋在土里面。资金有限,只能放在土壤附近试试。

     

    (4)基本功能完成,开始进入测试阶段

     

2.用文字把该作品的实现原理、系统的工作过程大致讲解一下。

    本系统《智能浇花系统》。

   实现原理:本系统硬件主要部件由STM32单片机,WiFi模块,传感器,电机驱动四部分组成。

    其中STM32是整套系统的主控制器,负责整个系统的工作。

    WiFi模块内部烧录好能够连接云端的SDK,这样能够保证系统正常的连接到云端,顺利的将数据上传到云,并且WiFi模块能够接受远程设备推送来的消息,然后将其传给STM32,从而使整套系统可以与云端对话。

    传感器是本套系统的触觉系统,能够感知花瓶土壤表面的温湿度信息。

     电机驱动是本套系统的执行部分,负责完成远程的控制命令。

     将这几部分结合到一起就实现了一个简单的智能系统

   工作过程:

     (1)系统定时3S上传一次温度和湿度信息到云端,通过远程手机客户端便可以查看花瓶当前的温湿度情况。

     (2)系统可以随时接手远程(手机客户端)发送来的控制命令,并且执行相应的命令。

     (3)结合云端的阈值报警功能,可以设置湿度低于某一值之后通过邮件或者短信等形式告知用户,然后用户在决策要不要浇花,如果需要就可以打开手机客户端,立刻给心爱的花草浇水了。


四、材料清单(BOM列表)

列出您这个作品所用到的主要器件(关键器件即可),比如单片机&ARM芯片、专用集成芯片(ASIC)、传感器、功能模块等。

如果所列出的芯片是来自我们立创商城上的,最好能写出该器件的商品编号或附上对应购买链接。

    主要器件STM32F103RBT6.

    订单编号:http://www.szlcsc.com/member/orderDetails_826465.html

 点击查看大图

五、软件部分的描述(选填)

如果您的作品涉及到软件,请列出作品对应的软件工作流程图,及关键部分的例程、源码(如果您想开源的话请上传全部源码)。

   

 

定时器事件处理回调函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  static uint32_t eventTimeCount; //定时事件计数器
  static uint32_t motorTimeCount;//监控事件计数器
  static char ledState;          //LED灯状态翻转
  //tim1负责定时上传事件
  if(htim->Instance == htim1.Instance)
  {
    eventTimeCount++;
    if(eventTimeCount >3000)
    {
        eventTimeCount = 0;
        eventIsRun = 1; //开始执行相应任务
    }
  }
  //tim2负责浇水时间管理和液晶屏时间显示
  if(htim->Instance == htim2.Instance)
  {
    motorTimeCount++;
    if(motorTimeCount >1000)
    {
     
      motorTimeCount =0;
      //翻转LED灯状态
      ledState = ~ledState;
      if(ledState)
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_SET);
      else
        HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET);
      
      if(flowerFlag)//是否有浇水命令,若有命令,启动浇水
      {
        start_flower();
        flowerCnt++;
      }
      if(flowerCnt > 4)//浇水时间到
      {
        stop_flower();
        flowerCnt = 0;
        flowerFlag = 0;
      }
      updateTimeCnt++;
      if(updateTimeCnt>10)//超时,则更新液晶屏时间
      {
        updateLcdIsRun = 1;
        updateTimeCnt=0;
      }

    }   
  }
}


六、作品演示

请上传您的作品的功能演示到腾讯视频,并编辑到本楼(或附上视频链接)。按要求上传视频可获得5分,具体详见活动规则。

https://v.qq.com/x/page/i05390fm9s4.html



七、总结

例如您在完成该作品过程中的一些体会、碰到的技术问题或调试经验、作品的未来规划,及对我们主办方的建议和意见等。

    

    未来规划:

    (1)这次用的传感器只能检测土壤表面的湿度,以此判断土壤内部的湿度情况,有些不精确,将来会寻找一种更合适的传感器增加系统的精确度。

    (2)这次的APP写的过于简单,将来等Android编程更进一步的时候,在完善一下手机端的应用程序。

    (3)太阳花对太阳的依赖非常强,最好的方式是,将来能够定时的给花瓶旋转方向。

   碰到的问题:

    (1)刚开始设计的是一个开水泵和关水泵两个按钮,但是由于控制过程中会有网络延迟,这样就会导致水量过多问题出现,并且如果忘记按关闭按钮的话,就会导致系统水源耗尽,花盆水量过剩。

    解决方案:固定浇水时间,用户只需要按下一次浇水按钮,系统就会自动打开水泵,固定水量之后自动关闭水泵。

    (2)青莲云给的SDK中没有重启wifi模块的软件命令,网络正常的情况下,有时候会出现WiFi模块掉线之后再也连接不上的情况。

    解决方案:测试发现这种情况下只有通过重启wifi模块,才能正常连接网络,于是将WiFi模块的复位引脚拉到了单片机的IO口上(飞线处理),通过硬复位的方式重启WiFi模块。

    (3)什么样的湿度浇水比较合适呢?

    解决方案:实测室内夏天的湿度在60%-75%左右,而花瓶里面的土壤如果水量充足的话,夜间湿度应该在95%以上。根据云端的曲线分析,得出简单的结论,如果夜间的湿度小于95%,白天温度最高时湿度小于75%,都说明需要浇水了。如果突然表面的湿度已经快接近室内的湿度,那么说明土壤已经严重缺水了。根据此方法可以简答的判断什么样的湿度可以去浇水。


主题

回复
发表于2017-08-07 10:30:00   |  显示全部楼层
11#

很好的思路


主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部