Grupos de Investigación de Robótica

Tal vez veamos interesante añadir una nueva
funcionalidad a nuestro proyecto de alarma domótica: el

envío de emails a nuestro correo para cuando se produce una intrusión en
nuestra vivienda y estamos ausentes de esta.


Esto será enormemente práctico, por ejemplo, durante el tiempo en que
estamos trabajando en

una oficina o en algún puesto de trabajo desde donde podamos tener
acceso a nuestro correo; o si

disponemos de algún dispositivo personal como un PDA, teléfono móvil,
etc. que nos permita recibir al

instante una alerta email.


Para los que no coincidan en estas circunstancias y disponen de un
móvil, tal vez les sea interesante

habilitar una cuenta email en su operadora de telefonia móvil (por
ejemplo: Vodaphone, Movistar, y

cualquier otra peradora que disponga de dicho servicio) que permitirá,
cuanto menos, recibir un aviso

SMS al móvil cuando nuestro sistema de alarma domótico remita el
correspondiente email de alerta al

buzón email de dicha cuenta.


Notad que, entre otras cosas, el envío de un email desde el módulo PINK
nos permitirá además contar

con un práctico sistema para fechar el día y hora en el que se produce
eventos significativos en la

vigilancia de nuestra vivienda o local. Para lo más avanzados, les dejo
pensando en la

posibilidad de diseñar un sistema complementario, o un sistema avanzado
que nada tenga que ver con alarmas, consistente en un Datalogger, Base
de

Datos, o rellenado automático de datos de una Hoja de cálculo (PLX-DAQ)
donde sería posible el registro

de los diferentes eventos que se producen en la vivienda, según cada uno
de los sensores que se

activan. Porque ¿es necesario ceñirnos sólo a un sistema de alarma
domótico para nuestra vivienda?

Pensad un poco más y encontrareis nuevas posibilidades...


En fin, estas son algunas de las múltiples facetas que pueden hacerse
servir desde un módulo PINK con

una tarjeta con BASIC Stamp, pero que nos desvian un poco del aspecto
concreto que queremos darle a

nuestro sistema de alarma domótico que se explica en este proyecto. Así
que, centrémonos de nuevo en

dotar de la nueva funcionalidad del envío de email.



Variables de registro especiales para el envío de email

El envío de un mensaje de correo es posible gracias a algunas de las
variables específicas de registro

que dispone el PINK. Aquí se van a explicar el uso de algunas de estas,
pero para los que quereis saber

más, en la Hoja de producto del PINK,
concretamente en la pág. 8,

teneis toda la lista completa y la explicación de su uso (en inglés).
Las que nos interesan aquí son:



SEROUT TX, Baud, ["!NB0WET:someone@somewhere.com", CLS]
SEROUT TX, Baud, ["!NB0WEF:pink@parallax.com", CLS]
SEROUT TX, Baud, ["!NB0WES:Test Message From PINK", CLS]
SEROUT TX, Baud, ["!NB0WEC:Message Content Goes Here!",CLS]
SEROUT TX, Baud, ["!NB0WEV:smtp.server.com", CLS]
SEROUT TX, Baud, ["!NB0WEU:username", CLS] ' (Optional)
SEROUT TX, Baud, ["!NB0WEP:password", CLS] ' (Optional)
SEROUT TX, Baud, ["!NB0WEA:1", CLS] ' Turn Authentication On (Optional)

SEROUT TX, Baud, ["!NB0SM"] ' Command To Send E-Mail




Añadidos al listado del programa
A partir de las indicaciones anteriores, construyamos la correspondiente
subrutina que añadiremos en

nuestro listado del programa de código PBASIC:




EMAIL_BEEP:
IF modo = 1 THEN FREQOUT 4, 250, 3000 ' beep
IF cont0 > 1 THEN 'envía email sólo en caso de apertura puerta
IF email = 0 THEN
SEROUT 8,396,["!NB0WET: tu_direccion_email_destino",CLS]
SEROUT 8,396,["!NB0WEF:tu_direccion_email_remitente",CLS]
SEROUT 8,396,["!NB0WES:Alerta, puerta principal de la casa abierta",CLS]
SEROUT 8,396,["!NB0WEV:tu_servidor_SMTP",CLS]
SEROUT 8,396,["!NB0SM"]
email = 1 'email ya enviado
ENDIF
ENDIF
RETURN



