树莓派使用python监控并通过邮件发送实时温度给手机(下)

我们爱的朋友们!感谢大家的阅读!

上篇文章我们写了如何通过树莓派用python来监测室内温度(没看过的可以进鄙人的空间复习下~),这篇文章我们步入重点,来写一下如何使用树莓派运行python脚本将实时监测数据通过邮箱发送给手机。

树莓派使用python监控并通过邮件发送实时温度给手机(下)

前期准备:

我们要想发送邮件这里要用到python的email库跟smtplib库,这里用的python版本为python3.0+如果没有的同学需要先安装python3或者更高的版本支持。

先更新软件源sudo apt-get update

安装依赖库sudo apt-get install mercurial python3-dev

安装gpio模块 sudo apt-get install python3-rpi.gpio

当然你也可以选择通过pip来快速安装:

sudo apt-get install python3-pip

sudo pip3 install rpi.gpio

SMTP:

创建代码之前,先来介绍一下SMTP。

SMTP是“Simple Mail Transfer Protocol”的缩写,也就是邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

我们要实现利用python发送邮件就务必要用到python所提供的smtplib模块,通过smtplib我们可以很方便的发送电子邮件。一下简单介绍下过程:

1.Python创建 SMTP 对象:

import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明:

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。

  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。

  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

2.使用sendmail方法发送邮件:

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

参数说明:

  • from_addr: 邮件发送者地址。

  • to_addrs: 字符串列表,邮件发送地址。

  • msg: 发送消息

创建SMTP:

以上的内容都了解的差不多之后,我们需要先去运营商那申请开通一个SMTP服务,这个可以是腾讯的也可以是网易的,具体不限。以下我们以QQ邮箱为例:

1.登录QQ邮箱,点击设置--账户

树莓派使用python监控并通过邮件发送实时温度给手机(下)

2.往下拖,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”有一个IMAP/SMTP服务:

3.点一下开启,这个时候会像你要验证,验证通过后会弹出授权码(要牢记,后面有用!)。

树莓派使用python监控并通过邮件发送实时温度给手机(下)

以上的问题搞完后,我们开始实现代码:

代码实现:

代码的实现也比较容易,毕竟smtplib这个模块已经帮我们实现的差不多了,我们只需要按部就班:

树莓派使用python监控并通过邮件发送实时温度给手机(下)

代码鄙人稍微注释了一下,简单易懂。

然后我们把要发的温度的值,通过上篇文章我们介绍的获取方法封装成一个函数。并且对原始代码稍加修改,使其更人性化。

树莓派使用python监控并通过邮件发送实时温度给手机(下)

(完善的代码)

完善后的代码,这里有几点我们稍微一介绍。

我们把tnum4 = string.atoi(tnum3)/1000注释掉了换成了tnum4 = int(tnum3)/1000,这是因为python3去掉了对atoi()这个方法的支持,所以str转int直接给int()强制转换。

邮件内容部分的“您目前的室温为: ['+ str(tnumx()) +'] 请注意别烧坏”这个地方因为tnumx()的返回值是int类型的,想要直接打印字符串也要强制转换成str所以这里给了str()强转。

注:python3+版本的print输出格式为python('xxxx')上面的代码忘记改格式了 会造成错误!

将最后一句改为:print('send email OK!')即可

好啦,上面的内容我们介绍完了,来测试一下!

树莓派使用python监控并通过邮件发送实时温度给手机(下)

树莓派使用python监控并通过邮件发送实时温度给手机(下)

运行完毕之后,我们邮箱成功的收到了我们发送的邮件,并且给出了当前的温度值。

代码看不清的可以直接从网盘下载,自提地址:

链接:https://pan.baidu.com/s/1QEDtefd2j7Vt1AZrxpPiNw 密码:1djo

那今天的文章教程就做完了,希望大家多多支持,多多关注!

相关推荐