手机控制的浇花神器

作者:蒋鹏

不知道其他人有没有这样的顾虑,就是每次需要外出一些时日的时候总是担心家里的花无人浇水会干死。于是就想着是否能自己动手做一个可以用手机操控实现浇花的“半自动浇花器”呢,之所以称之为“半自动”是因为在一定程度上该设备使用了自动化控制的元件与技术,但操作依然是根据人的意志用手机来完成的因此为“半自动”。当实现自动检测土壤湿度来实现浇花并发送浇花报告到主人手机时可称之为“自动化”。

话不多说,来看看折腾这样一个东西需要准备些什么硬件和软件,有需要的人一定要耐心看完哦,内容有点多。

鉴于网络有点绕,开始前先放一下我的网络拓扑图

一.硬件清单

1.树莓派:由于前段时间用树莓派折腾过家里的NAS,因此树莓派首当其冲作为智控中心用来相应手机端发出的指令

2.arduino:此设备与各种智能元器件通信非常方便,因此用他作为终端来和小水泵连接

3.5v继电器:此设备与下面提到的小型水泵串联,来实现水泵的运行与停止

4.5v小水泵:用来抽水的,如图,我为了方便连线,把这个usb头剪掉了用4节7号电池供电。这里要对水泵的电路进行简单改造,找到里面的红线(正极),剪短分别连到继电器的常开和公共端。

5.usb摄像头:用来定时进行拍照,传回运行的监控图片。

6.其他设备:a.塑料软管,但由于塑料软管的方向性不好控制导致出水效果不好,后续考虑用一根pvc管来替代。b.万用表,c.电烙铁,d.杜邦线(最好有公对母的,可用母对母和排针自制)若干。

硬件准备的差不多了,现在我们开始连线。

树莓派是一个完整的linux系统(debian系统),因此arduino可以以usb设备的形式挂载,并且用串口进行通信。当然通信方式还可以有其他,读者有想试的可以自己搜索方案。

继电器的vcc,gnd分别连接arduino电源的5v,GND端,继电器的in口连接arduino的13口。

二.软件清单(不包括OS)

1.minicom:这个可以设置树莓派与arduino进行串口通信的端口。自行搜索使用方法,设置成功后运行lsusb应该能看到arduino的设备

2.python:这个其实树莓派中已经内置了,并且对接了跟硬件操作的函数库,非常方便实现跟其他设备的串口通信或者操作树莓派自身的管脚

3.nginx:在树莓派上进行http请求转发

4.nodejs:用来处理http请求,来进行调用python程序进行串口通信进而控制arduino。

5.路由器:家里的路由器上设置端口转发用来将公网的http请求转发到树莓派的nginx上

6.腾讯云vm:由于是在微信上操作,因此操作一定要在公网进行。

7.运行在腾讯云上的redis:由于家里的路由器一般采用的动态ip,因此从家里路由器定时发送请求到腾讯云,程序获取此ip后记录到redis中,后续进行操作的时候先从redis获取此ip,然后请求都绑定到该ip上。

8.腾讯云对象存储服务(cos):此步骤可生,因为cos可以当作CDN使用,咱可是一名前端工程师,当然需要把h5页面、js、css图片等资源做cdn分布

9.重要的arduino ide:这个用来烧制arduino程序,可以在windows下编写好后烧制到arduino即可。

三.关键实现

1.树莓派上的python进行串口通信。readline用来获取arduino的输出,write用来向arduino发送指令。

2.arduino代码:用来向继电器发送指令(其实就是高电平与低电平)控制继电器的打开与吸合。

3.做一个简单的手机端界面用进行操控,这里的实现方式太多了,此处不列举了。我用react做界面,nodejs做后台,页面的url生成二维码用微信扫码后运行(记得放入微信的收藏夹)

4.鉴于网络交互还是挺绕的,这里补充一张网络拓扑图吧。以后有什么需要可以直接在这个框架上进行。

至此,浇花设备打造完成,放心外出吧,浇花的事情就交给他吧。浇花的同时会定时回传监控图片,用来协助你判断是否该停止浇花。嗯,到了2.0自动化的时候也许就不用这么麻烦了。

相关推荐

Linux电源管理配置

Node.js SDK下载

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贺嘉的专栏

如何用Baas快速在腾讯云上开发小程序之系列1:搭建API & WEB WebSocket 服务器

本文介绍小程序和服务号开发环境及云端软件安装部署; 通过实验操作掌握 Docker、 Git、Phabricator 等云端软件使用;帮助开发者掌握各云资源的创...

4K00
来自专栏宋文剑的专栏

redis 五种数据类型存储测试

本文主要记录使用 redis 五种数据类型分别存储200万条数据,测试未考虑业务场景,单纯从数据存储进行。使用五种数据类型对相同的数据进行存储,使用容量从大到小...

1.4K00
来自专栏钟志远的专栏

Python操作Redis - 云爬虫初探

云存储Redis(Cloud Redis Store)是腾讯云打造的兼容Redis协议的缓存和存储服务,提供主从版和集群版。丰富的数据结构能帮助您完成不同类型的...

1.3K00
来自专栏崔庆才的专栏

利用 Flask+Redis 维护 IP 代理池

目前有很多网站提供免费代理,而且种类齐全,比如各个地区、各个匿名级别的都有,不过质量实在不敢恭维,毕竟都是免费公开的,可能一个代理无数个人在用也说不定。所以我们...

2.3K00
来自专栏QQ会员技术团队的专栏

大规模排行榜系统实践及挑战

在过去的一年中,排行榜系统从无到有,接入的业务从单一的QQ会员到企鹅电竞动漫等20几个各类业务,接入的排行榜数实现了从几个到数万的突破,单个排行榜用户数最大90...

3.8K10
来自专栏云加头条

CRS : 腾讯云 Redis 产品架构解析

Redis作为key-value数据库里的最热门的一员,在保持key-value数据库的简单快速的优点基础上,具有一些部分关系数据库的优点,例如数据结构丰富、操...

3.1K30
来自专栏社区的朋友们

在共享内存实现 Redis(上)

从实现方式入手,设计了一种综合二者优点的方案:将 Redis 做成数据逻辑分离,数据存放共享内存,进程只负责存储逻辑,同时解决 Redis 长命令卡顿和 for...

1.5K20
来自专栏Linuxer的专栏

从 0 到 1,Java Web 网站架构搭建的技术演进

工作也有几多年了,无论是身边遇到的还是耳间听闻的,多多少少也积攒了自己的一些经验和思考,当然,我并没有接触太多高大上的分布式架构实践,所以总结的经验相对比较零碎...

50910
来自专栏廖可知的专栏

Redis 源码 bug 深入定位过程分享

Redis 3.2.8及以前的版本中 AOF 重写过程存在fd泄漏的风险。本文描述了一次与此相关的 fd泄漏问题的定位过程,并结合源码分析了问题产生的根源。

2.9K30

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励