用Python控制摄像头拍照并发邮件-创新互联

1 前言

为什么会有写这个程序的想法呢?

创新互联公司:于2013年成立为各行业开拓出企业自己的“网站建设”服务,为上千余家公司企业提供了专业的做网站、成都网站设计、网页设计和网站推广服务, 按需网站策划由设计师亲自精心设计,设计的效果完全按照客户的要求,并适当的提出合理的建议,拥有的视觉效果,策划师分析客户的同行竞争对手,根据客户的实际情况给出合理的网站构架,制作客户同行业具有领先地位的。

最初的想法是写一个可以用电脑前置摄像头拍照的程序,在舍友使用你电脑的时候,不经意间获取到一大堆奇葩舍友的表情包。

然后我又突发奇想,要不搞个开机启动吧,这样我就可以看到是谁开启了我的电脑啦。

然后,突(nao)发(dong)奇(da)想(kai)的我又想到万一我电脑不在身边怎么办?要不再加个邮件发送机制吧,开机拍到照片再邮件发送给我?哈哈

2 工具

deepin 15.9

好看好用的国产linux系统

python 2.7或者3.6

解释器,哪个版本都可以,我选择3.6

smtplib

用来发送邮件

email

用来构造邮件内容的库

opencv

用来调取摄像头拍摄照片

time

获取开机以及拍照的时间

os

判断网络连接

获取脚本路径

sys

判断网络是否联通

3 思路

1.用opencv库调用摄像头拍照保存为文件。

2.检查网络是否连接,未连接则图片保存到本地。

3.用email库构造邮件内容,把保存的照片以附件的形式插入到邮件内容中。

4.用smtplib库发送邮件给指定邮件接收者。

5.实现脚本开机自启动。

4 安装及导入所使用的包

首先当然是安装opencv啦。

其他的email、smtplib、sys、os、time为python默认安装的包,我们只需要导入即可。

如果是python3.6安装opencv就在终端输入:

pip3install opencv-python

如果是python2.7安装opencv,就在终端输入:

pipinstall opencv-python

安装完成后,我们导入必要的包。

各个包的作用在前文已经讲过,不再多言。

email 我们只需要部分功能,所以选择性导入

用Python控制摄像头拍照并发邮件


5 设置参数

将smtp服务器,登录邮箱账号及密码,收件人,脚本路径等设置为全局变量。方便以后程序移植与修改。

用Python控制摄像头拍照并发邮件

注:很多邮箱为了安全起见,不会使用真实的登录密码,而是要使用授权码,在QQ邮箱的设置里面可以找到生成授权码选项。

6 实现拍照

用Python控制摄像头拍照并发邮件


7 构造邮件内容

用Python控制摄像头拍照并发邮件


8 实现邮件发送

用Python控制摄像头拍照并发邮件


9 判断网络联通状态

判断网络联通状态的方法很多,我采用很简单很直接的ping。

用Python控制摄像头拍照并发邮件


10 主函数逻辑

如果网络连接正常,则拍照发邮件。

如果网络未连接,等待十秒钟再次测试,如果等待次数超过设置的大次数,程序退出。

用Python控制摄像头拍照并发邮件


11 实现开机自启动

首先要写一个开机自启脚本,文件名为:autoStart.sh

脚本内容为

用Python控制摄像头拍照并发邮件

然后 在/etc/rc.local最后添加一行

./home/projects/sendemail/autoStart.sh

大功告成。

10 重启系统

代码都写好了,重启系统就可以收到邮件啦。

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前名称:用Python控制摄像头拍照并发邮件-创新互联
当前URL:http://myzitong.com/article/ijepp.html