1.开启摄像头的配置
a.首先使用 ls指令来查看是否加载到了对应的video device设备
注意,这里我用的是SecureCRT软件远程连接的树莓派,当然也可以直接在树莓派上操作,如果使用SecureCRT软件远程连接树莓派的话,要注意windows的ip地址跟树莓派的ip地址在一个局域网内,这里我用的是我手机热点。然后在SecureCRT输入树莓派的IP地址以及用户名pi和密码raspberry.
b.添加驱动程序文件
sudo vim /etc/modules
输入上述命令,在这个文件的最后一行输入
bcm2835-v4l2
c.修改Raspberry的启动配置使能项
sudo raspi-config
输入上述命令会自动打开下面界面,选择红色Enable Camera所指向的那一行,选择进入,然后使其enable,然后finish,之后选择重启即可。
d.重启之后,来看看/dev设备下是否存在摄像头设备
ls -al /dev/ | grep video
输入上述命令,发现了下图红色箭头所指向的video0的设备,即完成操作。
2.测试摄像头的使用情况
raspistill -o image.jpg
通过上述命令会打开摄像头会在屏幕开启摄像头的画面
然后ls显示一下,会发现存在的照片,摄像头测试成功。
3.云服务器的申请
这里我准备将我的照片上传至云服务器上 ,所以我需要申请一个云服务器,在这里我采用的是七牛云服务器。
https://portal.qiniu.com/signup?code=3lmzbyfpvvfbm
首先打开七牛云的官网,点击产品,选择对象存储,立即使用,申请个人账号。
注册账号
注册完成后,还是选择对象存储,进入下方页面,选择新建存储空间,然后填写存储空间的名称,然后立即创建。这里如果你没有实名认证的话,是无法创建成功的,按照提示实名认证之后即可创建成功。
至此,七牛云服务器创建成功。
4.树莓派实时采集照片传至云服务
a.首先写一个.sh脚本,用来执行所有的命令。
vi take_photo.sh
在文件中输入下面的内容
raspistill -o current_photo.jpg
python test.py
b.按照七牛python SDK,执行下面命令
sudo pip install qiniu
c.在.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 = ' '#这里填写你在七牛云创建的空间存储名称
#上传到七牛后保存的文件名
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)
注意:在文中替换秘钥对以及你申请的上传空间存储名称
d.执行脚本文件,如果没有报错信息,上传成功
sudo bash take_photo.sh
e.来到七牛云对象存储空间这里,可以看到刚刚上传成功的图片
至此,我们每次执行take_photo.sh脚本,都可以让树莓派拍一张图片发送到七牛云上,如果需要自动上传的话,我们可以利用Linux的定时任务crontab来管理这个脚本。
执行下面的命令
crontab -e
在文件的末尾追加下面的内容
1 |
* * * * * /home/pi/take_photo.sh |
然后ctrl+X,按Y保存退出
之后重启cron这个服务
sudo service cron restart
至此,家庭安防的定时监控就完成了,它会每分钟拍下照片并且发送到我们的七牛云上。