树莓派–手机远程浇花系统

[toc]

为什么

我心心念念的文竹呀,绝对不能死呀,还要给妹子呢.
先来两张淘宝订单

这些是零件,基本上就是水泵和继电器是主要的,然后就顺便买了其他的东西花了60多,本身这两个就15呀,果然管不住自己的手呀.

整体框架

手机访问服务器获取登录然后进入控制页面;
树莓派python 使用websocket进行长连接
手机在web页面上进行操作,并发送请求到服务器,服务器通过websocket发送指令到树莓派,然后python解析指令,并操控继电器进而操控水泵;
网络传输代码介绍:上一篇的:原生websocket在python

树莓派gpio

目的控制继电器来控制水泵和pwm控制步进电机和获取湿度传感器数据;

//拍照
def takepic():
  str = time.strftime("%Y-%m-%d-%H:%M:%S", time.localtime())
  print(str);
  os.system('fswebcam --no-banner -r 640x480 -S 50 --jpeg 100 --save '+str+'.png')

  print("拍照完毕");

  path = str+".png"
  updateimage.upimage(path);

//上传
def upimage(str):
        url ="http://139.199.17.156:5002/iot/update"
        print(str+"正在上传中")
        file={('file',open(str,"rb"))}
        #re=requests.get("http://localhost:5002/pysent/here")
        #print(re.json())

        r = requests.post(url, files=file)

        print(r.json());

// 添加水
def water(tt):
     GPIO.setmode(GPIO.BCM)
     #GPIO.setwarnings(False)

     # 输出模式
     gg = 17
     print("out")
     GPIO.setup(gg, GPIO.OUT)
     time.sleep(3)
     print("In")
     GPIO.setup(gg, GPIO.IN)
     time.sleep(6)
     print("浇花完成")

有个很坑的问题 这个继电器当gpio高和低没有用,只有设置为gpio.out就可以了,所以我控制水泵就不是通过给高和底,而是给gpio设置输入和输出的模式不同即可

  • 通过上一篇的设置图床就可以保证进行拍照并查看图片了

硬件设置

树莓派gpio分为两种模式 BCM 和 物理定义的
可以使用gpio命令的方式进行操控,在shell也可以


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注