¿Te gustaría tener la posibilidad de recibir una alerta por correo electrónico cada vez que un objeto o persona cambie de ubicación? En este artículo te mostraremos cómo puedes crear un sistema de alerta utilizando una Raspberry Pi y un módulo GPS. ¡Sigue leyendo para descubrir cómo poner en marcha este interesante proyecto de seguimiento en tiempo real!
En este tutorial, aprenderá cómo crear un sistema de notificación por correo electrónico de cambio de ubicación utilizando una Raspberry Pi. En resumen, con la Raspberry Pi y el módulo GPS NEO-6M, envías datos GPS a tu dirección de correo electrónico. Este proyecto se puede ampliar para que actúe como un rastreador GPS, registrando las coordenadas en un archivo al que podrá acceder más adelante.
Tener un dispositivo que te notifica por correo electrónico cuando cambia la ubicación de un objeto suena genial. Podrás hacer eso y mucho más cuando aprendas a usar el módulo GPS NEO-6M con la Raspberry Pi.
Esto es lo que lograrás con este tutorial:
- Usando el módulo GPS NEO-6M con Raspberry Pi;
- Enviar un correo electrónico con la Raspberry Pi;
- Este tutorial también es una buena referencia para configurar UART en Raspberry Pi.
Esto es lo que dice Emmanuel sobre este proyecto: “Personalmente, decidí escribir este tutorial después de pasar unos tres días intentando conectar un componente que pueda comunicarse con Raspberry Pi 3 a través de UART para que funcione.«
Requisitos:
- Deberías estar familiarizado con Raspberry Pi; lee Introducción a Raspberry Pi.
- Debe tener el sistema operativo Raspbian instalado en su Raspberry Pi; lea «Instalar, activar y conectar Raspbian Lite usando SSH».
Si estás interesado en la domótica y quieres aprender más sobre Node-RED, Raspberry Pi, ESP8266 y Arduino, te recomiendo descargar mi curso: “Construye un sistema domótico por $100”.
Piezas requeridas
Aquí hay una lista completa de los componentes que necesitará para este proyecto:
- placa frambuesa pi – leer Los mejores kits de inicio de Raspberry Pi
- Tarjeta MicroSD – al menos 8 GB Class10
- Fuente de alimentación Raspberry Pi (5V, 2,5A)
- Módulo GPS NEO-6M V2
- tablero de circuitos
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Acerca del módulo GPS NEO-6M V2
El Módulo GPS NEO-6Mcomo se muestra en la imagen a continuación, puede ser un poco difícil de usar ya que se comunica con Raspberry Pi a través de UART. Por lo tanto, debe seguir algunos pasos para habilitar la comunicación UART.
En este tutorial, asumiremos que sabes cómo configurar tu Raspberry Pi y acceder a ella a través de SSH usando Putty. También asumimos que está utilizando el sistema operativo Raspbian Jessie, pero también debería funcionar en Raspbian Stretch.
Habilitando UART en Raspberry Pi
El SoC utilizado en la Raspberry Pi tiene dos UART integrados: PL011 y otro que podemos llamar Mini-UART. Según el sitio web oficial de Raspberry Pi, los dos UART se implementaron utilizando diferentes bloques de hardware y, por lo tanto, tienen características diferentes. Sin embargo, ambos funcionan al nivel lógico de 3,3 V.
En Raspberry Pi 3 y Pi Zero (placas Raspberry Pi con módulos inalámbricos y Bluetooth), el UART PL011 se conecta al módulo Bluetooth, mientras que el Mini-UART se utiliza para la salida de la consola Linux. Esto significa que el PL011 no está disponible para comunicación serial con componentes externos.
Para resolver esto, necesita instalar una superposición disponible en la versión actual de Raspbian y enviar la salida de la consola Linux al PL011. ¿Por qué no podemos usar el mini UART? Consideraría que el PL011 es el mejor de los dos UART debido a su nivel de implementación.
Entonces, para comenzar: lo primero que debes hacer antes de comenzar un proyecto de Raspberry Pi es actualizar la Pi. Para hacer esto, ingrese el siguiente comando:
pi@raspberrypi:~ $ sudo apt update && sudo apt upgrade
Entonces tienes que configuración.txt Archivo. Ejecute el siguiente comando:
pi@raspberrypi:~ $ sudo nano /boot/config.txt
Al final del archivo de texto, agregue las siguientes líneas para deshabilitar Bluetooth y permitir el aumento de la frecuencia central (cada parámetro debe estar en una línea diferente).
dtparam=spi=on dtoverlay=pi3-disable-bt force_turbo=1 core_freq=250 enable_uart=1
Asegúrate de que no haya errores tipográficos. Prensa CONTROL+Xseguido por Y y presione Aporte ahorrar.
A continuación necesitas hacer el cmdline.txt Archivo:
pi@raspberrypi:~ $ sudo nano /boot/cmdline.txt
Reemplace el contenido de este archivo con lo siguiente (asegúrese de que todo esté en la misma línea):
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
Prensa CONTROL+Xseguido por Y y presione para guardar Aporte.
A continuación, debe desactivar el servicio RPi Serial Getty en el mini-UART ingresando los siguientes comandos:
pi@raspberrypi:~ $ sudo systemctl stop [email protected] pi@raspberrypi:~ $ sudo systemctl disable [email protected]
Nota: Si desea habilitar el servicio serial de Getty e iniciarlo más tarde, debe ejecutar los siguientes comandos (NO CORRA los siguientes comandos ahora):
pi@raspberrypi:~ $ sudo systemctl enable [email protected] pi@raspberrypi:~ $ sudo systemctl start [email protected]
Reinicie el sistema con:
pi@raspberrypi:~ $ sudo reboot
Espere a que el Pi se vuelva a encender y establezca una comunicación SSH.
El último paso es activar el ttyAMA0 cual es ese PL011 UART usando el comando;
pi@raspberrypi:~ $ sudo systemctl enable [email protected]
Esquema
Una vez que se completa la configuración de Raspberry Pi UART, puede comenzar a construir su circuito. Simplemente siga el siguiente diagrama de circuito.
Probando la configuración
En esta etapa es importante probar su módulo GPS y verificar que la configuración UART esté funcionando como se desea. Encienda el sistema y ejecute el siguiente comando:
pi@raspberrypi:~ $ sudo cat /dev/ttyAMA0
Debería ver una gran cantidad de transmisión de datos NMEA como se ve en la imagen a continuación. Esto muestra que la configuración de UART y su GPS están activos.
Preparando el guión
Una vez que se completa la configuración de Raspberry Pi y los componentes están conectados, el siguiente paso es escribir el script que recopila los datos NMEA del módulo GPS. Luego deberá analizarlo para extraer la latitud y longitud y luego convertirlo en un enlace de mapa de Google antes de enviarlo por correo electrónico.
Antes de escribir el script, debe descargar la biblioteca Python que usaremos para analizar los datos NMEA. También deberás configurar tu cuenta de Gmail (u otra cuenta de correo electrónico) para permitir el acceso desde aplicaciones menos seguras.
Instalación de la biblioteca Python pynmea2
Para analizar la información del GPS utilizamos el pynmea2 Biblioteca de Python. Puede instalarlos en Raspberry Pi de la siguiente manera:
pi@raspberrypi:~ $ sudo apt install python-pip pi@raspberrypi:~ $ sudo pip install pynmea2
Para obtener más información sobre cómo funciona, consulte pynmea2 Página de GitHub.
Si usa Raspbian Lite, es posible que también necesite instalar Suscribirse a:
pi@raspberrypi:~ $ sudo pip install pyserial
Permitir el acceso a aplicaciones menos seguras
En su cuenta de correo electrónico, debe permitir el inicio de sesión desde aplicaciones menos seguras. Así es como funciona con Gmail:
- Vaya a la sección «Aplicaciones menos seguras» en «Mi cuenta»
- A continuación, vaya a «Acceso para aplicaciones menos seguras«,
- Elegir Encender
Nota: Para los usuarios de G Suite, esta configuración está oculta si su administrador ha bloqueado el acceso a cuentas de aplicaciones menos seguras.
Creando un nuevo guión
Una vez que haya hecho esto, estará listo para el guión. Está bien comentado para que entiendas el propósito de cada sección, pero aún puedes dejar comentarios a continuación.
Crea un nuevo archivo Python llamado email_alert_location_change.py ingresando el siguiente comando:
pi@raspberrypi:~ $ sudo nano email_alert_location_change.py
Copie el siguiente código en el archivo recién creado.
#
# Author: Emmanuel Odunlade
# Complete Project Details https://randomnerdtutorials.com
#
import time
import serial
import string
import pynmea2
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
#setting up mail information
fromaddr = "REPLACE_WITH_YOUR_EMAIL_ADDRESS"
pword = "REPLACE_WITH_YOUR_EMAIL_S_PASSWORD"
toaddr = "REPLACE_WITH_YOUR_TO_EMAIL_ADDRESS"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Location change alert"
#setup the serial port to which GPS is connected to
port = "/dev/ttyAMA0"
ser = serial.Serial(port, baudrate=9600, timeout=0.5)
dataout = pynmea2.NMEAStreamReader()
while True:
newdata = ser.readline()
print ("getting new lat")
if newdata[0:6] == '$GPGGA':
newmsg = pynmea2.parse(newdata)
newlat = newmsg.latitude
print(newlat)
newlong = newmsg.longitude
print(newlong)
lat = str(newlat)
lon = str(newlong)
content = "http://maps.google.com/maps?q=" + lat + "," + lon
Email = content
msg.attach(MIMEText(Email, 'plain'))
try:
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, pword)
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
print ("mail sent!")
except:
print("error, couldnt send mail, be sure to enable non secure apps login on sender's email")
time.sleep(3)
nota: Debes editar el código con tu propia información de correo electrónico.
Prensa CONTROL+Xseguido por Y y presione Aporte ahorrar.
Ejecute el script
Finalmente, ejecute su script:
pi@raspberrypi:~ $ sudo python email_alert_location_change.py
demostración
Este script envía las coordenadas GPS por correo electrónico cada tres segundos.
La idea es que edites este código para que se ajuste a tu propio proyecto.
nota: Para que tu Raspberry Pi pueda enviar correos electrónicos, necesita una conexión a Internet. Puedes conectar tu Raspberry Pi a tu teléfono inteligente siempre que tenga una conexión de datos y pueda actuar como un punto de acceso. Si no puede hacer esto, puede registrar los datos en un archivo y acceder a él más tarde.
Envolver
En este proyecto, le mostramos cómo enviar datos de ubicación GPS a su dirección de correo electrónico cada tres segundos. Con un poco de conocimiento de Python, puede manipular los datos para informar la ubicación cada vez que cambie.
Esto podría abrir numerosas posibilidades, desde juegos hasta rastrear objetos de valor, etc.
Esperamos que este tutorial te haya resultado útil.
Gracias por leer.
Sistema de alerta por correo electrónico cuando cambia de ubicación con Raspberry Pi y módulo GPS
En este tutorial aprenderás cómo construir un sistema de alerta por correo electrónico en caso de cambio de ubicación con Raspberry Pi. En resumen, enviarás datos de GPS a tu dirección de correo electrónico utilizando Raspberry Pi y el módulo GPS NEO-6M. Este proyecto se puede ampliar para actuar como un rastreador GPS que registrará las coordenadas en un archivo al que luego puedes acceder.
Este proyecto fue escrito por Emmanuel Odunlade y editado por Rui Santos.
¿Qué vas a lograr con este tutorial?
Con este tutorial lograrás:
– Usar el módulo GPS NEO-6M con Raspberry Pi.
– Enviar un correo electrónico con Raspberry Pi.
– Este tutorial también es una buena referencia para configurar UART en Raspberry Pi.
Emmanuel comenta sobre este proyecto: «Personalmente decidí escribir este tutorial después de pasar unos tres días tratando de conectar un componente que pudiera comunicarse con Raspberry Pi 3 a través de UART para que funcione».
Requisitos previos
Debes estar familiarizado con Raspberry Pi. Lee Cómo empezar con Raspberry Pi.
Debes tener instalado el sistema operativo Raspbian en tu Raspberry Pi. Lee Instalación de Raspbian Lite, Activación y Conexión con SSH.
Si te gusta la domótica y quieres aprender más sobre Node-RED, Raspberry Pi, ESP8266 y Arduino, te recomiendo que descargues mi curso: Construir un Sistema de Domótica por $100.
Componentes requeridos
Aquí tienes una lista completa de los componentes que necesitas para este proyecto:
– Placa Raspberry Pi – Lee Mejores Kits de Inicio de Raspberry Pi.
– Tarjeta MicroSD – al menos 8GB Clase 10.
– Fuente de alimentación para Raspberry Pi (5V 2.5A).
– Módulo GPS NEO-6M V2.
– Protoboard.
– Cables jumper.
Puedes usar los enlaces anteriores o ir directamente a MakerAdvisor.com/tools para encontrar todas las piezas para tus proyectos al mejor precio.
Continúa leyendo en Random Nerd Tutorials.