Raspberry Pi开发之旅-实现云平台监控
一、基本设置
sudo raspi-config
移动到第五项“Enable Camera”,回车进入,按tab键切换到“Enable”回车确认。回到主菜单,tab键切换到“Finish”回车确认。树莓派会自动重启。
或者执行命令手动关机
sudo shutdown -h now
警告!!!!!!!!!!!!!!!!!!!!!!!!!
绝对不可以带着电源的情况下插入摄像头,如果带电操作,十之八九你的摄像头会GG,博主血泪教训。而且摄像头GG了之后每次调用还是会亮灯,只是你接受不到数据,这个问题我已经Google了很长时间,大家普遍认为应该是被烧坏了= =
等到你都安装完毕了,确保连接好各个硬件之后再给电源。(千万记得不要热插拔摄像头)
二、配置七牛云
我们需要新建一个仓库,点开之后自己任意选节点,其实国内的几个节点速度都差不多,完全可以满足需求。
之后我们获取的监控照片就可以来这里查询
三、编译程序
首先,我们写一个.sh脚本
take_photo.sh
raspistill -o current_photo.jpg python test.py
然后安装七牛云的python SDK,在命令行内执行
sudo pip install qiniu
在take_photo.sh同目录下我们建立一个test.py
# -*- coding: utf-8 -*- import time from qiniu import Auth, put_file, etag, urlsafe_base64_encode import qiniu.config import os #需要填写你的 Access Key 和 Secret Key access_key = '' #这里的密钥填上刚才我让你记住的密钥对 secret_key = '' #这里的密钥填上刚才我让你记住的密钥对 #构建鉴权对象 q = Auth(access_key, secret_key) #要上传的空间 bucket_name = 'mypi' #上传到七牛后保存的文件名 key = '%s_%s_%s_%s_%s_%s.jpg'%(time.localtime()[0],time.localtime()[1],time.localtime()[2],time.localtime()[3],time.localtime()[4],time.localtime()[5]) #生成上传 Token,可以指定过期时间等 token = q.upload_token(bucket_name, key, 3600) #要上传文件的本地路径 localfile = 'current_photo.jpg' ret, info = put_file(token, key, localfile) filename = 'current_photo.jpg' if os.path.exists(filename): os.remove(filename)
这样一来,我们每次执行take_photo.sh脚本,都可以让树莓派拍一张照片并且发送到七牛云上,我们只需登录就能看到数据
四、定时执行
利用Linux的定时任务crontab管理这个脚本
crontab -e
在末尾追加上
* * * * * /home/pi/take_photo.sh
之后重启cron
sudo service cron restart
qshell使用教程 http://developer.qiniu.com/code/v6/tool/qshell.html