【物联网实训项目】------(二)家庭智慧安防系统之定时监控

1.开启摄像头的配置

a.首先使用 ls指令来查看是否加载到了对应的video device设备

注意,这里我用的是SecureCRT软件远程连接的树莓派,当然也可以直接在树莓派上操作,如果使用SecureCRT软件远程连接树莓派的话,要注意windows的ip地址跟树莓派的ip地址在一个局域网内,这里我用的是我手机热点。然后在SecureCRT输入树莓派的IP地址以及用户名pi和密码raspberry.

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第1张图片

b.添加驱动程序文件

sudo vim /etc/modules

输入上述命令,在这个文件的最后一行输入

bcm2835-v4l2

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第2张图片

 

c.修改Raspberry的启动配置使能项

sudo raspi-config

输入上述命令会自动打开下面界面,选择红色Enable Camera所指向的那一行,选择进入,然后使其enable,然后finish,之后选择重启即可。

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第3张图片

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第4张图片

d.重启之后,来看看/dev设备下是否存在摄像头设备

ls -al /dev/ | grep video

输入上述命令,发现了下图红色箭头所指向的video0的设备,即完成操作。

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第5张图片

2.测试摄像头的使用情况

raspistill -o image.jpg

通过上述命令会打开摄像头会在屏幕开启摄像头的画面

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第6张图片

然后ls显示一下,会发现存在的照片,摄像头测试成功。

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第7张图片

3.云服务器的申请

这里我准备将我的照片上传至云服务器上 ,所以我需要申请一个云服务器,在这里我采用的是七牛云服务器。

https://portal.qiniu.com/signup?code=3lmzbyfpvvfbm

首先打开七牛云的官网,点击产品,选择对象存储,立即使用,申请个人账号。

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第8张图片

注册账号

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第9张图片

注册完成后,还是选择对象存储,进入下方页面,选择新建存储空间,然后填写存储空间的名称,然后立即创建。这里如果你没有实名认证的话,是无法创建成功的,按照提示实名认证之后即可创建成功。

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第10张图片

 

至此,七牛云服务器创建成功。

 

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.来到七牛云对象存储空间这里,可以看到刚刚上传成功的图片

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第11张图片

至此,我们每次执行take_photo.sh脚本,都可以让树莓派拍一张图片发送到七牛云上,如果需要自动上传的话,我们可以利用Linux的定时任务crontab来管理这个脚本。

执行下面的命令

crontab -e

在文件的末尾追加下面的内容

1

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

然后ctrl+X,按Y保存退出

【物联网实训项目】------(二)家庭智慧安防系统之定时监控_第12张图片

之后重启cron这个服务

sudo service cron restart

至此,家庭安防的定时监控就完成了,它会每分钟拍下照片并且发送到我们的七牛云上。

 

 

 

 

 

 

 

 

你可能感兴趣的:(项目实战,项目篇)