Expliquemos: si en nuestro sistema de alarma hemos habilitado los 2
modos de funcionamiento (Modo

vigilancia
para cuando estamos en casa, pero queremos tener avisos
discretos de las activaciones

de los sensores; y Modo alarma, para cuando nos ausentamos de la
vivienda) está claro que, en

el primer modo no nos interesará el envío automático de emails de
alerta. Así que, en el primer caso y según la primera línea, sólo

producirá un BEEP.


La línea IF cont0 > 1 THEN... nos sirve para asignar el envío
de email sólo para cuando el

contador del sensor que vigila la apertura de la puerta principal se
ponga en marcha.


A continuación, la variable email nos sirve de flag o bandera
para controlar que sólo se envíe un

mensaje de alerta, de manera que el sistema no nos envíe continuamente
emails, sobre todo si la puerta

se queda abierta por un tiempo. Cuando el primer y único email ha sido
enviado mediante las

siguientes líneas SEROUT, la variable email será cargada
con el valor 1; después

el control del programa será devuelto al ciclo de contadores.


Si nuestro servidor de correo precisa la autentificación del envío, será
necesario añadir en la subrutina

comentada las siguientes líneas SEROUT:
br>

SEROUT 8, 396, ["!NB0WEU:username", CLS] ' (Optional)
SEROUT 8, 396, ["!NB0WEP:password", CLS] ' (Optional)


donde username es el nombre de usuario de nuestra cuenta de
correo remitente y

password es la contraseña.


Ahora veamos que otras modificaciones obvias habrá que hacer al listado
del programa: hemos

comentado el uso de la nueva variable email; pues hay que
declararla al comienzo del listado del

código:



email VAR Byte



Otro añadido que hay que hacer es la línea que hace la llamada a la
subrutina comentada anteriormente;

esta línea la añadiremos en la siguiente parte del programa, que
controla la apertura de la puerta:


Helvetica, sans-serif" size="1"">APERTURAPUERTA:
IF IN0 = 1 THEN

cont0 = 1 'OJO puerta
abierta

GOSUB EMAIL_BEEP
ENDIF

IF cont0 > 0 THEN
SELECT cont0
CASE > 24000
cont0 = 0 'contador ha
llegado a
60minutos -> vuelve a estado alerta


SEROUT 8,396,["!NB0W00:0",CLS]
'inicializa después de 60 minutos

RETURN
CASE > 2000
SEROUT 8,396,["!NB0W00:3",CLS] 'sensor
ha sido activado hace más de 5 minutos->
mostrar
huella

CASE > 400

SEROUT 8,396,["!NB0W00:2",CLS] 'sensor
ha sido activado hace más de 1 minuto->
mostrar
huella

CASE > 0
SEROUT 8,396,["!NB0W00:1",CLS] 'sensor
ha sido activado

ENDSELECT
cont0 = cont0 +1 'contador
en marcha
(aunque se haya cerrado la puerta)


PAUSE 10
ENDIF
RETURN


Ojo: Para las primeras pruebas que podamos hacer con relación a esta
nueva funcionalidad de envío de

email, será importante que tomemos las debidas precauciones de utilizar
los necesarios flags o banderas,

o simplemente insertando algún que otro STOP en el código del programa,
para que no se produzca un

"accidentado" envío continuo de emails que llegue a saturar el buzón
email que utilizamos como

destinatario de las alertas. Teniendo en cuenta la velocidad en la que
se ejecuta el control del programa

y lo rápido que se enviará el email, estamos hablando de cientos de
mensajes que recibiremos en poco

tiempo que nos descuidemos, si no tenemos el necesario cuidado en este
aspecto.



Visitas: 4

 

© 2025   Creado por Admin Grupos Robótica.   Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio