
开源协议
:GPL 3.0
描述
一、作品简介
例如,可以包括但不局限于以下内容:
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%,都说明需要浇水了。如果突然表面的湿度已经快接近室内的湿度,那么说明土壤已经严重缺水了。根据此方法可以简答的判断什么样的湿度可以去浇水。
更多项目详情见链接:http://club.szlcsc.com/article/details_7511_1.html
本项目归立创社区“碱式碳酸铜”所有
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论