控制物联网设备需要特定的应用程序和设置。但你也可以使用电子邮件来控制它们,因为电子邮件可以使用SMTP(简单邮件传输协议),它在TCP/IP堆栈上。因此,支持TCP/IP协议栈的设备可以使用电子邮件作为命令和控制。
因此,出于应用的目的,我们将制造一种设备,它将在特定范围内感知任何物体的存在,当任何人都在该设备的探测范围内时,它将点击图像。最后,它会发送一封带有图片附件的电子邮件。
组件的要求
- 覆盆子皮
- 树莓Pi摄像机模块
- 超声波传感器(HC-SR04)
- 对Python的基本理解
- 1kΩ, 2kΩ 跨接电阻器
示意图和连接
- 将HC-SR04的VCC连接至Pi的5V,并将GND连接至接地
- 将TRIG Pi连接到GPIO23
- 对于ECHO引脚,Raspberry Pi的GPIO不直接支持5V信号,因此我们将使用分压器将ECHO引脚连接到GPIO24,并产生3.3V的5V信号。
了解基本功能
- 我们将使用Python脚本来控制传感器模块和摄像头模块的输入和输出,连接到Pi进行检测和传感。
- 传感器将发送超声波,并检测回波针上的回流波;因此,我们可以计算物体与传感器的距离。所以,我们将做一个距离区域,在那里我们可以得到一个回波信号,如果物体被放置在那里。
- 回波信号将作为我们的相机模块的点击按钮,因此每次有人进入探测区域时,我们都会得到一张图像。
- 拍照后,我们将使用SMTP将捕获的图像传输到我们的邮箱。
实施
我们将使用Python2.7来实现完整的功能,包括许多多线程和并行任务;因此,需要对Python有基本的了解。实现部分可分为三个部分。
- 导入重要库
- 目标检测
- 单击对象的图像
- 通过电子邮件将图像发送到邮箱
设置和导入重要库:为了在Raspberry Pi中执行GPIO和相机函数,我们需要一些Python库。我们将导入它们来控制我们的相机模块。
对于摄像头,我们需要在终端中使用以下命令安装库。
$sudo apt get安装python picamera
安装之后,我们将在主脚本中导入主题。我们将在此基础上导入我们的库。
将RPi.GPIO导入为GPIO
进口皮卡梅拉
我们还必须导入多线程所需的其他库。
我们需要导入一些库,如base64、MIME(用于像图像这样的附件)和SMPT(用于电子邮件)。
进口imaplib
从base64导入B64解码
从smtplib导入SMTP
从电子邮件。MIMEMultipart进口MIMEMultipart
从电子邮件。MIMEBase进口MIMEBase
从电子邮件。MIMEText进口MIMEText
从电子邮件导入编码器
现在您需要更改存储电子邮件和密码值的变量。
gmail_用户界面username@gmail.com’
gmail_pwd = ' gmail_password '
服务器= ' smtp.gmail.com '
服务器端口=587
目标检测:我们将制作一个功能,不断触发超声波传感器发送超声波,并检测范围内是否有任何东西。
当GPIO.input(回波)==1时:
检测时,此函数将调用函数单击对象的图像。因为这是一个连续的任务,它将在我们的主循环中。
如果距离< distance_detect:
捕获图像()
单击对象的图像:要单击对象的图像,我们将创建一个函数,该函数将在调用图像并将其存储在本地存储器上时单击。
camera.capture(文件路径)
点击之后,它将调用一个函数,该函数将以图片作为附件组成电子邮件。
下载(“形象”,filepath)
将图像通过电子邮件发送到邮箱:
使用SMTP库及其方法,该函数接受如下参数:图像名称及其路径、单击时间和发送到邮箱的电子邮件。这是一个并行的任务,因为根据连接速度的不同,上传需要一定的时间。我们不想在这段时间内停止另一项任务。
sendEmail(立即,self.jobid,[self.filepath])
所以,这就是我们如何使用电子邮件与我们的物联网设备沟通。
代码:
视频
您可能还喜欢:
根据以下文件提交:188188金宝搏