Usando SMTP na IoT

Usando SMTP en IoT

El control de dispositivos IoT requiere aplicaciones y configuraciones específicas. Pero también puedes controlarlos mediante correos electrónicos, ya que el envío por correo electrónico es posible mediante SMTP (Protocolo simple de transferencia de correo), que se encuentra en la pila TCP/IP. Por lo tanto, los dispositivos que admiten la pila TCP/IP pueden utilizar los correos electrónicos como comando y control.

Entonces, para fines de aplicación, crearemos un dispositivo que detectará la presencia de cualquier objeto en un rango determinado y hará clic en una imagen cuando alguien esté en el rango de detección del dispositivo. Finalmente, enviará un correo electrónico con la imagen adjunta.

Componentes necesarios

  1. Frambuesa Pi
  2. Módulo de cámara Raspberry Pi
  3. Sensor ultrasónico (HC-SR04)
  4. Conceptos básicos de Python
  5. Resistencia de 1kΩ, 2kΩ, cables de puente

Esquema y conexión.

Figura 1. Diagrama de conexión

  1. Conecte VCC de HC-SR04 a 5V de Pi y GND a tierra
  2. Conecte TRIG Pi a GPIO23
  3. Para el pin ECHO, el GPIO de Raspberry Pi no admite una señal de 5 V directamente, por lo que usaremos un divisor de voltaje para conectar el pin ECHO a GPIO24 y convertir una señal de 5 V en 3,3 V.

Comprender la funcionalidad básica

  1. Usaremos un script de Python para controlar la entrada y salida de nuestro módulo de sensor y módulos de cámara conectados al Pi para detectar y detectar.
  2. El sensor enviará ondas ultrasónicas y detectará las ondas reflejadas desde el pin ECHO; así, podemos calcular la distancia a la que se coloca el objeto desde el sensor. Así que crearemos un área alejada donde podamos recibir una señal de ECO si se coloca un objeto allí.
  3. La señal de eco actuará como un botón de clic para nuestro módulo de cámara, por lo que obtendremos una imagen cada vez que alguien entre en el área de detección.
  4. Después de tomar la foto, usaremos SMTP para transferir la imagen capturada a nuestro buzón.

Implementación

Usaremos Python 2.7 para implementar la funcionalidad completa, incluidas muchas tareas paralelas y de subprocesos múltiples; por lo tanto, se requiere un conocimiento básico de Python. La parte de implementación se puede dividir en tres partes.

  1. Importar bibliotecas importantes
  2. Detección de objetos
  3. Al hacer clic en la imagen del objeto
  4. Enviar la imagen por correo electrónico al buzón

Configuración e importación de bibliotecas importantes: Para realizar funciones GPIO y de cámara en la Raspberry Pi necesitaremos algunas bibliotecas de Python. También los importaremos para controlar nuestro módulo de cámara.
Para la cámara, necesitamos instalar la biblioteca usando el siguiente comando en la terminal.
$ sudo apt-get install python-picamera

Después de la instalación, importaremos el tema a nuestro script principal. Importaremos nuestras bibliotecas además de esto.
importar RPi.GPIO como GPIO
importar picamera

También tenemos que importar otras bibliotecas necesarias para subprocesos múltiples.

Necesitamos importar algunas bibliotecas como base64, MIME (para archivos adjuntos como imágenes) y SMPT, para correos electrónicos.
importar imaplib
desde base64 importar b64decode
desde smtplib importar SMTP
desde correo electrónico.MIMEMultipart importar MIMEMultipart
desde correo electrónico.MIMEBase importar MIMEBase
desde email.MIMEText importar MIMEText
codificadores de importación de correo electrónico

Ahora necesitas cambiar las variables que almacenan el valor del correo electrónico y la contraseña.
gmail_user = '(correo electrónico protegido)'
gmail_pwd = 'contraseña_gmail'
servidor = 'smtp.gmail.com'
puerto_servidor = 587

Detección de objetos: crearemos una función que seguirá activando el sensor ultrasónico para enviar ondas ultrasónicas y detectar si algo está dentro del alcance.
mientras GPIO.entrada(ECHO)==1:
Tras la detección, esta función llamará a una función para hacer clic en una imagen del objeto. Dado que se trata de una tarea continua, estará en nuestro bucle principal.
Mantente alejado
captura de imagen

Hacer clic en la imagen del objeto: Para hacer clic en la imagen del objeto, crearemos una función que hará clic en llamar y almacenará la imagen en el almacenamiento local.
cámara.capture (ruta del archivo)
Después de hacer clic, llamará a una función que redactará un correo electrónico con la imagen adjunta.
descargar('Imagen', ruta del archivo)

Enviar la imagen por correo electrónico al buzón:
Utilizando la biblioteca SMTP y sus métodos, esta función toma parámetros como el nombre de la imagen y su ruta, la hora del clic y el correo electrónico al buzón. Es una tarea paralela, ya que la carga puede tardar dependiendo de la velocidad de la conexión. No queremos detener otra tarea durante este período.
enviarEmail(ahora mismo, self.jobid, (self.filepath))

Así es como podemos utilizar el correo electrónico para comunicarnos con nuestros dispositivos IoT.

Código:

Video

Volver al blog

Deja un comentario

Los comentarios deben ser aprobados antes de su publicación.