Raspberry Pi开发之旅-实现云平台监控

一、基本设置

1
sudo raspi-config

移动到第五项“Enable Camera”,回车进入,按tab键切换到“Enable”回车确认。回到主菜单,tab键切换到“Finish”回车确认。树莓派会自动重启。

或者执行命令手动关机

1
sudo shutdown -h now

警告!!!!!!!!!!!!!!!!!!!!!!!!!
绝对不可以带着电源的情况下插入摄像头,如果带电操作,十之八九你的摄像头会GG,博主血泪教训。而且摄像头GG了之后每次调用还是会亮灯,只是你接受不到数据,这个问题我已经Google了很长时间,大家普遍认为应该是被烧坏了= =

等到你都安装完毕了,确保连接好各个硬件之后再给电源。(千万记得不要热插拔摄像头)

二、配置七牛云

我们需要新建一个仓库,点开之后自己任意选节点,其实国内的几个节点速度都差不多,完全可以满足需求。

之后我们获取的监控照片就可以来这里查询

三、编译程序

首先,我们写一个.sh脚本
take_photo.sh

1
2
raspistill -o current_photo.jpg
python test.py

然后安装七牛云的python SDK,在命令行内执行

1
sudo pip install qiniu

在take_photo.sh同目录下我们建立一个test.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- 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 = '' #这里的密钥填上刚才我让你记住的密钥对
 
#构建鉴权对象
= 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管理这个脚本

1
crontab -e

在末尾追加上

1
* * * * * /home/pi/take_photo.sh

之后重启cron

1
sudo service cron restart

qshell使用教程 http://developer.qiniu.com/code/v6/tool/qshell.html

原文地址:https://www.cnblogs.com/Pond-ZZC/p/6678620.html