Python - Ayuda con código para proyecto Raspberry

 
Vista:
sin imagen de perfil

Ayuda con código para proyecto Raspberry

Publicado por Miguel Ángel (1 intervención) el 10/02/2015 19:27:06
Hola a todos,
soy un novato en la programación, pero tengo ganas de aprender, por eso recurro a vuestra ayuda.
El caso es que estoy interesado en implementar un videoportero ip, con una raspberry pi (en adelante Rpi) y su módulo de cámara (raspicam).
La idea es que cuando el pulsador del timbre de casa, conectado al puerto GPIO de la Rpi, me llegue una notificación por correo al pc y al smartphone, con un link en el que pueda ver, en tiempo real, un streming de video del conjunto Rpi+cámara, ubicadas en la entrada.

Por ahora he instalado el programa Motion, siguiendo el manual del link: http://www.maquinasvirtuales.eu/raspberry-pi-pi-noir-como-servidor-de-videovigilancia-casero/
Nota: no he conseguido hacer funcionar los ejecutables startmotion y stopmotion que se definen al final del tutorial, pero por ahora me apaño entrando al directorio mmal y ejecutando el código:
1
./motion-mmal -n -c motion-mmalcam.conf

Ahora mi idea, y es donde necesito vuestra ayuda, es crear un script en python que haga lo que necesito.
Tengo que decir que yo lo hago desde el terminal de la Rpi por shh y lo inicio con el shebang:
1
sudo nano #!/usr/bin/env python
Luego intento crear un código para pasar al directorio /mmal. He probado con:
1
2
import os
os.system("cd mmal")
pero no me funciona..... :(

Por otro lado, entrando en mmal manualmente, si consigo arrancar la cámara con:
1
2
import os
os.system("./motion-mmal -n -c motion-mmalcam.conf")
Este si funciona :)
Luego mi intención es que al mismo tiempo que se arranque la cámara se envíe un email. Para ello he encontrado este código que funciona bastante bien:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import smtplib
smtpUser = 'correoremitente@gmail.com'
smtpPass ='passremitente'
toAdd = 'correodestino@gmail.com'
fromAdd = smtpUser
subject = 'Han llamado al timbre'
header = 'To: ' + toAdd + '\n' + 'From: ' + fromAdd + '\n' + 'Subect: ' + subject
body = 'Han llamado al timbre, ver video en link: IPraspberry:8081'
print header + '\n' + body
s = smtplib.SMTP('smtp.gmail.com',587)
s.ehlo()
s.starttls()
s.ehlo()
s.login(smtpUser, smtpPass)
s.sendmail(fromAdd, toAdd, header + '\n\n' + body)
s.quit()

Lo siguiente que necesito es que todo este proceso (streaming de video) dure un tiempo determinado, por ejemplo 15 segundos y luego se aborte todo. Evidentemente, sería necesario que durante el tiempo que dure la ejecución del proceso, se ingnoren las nuevas pulsacionies que se puedan producir (que ya se sabe, hay cada uno....).

Adicionalmente me gustaría que en en la linea "body" del script de envío del correo la referencia IPraspberry sea variable. Es decir, referenciar un código que muestre la ip que tiene la cámara en cada momento, ya que al ser ip dinámica puede ir variando.
Para ello he encontrado el código:
1
2
import os
os.system("/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'")
que por si solo funciona bien, pero no he conseguido incluirlo dentro del mensaje de la referencia "body" comentada antes.

Una vez conseguido que funcione todo esto, tendré que ampliar el código para refernciar los pines del puerto GPIO que se activarn como entradas en la Rpi...

En definitiva, como veis tengo inquietudes, y muchas horas de investigación, pero poca idea. Tengo 4 piezas sueltas, pero me falta juntarlas todas en algo que quede bonito y funcional. Me echáis una mano??

Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con código para proyecto Raspberry

Publicado por ariel (1 intervención) el 14/01/2016 21:36:19
Hola sos de argentina?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar