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

posted @ 2017-04-05 16:46  Sirius丶武灬  阅读(298)  评论(0编辑  收藏  举报