版权声明:本文由蒋鹏原创文章,转载请注明出处:
文章原文连接:https://www.qcloud.com/community/article/118css
来源:腾云阁 https://www.qcloud.com/community前端
不知道其余人有没有这样的顾虑,就是每次须要外出一些时日的时候老是担忧家里的花无人浇水会干死。因而就想着是否能本身动手作一个能够用手机操控实现浇花的“半自动浇花器”呢,之因此称之为“半自动”是由于在必定程度上该设备使用了自动化控制的元件与技术,但操做依然是根据人的意志用手机来完成的所以为“半自动”。当实现自动检测土壤湿度来实现浇花并发送浇花报告到主人手机时可称之为“自动化”。node
话很少说,来看看折腾这样一个东西须要准备些什么硬件和软件,有须要的人必定要耐心看完哦,内容有点多。python
鉴于网络有点绕,开始前先放一下个人网络拓扑图react
1.树莓派:因为前段时间用树莓派折腾过家里的NAS,所以树莓派首当其冲做为智控中心用来相应手机端发出的指令
linux
2.arduino:此设备与各类智能元器件通讯很是方便,所以用他做为终端来和小水泵链接
nginx
3.5v继电器:此设备与下面提到的小型水泵串联,来实现水泵的运行与中止
redis
4.5v小水泵:用来抽水的,如图,我为了方便连线,把这个usb头剪掉了用4节7号电池供电。这里要对水泵的电路进行简单改造,找到里面的红线(正极),剪短分别连到继电器的常开和公共端。
windows
5.usb摄像头:用来定时进行拍照,传回运行的监控图片。
微信
6.其余设备:a.塑料软管,但因为塑料软管的方向性很差控制致使出水效果很差,后续考虑用一根pvc管来替代。b.万用表,c.电烙铁,d.杜邦线(最好有公对母的,可用母对母和排针自制)若干。
硬件准备的差很少了,如今咱们开始连线。
树莓派是一个完整的linux系统(debian系统),所以arduino能够以usb设备的形式挂载,而且用串口进行通讯。固然通讯方式还能够有其余,读者有想试的能够本身搜索方案。
继电器的vcc,gnd分别链接arduino电源的5v,GND端,继电器的in口链接arduino的13口。
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自动化的时候也许就不用这么麻烦了。